kernel startup

Wolfgang Denk wd at denx.de
Sat Feb 11 12:20:27 EST 2006


In message <4A062D477D842B4C8FC48EA5AF2D41F201BA2089 at us-bv-m23.global.tektronix.net> 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 at denx.de
You don't need a weatherman to know which way the wind blows.
                                                          - Bob Dylan



More information about the Linuxppc-embedded mailing list