Dear all,
I'm trying to port Fiasco to the DA850. I'm basing this on the 2014022818 snapshot. I've gotten to the point where I've modified the configuration for both fiasco and l4re, added the BSP and bootstrap platform files, and added the extra drivers I need to get started. I can build an image to load on the machine and it boots through the kernel fine. Then it tries to run sigma0 and gets a prefetch abort:
EXCEPTION: prefetch abort pfa=c0090100, error=0033000d R[0]: c0002000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 R[8]: 00000000 00000000 00000000 00000000 00000000 c1013de4 04080124 c0090100
(note, I'm including the full boot output at the end of the email)
The address, c0090100, is correct as the entry point for sigma0.
Now, if I'm reading the FSR right, that's indicating a permission error on the section. But nothing I've added/changed has anything to do with the MMU/mapping. As far as I can see, that's all straight armv5 code, with nothing special to the board (which uses an arm926ejs core).
So any idea why sigma0 would be getting mappings with the wrong permission?
------ Full output from boot:
U-Boot > bootm 0xc0700000 ## Booting kernel from Legacy Image at c0700000 ... Image Name: L4 Image #2 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 860160 Bytes = 840 KiB Load Address: c1000000 Entry Point: c1000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK
Starting kernel ...
L4 Bootstrapper Build: #2 Tue May 13 14:38:28 EST 2014, 4.7.3 Scanning up to 32 MB RAM Memory size is 32MB (c0000000 - c1ffffff) RAM: 00000000c0000000 - 00000000c1ffffff: 32768kB Total RAM: 32MB mod04: c10b8000-c10d1574: hello mod03: c109e000-c10b7454: l4re mod02: c106c000-c109d620: moe mod01: c1062000-c106b338: sigma0 mod00: c1015000-c1061380: fiasco Moving up to 5 modules behind c1100000 moving module 00 { c1015000-c106137f } -> { c11bd000-c120937f } [312192] moving module 01 { c1062000-c106b337 } -> { c120a000-c1213337 } [37688] moving module 02 { c106c000-c109d61f } -> { c1214000-c124561f } [202272] moving module 03 { c109e000-c10b7453 } -> { c1100000-c1119453 } [103508] moving module 04 { c10b8000-c10d1573 } -> { c111a000-c1133573 } [103796] Scanning fiasco -serial_esc Scanning sigma0 Scanning moe --init=rom/hello Relocated mbi to [0xc100e000-0xc100e0e2] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page at 0xc0002000 Regions of list 'regions' [ c0001000, c0001a3f] { a40} Kern fiasco [ c0002000, c005afff] { 59000} Kern fiasco [ c0090000, c00965bb] { 65bc} Sigma0 sigma0 [ c0098000, c009e17b] { 617c} Sigma0 sigma0 [ c0140000, c016cb87] { 2cb88} Root moe [ c0170000, c0186f0f] { 16f10} Root moe [ c1000000, c10143f3] { 143f4} Boot bootstrap [ c100a000, c100a0a6] { a7} Boot mbi [ c100e000, c100e1df] { 1e0} Root Multiboot info [ c1014048, c101409f] { 58} Boot mbi [ c1100000, c1133573] { 33574} Root Module API Version: (87) experimental Sigma0 config ip:c0090100 sp:c1013de4 Roottask config ip:c0140260 sp:00000000 Starting kernel fiasco at c0001208 Hello from Startup::stage2 Cache config: ON Timer::Timer() SERIAL ESC: allocated IRQ 61 for serial uart Not using serial hack in slow timer handler. Welcome to Fiasco.OC (arm)! L4/Fiasco.OC arm microkernel (C) 1998-2013 TU Dresden Rev: rUnversioned directory compiled with gcc 4.7.3 for Davinci DA850 [] Build: #1 Tue May 13 14:33:35 EST 2014
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 EXCEPTION: prefetch abort pfa=c0090100, error=0033000d R[0]: c0002000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 R[8]: 00000000 00000000 00000000 00000000 00000000 c1013de4 04080124 c0090100
KERNEL: Warning: Sigma0 raised an exception --> HALT Panic: ... Return reboots, "k" enters L4 kernel debugger...
Hi,
On Tue May 13, 2014 at 16:48:58 +1000, Peter Howard wrote:
I'm trying to port Fiasco to the DA850. I'm basing this on the 2014022818 snapshot. I've gotten to the point where I've modified the configuration for both fiasco and l4re, added the BSP and bootstrap platform files, and added the extra drivers I need to get started. I can build an image to load on the machine and it boots through the kernel fine. Then it tries to run sigma0 and gets a prefetch abort:
EXCEPTION: prefetch abort pfa=c0090100, error=0033000d R[0]: c0002000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 R[8]: 00000000 00000000 00000000 00000000 00000000 c1013de4 04080124 c0090100
(note, I'm including the full boot output at the end of the email)
The address, c0090100, is correct as the entry point for sigma0.
Now, if I'm reading the FSR right, that's indicating a permission error on the section. But nothing I've added/changed has anything to do with the MMU/mapping. As far as I can see, that's all straight armv5 code, with nothing special to the board (which uses an arm926ejs core).
So any idea why sigma0 would be getting mappings with the wrong permission?
Since RAM starts at 3GB physically, I'm wondering whether you set the 'kern_start_0xd' preprocessor tag in your Modules bsp-file (PREPROCESS_PARTS += kern_start_0xd)?
Adam
On Wed, 2014-05-14 at 02:00 +0200, Adam Lackorzynski wrote:
Hi,
On Tue May 13, 2014 at 16:48:58 +1000, Peter Howard wrote:
I'm trying to port Fiasco to the DA850. I'm basing this on the 2014022818 snapshot. I've gotten to the point where I've modified the configuration for both fiasco and l4re, added the BSP and bootstrap platform files, and added the extra drivers I need to get started. I can build an image to load on the machine and it boots through the kernel fine. Then it tries to run sigma0 and gets a prefetch abort:
EXCEPTION: prefetch abort pfa=c0090100, error=0033000d R[0]: c0002000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 R[8]: 00000000 00000000 00000000 00000000 00000000 c1013de4 04080124 c0090100
(note, I'm including the full boot output at the end of the email)
The address, c0090100, is correct as the entry point for sigma0.
Now, if I'm reading the FSR right, that's indicating a permission error on the section. But nothing I've added/changed has anything to do with the MMU/mapping. As far as I can see, that's all straight armv5 code, with nothing special to the board (which uses an arm926ejs core).
So any idea why sigma0 would be getting mappings with the wrong permission?
Since RAM starts at 3GB physically, I'm wondering whether you set the 'kern_start_0xd' preprocessor tag in your Modules bsp-file (PREPROCESS_PARTS += kern_start_0xd)?
Wasn't aware I needed that tag. Adding it solved the problem.
Thanks!
l4-hackers@os.inf.tu-dresden.de