20190422_jeffrey - silenceuncrio/diary GitHub Wiki

0905

上禮拜五臨時請假 先補周報

M300

  • add lighttpd to replace the current web server iweb(mongoose)
    • lighttpd_1.4.36.bbappend
      • SRC_URI - remove patch 0001-mod_cgi-buffers-data-without-bound.patch
        • The patch uses internal API functions from older versions of lighttpd which don't exist in this version.
      • RDEPENDS_${PN} - add lighttpd-module-cgi for mod_cgi.so
      • INITSCRIPT_PARAMS - disable init script start link
    • do not init the web module (iweb)
    • do not send even ICOS_BOOTINIT_DONE to MODULE_WEB or the notify handler will start the iweb process
  • add CPU Temperature at status page
  • solve issue - 0000200: [QoS web] choose subnet, Example: 192.168.1.5/24 issue
  • solve issue - 0000201: [QoS] shoud be hide "VLAN follow vid of" and "Class of Service" on LTE or WAN ETHERNET Downstream mode
  • solve the problem at 'Step 3. LAN Setting' of Setting Wizard
  • change a way to display review at setting wizard
  • solve issue - 0000474: wizard: SIM apply failure

0945

看一下 email

有兩個跟 M330 有關的 issue

一個是 mantis issue 472

另一個描述如下

M330 現在改 bridge+router mode 都沒有用. 我按Apply 沒有收到 CHG_WAN_NET???

先拉一份最新的 M330 來 build

john 有幫 linux kernel 上一些 patch 需要 make target/linux/{clean,install}

1040

我這邊試並沒有發現問題

已經反應給 ariel

check 一下 mantis issue 472

1155

先幫 john 在 M330 加一下 UI

commit a8d31699ddd07f5b1b9295ad1eeebb97a94346c1
Author: jeffrey <[email protected]>
Date:   Mon Apr 22 11:44:18 2019 +0800

    add 'Firewall > Basic Rules'

 proscend/prosrc/webcgi/Makefile                  |  1 +
 proscend/prosrc/webcgi/firewall.c                |  2 +
 proscend/prosrc/webcgi/firewall6.c               | 96 ++++++++++++++++++++++++
 proscend/prosrc/www/app/feature/basicRules.html  | 42 +++++++++++
 proscend/prosrc/www/app/feature/basicRules.js    | 60 +++++++++++++++
 proscend/prosrc/www/app/locale-en.json           |  9 +++
 proscend/prosrc/www/app/locale-fr.json           | 11 ++-
 proscend/prosrc/www/app/locale-zh-tw.json        | 11 ++-
 proscend/prosrc/www/app/services/icos.service.js |  9 +++
 proscend/prosrc/www/src/index.html.src           |  1 +
 proscend/prosrc/www/src/menu.html.src            |  3 +
 11 files changed, 241 insertions(+), 4 deletions(-)
commit 33e196732584cdfca5e98fe8e74cfb9b6a348830
Author: jeffrey <[email protected]>
Date:   Mon Apr 22 11:53:13 2019 +0800

    add 'Firewall > Basic Rules' for online user manual

 proscend/prosrc/www/src/manual.html.src            | 13 +++++++
 .../www/src/manual/firewall_basic_rules.h.html     | 26 ++++++++++++++
 proscend/prosrc/www/src/manual/sidebar.h.html      | 41 +++++++++++-----------
 3 files changed, 59 insertions(+), 21 deletions(-)

下午在 M300 做一樣的事

1340

解決 mantis issue 472

commit a26b0411956e306eccc4a8d02f17d227bee33180
Refs: [develop], {origin/develop}
Author: jeffrey <[email protected]>
Date:   Mon Apr 22 13:37:43 2019 +0800

    solve issue - 0000472: [web ui] plug in ETH WAN, but status web page no check

 proscend/prosrc/webcgi/status.c                     | 8 +++++++-
 proscend/prosrc/www/src/app/feature/status.html.src | 1 +
 2 files changed, 8 insertions(+), 1 deletion(-)

可以回到 M300 幫 john 做 UI 了

1420

收工

commit c5408268a3233db415ebcf235c113c531ad88bd0
Refs: [release/v2.00], {origin/release/v2.00}
Author: jeffrey <[email protected]>
Date:   Mon Apr 22 14:18:13 2019 +0800

    add 'Firewall > Basic Rules'

 proscend/prosrc/webcgi/Makefile                    |  1 +
 proscend/prosrc/webcgi/firewall.c                  |  2 +
 proscend/prosrc/webcgi/firewall6.c                 | 96 ++++++++++++++++++++++
 proscend/prosrc/www/app/feature/basicRules.html    | 42 ++++++++++
 proscend/prosrc/www/app/feature/basicRules.js      | 60 ++++++++++++++
 proscend/prosrc/www/app/locale-en.json             |  9 ++
 proscend/prosrc/www/app/locale-fr.json             |  9 ++
 proscend/prosrc/www/app/locale-zh-tw.json          |  9 ++
 proscend/prosrc/www/app/services/icos.service.js   |  9 ++
 proscend/prosrc/www/src/index.html.src             |  1 +
 proscend/prosrc/www/src/manual.html.src            |  3 +
 .../www/src/manual/firewall_basic_rules.h.html     | 26 ++++++
 proscend/prosrc/www/src/manual/sidebar.h.html      |  3 +
 proscend/prosrc/www/src/menu.html.src              |  3 +
 14 files changed, 273 insertions(+)

可以來解 issue 0000481: user upgrade from v1.72 to v1.77, DUT hang on uboot

1455

切到 u-boot-imx 所在的 source code 目錄之下

➜  M300 git:(release/v2.00) ✗ cd build_small/tmp/work/m300-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git
➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)

quilt new uboot_env_v1.4.patch

➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga) quilt new uboot_env_v1.4.patch
Patch patches/uboot_env_v1.4.patch is now on top
➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)

加入待會要改的 files

  • common/main.c
    ➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga) quilt add common/main.c
    File common/main.c added to patch patches/uboot_env_v1.4.patch
    ➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)
    
  • include/configs/mx6ul_14x14_evk.h
    ➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga) quilt add include/configs/mx6ul_14x14_evk.h
    File include/configs/mx6ul_14x14_evk.h added to patch patches/uboot_env_v1.4.patch
    ➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)
    

修改

  • common/main.c
@@ -77,6 +77,8 @@ void main_loop(void)
     // Proscend Bootloader version
     setenv("bootloader_ver", "1.0");

+    setenv("bootcmd", "run bootcmd_v1.4");
+
        cli_init();

        run_preboot_environment_command();
  • include/configs/mx6ul_14x14_evk.h
@@ -205,18 +205,18 @@
         "else echo b to a; setenv app_primary a; setenv app_secondary b;" \
         "fi\0" \
     "no_good=.\0" \
-    "uboot_env_ver=1.3\0" \
+    "uboot_env_ver=1.4\0" \
        \
        /* do not allow user stop autoboot - no chance to change the uboot env */ \
        "bootdelay=0\0" \
        \
-    "bootcmd=run app_choose;" \
+    "bootcmd_v1.4=run app_choose;" \
         "echo run bootargs_${app_primary}; run bootargs_${app_primary};" \
         "run nandread_${app_primary};" \
         "setenv no_good ${no_good}x; saveenv;" \
         "bootz ${loadaddr} - ${fdt_addr}\0" \
-
-
+    \
+    "bootcmd=run bootcmd_v1.4\0" \

 #else
 #define CONFIG_EXTRA_ENV_SETTINGS \

使用 quilt refresh

➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga) quilt refresh
Refreshed patch patches/uboot_env_v1.4.patch
➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)

build image

1605

開機 紀錄一下 uboot env

root@Cellular Router:~# fw_printenv
app_choose=if test ${no_good} = ".xx";then echo replace primary app; run app_replace; setenv no_good .; saveenv;else echo run primary app;fi
app_primary=a
app_replace=if test ${app_primary} = a;then echo a to b; setenv app_primary b; setenv app_secondary a;else echo b to a; setenv app_primary a; setenv app_secondary b;fi
app_secondary=b
baudrate=115200
bootargs=console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs_a rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootargs_a=echo bootargs for room a;setenv bootargs console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs_a rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootargs_b=echo bootargs for room b;setenv bootargs console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs_b rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootcmd=run bootcmd_v1.4
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootcmd_v1.4=run app_choose;echo run bootargs_${app_primary}; run bootargs_${app_primary};run nandread_${app_primary};setenv no_good ${no_good}x; saveenv;bootz ${loadaddr} - ${fdt_addr}
bootdelay=0
bootloader_ver=1.0
console=ttymxc0
dtb_a_addr=0x00E00000
dtb_b_addr=0x08E00000
ethact=FEC1
ethprime=FEC
fdt_addr=0x83000000
fdt_high=0xffffffff
initrd_addr=0x83800000
initrd_high=0xffffffff
kernel_a_addr=0x00400000
kernel_b_addr=0x08400000
loadaddr=0x80800000
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
mtdparts=mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
nandread_a=nand read ${loadaddr} ${kernel_a_addr} 0x800000;nand read ${fdt_addr} ${dtb_a_addr} 0x100000;
nandread_b=nand read ${loadaddr} ${kernel_b_addr} 0x800000;nand read ${fdt_addr} ${dtb_b_addr} 0x100000;
stderr=serial
stdin=serial
stdout=serial
uboot_env_ver=1.4
hw_mcsv=013600002002E7D6
serialno=NA
no_good=.
wdog_prev_image=1
root@Cellular Router:~#

透過 web downgrade 成 M300-SG_v1.72_013600001722C2A9.img

upgrade 後直接重開機

再紀錄一下 uboot env

bash-4.3# fw_printenv
baudrate=115200
bootargs=console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs_b rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootcmd_v1.4=run app_choose;echo run bootargs_${app_primary}; run bootargs_${app_primary};run nandread_${app_primary};setenv no_good ${no_good}x; saveenv;bootz ${loadaddr} - ${fdt_addr}
bootloader_ver=1.0
console=ttymxc0
dtb_a_addr=0x00E00000
dtb_b_addr=0x08E00000
ethact=FEC1
ethprime=FEC
fdt_addr=0x83000000
fdt_high=0xffffffff
hw_mcsv=013600002002E7D6
initrd_addr=0x83800000
initrd_high=0xffffffff
kernel_a_addr=0x00400000
kernel_b_addr=0x08400000
loadaddr=0x80800000
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
mtdparts=mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
serialno=NA
stderr=serial
stdin=serial
stdout=serial
nandread_a=nand read ${loadaddr} ${kernel_a_addr} 0x800000; \
nand read ${fdt_addr} ${dtb_a_addr} 0x100000;
nandread_b=nand read ${loadaddr} ${kernel_b_addr} 0x800000; \
nand read ${fdt_addr} ${dtb_b_addr} 0x100000;
bootargs_a=echo bootargs for room a; \
setenv bootargs console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs_a rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootargs_b=echo bootargs for room b; \
setenv bootargs console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs_b rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
app_primary=b
app_secondary=a
app_replace=if test ${app_primary} = a; \
then echo a to b; setenv app_primary b; setenv app_secondary a; \
else echo b to a; setenv app_primary a; setenv app_secondary b; \
fi
app_choose=if test ${no_good} = ".xx"; \
then echo replace primary app; run app_replace; setenv no_good .; \
else echo run primary app; \
fi
turnon_sysled=mw 0x020E01CC 0x00000005 1; mw 0x020A0004 00100000 1; mw 0x020A0000 00000000 1
reset_ethernet_and_mobile=mw 0x020E00BC 00000005 1; mw 0x020E00C0 00000005 1; \
mw 0x0209C004 C0000000 1; mw 0x020AC004 00000080 1; \
mw 0x0209C000 00000000 1; mw 0x020AC000 00000000 1; \
sleep 1; \
mw 0x0209C000 C0000000 1; mw 0x020AC000 00000080 1
bootdelay=0
bootcmd_v1.3=run turnon_sysled; run reset_ethernet_and_mobile; \
run app_choose; \
echo run bootargs_${app_primary}; run bootargs_${app_primary}; \
run nandread_${app_primary}; \
setenv no_good ${no_good}x; \
saveenv; \
bootz ${loadaddr} - ${fdt_addr}
uboot_env_ver=1.3
uboot_env_1.3_bondary_1=therer are 3 bondary
uboot_env_1.3_bondary_2=therer are 3 bondary
uboot_env_1.3_bondary_3=therer are 3 bondary
bootcmd=run bootcmd_v1.3
no_good=.
wdog_prev_image=2
bash-4.3#

上一次是在此時再重開機的話就開不了了

拔插電

開起來了

看一下 uboot env

bash-4.3# fw_printenv
app_choose=if test ${no_good} = ".xx";
then echo replace primary app; run app_replace; setenv no_good .;
else echo run primary app;
fi
app_primary=b
app_replace=if test ${app_primary} = a;
then echo a to b; setenv app_primary b; setenv app_secondary a;
else echo b to a; setenv app_primary a; setenv app_secondary b;
fi
app_secondary=a
baudrate=115200
bootargs=console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs_b rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootargs_a=echo bootargs for room a;
setenv bootargs console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs_a rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootargs_b=echo bootargs for room b;
setenv bootargs console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs_b rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootcmd_v1.3=run turnon_sysled; run reset_ethernet_and_mobile;
run app_choose;
echo run bootargs_${app_primary}; run bootargs_${app_primary};
run nandread_${app_primary};
setenv no_good ${no_good}x;
saveenv;
bootz ${loadaddr} - ${fdt_addr}
bootcmd_v1.4=run app_choose;echo run bootargs_${app_primary}; run bootargs_${app_primary};run nandread_${app_primary};setenv no_good ${no_good}x; saveenv;bootz ${loadaddr} - ${fdt_addr}
bootdelay=0
bootloader_ver=1.0
console=ttymxc0
dtb_a_addr=0x00E00000
dtb_b_addr=0x08E00000
ethact=FEC1
ethprime=FEC
fdt_addr=0x83000000
fdt_high=0xffffffff
hw_mcsv=013600002002E7D6
initrd_addr=0x83800000
initrd_high=0xffffffff
kernel_a_addr=0x00400000
kernel_b_addr=0x08400000
loadaddr=0x80800000
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
mtdparts=mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
nandread_a=nand read ${loadaddr} ${kernel_a_addr} 0x800000;
nand read ${fdt_addr} ${dtb_a_addr} 0x100000;
nandread_b=nand read ${loadaddr} ${kernel_b_addr} 0x800000;
nand read ${fdt_addr} ${dtb_b_addr} 0x100000;
reset_ethernet_and_mobile=mw 0x020E00BC 00000005 1; mw 0x020E00C0 00000005 1;
mw 0x0209C004 C0000000 1; mw 0x020AC004 00000080 1;
mw 0x0209C000 00000000 1; mw 0x020AC000 00000000 1;
sleep 1;
mw 0x0209C000 C0000000 1; mw 0x020AC000 00000080 1
serialno=NA
stderr=serial
stdin=serial
stdout=serial
turnon_sysled=mw 0x020E01CC 0x00000005 1; mw 0x020A0004 00100000 1; mw 0x020A0000 00000000 1
uboot_env_1.3_bondary_1=therer are 3 bondary
uboot_env_1.3_bondary_2=therer are 3 bondary
uboot_env_1.3_bondary_3=therer are 3 bondary
uboot_env_ver=1.3
wdog_prev_image=2
bootcmd=run bootcmd_v1.3
no_good=.
bash-4.3#

改用 mfgtool 燒錄 V1.72 的 M300-SG_013600001722C2A9_mfgtools.zip

一樣先紀錄一下 uboot env

bash-4.3# fw_printenv
baudrate=115200
bootargs=console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs_a rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
console=ttymxc0
dtb_a_addr=0x00E00000
dtb_b_addr=0x08E00000
ethact=FEC1
ethprime=FEC
fdt_addr=0x83000000
fdt_high=0xffffffff
initrd_addr=0x83800000
initrd_high=0xffffffff
kernel_a_addr=0x00400000
kernel_b_addr=0x08400000
loadaddr=0x80800000
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber="" mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
stderr=serial
stdin=serial
stdout=serial
nandread_a=nand read ${loadaddr} ${kernel_a_addr} 0x800000; \
nand read ${fdt_addr} ${dtb_a_addr} 0x100000;
nandread_b=nand read ${loadaddr} ${kernel_b_addr} 0x800000; \
nand read ${fdt_addr} ${dtb_b_addr} 0x100000;
bootargs_a=echo bootargs for room a; \
setenv bootargs console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs_a rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
bootargs_b=echo bootargs for room b; \
setenv bootargs console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs_b rootfstype=ubifs mtdparts=gpmi-nand:3m(boot),1m(boot_env),10m(kernel_a),2m(dtb_a),96m(rootfs_a),16m(config_a),4m(misc),10m(kernel_b),2m(dtb_b),96m(rootfs_b),-(config_b)
app_primary=a
app_secondary=b
app_replace=if test ${app_primary} = a; \
then echo a to b; setenv app_primary b; setenv app_secondary a; \
else echo b to a; setenv app_primary a; setenv app_secondary b; \
fi
app_choose=if test ${no_good} = ".xx"; \
then echo replace primary app; run app_replace; setenv no_good .; \
else echo run primary app; \
fi
turnon_sysled=mw 0x020E01CC 0x00000005 1; mw 0x020A0004 00100000 1; mw 0x020A0000 00000000 1
reset_ethernet_and_mobile=mw 0x020E00BC 00000005 1; mw 0x020E00C0 00000005 1; \
mw 0x0209C004 C0000000 1; mw 0x020AC004 00000080 1; \
mw 0x0209C000 00000000 1; mw 0x020AC000 00000000 1; \
sleep 1; \
mw 0x0209C000 C0000000 1; mw 0x020AC000 00000080 1
bootdelay=0
bootcmd_v1.3=run turnon_sysled; run reset_ethernet_and_mobile; \
run app_choose; \
echo run bootargs_${app_primary}; run bootargs_${app_primary}; \
run nandread_${app_primary}; \
setenv no_good ${no_good}x; \
saveenv; \
bootz ${loadaddr} - ${fdt_addr}
uboot_env_ver=1.3
uboot_env_1.3_bondary_1=therer are 3 bondary
uboot_env_1.3_bondary_2=therer are 3 bondary
uboot_env_1.3_bondary_3=therer are 3 bondary
bootcmd=run bootcmd_v1.3
hw_mcsv=013600001722C2A9
serialno=NA
no_good=.
wdog_prev_image=1
bash-4.3#

直接透過 web upgrade 成自己 local build 的 V2.00

upgrade 後直接重開機

U-Boot 2015.04imx_v2015.04_4.1.15_1.2.0_ga+gede7538 (Apr 22 2019 - 07:47:19)

CPU:   Freescale i.MX6UL rev1.1 at 396 MHz
CPU:   Temperature 43 C
Reset cause: POR
Board: MX6UL 14x14 EVK
I2C:   ready
DRAM:  512 MiB
turn on the IO control power
turn on sys led
reset Ethernet 1
reset Ethernet 2
reset Mobile
force_idle_bus: sda=0 scl=0 sda.gp=0x1d scl.gp=0x1c
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Net:   Phy 1 not found
PHY reset timed out
FEC1
Error: FEC1 address not set.

Normal Boot
Hit any key to stop autoboot:  0
## Error: "bootcmd_v1.4" not defined
=>

shit!

測試真的很重要...

測試真的很重要...

測試真的很重要...

因為很重要所以要講三遍

1715

重新操作一次吧

先還原 meta-proscend/recipes-bsp/u-boot/u-boot-imx_2015.04.bbappend 的修改

還原回原本的 uboot source code

bitbake u-boot-imx -c clean -f
bitbake u-boot-imx -c patch -f

切到 u-boot-imx 所在的 source code 目錄之下

➜  M300 git:(release/v2.00) ✗ cd build_small/tmp/work/m300-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git
➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)

quilt new uboot_env_v1.4.patch

➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga) quilt new uboot_env_v1.4.patch
Patch patches/uboot_env_v1.4.patch is now on top
➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)

加入待會要改的 files

  • common/main.c
    ➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga) quilt add common/main.c
    File common/main.c added to patch patches/uboot_env_v1.4.patch
    ➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)
    
  • include/configs/mx6ul_14x14_evk.h
    ➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga) quilt add include/configs/mx6ul_14x14_evk.h
    File include/configs/mx6ul_14x14_evk.h added to patch patches/uboot_env_v1.4.patch
    ➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)
    

再次修改

每次開機前就補上 bootcmd_v1.4

  • common/main.c
@@ -77,6 +77,22 @@ void main_loop(void)
     // Proscend Bootloader version
     setenv("bootloader_ver", "1.0");

+    char str[256];
+
+    sprintf(str, "%s; %s; %s; %s; %s; %s; %s; %s",
+        "run app_choose",
+        "echo run bootargs_${app_primary}",
+        "run bootargs_${app_primary}",
+        "run nandread_${app_primary}",
+        "setenv no_good ${no_good}x",
+        "saveenv",
+        "setenv no_good ${no_good}x",
+        "bootz ${loadaddr} - ${fdt_addr}");
+
+    setenv("bootcmd_v1.4", str);
+
+    setenv("bootcmd", "run bootcmd_v1.4");
+
        cli_init();

        run_preboot_environment_command();
  • include/configs/mx6ul_14x14_evk.h
@@ -205,18 +205,18 @@
         "else echo b to a; setenv app_primary a; setenv app_secondary b;" \
         "fi\0" \
     "no_good=.\0" \
-    "uboot_env_ver=1.3\0" \
+    "uboot_env_ver=1.4\0" \
        \
        /* do not allow user stop autoboot - no chance to change the uboot env */ \
        "bootdelay=0\0" \
        \
-    "bootcmd=run app_choose;" \
+    "bootcmd_v1.4=run app_choose;" \
         "echo run bootargs_${app_primary}; run bootargs_${app_primary};" \
         "run nandread_${app_primary};" \
         "setenv no_good ${no_good}x; saveenv;" \
         "bootz ${loadaddr} - ${fdt_addr}\0" \
-
-
+    \
+    "bootcmd=run bootcmd_v1.4\0" \

 #else
 #define CONFIG_EXTRA_ENV_SETTINGS \

使用 quilt refresh

➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga) quilt refresh
Refreshed patch patches/uboot_env_v1.4.patch
➜  git git:(imx_v2015.04_4.1.15_1.0.0_ga)

記得搭配 meta-proscend/recipes-bsp/u-boot/u-boot-imx_2015.04.bbappend 的修改

diff --git a/meta-proscend/recipes-bsp/u-boot/u-boot-imx_2015.04.bbappend b/meta-proscend/recipes-bsp/u-boot/u-boot-imx_2015.04.bbappend
old mode 100755
new mode 100644
index 18b7779..dff69d5
--- a/meta-proscend/recipes-bsp/u-boot/u-boot-imx_2015.04.bbappend
+++ b/meta-proscend/recipes-bsp/u-boot/u-boot-imx_2015.04.bbappend
@@ -17,6 +17,7 @@ SRC_URI_append_m300 = " \
     file://ma_upgrade_via_dhcp.patch \
     file://do_some_actions_at_board_init.patch \
     file://proscend_bootloader_ver.patch \
+    file://uboot_env_v1.4.patch \
 "

 SRC_URI_append_m300e = " \

使用 bitbake u-boot-imx -c compile -f 確認 compile 成功與否

build image