Hello,
the QNX E-Mails/Phone support couldn’t help me until now, so I try to post my problem here.
I have programmed a bootloader for the MPC8548 which is basically the same like the IPL from the MPC8360 BSP.
Everthing works well (UART, DDR-RAM…) but when I try to boot QNX I get something like that:
Scanning for image @ 0xFF800000
Found image @ 0xFF800100
Jumping to startup @ 0x001029C0
System page at phys:0000c000 user:0000c000 kern:0000c000
Starting next program at v00135f1c
Welcome to QNX Neutrino 6.3 on the PowerPC 8548CDS board
Process 2 (devc-ser8250-mpc8540) terminated SIGSEGV code=1 fltno=11 ip=fe3182f8 mapaddr=000182f8. ref=00000000
Unable to access “/dev/ser1” (2)
Unable to access “/dev/ser1” (2)
Process 4099 (pipe) terminated SIGSEGV code=1 fltno=11 ip=fe33c414 mapaddr=0003c414. ref=fe3020cc
But if I boot QNX with uboot everthing works. So something is uboot doing different like our bootloader but QNX can’t
tell me what exactly. This is what our Bootloader does:
-Init DDR2-SDRAM
-Enable L1 I/D-Cache
-Init MMU
-TLB1,0 for flash @0xFF000000(16MB)
-TLB1,1 for CCSR@0xE0000000 (1MB)
-TLB1,2 for DDR2 RAM@0x00000000 (256 MB)
-Init Interrupt Table like UBoot (i.e. offset 0, then 0x100, 0x200…)
-Stack is @ 0x4000 (I tested some other addresses too)
-IPIC is enabled and MSR_EE
-Decrementer & Timer enabled
Most of this is also done by the Startup (except DDR RAM initialization).
I expect that the Startup is initializing the interrupts too (because no bootloader can know where the QNX Callouts are)
.
My CSB Clock is 533MHz and im using the UART @ 0x4500, so my commandline vor the ser-Driver is:
devc-ser8250-mpc8540 -e -c533000000 -b115200 0xe0004500,26
The strange thing is that the outputs are not always the same, sometimes I get this:
Scanning for image @ 0xFF800000
Found image @ 0xFF800100
Jumping to startup @ 0x001029C0
System page at phys:0000c000 user:0000c000 kern:0000c000
Starting next program at v00135f1c
Welcome to QNX Neutrino 6.3 on the PowerPC 8548CDS board
Process 3 (slogger) terminated SIGSEGV code=1 fltno=11 ip=fe33c414 mapaddr=0003c414. ref=fe360b84
Process 4099 (pipe) terminated SIGSEGV code=1 fltno=11 ip=fe33c414 mapaddr=0003c414. ref=fe3020dc
Process 8195 (io-net) terminated SIGSEGV code=1 fltno=11 ip=fe33c5dc mapaddr=0003c5dc. ref=05f0ab6c
So the serial driver seems to be working…
Sometimes I get an endless output of “Out of interrupt events!”
Only once I get the output:
Scanning for image @ 0xFF800000
Found image @ 0xFF800100
Jumping to startup @ 0x001029C0
System page at phys:0000c000 user:0000c000 kern:0000c000
Starting next program at v00135f1c
Unexpected IVOR1 exception usage
Check startup code for missing interrupt callout definitions.
I’m out of ideas now.