Skip to contentSkip to conversation

Kernel hanging after lmb_end_of_DRAM() function.

U-Boot-Users gforgcc 2 participants 4 messages Apr 23, 2008 – Apr 28, 2008

lore
Share & tools
lore

gforgcc

author
#0 lore raw

Hi geeks,
i am trying to bring up the latest kernel on EP8248 target,
i am using U-boot-1.3.2 and linux-2.6.25-rc8, i started debugging using BDI2000 which helped me to know atleast what is going wrong, i have added some printk's in the kernel source but still i am not able to find where and what exactly is going wrong, The first statement it is printing in the log buffer is
""Using Embedded Planet EP8248E machine description"" and thats it the next message is

Unable to handle kernel paging request for data at address 0xbfff0000

Faulting instruction address:0xc0012070 (This nearest address to this address in System.map file is cacheable_memzero)
and tracing like this i came to know that in the file arch/powerpc/mm/ppc_mmu_32.c , here in the function __init MMU_init_hw() and in the line n_hpteg = total_memory / (PAGE_SIZE * 8); probably it is getting problem because when i tried to print the variable total_memory it is printing zero !!! :( :( so probably i am thinking it is not able to find some memory for Hash table :(
Please share your knowledge and skills and help me to resolve this issue.. thanks :)

Signature · 2 lines
View this message in context: http://www.nabble.com/Kernel-hanging-after-lmb_end_of_DRAM%28%29-function.-tp16830552p16830552.html
Sent from the Uboot - Users mailing list archive at Nabble.com.
#1 lore raw
Quoted 9 lines · gforgcc

i am trying to bring up the latest kernel on EP8248 target,
i am using U-boot-1.3.2 and linux-2.6.25-rc8, i started debugging using BDI2000 which helped me to know atleast what is going wrong, i have added some printk's in the kernel source but still i am not able to find where and what exactly is going wrong, The first statement it is printing in the log buffer is
""Using Embedded Planet EP8248E machine description"" and thats it the next message is

Unable to handle kernel paging request for data at address 0xbfff0000
Quoted 8 lines

Faulting instruction address:0xc0012070 (This nearest address to this address in System.map file is cacheable_memzero)
and tracing like this i came to know that in the file arch/powerpc/mm/ppc_mmu_32.c , here in the function __init MMU_init_hw() and in the line n_hpteg = total_memory / (PAGE_SIZE * 8); probably it is getting problem because when i tried to print the variable total_memory it is printing zero !!! :( :( so probably i am thinking it is not able to find some memory for Hash table :(

Are you using a device-tree-aware u-boot with uImage, or are you using cuImage.pq2? Do not use dtbImage.ep8248e; that's for PlanetCore.

ep8248e in mainline u-boot doesn't appear to be device-tree aware.

If you're using cuImage.pq2, do you get any output from the bootwrapper? Make sure you add /chosen/linux,stdout-path. There may be other device tree changes you need to make it work with u-boot as well.

-Scott

#2 lore raw

Thanks for the reply scott, :)

i forgot to mention , yes i am using device tree aware u-boot but the problem is when i tried to build the u-boot source ( first i did ""make ep8248_config"" and then ""make"") it was giving undefined reference related to ft_board_setup() function so i altered the U-boot-1.3.2 source code... i added the below code to the following file board/ep8248/ep8248.c

#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) void ft_board_setup(void *blob, bd_t *bd)

{
        ft_cpu_setup(blob, bd);
}

#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */

and also added the below lines to the file include/configs/ep8248.h by looking into the corresponding .dts file in the kernel source....

/* pass open firmware flat tree */
#define CONFIG_OF_LIBFDT 1
#define CONFIG_OF_BOARD_SETUP 1

#define OF_CPU "PowerPC,8248 at 0"
#define OF_SOC "soc at f0000000"
#define OF_TBCLK (bd->bi_busfreq / 4)
#define OF_STDOUT_PATH "/soc at f0000000/serial at 11a80"

Now afte doing the above 2 alterations i was able to build the u-boot-1.3.2 source for ep8248e....

then i created the uImage with the latest kernel source linux-2.6.25-rc8 and put that uImage to the target...also i created the ep8248e.dtb from the dtc (DEVICE TREE COMPILER) and put that to the target and passed this as an argument to the bootm
I also cross checked in the U-boot environment for the fdt command ... it was present
this is what i have done till now
Finally when it hanged I started debugging using BDI2000...so it was stuck as i said in my previous post
and how to use cuImage.pq2 ? also i dint get what is dtbImage.ep8248e ? is that same to ep8248e.dtb ??
Can you Please tell me how can i proceed further to get the Kernel up on the ep8248e target ??

Regards,
Naren

Scott Wood <[email protected]>
04/23/2008 09:57 PM

To
gforgcc <[email protected]>
cc
u-boot-users at lists.sourceforge.net
Subject
Re: [U-Boot-Users] Kernel hanging after lmb_end_of_DRAM() function.

Quoted 3 lines · gforgcc

i am trying to bring up the latest kernel on EP8248 target, i am using U-boot-1.3.2 and linux-2.6.25-rc8, i started debugging using BDI2000 which helped me to know atleast what is going wrong, i have

added

Quoted 1 line

some printk's in the kernel source but still i am not able to find where

and

Quoted 1 line

what exactly is going wrong, The first statement it is printing in the

log

Quoted 2 lines

buffer is
""Using Embedded Planet EP8248E machine description"" and thats it the

next

Quoted 6 lines

message is

Unable to handle kernel paging request for data at address 0xbfff0000

Faulting instruction address:0xc0012070 (This nearest address to this address in System.map file is cacheable_memzero)
and tracing like this i came to know that in the file arch/powerpc/mm/ppc_mmu_32.c , here in the function __init MMU_init_hw()

and

Quoted 1 line

in the line n_hpteg = total_memory / (PAGE_SIZE * 8); probably it is

getting

Quoted 2 lines

problem because when i tried to print the variable total_memory it is printing zero !!! :( :( so probably i am thinking it is not able to

find

Quoted 1 line

some memory for Hash table :(

Are you using a device-tree-aware u-boot with uImage, or are you using cuImage.pq2? Do not use dtbImage.ep8248e; that's for PlanetCore.

ep8248e in mainline u-boot doesn't appear to be device-tree aware.

If you're using cuImage.pq2, do you get any output from the bootwrapper? Make sure you add /chosen/linux,stdout-path. There may be other device tree changes you need to make it work with u-boot as well.

-Scott

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20080424/e0e518f0/attachment.htm

#3 lore raw
Quoted 8 lines · Narendra KA

Thanks for the reply scott, :)

i forgot to mention , yes i am using device tree aware u-boot but the problem is when i tried to build the u-boot source ( first i did ""make ep8248_config"" and then ""make"") it was giving undefined reference related to ft_board_setup() function so i altered the U-boot-1.3.2 source code... i added the below code to the following file board/ep8248/ep8248.c

Quoted 6 lines

#if defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) void ft_board_setup(void *blob, bd_t *bd)

{
        ft_cpu_setup(blob, bd);
}

#endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */

The 8260 ft_cpu_setup() seems a bit deficient -- most pertinently, it's not calling fdt_fixup_memory(), but it's also missing brg frequency setup and maybe some other things. Look at other_cpu_setup() functions (e.g. 8xx, 83xx, 85xx) for an example of what to do.

Quoted 4 lines

#define OF_CPU "PowerPC,8248 at 0"
#define OF_SOC "soc at f0000000"
#define OF_TBCLK (bd->bi_busfreq / 4)
#define OF_STDOUT_PATH "/soc at f0000000/serial at 11a80"

These hardcoded things shouldn't be needed anymore.

Quoted 1 line

and how to use cuImage.pq2 ?

You'd need to change the makefile to tell it to build that target for this board. I recommend fixing u-boot, though, if you're already inclined to go down that path.

Quoted 2 lines

also i dint get what is dtbImage.ep8248e ? is
that same to ep8248e.dtb ??

No, that's an image for the PlanetCore bootloader. If you don't have it, you probably built with 'make uImage' rather than 'make zImage'.

-Scott