Thread (1 message) 1 message, 1 author, 2006-02-11
  • (off-list ancestor, not in this archive)
  • Re: kernel startup · Wolfgang Denk <hidden> · 2006-02-11

Re: kernel startup

From: Wolfgang Denk <hidden>
Date: 2006-02-11 01:20:29

In message [ref] you wrote:
Not much choice with IMMR as it can be 0x0 or 0x00f00000 or 0xFF000000
Or 0xFFF00000.  
Initially. But you can change it.
Flash is from 0xfe000000 thru 0xffffffff.  Now on POR,
Processor goes to offset 0x100 on CS0.  So, if IMMR is overlapping with
flash, it might not boot.
Just fix your memory map.
On 870, it seems that reset value for BR0/OR0 is undefined.
Please RTFM. The steps how the processor  comes  up  from  reset  are
documented  in  great  detail.  Especially  the  handling of the boot
device chip select.
Data fetch goes on CS0 and then in cpu_init_f BR0 & OR0
Are remapped.  So, I could put flash at a non-standard address like
0xDE000000 and move IMMR to 0xFF000000.
There is no such thing as a "non-standard" address, as  there  is  no
"standard" address either.
The problem this creates is that I can set IIP to 0 or 1. So, exception
Vector prefix can be 0 or 0xfff.  Since no flash at 0xfff00000 base 
Address I cannot have any exceptions in my code till the u-boot code
has relocated to RAM.  Which should be acceptable as what can I do
if there is exception so early in the system. 
In most cases it is useful to configure a system for low-boot, i.  e.
let  it  start  at  0x0100.  Then  just set up your memory map as you
like...

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
You don't need a weatherman to know which way the wind blows.
                                                          - Bob Dylan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help