From: Scott Wood <scottwood@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 4/4] PXA: Adapt Voipac PXA270 to OneNAND SPL
Date: Tue, 1 Nov 2011 17:34:03 -0500 [thread overview]
Message-ID: <4EB073DB.1020903@freescale.com> (raw)
In-Reply-To: <201111012312.20339.marek.vasut@gmail.com>
On 11/01/2011 05:12 PM, Marek Vasut wrote:
>> On 10/31/2011 08:23 AM, Marek Vasut wrote:
>>> Signed-off-by: Marek Vasut <marek.vasut@gmail.com>
>>> Cc: Albert ARIBAUD <albert.u.boot@aribaud.net>
>>> ---
> [...]
>
>>
>>> + for (page = 0; page <= total_pages; page++) {
>>> + ret = spl_onenand_read_page(0, page, addr, data.pagesize);
>>> + if (ret)
>>> + total_pages++;
>>> + else
>>> + addr += data.pagesize;
>>> + }
>>> +}
>>
>> You want to skip to the next block if spl_onenand_read_page() fails
>> (which can occur after you've already read some of the block).
>
> I want to skip to next page, not next block.
That's not how we normally do things, and is not what the current
OneNAND IPL does.
Bad block markers apply to the entire block -- unless this is a
difference I'm not aware of between NAND and OneNAND.
>> Is it not possible to use a simple memcpy for spl_copy_self()? If the
>> CPU can run the code, you'd think it could read it.
>
> Not exactly. The OneNAND only exposes first 1kb of the contents (aka 1 half of
> the page 0 in my case). That's why I link all of the relevant code there and the
> rest of the SPL is aligned beyond that. Then I copy the whole SPL to SRAM and
> execute it again. Then I init DRAM, copy U-Boot there and run it. Simple, isn't
> it.
Where do you ensure that the stuff used so far is within the 1K? What
parts are not within the 1K?
I don't see a linker script.
>>> +inline void icache_disable(void) {}
>>> +inline void dcache_disable(void) {}
>>
>> Why are you specifying inline on just about everything, even functions
>> that are not used in this file?
>
> They are, by dram_init();
There's no point marking something inline if it's not used later on in
the same file -- functions aren't inlined across file boundaries.
You've got inline functions at the very end of the file.
For that matter, there's not much point marking anything inline that
isn't a static inline in a header file (where the compiler must not
generate a non-inline version) -- the compiler has heuristics for
inlining things, and excessive inlining tends to make things bigger
rather than smaller.
>> Why are you not specifying static on things that are not needed outside
>> this file?
>
> They are actually needed outside.
All of them, including spl_copy_uboot and spl_copy_self?
>>> diff --git a/board/vpac270/vpac270.c b/board/vpac270/vpac270.c
>>> index 43bbdff..f146009 100644
>>> --- a/board/vpac270/vpac270.c
>>> +++ b/board/vpac270/vpac270.c
>>> @@ -56,7 +56,9 @@ struct serial_device *default_serial_console(void)
>>>
>>> extern void pxa_dram_init(void);
>>> int dram_init(void)
>>> {
>>>
>>> +#ifndef CONFIG_ONENAND
>>>
>>> pxa_dram_init();
>>>
>>> +#endif
>>>
>>> gd->ram_size = PHYS_SDRAM_1_SIZE;
>>> return 0;
>>>
>>> }
>>
>> Should this really be about whether OneNAND support is present, or
>> should it be based on whether you're using the OneNAND SPL?
>
> Basically, on this board this is the same thing.
If you can turn off onenand at all, that suggests there's another boot
source. Is it not possible to access onenand when using that other boot
source?
In any case, best to use the symbol that most closely matches the reason
you're skipping it, which is something SPL-related.
-Scott
next prev parent reply other threads:[~2011-11-01 22:34 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-31 13:23 [U-Boot] [PATCH 0/4] Voipac PXA270 OneNAND SPL Marek Vasut
2011-10-31 13:23 ` [U-Boot] [PATCH 1/4] PXA: Drop Voipac PXA270 OneNAND IPL Marek Vasut
2011-10-31 13:23 ` [U-Boot] [PATCH 2/4] PXA: Rework start.S to be closer to other ARMs Marek Vasut
2011-11-01 22:53 ` [U-Boot] [PATCH 2/4 V2] " Marek Vasut
2011-11-02 9:01 ` [U-Boot] [PATCH 2/4] " Stefan Herbrechtsmeier
2011-11-02 10:25 ` Marek Vasut
2011-11-02 10:53 ` Stefan Herbrechtsmeier
2011-10-31 13:23 ` [U-Boot] [PATCH 3/4] OneNAND: Add simple OneNAND SPL Marek Vasut
2011-10-31 23:15 ` Scott Wood
2011-11-01 22:54 ` [U-Boot] [PATCH 3/4 V2] " Marek Vasut
2011-11-02 22:41 ` Scott Wood
2011-11-03 0:15 ` Marek Vasut
2011-11-03 0:36 ` Kyungmin Park
2011-11-03 0:59 ` Marek Vasut
2011-11-03 16:19 ` Scott Wood
2011-11-03 16:56 ` Marek Vasut
2011-11-03 17:06 ` Scott Wood
2011-11-03 17:25 ` Marek Vasut
2011-11-03 1:55 ` [U-Boot] [PATCH 3/4 V3] " Marek Vasut
2011-11-03 21:59 ` [U-Boot] [PATCH 3/4 V4] " Marek Vasut
2011-10-31 13:23 ` [U-Boot] [PATCH 4/4] PXA: Adapt Voipac PXA270 to " Marek Vasut
2011-10-31 23:03 ` Scott Wood
2011-11-01 22:12 ` Marek Vasut
2011-11-01 22:34 ` Scott Wood [this message]
2011-11-01 22:44 ` Marek Vasut
2011-11-02 22:18 ` Scott Wood
2011-11-01 22:54 ` [U-Boot] [PATCH 4/4 V2] " Marek Vasut
2011-11-02 22:23 ` Scott Wood
2011-11-03 1:56 ` [U-Boot] [PATCH 4/4 V3] " Marek Vasut
2011-11-03 18:09 ` Scott Wood
2011-11-03 21:52 ` Marek Vasut
2011-11-03 22:20 ` Scott Wood
2011-11-04 0:55 ` Marek Vasut
2011-11-04 16:37 ` Scott Wood
2011-11-04 20:07 ` Marek Vasut
2011-11-04 20:13 ` Scott Wood
2011-11-04 20:31 ` Marek Vasut
2011-11-05 22:40 ` Marek Vasut
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EB073DB.1020903@freescale.com \
--to=scottwood@freescale.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox