Ucode/BD conflict on PowerPC 860

Gray, Steve - UK Steve.Gray at peek-traffic.co.uk
Thu Oct 23 18:59:58 EST 2008

Hi all

I am using U-Boot 1.3.4 and an ELDK linux Kernel snapshot from the Denx
Git dated 14th October 2008-10-23

My custom architecture is based around a Power PC 860 processor.

I have written a Flattened Device Tree for the architecture.


I am having some trouble with the allocation of the Buffer Descriptors
when microcode is loaded.

My IMMR address is 0xfa200000 and the DPRAM is located at 0xfa202000.


The buffer descriptors are trying to be located at 0xfa202040, which is
all 0xFFs, as indicated by the cp_rccr = 0x3

I am debugging this with a BDI3000


My SMC console works fine IF I set rccr back to 0x0 during console_init
and the buffers are then allocated at 0xfa202040.


U-boot.1.3.4 is configured to use install micro code,


Rightly or wrongly I have based my DTS file on the mpc866ads.dts file.

The relevant section of the DTS to setup the DPRAM space is,


                                    muram {

                                                #address-cells = <1>;

                                                #size-cells = <1>;

                                                ranges = <0x0 0x2000


                                                data at 0 {

                                                            compatible =

                                                            reg = <0x0




                                    console: serial at a90 {

                                                device_type = "serial";

                                                compatible =


                                                reg = <0xa90 0x10 0x3f80

                                                interrupts = <3>;

                                                interrupt-parent =

                                                fsl,cpm-brg = <2>;

                                                fsl,cpm-command =

                                                current-speed = <9600>;


            chosen {

                        linux,stdout-path = &console;



I have tried a few things, including setting the range of muram to
ranges = <0x0 0x3000 0x1000>; 

Am I correct to assume this will push the muram above the microcode??


I think it is an obvious fix but at the moment I can't seem to locate
the problem.

Can someone please explain to me where I am going wrong? 

or how I can correctly locate the Buffer descriptors so they do not
conflict with the locked address of the micro code??



Here is the output that I am getting at the moment


U-Boot 1.3.4 (Oct 22 2008 - 15:53:20)

CPU:   XPC86xxxZPnnD4 at 48 MHz: 4 kB I-Cache 4 kB D-Cache FEC present

I2C:   ready

DRAM:  16 MB


Using default environment


In:    serial

Out:   serial

Err:   serial


Autobooting in 0 second, type "peek" to stop

## Booting kernel from Legacy Image at fe042000 ...

   Image Name:   Linux-2.6.27-dev20081014

   Image Type:   PowerPC Linux Kernel Image (gzip compressed)

   Data Size:    1373155 Bytes =  1.3 MB

   Load Address: 00000000

   Entry Point:  00000000

   Verifying Checksum ... OK

   Uncompressing Kernel Image ... OK

## Flattened Device Tree blob at fe040000

   Booting using the fdt blob at 0xfe040000

   Loading Device Tree to 007fc000, end 007ffc6b ... OK



Thanks in Advance


Steve Gray

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20081023/1ab6c46b/attachment-0001.htm>

More information about the Linuxppc-embedded mailing list