[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