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