SIGBUS error in the kernel's function; pa_quantum_to_paddr

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.