i.mx53 and fiasco.oc
Nikolay Golikov
decaprox at gmail.com
Wed Aug 22 11:16:12 CEST 2012
Hello.
I trying to run fiasco.oc + l4re on freescale i.mx53qsb. And have some
problems to do this.
I using i.mx51 platform configuration with some changes. I changed
addresses in src/kern/arm/bsp/imx/mem_layout-arm-imx.cpp:
EXTENSION class Mem_layout
{
public:
enum Virt_layout_imx53 {
Timer_map_base = 0xef1ac000,
Uart_map_base = 0xef1bc000,
Watchdog_map_base = 0xef198000,
Pic_map_base = 0xef200000,
Uart_base = Uart_map_base,
};
enum Phys_layout_imx53 {
Device_phys_base_1 = 0x53f00000,
Device_phys_base_2 = 0x0fffc000,
Watchdog_phys_base = 0x53f98000, // wdog1
Timer_phys_base = 0x53fac000, // epit1
Uart_phys_base = 0x53fbc000, // uart1
Pic_phys_base = 0x0fffc000,
};
};
And made some little changes in other source files.
When I try to boot it, I see something like this:
## Booting kernel from Legacy Image at 70800000 ...
Image Name: L4 Image #47
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 897192 Bytes = 876.2 kB
Load Address: 71000000
Entry Point: 71000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
L4 Bootstrapper
Build: #47 �В�т. �а�в�г. 21 16:49:21 MSK 2012, 4.5.1
Scanning up to 1024 MB RAM
Memory size is 512MB (Limited by Scan) (70000000 - 90000000)
RAM: 0000000070000000 - 000000008fffffff: 524288kB
Total RAM: 512MB
mod04: 710c1000-710da540: hello
mod03: 710a7000-710c0458: l4re
mod02: 7106d000-710a6624: moe
mod01: 71063000-7106c370: sigma0
mod00: 71015000-71062cac: fiasco
Moving 5 modules to 71100000 with offset eb000
moving module 05 { 710c1000-710da540 } -> { 711ac000-711c5540 }
moving module 04 { 710a7000-710c0458 } -> { 71192000-711ab458 }
moving module 03 { 7106d000-710a6624 } -> { 71158000-71191624 }
moving module 02 { 71063000-7106c370 } -> { 7114e000-71157370 }
moving module 01 { 71015000-71062cac } -> { 71100000-7114dcac }
Scanning fiasco
Scanning sigma0
Scanning moe --init=rom/hello
Relocated mbi to [0x7100f000-0x7100f0d6]
Loading fiasco
Loading sigma0
Loading moe
find kernel info page...
found kernel info page at 0x70002000
Regions of list regions
[ 70001000, 700019bf] { 9c0} Kern fiasco
[ 70002000, 7005cfff] { 5b000} Kern fiasco
[ 70090000, 7009e17b] { e17c} Sigma0 sigma0
[ 70140000, 701717d3] { 317d4} Root moe
[ 70178000, 7018eec7] { 16ec8} Root moe
[ 71000000, 710143ef] { 143f0} Boot bootstrap
[ 7100f000, 7100f1d3] { 1d4} Root Multiboot info
[ 71192000, 711c553f] { 33540} Root Modules Memory
API Version: (87) experimental
Sigma0 config ip:700900e0 sp:71013044
Roottask config ip:70140178 sp:00000000
Starting kernel fiasco at 70001000
Hello from Startup::stage2
Initialize page table
It stops on line 151 src/kern/arm/gic.cpp:
Io::write<Mword>(0, _dist_base + DIST_CTRL);
where _dist_base is Pic_map_base.
If I understand correctly tzic on i.mx53 and tzic on i.mx51 is equivalent.
And second question: I do not understand for what purpose make pysical
devices and sdram mapping in: src/kern/arm/bootstrap.cpp?
// map sdram linear from 0xf0000000
for (va = Mem_layout::Map_base, pa = Mem_layout::Sdram_phys_base;
va < Mem_layout::Map_base + (4 << 20); va += 0x100000, pa += 0x100000)
map_1mb(page_dir, va, pa, true, false);
// map sdram 1:1
for (va = Mem_layout::Sdram_phys_base;
va < Mem_layout::Sdram_phys_base + (4 << 20); va += 0x100000)
map_1mb(page_dir, va, va, true, true);
map_hw(page_dir);
And why afterwards devises on physical addresses are out of order?
More information about the l4-hackers
mailing list