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/



Reply via email to