[U-Boot] [PATCH V7 4/7] spl: add NAND Library to new SPL
Simon Schwarz
simonschwarzcor at googlemail.com
Tue Aug 2 10:15:20 CEST 2011
On 08/01/2011 07:58 PM, Scott Wood wrote:
> On Fri, 29 Jul 2011 18:53:38 +0200
> Simon Schwarz<simonschwarzcor at googlemail.com> wrote:
>
>> diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
>> index 8b598f6..fcd8b74 100644
>> --- a/drivers/mtd/nand/Makefile
>> +++ b/drivers/mtd/nand/Makefile
>> @@ -26,12 +26,18 @@ include $(TOPDIR)/config.mk
>> LIB := $(obj)libnand.o
>>
>> ifdef CONFIG_CMD_NAND
>> +ifdef CONFIG_SPL_BUILD
>> +ifdef CONFIG_OMAP34XX
>> +COBJS-y += nand_spl_simple.o
>> +endif
>> +else
>
> Please define a symbol for nand_spl_simple, and have the platform config
> file select it.
done.
>
>> +int nand_spl_load_image(loff_t offs, unsigned int size, void *dst)
>> +{
>> + unsigned int block, lastblock;
>> + unsigned int page;
>> +
>> + /*
>> + * offs has to be aligned to a page address!
>> + */
>> + block = offs / CONFIG_SYS_NAND_BLOCK_SIZE;
>> + lastblock = (offs + size - 1) / CONFIG_SYS_NAND_BLOCK_SIZE;
>> + page = (offs % CONFIG_SYS_NAND_BLOCK_SIZE) / CONFIG_SYS_NAND_PAGE_SIZE;
>
> Hmm, maybe it's better to leave offs as 32-bit, if we're going to be
> dividing. The existing SPL has it as "unsigned int", and it's unlikely
> that the SPL will be loading from offsets above 4GiB. Sorry about the back
> and forth...
hm ok.
>
>> +/* SPL interface to read a page */
>> +void nand_spl_read_page(loff_t offs, void *dst)
>> +{
>> + int block, page;
>> + /* calc the block */
>> + block = offs / CONFIG_SYS_NAND_BLOCK_SIZE;
>> + /* calc the page */
>> + page = (offs % CONFIG_SYS_NAND_BLOCK_SIZE) / CONFIG_SYS_NAND_PAGE_SIZE;
>> + /* read */
>> + nand_read_page(block, page, dst);
>> +}
>
> How does this differ from nand_spl_load_image() with size ==
> CONFIG_SYS_NAND_PAGE_SIZE, other than the lack of bad block skipping?
Damn bad block skipping. right. Will change.
> -Scott
>
Regards & thanks for review!
More information about the U-Boot
mailing list