[U-Boot] mtd: nand: oob data structures taking up a lot of space

Hi all,
I am working on trying to shrink down a bootloader for one of our chips where the bootloader must fit in around 448K of memory and things are fairly tight. I found that the oob data structures for 8, 16, 64 and 128 bytes were taking up a fair amount of space. I had to increase the eccpos size to 640 to match the Linux kernel since the existing size was too small for some of the NAND devices we are working with. This caused each oob data structure to consume around 2.5K in the binary. By initializing the layout data structures at runtime I was able to eliminate most of the space taken since now the linker can place these in BSS.
-Aaron

On Fri, 2013-12-13 at 21:11 -0800, Aaron Williams wrote:
Hi all,
I am working on trying to shrink down a bootloader for one of our chips where the bootloader must fit in around 448K of memory and things are fairly tight. I found that the oob data structures for 8, 16, 64 and 128 bytes were taking up a fair amount of space. I had to increase the eccpos size to 640 to match the Linux kernel since the existing size was too small for some of the NAND devices we are working with.
This increase has already been done in top-of-tree U-Boot.
Note that (again with top-of-tree) you can override with a lower limit to exactly match what your board requires.
This caused each oob data structure to consume around 2.5K in the binary. By initializing the layout data structures at runtime I was able to eliminate most of the space taken since now the linker can place these in BSS.
Yes, there's a lot of bloat in the NAND code -- both code and data -- that we could know at compile time is not going to get used for a particular target. Patches welcome.
-Scott
participants (2)
-
Aaron Williams
-
Scott Wood