Hi.
As a follow up to my email below, I compiled Fiasco for the Realview system and ran under QEmu. This is my output:
L4 Bootstrapper Build: #5 Fri May 11 19:55:05 EEST 2012, 4.5.3 Scanning up to 256 MB RAM Memory size is 256MB (00000000 - 10000000) RAM: 0000000000000000 - 000000000fffffff: 262144kB Total RAM: 256MB mod08: 011ec000-01205544: hello mod07: 01198000-011eb22c: ned mod06: 010bd000-01197b8c: io mod05: 010bc000-010bc016: arm-imx6.devs mod04: 010bb000-010bb079: startup.conf mod03: 010a1000-010ba45c: l4re mod02: 01067000-010a062c: moe mod01: 0105d000-01066340: sigma0 mod00: 01014000-0105c7b0: fiasco Moving 9 modules to 1100000 with offset ec000 moving module 09 { 11ec000-1205544 } -> { 12d8000-12f1544 } moving module 08 { 1198000-11eb22c } -> { 1284000-12d722c } moving module 07 { 10bd000-1197b8c } -> { 11a9000-1283b8c } moving module 06 { 10bc000-10bc016 } -> { 11a8000-11a8016 } moving module 05 { 10bb000-10bb079 } -> { 11a7000-11a7079 } moving module 04 { 10a1000-10ba45c } -> { 118d000-11a645c } moving module 03 { 1067000-10a062c } -> { 1153000-118c62c } moving module 02 { 105d000-1066340 } -> { 1149000-1152340 } moving module 01 { 1014000-105c7b0 } -> { 1100000-11487b0 } Scanning fiasco Scanning sigma0 Scanning moe rom/startup.conf Relocated mbi to [0x100e000-0x100e139] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page at 0x2000 Regions of list regions [ 1000, 19bf] { 9c0} Kern fiasco [ 2000, 58fff] { 57000} Kern fiasco [ 90000, 96ccb] { 6ccc} Sigma0 sigma0 [ 98000, 9e17b] { 617c} Sigma0 sigma0 [ 140000, 170aeb] { 30aec} Root moe [ 178000, 18eee7] { 16ee8} Root moe [ 1000000, 10133eb] { 133ec} Boot bootstrap [ 100e000, 100e236] { 237} Root Multiboot info [ 118d000, 12f1543] { 164544} Root Modules Memory API Version: (87) experimental Sigma0 config ip:000900e0 sp:01012044 Roottask config ip:001401c0 sp:00000000 Starting kernel fiasco at 00001000
--> and here it stops, which appears to be the same issue I as I have on the i.mx6.
Best regards, Johan
On Fri, 2012-05-11 at 17:01 +0300, Johan Dams wrote:
Hi all,
I'm wondering if anyone has come across an issue with Fiasco.OC on Cortex-A9 based systems. The problem is that I do not get past this instruction (and with that I mean that the system just locks up):
"mcr p15, 0, %[control], c1, c0 \n" // control
in src/kern/arm/bootstrap.cpp. The exact same code works fine on a Cortex-A8 based processor. Changing cache on or off (in the control variable) does not change anything. Also, just reading the current content of the register and writing it back locks the system.
I have been going over compiler flags, tried different compilers altogether (using 4.5.3-r1 right now), and looked if something odd was going on with the generated assembly code, etc. with no results.
This code is a standard ARM instruction, and comes well before any paging or even the actual kernel starts.
The SOC in question is a Freescale i.MX6 Quad core Cortex A9, which I realize not many have actually used yet. However, if similar issues presented itself on other platforms, these might give some clues.
Any ideas?
Best regards, Johan