SIGBUS error in the kernel's function; pa_quantum_to_paddr

bridged with openqnx-developer mailing list
Pusik Park

SIGBUS error in the kernel's function; pa_quantum_to_paddr

Post by Pusik Park » Tue Feb 19, 2008 7:59 am

Dear Everyone.

I'm trying to port QNX into my own SoC platform.

My own SoC platform is based ARM926EJ-S 32-bit RISC Core which operates
141MHz and has 32MB SDRAM(base: 0x10000000) and 1MB NOR Flash.

The tool is QNX Momentics 6.3.2 non-commercial version.

I was modifying IPL, startup, and serial device driver of the legacy Samsung
S3C2410 BSP which had developed by RT Solution ago.

I met the shutdown message with SIGBUS.


Shutdown[0,0] S/C/F=10/1/5 C/D=fe006950/% state(c0)= now lock

QNX Version 6.3.2 Release 2006/03/16-14:15:43EST

[0]PID-TID=1-1? P/T FL=00019001/09000000

armle context[fc43ff50]:

0000: fc404000 00000011 fe057060 fc404400 fc441140 fc441140 e3c0301f

0020: 00000000 00000000 00000011 fc43ffa4 fc408000 fc43ff94 fe02dfe0

0040: 600000d3


d4 70 96 e5 40 70 c7 e3 d4 70 86 e5 01 20 a0 e3 12 24 a0 e1 08 20 8c e5 00


0000: fc43b6a8 fc43ffd8 fc43ffa8 fe02dc68 fe02df64 00000000 fe02b384

0020: fe05716c 00000001 fc439630 00000000 00000000 00000000 fc43ffec

0040: fe02bbcc fe02daf0 fc439630 fc43fffc fc43fff0 fe03e468 fe02bb7c

0060: fc440000 fe0293e0 fe03e450 f7ffffff bdfffffe ffffdfff ffbfefdf


C/D => Location of the kernel's code and data

state => The state of the kernel

now -- in the kernel

lock -- nonpreemptible

exit -- leaving kernel

specret -- special return processing

any number -- the interrupt nesting level


On CPU x(think SMP), process y was running thread z when the
crash occurred

P/T:00019001 => 00010000 + => _NTO_PF_NOCLDSTOP

00000001 + => _NTO_PF_SLEADER

00008000 + => _NTO_PF_RING0

00001000 => _NTO_PF_CHECK_INTR

FL:09000000=> 08000000 + => _NTO_TF_NOMULTISIG

01000000 => _NTO_TF_ALIGN_FAULT

PF => The process flags for the ASPACE PID

context => The register set

instruction => fc404624 The instruction on which the error

stack The contents of the stack


Thus, I debugged my BSP by TRACE32 ARM In-Circuit Debugger.

Attached 2-1.PNG image file is my debugging information.

In pa_quantum_to_paddr, during "ldr r3,[r3,+r1, lsl #0x2]" execution at the
address 0xFE01CB08,

when r1 was 0x2, operation was good but when r1 was 0xFFDF, exception

Because r3 had abnormal address at that time, memory access violation

Pa_quantum_to_paddr is the function of the kernel and thus I have problems
to debug it.

What source code out of the startup source code or serial device driver
source code causes this problem ?

After meeting shutdown message, I saw where PC is located.

You can look at this at the attached file "trace32.0219.PNG".

In addition, You can see QNX's procnto is loaded and running.

Best regards.



Return to “openqnx.developer”