aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/const_structs.checkpatch
diff options
context:
space:
mode:
authorRoland Reinl <reinlroland+github@gmail.com>2024-12-18 15:45:37 +0100
committerHauke Mehrtens <hauke@hauke-m.de>2025-01-04 22:34:37 +0100
commitd92fc99360f0e8c5e8974fdc53d398c107a53072 (patch)
treea88da4f4934a641d947781a3d6d59bf702dc0a42 /scripts/const_structs.checkpatch
parent785ea040ec956877d42df46ffa0c91e65fb4ba3c (diff)
downloadupstream-d92fc99360f0e8c5e8974fdc53d398c107a53072.tar.gz
upstream-d92fc99360f0e8c5e8974fdc53d398c107a53072.tar.bz2
upstream-d92fc99360f0e8c5e8974fdc53d398c107a53072.zip
mediatek: Fix U-Boot variables handling for D-Link M30 A1
I think I implemented the U-Boot handling incorrectly on M30 (saw the issue while porting M60 to OpenWrt). Maybe someone with more U-Boot experience can have a look at it. What I understood until now: Before flashing, `sw_tryactive` must be set to 0 because OpenWrt runs on partition 0 During reset after flashing, U-Boot executes the following line: `boot_rd_auto_sw_img=if itest.s ${sw_tryactive} == 2; then run boot_by_part; else run boot_by_tryactive; fi` As `sw_tryactive` was set to 0 before flashing, `boot_by_tryactive` will be executed: `boot_by_tryactive=if itest.s ${sw_tryactive} == 0; then setenv sw_tryactive 2; setenv sw_active 1; saveenv; run ub0; else setenv sw_tryactive 2; setenv sw_active 2; saveenv; run ub1; fi` As `sw_tryactive` was set to 0 before flashing, `sw_active` will be set to 1 and `ub0` will be executed: `ub0=setenv bootpart 0; mtkboardboot; run ub0to1; uip main; reset` If the OpenWrt boot is successful, `ub0to1` and `uip` main will never be executed. Only in case OpenWrt cannot be loaded, `mtkboardboot` will return and the fallback `ub0to1` is executed. Conclusion: It's sufficient to set `sw_tryacitve` to 0 before flashing, the added code in `target/linux/mediatek/filogic/base-files/etc/init.d/bootcount` is useless. In the worst case (/proc/cmdline doesn't contain `bootpart=ubi0` as expected), the bootpart variable would be set to 1 and causes starting the firmware from the second partition instead of the one on the first partition. Signed-off-by: Roland Reinl <reinlroland+github@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17298 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> (cherry picked from commit 70610a5240a94648e178713f091435bd0ba158d3)
Diffstat (limited to 'scripts/const_structs.checkpatch')
0 files changed, 0 insertions, 0 deletions