20170126_jeffrey - silenceuncrio/diary GitHub Wiki

Index

  • 0925 - 早上來 morris 告知昨天幫他燒錄的那六片 M300 怎麼開機還是那麼久才會閃燈
  • 1025 - 原來 morris 準備的哪幾片要出 sample 的
  • 1055 - 跟 ariel 討論一下早上 morris 的需求 - 閃燈快一點這件事能夠在一燒錄完就有了
  • 1140 - 可以來 patch 了
  • 1310 - git commit
  • 1535 - 過年後需要跟產線單位 demo 一下怎麼使用 mfgtool

0925

早上來 morris 告知昨天幫他燒錄的那六片 M300 怎麼開機還是那麼久才會閃燈

那是因為閃燈要快的話要 uboot 幫忙

uboot 要幫忙的話要靠 bootcmd

bootcmd 的修改要等 rc.local 跑完才會套用新的 bootcmd

所以要等到 SIM 燈閃動才表示 rc.local 跑完了

這一點可能要註明一下才不會讓後續的生產流程誤會

不過 morris 是希望閃燈快一點這件事能夠在一燒錄完就有了

不然產線很容易就誤會了

1025

原來 morris 準備的哪幾片要出 sample 的

結果我燒錄的是最新的 develop 上的 code

雖然有快速點系統燈的修改 不過 develop 新增的部分都還沒經過驗證

ariel 表示先就目前這個版直接從 WEB UI upgrade 成 m300_v1.1_012C000000129880.tar

對外統一放在 P:\2_Projects\3_Wireless\M300_M301\firmware\20170112

不過因為目前 uboot env 已經實作 no_good counter 的關係

只要開機兩次後就會切換 image... 所以 ariel 直接 upgrade 兩次把 dual image 都燒成 m300_v1.1_012C000000129880.tar

1055

跟 ariel 討論一下早上 morris 的需求 - 閃燈快一點這件事能夠在一燒錄完就有了

這需要直接修改 <u-boot-imx>\include\configs\mx6ul_14x14_evk.h

參考 https://github.com/silenceuncrio/diary/wiki/20161219_jeffrey

...
#define CONFIG_MFG_NAND_PARTITION "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)\0"

#define CONFIG_NAND_PARTITION CONFIG_MFG_NAND_PARTITION
...
#define CONFIG_EXTRA_ENV_SETTINGS \
    CONFIG_MFG_ENV_SETTINGS \
    CONFIG_VIDEO_MODE \
    "fdt_addr=0x83000000\0" \
    "fdt_high=0xffffffff\0"   \
    "console=ttymxc0\0" \
    "bootargs=console=ttymxc0,115200 ubi.mtd=4 "  \
        "root=ubi0:rootfs rootfstype=ubifs "             \
        CONFIG_NAND_PARTITION \
    "kernel_addr=0x00400000\0" \
    "dtb_addr=0x00E00000\0" \
    "bootcmd=nand read ${loadaddr} ${kernel_addr} 0x800000;"\
        "nand read ${fdt_addr} ${dtb_addr} 0x100000;"\
        "bootz ${loadaddr} - ${fdt_addr}\0"
...
#define CONFIG_ENV_OFFSET       0x00300000
#define CONFIG_ENV_SECT_SIZE    0x00100000
#define CONFIG_ENV_SIZE         CONFIG_ENV_SECT_SIZE

我需要把目前最新的 uboot env 套上去

root@Mobile Router:~# fw_printenv
active_firmware=a
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=mw 0x020A0004 00100000 1; mw 0x020E01CC 0x00000005 1;
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_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=1
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)
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;
panel=TFT43AB
rootfs_a_mtd=4
rootfs_b_mtd=9
uboot_env_ver=1.0
no_good=.

整理一下

1140

可以來 patch 了

  • bitbake u-boot-imx -c clean
  • bitbake u-boot-imx -c devshell
  • quilt new uboot_env_v1.0.patch
  • quilt add include/configs/mx6ul_14x14_evk.h
  • 套用 <u-boot-imx>\include\configs\mx6ul_14x14_evk.h
  • quilt refresh
  • cp patches/uboot_env_v1.0.patch to meta-proscend\recipes-bsp\u-boot\files
  • modify meta-proscend\recipes-bsp\u-boot\u-boot-imx_2015.04.bbappend
    • add uboot_env_v1.0.patch to SRC_URI_append

bitbake u-boot-imx -c clean

bitbake u-boot-imx

built image... ok

mfgtool flash frimware... ok

1310

git commit

commit bf8a6e5f032f1d5ae4e32c3ae7daeef77be5bed9
Author: jeffrey <[email protected]>
Date:   Thu Jan 26 13:08:15 2017 +0800

    patch the u-boot-imx for support the following features:
    - dual image failover
    - quick turn on system led

    the uboot env verion is 1.0

1535

過年後需要跟產線單位 demo 一下怎麼使用 mfgtool

最好是一次燒四台

我需要先演練一次才行

mfgtool 本身我也應該把我為了 M300 修改過後的版本放到 git server 上才行

過年後需要進行這些事

⚠️ **GitHub.com Fallback** ⚠️