20161216_jeffrey - silenceuncrio/diary GitHub Wiki

Index

  • 0830 - review
  • 1000 - 參考 <u-boot-imx>\README 裡的說明
  • 1055 - 修改 mtdparts 讓 uboot env 這一塊也佔一個 mtd
  • 1120 - 配合新的 nand flash layout 來修改
  • 1225 - 配合新的 nand flash layout 來修改 mfgtool 的 ucl2.xml
  • 1325 - uboot 顯示 *** Warning - bad CRC, using default environment
  • 1410 - 使用 fw_setenvbootargs 裡的 ubi.mtd 從 4(rootfs_a) 改成 9(rootfs_b)

0830

review

昨天努力的點為 linux 去改 uboot 的 環境變數

就 yocto 的 u-boot-imx recipe 做了一些努力都宣告失敗

  • arron 幫忙改 u-boot-imx_2015.04.bbappend 走 bitbake 的 compile 流程
    • fsl-release-bsp/sources/meta-proscend/recipes-bsp/u-boot/u-boot-imx_2015.04.bbappend
  • 裝 yocto 的 toolchain 方便做 cross compile
  • 試著自己 porting fw_printenv 的 source code
    • header file 的相依性高的嚇人

還好找到 yocto 原生的 u-boot-fw-utils recipe

  • 還要從 u-boot-imx recipe 借 mx6ul_14x14_evk_nand_defconfig 來用
    • /configs/mx6ul_14x14_evk_nand_defconfig

終於得到一個可以在 m300 上執行的 fw_printenv

竟然還要在 m300 準備 /etc/fw_env.config 設定給 fw_printenv

最後讀到的 uboot env 竟然和原本的 uboot 設定不一樣

昨天一整天都是跌倒的過程

1000

昨天在準備 /etc/fw_env.config 時有看到 <u-boot-imx>\include\configs\mx6ul_14x14_evk.h 裡的

#define CONFIG_ENV_OFFSET		(8 << 20)
#define CONFIG_ENV_SECT_SIZE		(128 << 10)
#define CONFIG_ENV_SIZE			CONFIG_ENV_SECT_SIZE

參考 <u-boot-imx>\README 裡的說明

	- CONFIG_ENV_OFFSET:

	   Offset of environment data (variable area) to the
	   beginning of flash memory; for instance, with bottom boot
	   type flash chips the second sector can be used: the offset
	   for this sector is given here.

	   CONFIG_ENV_OFFSET is used relative to CONFIG_SYS_FLASH_BASE.

	- CONFIG_ENV_SECT_SIZE:

	   Size of the sector containing the environment.


	b) Sometimes flash chips have few, equal sized, BIG sectors.
	   In such a case you don't want to spend a whole sector for
	   the environment.

	- CONFIG_ENV_SIZE:

	   If you use this in combination with CONFIG_ENV_IS_IN_FLASH
	   and CONFIG_ENV_SECT_SIZE, you can specify to use only a part
	   of this flash sector for the environment. This saves
	   memory for the RAM copy of the environment.

	   It may also save flash memory if you decide to use this
	   when your environment is "embedded" within U-Boot code,
	   since then the remainder of the flash sector could be used
	   for U-Boot code. It should be pointed out that this is
	   STRONGLY DISCOURAGED from a robustness point of view:
	   updating the environment in flash makes it always
	   necessary to erase the WHOLE sector. If something goes
	   wrong before the contents has been restored from a copy in
	   RAM, your target system will be dead.

1055

看來我需要修改一下 mtdparts 以便讓 uboot env 這一塊也佔一個 mtd

目前的 <u-boot-imx>\include\configs\mx6ul_14x14_evk.h

...
#define CONFIG_MFG_NAND_PARTITION "mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),-(rootfs) "
...
#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=3 "  \
		"root=ubi0:rootfs rootfstype=ubifs "		     \
		"mtdparts=gpmi-nand:64m(boot),16m(kernel),16m(dtb),-(rootfs)\0"\
	"bootcmd=nand read ${loadaddr} 0x4000000 0x800000;"\
		"nand read ${fdt_addr} 0x5000000 0x100000;"\
		"bootz ${loadaddr} - ${fdt_addr}\0"
...
#define CONFIG_ENV_OFFSET		(8 << 20)
#define CONFIG_ENV_SECT_SIZE		(128 << 10)
#define CONFIG_ENV_SIZE			CONFIG_ENV_SECT_SIZE

linux kernel parser mtdparts 得到的

...
5 cmdlinepart partitions found on MTD device gpmi-nand
Creating 5 MTD partitions on "gpmi-nand":
0x000000000000-0x000004000000 : "boot"
0x000004000000-0x000005000000 : "kernel"
0x000005000000-0x000006000000 : "dtb"
0x000006000000-0x00000a000000 : "rootfs"
0x00000a000000-0x000010000000 : "test"
...

重新畫一張 nand flash layout

image

1120

配合新的 nand flash layout 來修改 <u-boot-imx>\include\configs\mx6ul_14x14_evk.h

...
#define CONFIG_MFG_NAND_PARTITION "mtdparts=gpmi-nand:" \
    "2m(boot),2m(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       0x00200000
#define CONFIG_ENV_SECT_SIZE    0x00200000
#define CONFIG_ENV_SIZE         CONFIG_ENV_SECT_SIZE

使用 bitbake u-boot-imx -c compile -vf 直接套 \include\configs\mx6ul_14x14_evk.h

再使用 bitbake u-boot-imx -c deploy 得到 image

1225

配合新的 nand flash layout 來修改 mfgtool 的 ucl2.xml

主要是因為 rootfs 要燒錄的位置改了

而且 uboot env 那一塊也要清掉

<UCL>
  <CFG>
    <STATE name="BootStrap" dev="MX6SL" vid="15A2" pid="0063"/>
    <STATE name="BootStrap" dev="MX6D" vid="15A2" pid="0061"/>
    <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/>
    <STATE name="BootStrap" dev="MX6SX" vid="15A2" pid="0071"/>
    <STATE name="BootStrap" dev="MX6UL" vid="15A2" pid="007D"/>
    <STATE name="BootStrap" dev="MX7D" vid="15A2" pid="0076"/>
    <STATE name="Updater"   dev="MSC" vid="066F" pid="37FF"/>
  </CFG>

  <LIST name="NAND Flash" desc="Choose NAND as media">

  <CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/u-boot.imx" ifdev="MX6UL">Loading U-boot</CMD>

  <CMD state="BootStrap" type="load" file="firmware/zImage" address="0x80800000"
    loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6SL MX6SX MX7D MX6UL">Loading Kernel.</CMD>

  <CMD state="BootStrap" type="load" file="firmware/%initramfs%" address="0x83800000"
        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6SL MX6SX MX7D MX6UL">Loading Initramfs.</CMD>

  <CMD state="BootStrap" type="load" file="firmware/zImage-imx6ul-%6uldtb%-%nanddtb%.dtb" address="0x83000000"
    loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6UL">Loading device tree.</CMD>

  <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>

  <!--burn the uboot to NAND: --> 
  <CMD state="Updater" type="push" body="$ mount -t debugfs debugfs /sys/kernel/debug">Mounting debugfs</CMD>
  <CMD state="Updater" type="push" body="$ flash_erase /dev/mtd0 0 0">Erasing Boot partition</CMD>
  <CMD state="Updater" type="push" body="$ flash_erase /dev/mtd1 0 0">Erasing Boot env partition</CMD>
  <CMD state="Updater" type="push" body="send" file="files/u-boot.imx" ifdev="MX6UL">Sending u-boot.bin</CMD>
  <CMD state="Updater" type="push" body="$ kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 $FILE">Flashing Bootloader</CMD>

  <!--burn the kernel to NAND: -->
  <CMD state="Updater" type="push" body="$ flash_erase /dev/mtd2 0 0">Erasing Kernel partition</CMD>
  <CMD state="Updater" type="push" body="send" file="files/zImage">Sending kernel zImage</CMD>
  <CMD state="Updater" type="push" body="$ nandwrite -p /dev/mtd2 -p $FILE">Flashing Kernel</CMD>
  
  <CMD state="Updater" type="push" body="$ flash_erase /dev/mtd3 0 0">Erasing dtb partition</CMD>
  <CMD state="Updater" type="push" body="send" file="files/zImage-imx6ul-14x14-evk.dtb" ifdev="MX6UL">Sending Device Tree file</CMD>
  <CMD state="Updater" type="push" body="$ nandwrite -p /dev/mtd3 -p $FILE">Flashing dtb</CMD>

  <!--burn the rootfs to NAND: -->
  <CMD state="Updater" type="push" body="$ flash_erase /dev/mtd4 0 0">Erasing rootfs partition</CMD>
  <CMD state="Updater" type="push" body="$ ubiformat /dev/mtd4"/>
  <CMD state="Updater" type="push" body="$ ubiattach /dev/ubi_ctrl -m 4">Attaching UBI partition</CMD>
  <CMD state="Updater" type="push" body="$ ubimkvol /dev/ubi0 -Nrootfs -m"/>
  <CMD state="Updater" type="push" body="$ mkdir -p /mnt/mtd4"/>
  <CMD state="Updater" type="push" body="$ mount -t ubifs ubi0:rootfs /mnt/mtd4"/>
  <CMD state="Updater" type="push" body="pipe tar -jxv -C /mnt/mtd4" file="files/core-image-minimal-imx6ulevk.tar.bz2" ifdev="MX6UL MX7D">Sending and writting rootfs</CMD>
  <CMD state="Updater" type="push" body="frf">Finishing rootfs write</CMD>
  <CMD state="Updater" type="push" body="$ umount /mnt/mtd4">Unmounting rootfs partition</CMD>

  <CMD state="Updater" type="push" body="$ echo Update Complete!">Done</CMD>

  </LIST>

</UCL>

mfgtool 燒錄 - fail

...
mtd: opened '/dev/mtd0' - '(null)'
v4_rom_mtd_init()
fill_fcb()
mtd: bootstream too large
mtd_init failed!
UTP: sending Non-success to kernel for command $ kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 $FILE.
utp_poll: exit with status 1280

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

原本是 64m
剛剛試過 2m... MfgTool 燒錄階段就出錯了
3m 確定可行

再畫一張 nand flash layout

image

再配合新的 nand flash layout 來修改 <u-boot-imx>\include\configs\mx6ul_14x14_evk.h

...
#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

使用 bitbake u-boot-imx -c compile -vf 直接套 \include\configs\mx6ul_14x14_evk.h

再使用 bitbake u-boot-imx -c deploy 得到 image

mfgtool 燒錄 - ok

1325

開機... ok

...
11 cmdlinepart partitions found on MTD device gpmi-nand
Creating 11 MTD partitions on "gpmi-nand":
0x000000000000-0x000000300000 : "boot"
0x000000300000-0x000000400000 : "boot_env"
0x000000400000-0x000000e00000 : "kernel_a"
0x000000e00000-0x000001000000 : "dtb_a"
0x000001000000-0x000007000000 : "rootfs_a"
0x000007000000-0x000008000000 : "config_a"
0x000008000000-0x000008400000 : "misc"
0x000008400000-0x000008e00000 : "kernel_b"
0x000008e00000-0x000009000000 : "dtb_b"
0x000009000000-0x00000f000000 : "rootfs_b"
0x00000f000000-0x000010000000 : "config_b"
...
UBI: attached mtd4 (name "rootfs_a", size 96 MiB) to ubi0
...

準備一下 m300 的 /etc/fw_env.config

root@M300:~# cat /etc/fw_env.config
# MTD device name    Device offset     Env. size         Flash sector size
/dev/mtd1            0x00000000        0x00100000        0x00100000
root@M300:~#
  • 把開發環境上的 images folder 掛載到 m300 上的 /tmp/images
    • cd /tmp
    • mkdir images
    • mount -t nfs 192.168.1.200:/home/jeffrey/M300/fsl-release-bsp/build_small/images images
root@M300:/tmp# images/fw_printenv
Warning: Bad CRC, using default environment
bootargs=root=/dev/mtdblock0 console=ttyAM0 console=tty
bootcmd=
bootdelay=2
baudrate=38400

奇怪了...

重開機回 uboot

U-Boot 2015.04-imx_v2015.04_3.14.52_1.1.0_ga+g6cf684a (Dec 16 2016 - 05:20:17)

CPU:   Freescale i.MX6UL rev1.1 at 396 MHz
CPU:   Temperature 46 C
Reset cause: POR
Board: MX6UL 14x14 EVK
I2C:   ready
DRAM:  512 MiB
force_idle_bus: sda=0 scl=0 sda.gp=0x1d scl.gp=0x1c
NAND:  256 MiB
MMC:   FSL_SDHC: 0
*** Warning - bad CRC, using default environment

Display: TFT43AB (480x272)
Video: 480x272x24
In:    serial
Out:   serial
Err:   serial
Net:   FEC1
Error: FEC1 address not set.

Normal Boot
Hit any key to stop autoboot:  0
=> printenv
baudrate=115200
bootargs=console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs 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=nand read ${loadaddr} ${kernel_addr} 0x800000;nand read ${fdt_addr} ${dtb_addr} 0x100000;bootz ${loadaddr} - ${fdt_addr}
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
console=ttymxc0
dtb_addr=0x00E00000
ethact=FEC1
ethprime=FEC
fdt_addr=0x83000000
fdt_high=0xffffffff
initrd_addr=0x83800000
initrd_high=0xffffffff
kernel_addr=0x00400000
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)
panel=TFT43AB

Environment size: 1072/1048572 bytes

先 saveenv 一下

再重開機進 uboot

U-Boot 2015.04-imx_v2015.04_3.14.52_1.1.0_ga+g6cf684a (Dec 16 2016 - 05:20:17)

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
force_idle_bus: sda=0 scl=0 sda.gp=0x1d scl.gp=0x1c
NAND:  256 MiB
MMC:   FSL_SDHC: 0
Display: TFT43AB (480x272)
Video: 480x272x24
In:    serial
Out:   serial
Err:   serial
Net:   FEC1
Error: FEC1 address not set.

Normal Boot
Hit any key to stop autoboot:  0
=> printenv
baudrate=115200
bootargs=console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs 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=nand read ${loadaddr} ${kernel_addr} 0x800000;nand read ${fdt_addr} ${dtb_addr} 0x100000;bootz ${loadaddr} - ${fdt_addr}
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
console=ttymxc0
dtb_addr=0x00E00000
ethact=FEC1
ethprime=FEC
fdt_addr=0x83000000
fdt_high=0xffffffff
initrd_addr=0x83800000
initrd_high=0xffffffff
kernel_addr=0x00400000
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)
panel=TFT43AB

Environment size: 1072/1048572 bytes

發現第一次 uboot 有顯示 *** Warning - bad CRC, using default environment

但第二次不見了

開機進 linux

root@M300:/tmp# cat /etc/fw_env.config
# MTD device name    Device offset     Env. size         Flash sector size
/dev/mtd1            0x00000000        0x00100000        0x00100000
root@M300:/tmp# images/fw_printenv
baudrate=115200
bootargs=console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs 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=nand read ${loadaddr} ${kernel_addr} 0x800000;nand read ${fdt_addr} ${dtb_addr} 0x100000;bootz ${loadaddr} - ${fdt_addr}
bootcmd_mfg=run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
bootdelay=3
console=ttymxc0
dtb_addr=0x00E00000
ethact=FEC1
ethprime=FEC
fdt_addr=0x83000000
fdt_high=0xffffffff
initrd_addr=0x83800000
initrd_high=0xffffffff
kernel_addr=0x00400000
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)
panel=TFT43AB

哈哈 這一次就有了

1410

來燒錄 rootfs 到 rootfs_b

  • Erasing rootfs partition rootfs_b
    • flash_erase /dev/mtd9 0 0
  • ubiformat
    • ubiformat /dev/mtd9
  • Attaching UBI partition
    • ubiattach /dev/ubi_ctrl -m 9
  • create UBI volumes for UBI device number 1
  • ubimkvol /dev/ubi1 -Nrootfs -m
  • mkdir -p /mnt/mtd9
  • mount -t ubifs ubi1:rootfs /mnt/mtd9
  • writting rootfs
    • tar -jxv -C /mnt/mtd9 -f images/core-image-minimal-imx6ulevk.tar.bz2
  • Unmounting rootfs partition
    • umount /mnt/mtd9

直接使用 fw_setenvbootargs 裡的 ubi.mtd 從 4(rootfs_a) 改成 9(rootfs_b)

root@M300:/tmp# ./fw_printenv bootargs
bootargs=console=ttymxc0,115200 ubi.mtd=4 root=ubi0:rootfs 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)
root@M300:/tmp# ./fw_setenv bootargs 'console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs 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)'
root@M300:/tmp# ./fw_printenv bootargs
bootargs=console=ttymxc0,115200 ubi.mtd=9 root=ubi0:rootfs 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)

重開機

...
11 cmdlinepart partitions found on MTD device gpmi-nand
Creating 11 MTD partitions on "gpmi-nand":
0x000000000000-0x000000300000 : "boot"
0x000000300000-0x000000400000 : "boot_env"
0x000000400000-0x000000e00000 : "kernel_a"
0x000000e00000-0x000001000000 : "dtb_a"
0x000001000000-0x000007000000 : "rootfs_a"
0x000007000000-0x000008000000 : "config_a"
0x000008000000-0x000008400000 : "misc"
0x000008400000-0x000008e00000 : "kernel_b"
0x000008e00000-0x000009000000 : "dtb_b"
0x000009000000-0x00000f000000 : "rootfs_b"
0x00000f000000-0x000010000000 : "config_b"
...
UBI: attaching mtd9 to ubi0
...
UBI: scanning is finished
UBI: attached mtd9 (name "rootfs_b", size 96 MiB) to ubi0
...

打完收工

來請假囉

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