Skip to contentSkip to conversation

memory map

DISCUSSION zzh 2 participants 2 messages Apr 25, 2000

lore
Share & tools
lore

zzh

author
#0 lore raw
Quoted 11 lines
Quoted 1 line · Steve Tarr

This IMMR for the MPC8260 is VERY tricky,

I didn't think so. The only thing different is that it isn't stored in a special register, so you have to know the current IMMR to change to a different one. You can read the default setting from the config word or boot rom, and then change it if you wish.

this should be done as early as possible unless want to set or copy those values again from old to new.The value is really unimportant if decide to map it with BAT.
ADS manual say this should be 0x0470-0000 with no obvious reason.
At least it is not mandatary.My pilot board cannot read hwconfig
from flash(it took me much time to find this before learned it from Motorola web site),the default IMMR after power on is 0x0f00-0000. I choose to map it to 0xf000-0000 with BAT.

Quoted 4 lines

You have to get the default word from someplace, and that is either the application choice from the boot rom or by asserting RSTCONF and using a default when there isn't a boot rom.

Quoted 8 lines

I think the implementation is pretty slick, especially when you look at the multiprocessor implementation.

Just because Motorola screwed up one of their reference boards (again), doesn't mean it can't work well for others. The purpose of these reference boards is to demonstrate the ease of using a processor, and I am just amazed they consistently build the most difficult to use and unreliable platform to do that. Fortunately, there are other choices.

Any other board ? I know there is one from EST with no FCC.

Quoted 3 lines

	-- Dan

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

#1 lore raw
Quoted 1 line · zzh

this should be done as early as possible unless want to set or copy those values again from old to new.

I am going to continue to insist there is lots of processor set up that must occur before a Linux kernel is started. The Linux kernel really should assume some standard entry conditions, and gather some information necessary for operation, then be on its way.

When I write boot roms for custom boards, all of the processor initialization is complete and the code builds a board descriptor structure. It passes this to the Linux start up code. The functions in arch/ppc/mbxboot (the embedded start up) should do minimal set up, relocate and uncompress the kernel image (like the MBX example).

You have to write all of the processor initialization code in any case, and I find it reduces the development time if you just create a small boot rom with a debugger. You can then use the Linux kernel software with minimal changes and significantly reduce the turn around time for images that just test the processor initialization.

Quoted 1 line

ADS manual say this should be 0x0470-0000 with no obvious reason.

It's historical and part of the package. Just change the memory controller values to suit you (Linux) environment.

Quoted 1 line

I choose to map it to 0xf000-0000 with BAT.

That's a good choice, then make the memory controller address the BCSR up in that range as well. Cover everything with one BAT.

	-- Dan

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/