machine check in kernel for a mpc870 board

Shawn Jin shawnxjin at
Sat Jul 3 03:06:47 EST 2010

>>        localbus at fa200100 {
>>                compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus",
>>                             "simple-bus";
>>                #address-cells =<2>;
>>                #size-cells =<1>;
>>                reg =<0xfa200100 0x40>;
>>                ranges =<
>>                        0 0 0xfe000000 0x01000000    // I'm not sure about
>> this?
>>                >;
>>        };
> Change 0xfe000000 to wherever u-boot maps your flash, and 0x01000000 to
> whatever the size of the flash localbus mapping is.
> Or more generally update this section to hold whatever is connected to the
> localbus on your board.  The first cell is the chipselect.

The chipselect? Isn't it just the child-bus-addr? BTW, do we have to
define the #address-cells to 2? 1 is not enough?

SDRAM uses CS0/6, each 64MB. BDI2000 configuration is as follows.
; init memory controller
WM32    0xFA200104      0xfe000ff6      ;;OR0: Flash 32MB
WM32    0xFA200100      0xfc000001      ;;BR0: Flash at 0xFC000000,
32bit, R/W, no parity, use GPCM
WM32    0xFA20010C      0xfc000e00      ;;OR1: SDRAM 64MB, all accesses
WM32    0xFA200108      0x00000081      ;;BR1: SDRAM at 0x00000000,
32bit, R/W, no parity, use UPMA
WM32    0xFA200134      0xfc000e00      ;;OR6: SDRAM 64MB, all accesses
WM32    0xFA200130      0x04000081      ;;BR6: SDRAM at 0x04000000, 32bit, R/W,
no parity, use UPMA

When defining memory's reg property, can a single pair <0 0x08000000>
be enough? Or must it be <0 0x04000000 0x04000000 0x04000000>?


More information about the Linuxppc-dev mailing list