[U-Boot] ubi part failing on NAND

hedwin hedwin.koning at gmail.com
Sat Dec 19 13:56:50 CET 2009


A bit on the reason why this amount of memory is needed.

I had the same problem jeff mentions. After tracing where dlmalloc
allocates its memory chunks I found out that it started allocating
memory in code space. Overwritting code space eventually resultated in
uboot crashing. Looking into dlmalloc I did not find any code that
checks whether it allocates memory outside its boundary.

Since I use a 2009.01 release I need to verify this against the latest release.

There is also another problem with ubi. If you repeat the following
statements more than once uboot also crashed.

nand erase /aPartition
ubi part nand /aPartition
ubi create aVolume

I did not check yet if this is also an allocation problem or something
totally different.

Hedwin


On Fri, Dec 18, 2009 at 4:07 PM, Jeff Angielski <jeff at theptrgroup.com> wrote:
> Stefan Roese wrote:
>>
>> On Friday 18 December 2009 13:35:26 hedwin wrote:
>>>
>>> Jeff, what is the size of your allocateble memory. Had to increase it to
>>>  4MB to get it working.
>>
>> I've got 1MByte for my test on Kilauea. This should be enough. There
>> is already a compile-time check in the UBI code:
>>
>>
>> #if (CONFIG_SYS_MALLOC_LEN < (512 << 10))
>> #error Malloc area too small for UBI, increase CONFIG_SYS_MALLOC_LEN to >=
>> 512k
>> #endif
>>
>> Please let me know if this really is not enough. But for me, 1MB is
>> working.
>
> As per Hedwin's suggestion I increased my CONFIG_SYS_MALLOC_LEN to 4MB and
> the error disappeared.  Thanks Hedwin!  And now the UBI output matches my
> part (e.g. PEB size).
>
>
> => nand erase 0x0 0x40000000
>
> => ubi part fs1
> Creating 1 MTD partitions on "nand0":
> 0x000000000000-0x000020000000 : "mtd=0"
> UBI: attaching mtd2 to ubi0
> UBI: physical eraseblock size:   262144 bytes (256 KiB)
> UBI: logical eraseblock size:    253952 bytes
> UBI: smallest flash I/O unit:    4096
> UBI: VID header offset:          4096 (aligned 4096)
> UBI: data offset:                8192
> UBI: empty MTD device detected
> UBI: create volume table (copy #1)
> UBI: create volume table (copy #2)
> UBI: attached mtd2 to ubi0
> UBI: MTD device name:            "mtd=0"
> UBI: MTD device size:            512 MiB
> UBI: number of good PEBs:        2045
> UBI: number of bad PEBs:         3
> UBI: max. allowed volumes:       128
> UBI: wear-leveling threshold:    4096
> UBI: number of internal volumes: 1
> UBI: number of user volumes:     0
> UBI: available PEBs:             2021
> UBI: total number of reserved PEBs: 24
> UBI: number of PEBs reserved for bad PEB handling: 20
> UBI: max/mean erase counter: 0/0
> =>
>
> --
> Jeff Angielski
> The PTR Group
> www.theptrgroup.com
>


More information about the U-Boot mailing list