[U-Boot] MTD combine/merge flash bank like linux : MPC83xx / u-boot v2016.03

asebt69 asebt69 at gmail.com
Wed Oct 31 11:16:52 UTC 2018


Dear,

I've got a flash split into 2 bank of 32 Mb. From linux view there is only
one flash with a size of 64 Mb (define in the DTS).
My goal, do the same thing with u-boot to read a ubi file with a size > 32
Mb which contains my uImage, but mtdparts still to see 2 flash device and i
can"t open the ubi file.

Linux MTD partitions are :
 4 cmdlinepart partitions found on MTD device fc000000.flash
Creating 4 MTD partitions on "fc000000.flash":
0x000000000000-0x000000100000 : "Primary"
0x000000100000-0x000000180000 : " uboot"
0x000000180000-0x0000001a0000 : "uboot_var"
*0x0000001a0000-0x000004000000* : "rfs"

u-boot config :
MTD :
#define MTDIDS_DEFAULT      "nor0=fc000000.flash,nor1=fe000000.flash"
#define MTDPARTS_DEFAULT
"mtdparts=fc000000.flash:0x100000(Primary)ro,0x080000(uboot
)ro,0x020000( uboot_var),-(RFS)"

CFI config :
#define CONFIG_SYS_FLASH_CFI
#define CONFIG_FLASH_CFI_DRIVER
#define CONFIG_SYS_FLASH_BASE 0xFC000000
#define CONFIG_SYS_FLASH_SIZE 64
#define CONFIG_SYS_FLASH_PROTECTION 1
#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE
#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE,
CONFIG_SYS_FLASH_BASE+ ((CONFIG_SYS_FLASH_SIZE*1024*1024)/2)}
#define CONFIG_SYS_LBLAWBAR0_PRELIM CONFIG_SYS_FLASH_BASE
#define CONFIG_SYS_LBLAWAR0_PRELIM (LBLAWAR_EN | LBLAWAR_64MB)

#define CONFIG_SYS_MAX_FLASH_BANKS 2 /* number of banks */
#define CONFIG_SYS_MAX_FLASH_SECT 512 /* sectors per device */

u-boot log :
 mtdparts

device nor0 <fc000000.flash>, # parts = 4
 #: name                size            offset          mask_flags
 0: Primary              0x00100000      0x00000000      1
 1: uboot          0x00080000      0x00100000      1
 2: uboot_var      0x00020000      0x00180000      0
 3: rfs                 *0x01e60000*      0x001a0000      0   => Expected
to have 0x3CC0000

active partition: nor0,0 - ( Primary  ) 0x00100000 @ 0x00000000

defaults:
mtdids  : nor0=fc000000.flash,nor1=fe000000.flash
mtdparts: mtdparts=fc000000.flash:0x100000( Primary  )ro,0x080000( uboot
)ro,0x020000( uboot_var ),-(rfs)

Only the CONFIG_SYS_LBLAWAR0_PRELIM is used to realized this feature ?

Sébastien.


More information about the U-Boot mailing list