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/
