[U-Boot] mtd partitions go away

Heiko Schocher hs at denx.de
Thu Nov 15 10:14:34 UTC 2018


Hello all,

just see with current HEAD of u-boot on an imx6ull based board with SPI NOR
and NAND following behaviour:

=> mtdparts

device nand0 <gpmi-nand>, # parts = 1
  #: name                size            offset          mask_flags
  0: ubi                 0x08000000      0x00000000      0

device nor0 <spi1.0>, # parts = 5
  #: name                size            offset          mask_flags
  0: spl                 0x00010000      0x00000000      0
  1: u-boot              0x000c0000      0x00010000      0
  2: env                 0x00010000      0x000d0000      0
  3: env-red             0x00010000      0x000e0000      0
  4: rescue              0x00710000      0x000f0000      0

active partition: nand0,0 - (ubi) 0x08000000 @ 0x00000000

defaults:
mtdids  : nand0=gpmi-nand,nor0=spi1.0
mtdparts: mtdparts=gpmi-nand:-(ubi);spi1.0:64k(spl),768k(u-boot),64k(env),64k(env-red),-(rescue)
=>

=> mtd list
List of MTD devices:
* nand0
   - type: NAND flash
   - block size: 0x20000 bytes
   - min I/O: 0x800 bytes
   - OOB size: 64 bytes
   - OOB available: 0 bytes
   - ECC strength: 8 bits
   - ECC step size: 512 bytes
   - bitflip threshold: 6 bits
   - 0x000000000000-0x000008000000 : "nand0"
           - 0x000000000000-0x000008000000 : "ubi"
* nor0
   - type: NOR flash
   - block size: 0x10000 bytes
   - min I/O: 0x1 bytes
   - 0x000000000000-0x000000800000 : "nor0"
           - 0x000000000000-0x000000010000 : "spl"
           - 0x000000010000-0x0000000d0000 : "u-boot"
           - 0x0000000d0000-0x0000000e0000 : "env"
           - 0x0000000e0000-0x0000000f0000 : "env-red"
           - 0x0000000f0000-0x000000800000 : "rescue"

until here all is fine, for example an "ubi part ubi" works as
expected ... also doing this command n times, no problems.

Now:

=> sf probe
SF: Detected s25f064l with page size 256 Bytes, erase size 64 KiB, total 8 MiB
=> mtd list
List of MTD devices:
* nand0
   - type: NAND flash
   - block size: 0x20000 bytes
   - min I/O: 0x800 bytes
   - OOB size: 64 bytes
   - OOB available: 0 bytes
   - ECC strength: 8 bits
   - ECC step size: 512 bytes
   - bitflip threshold: 6 bits
   - 0x000000000000-0x000008000000 : "nand0"
           - 0x000000000000-0x000008000000 : "ubi"
* nor0
   - type: NOR flash
   - block size: 0x10000 bytes
   - min I/O: 0x1 bytes
   - 0x000000000000-0x000000800000 : "nor0"
=>

All MTD devices on nor0 are gone ... also the previous working
"ubi part ubi" fails ...

Adding debug code:

mtd_for_each_device(other)
	printf("%s ===== %s\n", __func__, other->name);

shows only:

get_mtd_device_nm ===== nand0
get_mtd_device_nm ===== nor0

?

Anyone sees this behaviour too?

Any hints?

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de


More information about the U-Boot mailing list