Kernel hangs due to page fault

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Kernel hangs due to page fault

785 Views
masasi
Contributor II

Hi, I am trying to boot SDK 1.6 kernel in my P1012 board. I have Linux source files provided by Yocto and I have set some variables on the kernel configuration file but the kernel hangs without showing any console output.

I have been using BDI3000 to debug and found out that the problem is that the kernel access a bad area. Kernel stops at arch/PowerPC/kernel/head_fsl_booke.S:


 

/* Data Storage Interrupt */ 

START_EXCEPTION(DataStorage) 

NORMAL_EXCEPTION_PROLOG(DATA_STORAGE) 

mfspr    r5,SPRN_ESR                     /* Grab the ESR, save it, pass arg3 */ 

stw        r5,_ESR(r11) 

mfspr    r4,SPRN_DEAR                 /* Grab the DEAR, save it, pass arg2 */ 

andis.    r10,r5,(ESR_ILK|ESR_DLK)@h 

bne        1f 

EXC_XFER_LITE(0x0300, handle_page_fault)  <--Kernel stops here


I have used the kernel image prebuilt in the SDK and it boots correctly so I guess my problem has nothing to do with my device tree  or my uboot environment settings passed to the kernel. Has anybody faced a similar problem trying to boot the kernel?


Thanks in advance,


Maria

 

0 Kudos
2 Replies

586 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello Maria Saiz,


When first time accessing pages mapped addresses, the program will enter into data storage interrupt or instruction storage interrupt, and the interrupt handler creates a corresponding PTE entry, handle_page_fault will be invoked in arch/powerpc/kernel/head_fsl_booke.S.

handle_page_fault->do_page_fault->handle_mm_fault->handle_pte_fault


Would you please provide more information about what modification you have done with Kernel configuration file?




Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

586 Views
scottwood
NXP Employee
NXP Employee

If they haven't gotten any console output yet it's too early to be taking that page fault path.  If they're seeing this when they stop execution in the BDI, they're probably stuck in a recursive fault loop.

In addition to describing what is different about this kernel versus the one that works (these are both on the custom board, right?), please put a branch-to-self at the entry to DataStorage so that the original SRR0/SRR1 can be read using the BDI.  Then, look up the address in SRR0.

0 Kudos