AW: MPC755 Porting Problem

Babic Stefano Stefano.Babic at icn.siemens.de
Wed Dec 19 03:36:13 EST 2001


Hi,

we have already ported linux on our board based on MPC 755. The kernel is set at 0xc0000000, as you can see on arch/ppc/Makefile (KERNELLOAD=0xc0000000). We did not want to change it, because it is quite a standard value for external tools.
We are using the boot loader in mbx directory (or mbxboot, depending on version you are using), so we are using really the head_8260.S file instead of head.S.
>From the sources of the loader it seems necessary to load the kernel in high memory range (physical address), in any case greater as 0x400000 (which address is not important). Then the loader remapped it to 0xc0000000.
For us it is not a problem to load the kernel at a higher address and in this way the loader can correctly start the kernel.

I hope it could be help.

stefano babic

-----Ursprungliche Nachricht-----
Von: Sangmoon Kim [mailto:dogoil at etinsys.com]
Gesendet: Samstag, 15. Dezember 2001 07:24
An: linuxppc-embedded at lists.linuxppc.org
Betreff: MPC755 Porting Problem



Hi?
I'm porting linux for a MPC755 board which I designed,
and having some trouble with arch/ppc/kernel/head.S
I load the kernel at phiscal address 0x00000000
and head.S seams to relocate it to 0xc0000000
The code is like this

        mfmsr   r0 /* Inst and data addr translations are disabled */
        ori     r0,r0,MSR_DR|MSR_IR /* enable Inst and data addr translation */
        mtspr   SRR1,r0
        lis     r0,start_here at h
        ori     r0,r0,start_here at l
        mtspr   SRR0,r0
        SYNC
        RFI /* jump to SRR0 */

start_here:
        /* Call setup_cpu for CPU 0 */
        li      r3,0            /* data offset */
        li      r24,0           /* cpu# */
        bl      call_setup_cpu

It is running at base address 0x00000000.
start_here is at address 0xc000369c.
And the IBAT0, and DBAT0 is C0001FFE-00000002.
So after RFI it should go to start_here.

But If I insert some code like 'bl serial_hello',
which prints hello? to serial console after start_here.
It never prints a message. It works before the RFI.

Where can I start to debug it?

serial_hello is like this.

void
serial_hello()
{
        serial_putc(SCC_A_ADDRESS,'h');
        serial_putc(SCC_A_ADDRESS,'e');
        serial_putc(SCC_A_ADDRESS,'l');
        serial_putc(SCC_A_ADDRESS,'l');
        serial_putc(SCC_A_ADDRESS,'o');
        serial_putc(SCC_A_ADDRESS,'?');
        serial_putc(SCC_A_ADDRESS,'\n');
        serial_putc(SCC_A_ADDRESS,'\r');
}
Thanks in advance.
- Sangmoon Kim -


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





More information about the Linuxppc-embedded mailing list