entry point of kernel in RAM at 0x0c--linux tree file name

Arun Kumar arunkat at gmail.com
Thu Jun 29 21:52:58 EST 2006


Hi Laurent ,
I have made marginally more progress in my porting effort .Now I can see the
early debug text by enabling the CONFIG_SERIAL_TEXT_DEBUG and pointing the
gen550.c code to my sandpoint 8260 LSP code and UART adresses .

I have a Sandpoint 8260 LSP .However now my code crashes in mapin_ram
roputine .

Here is a dump of serial console :


loaded at:     00800000 0099A1D8
zimage at:     008057B7 0086B0E9
initrd at:     0086C000 0099645B
avail ram:     00400000 00800000

Linux/PPC load: console=ttyS0,9600 console=tty0 root=/dev/ram
Uncompressing Linux...done.
Now booting the kernel

id mach(): init
MMU:mapin
MMU:have_bats
MMU:PPC_STD_MMU

The mapin_ram code in pgtable.c is as follows :

void __init mapin_ram(void)
{
    unsigned long v, s, f;
    phys_addr_t p;

#ifdef HAVE_BATS
    if (!__map_without_bats)
    {    bat_mapin_ram(__bat2, __bat3);
        ppc_md.progress("MMU:have_bats", 0x401);
}

#endif /* HAVE_BATS */

    v = KERNELBASE;
    p = PPC_MEMSTART;
    for (s = 0; s < total_lowmem; s += PAGE_SIZE) {
        /* On the MPC8xx, we want the page shared so we
         * don't get ASID compares on kernel space.
         */
        f = _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_SHARED | _PAGE_HWEXEC;
#ifdef CONFIG_440
        /* Prevent bogus speculative cycles */
        f |= _PAGE_GUARDED;
#endif
#if defined(CONFIG_KGDB) || defined(CONFIG_XMON) ||
defined(CONFIG_BDI_SWITCH)
        /* Allows stub to set breakpoints everywhere */
        f |= _PAGE_WRENABLE;
        ppc_md.progress("MMU:in kgdb", 0x401);
#else    /* !CONFIG_KGDB && !CONFIG_XMON && !CONFIG_BDI_SWITCH */
        if ((char *) v < _stext || (char *) v >= etext)
        {    f |= _PAGE_WRENABLE;
        ppc_md.progress("MMU:else of kgdb", 0x401);
}
#ifdef CONFIG_PPC_STD_MMU
        else
            /* On the powerpc (not all), no user access
               forces R/W kernel access */
            f |= _PAGE_USER;
        ppc_md.progress("MMU:PPC_STD_MMU", 0x401);
#endif /* CONFIG_PPC_STD_MMU */
#endif /* CONFIG_KGDB || CONFIG_XMON */
        map_page(v, p, f);
        v += PAGE_SIZE;
        p += PAGE_SIZE;
    }
    if (ppc_md.progress)
        ppc_md.progress("MMU:mapin_ram done", 0x401);
}

This is crashing somewhere in map_page routine .
I have 64Mb in DRAM and 8 Mb of Flash .I have really no idea why my MMU_init
code is crashing .. Any help would be greatly appreciated .


Thanks,
Arun

On 6/23/06, Laurent Pinchart <laurent.pinchart at tbox.biz> wrote:
>
> Hi Arun,
>
> please keep the list posted when you reply.
>
> > Thanks for the response .I would also like to ask another query hoever
> > naive it might sound .I am using a Linux 2.4.1
>
> That's very old. Can't you upgrade to 2.6 ?
>
> > wherein my entry point
> > code at 0x0c expects at R3 ,R4,R5,R6 some parameters which I strongly
> > suspect to be residual record bi_rec *,start of initrd and end of initrd
> > sections as my kernel is crashing immediately after  MMU_init and I
> > suspect that machine _init that is done prior to  MMU_init expects __res
> > in R3 as a input parameter .Please confirm .
>
> Depending on your platform and boot loader, r3 to r7 are initialized with
> different values. If you're using ppcboot, the kernel expects r3 to be
> initialized with the residual record, right.
>
> > I am using ppcboot2..0.0 as my bootloader .
>
> That' very old too. You should upgrade to U-Boot.
>
> > Also I would like to know how can i enable serial console in these early
> > kernel initialsaiotns process. I am using a CONFIG_SANDPOINT(8260) on a
> > MPC 8245 platform and trying to port the code on MPC8245 platform .the
> > board has a very similar config as a SANDPOINT board .
>
> If I'm not mistaken, you can't enable a serial console that early. Do you
> have
> a hardware debugger (BDI2000) ? If not, you could try LED debugging.
>
> Best regards,
>
> Laurent Pinchart
>



-- 
Arun Kumar Singh
Tech Lead.
Agere India
Bangalore
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20060629/8532a356/attachment.htm 


More information about the Linuxppc-embedded mailing list