Dear L4-hackers,
I have already run "Hello World!" on Cubietruck.
At the moment i am trying to run L4Linux. I have built the files on Ubuntu with cross compiler gcc-linaro-4.9.4-arm-linux-gnueabihf. During booting there are two errors, assertion failure and kernel panic. The logs are stated below:
Assertion failure
====================================================
U-Boot SPL 2017.03-rc3 (Jul 28 2017 - 11:53:12) DRAM: 2048 MiB CPU: 912000000Hz, AXI/AHB/APB: 3/2/2 Trying to boot from MMC1
U-Boot 2017.03-rc3 (Jul 28 2017 - 11:53:12 +0200) Allwinner Technology
CPU: Allwinner A20 (SUN7I) Model: Cubietech Cubietruck I2C: ready DRAM: 2 GiB MMC: SUNXI SD/MMC: 0 *** Warning - bad CRC, using default environment
Setting up a 1024x768 vga console (overscan 0x0) In: serial Out: vga Err: vga SCSI: SATA link 0 timeout. AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode flags: ncq stag pm led clo only pmp pio slum part ccc apst Net: eth0: ethernet@01c50000 starting USB... USB0: USB EHCI 1.00 USB1: USB OHCI 1.0 USB2: USB EHCI 1.00 USB3: USB OHCI 1.0 scanning bus 0 for devices... 1 USB Device(s) found scanning bus 2 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr reading /boot/boot.scr 883 bytes read in 24 ms (35.2 KiB/s) ## Executing script at 43100000 Failed to mount ext2 filesystem... ** Unrecognized filesystem type ** reading boot/script.bin 46404 bytes read in 32 ms (1.4 MiB/s) reading boot/uImage 8745024 bytes read in 518 ms (16.1 MiB/s) ## Booting kernel from Legacy Image at 48000000 ... Image Name: L4 Image #11 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 8744960 Bytes = 8.3 MiB Load Address: 41000000 Entry Point: 41000000 Verifying Checksum ... OK Loading Kernel Image ... OK
Starting kernel ...
L4 Bootstrapper Build: #11 Fr 28. Jul 15:38:45 CEST 2017, 4.9.4 Scanning up to 2048 MB RAM, starting at offset 32MB Memory size is 2048MB (40000000 - bfffffff) Limiting 'RAM' region [ 40000000, bfffffff] { 80000000} to [ 40000000, bcffffff] { 7d000000} due to 3024 MB address limit RAM: 0000000040000000 - 00000000bcffffff: 2048000kB Total RAM: 2000MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 8 modules behind 41100000 moving module 02 { 41825000-4185649f } -> { 41916000-4194749f } [201888] moving module 01 { 41813000-4182433b } -> { 41904000-4191533b } [70460] moving module 00 { 41776000-4181296f } -> { 41867000-4190396f } [641392] moving module 07 { 41476000-41775fff } -> { 41567000-41866fff } [3145728] moving module 06 { 41094000-41475477 } -> { 41185000-41566477 } [4068472] moving module 05 { 41032000-410936ab } -> { 41123000-411846ab } [399020] moving module 04 { 41010000-41031463 } -> { 41101000-41122463 } [136292] moving module 03 { 4100f000-4100f12d } -> { 41100000-4110012d } [302] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 40002000 Regions of list 'regions' [ 40000000, 40000137] { 138} Root mbi_rt [ 40001000, 40001a7f] { a80} Kern fiasco [ 40002000, 400aafff] { a9000} Kern fiasco [ 400c0000, 400ca287] { a288} Sigma0 sigma0 [ 400d0000, 400d6177] { 6178} Sigma0 sigma0 [ 40140000, 4016851b] { 2851c} Root moe [ 40170000, 40176ff3] { 6ff4} Root moe [ 41000000, 4100e55b] { e55c} Boot bootstrap [ 41100000, 41866fff] { 767000} Root Module found kernel options (via ELF) at 40003000 API Version: (87) experimental Sigma0 config ip:400c0100 sp:00000000 Roottask config ip:40140210 sp:00000000 Starting kernel fiasco at 4000124c Non-HYP kernel detected but running in HYP mode, switching back. Hello from Startup::stage2 Per_cpu_data_alloc: (orig: 0xf0099af0-0xf009a0b8) Number of IRQs available at this GIC: 160 FPU: Initialize FPU0: Subarch: 2, Part: 30, Rev: 4, Var: 7, Impl: 41 ARM generic timer: freq=24000000 interval=24000 cnt=211255640 SERIAL ESC: allocated IRQ 33 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.9.4 for Allwinner A20 [] Build: #4 Fri Jul 28 15:09:33 CEST 2017
Per_cpu_data_alloc: (orig: 0xf0099af0-0xf009a0b8) Allocate 1480 bytes (1KB) for CPU[2] local storage (offset=134ad10, 0xf13e4800-0xf13e4dc8) Number of CPUs: 1 Calibrating timer loopP..e.r_ cpu_data_alloc: (orig: 0xf0099af0-0xf009a0b8) Allocate 1480 bytdeons e(.1 B) for CPU[1] MlDocB:a l usseto praaggee (siozffe:s et=115200d10, 0xf11ea800-MDB: use page size: 01x2f11eadc8)
DiffSerent frequency on AP CPUsIFPUG1M: Subarch: A20, Part: :30 , Rev: H4e, Var: 7ll, Impl: o41!
ache config: ON KIID_PFR[01]: P00001 131@ 0001104110 ID_[DA]FR0: 00200105552 00000000000
eD_MMFR[04]: 101 01105 a40000000l l0o1240000c a0t2102211 B CPU[14]: Kgoes to idle loop for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:40000000;40000fff] [0:400ab000;400bffff] [0:400cb000;400cffff] [0:400d7000;4013ffff] [4:40140000;40168fff] [0:40169000;4016ffff] [4:40170000;40176fff] [0:40177000;410fffff] [4:41100000;41866fff] [0:41867000;bbffffff] IOMEM:---------------------- [0:0;3fffffff] [0:bd000000;ffffffff] MOE: Hello world MOE: found 2023088 KByte free memory MOE: found RAM from 40000000 to bc000000 MOE: allocated 1984 KByte for the page array @0x40177000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [41100000-4110012e] [C:105000] l4lx.cfg BOOTFS: [41101000-41122464] [C:107000] l4re BOOTFS: [41123000-411846ac] [C:109000] ned BOOTFS: [41185000-41566478] [C:10b000] vmlinuz BOOTFS: [41567000-41867000] [C:10d000] ramdisk-arm.rd MOE: cmdline: moe rom/l4lx.cfg MOE: Starting: rom/ned rom/l4lx.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4lx.cfg'
Assertion failed at /home/yiyang/Microkernel_ARM/l4re/src/kernel/fiasco/src/lib/libk/slab_cache.cpp:261: ret
--------------------------------------------------------------------- CPU 0 [f001d9e0]: abort
Kernel panic ========================================================= U-Boot SPL 2017.03-rc3 (Jul 28 2017 - 11:53:12) DRAM: 2048 MiB CPU: 912000000Hz, AXI/AHB/APB: 3/2/2 Trying to boot from MMC1
U-Boot 2017.03-rc3 (Jul 28 2017 - 11:53:12 +0200) Allwinner Technology
CPU: Allwinner A20 (SUN7I) Model: Cubietech Cubietruck I2C: ready DRAM: 2 GiB MMC: SUNXI SD/MMC: 0 *** Warning - bad CRC, using default environment
Setting up a 1024x768 vga console (overscan 0x0) In: serial Out: vga Err: vga SCSI: SATA link 0 timeout. AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode flags: ncq stag pm led clo only pmp pio slum part ccc apst Net: eth0: ethernet@01c50000 starting USB... USB0: USB EHCI 1.00 USB1: USB OHCI 1.0 USB2: USB EHCI 1.00 USB3: USB OHCI 1.0 scanning bus 0 for devices... 1 USB Device(s) found scanning bus 2 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr reading /boot/boot.scr 883 bytes read in 24 ms (35.2 KiB/s) ## Executing script at 43100000 Failed to mount ext2 filesystem... ** Unrecognized filesystem type ** reading boot/script.bin 46404 bytes read in 32 ms (1.4 MiB/s) reading boot/uImage 8745024 bytes read in 518 ms (16.1 MiB/s) ## Booting kernel from Legacy Image at 48000000 ... Image Name: L4 Image #11 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 8744960 Bytes = 8.3 MiB Load Address: 41000000 Entry Point: 41000000 Verifying Checksum ... OK Loading Kernel Image ... OK
Starting kernel ...
L4 Bootstrapper Build: #11 Fr 28. Jul 15:38:45 CEST 2017, 4.9.4 Scanning up to 2048 MB RAM, starting at offset 32MB Memory size is 2048MB (40000000 - bfffffff) Limiting 'RAM' region [ 40000000, bfffffff] { 80000000} to [ 40000000, bcffffff] { 7d000000} due to 3024 MB address limit RAM: 0000000040000000 - 00000000bcffffff: 2048000kB Total RAM: 2000MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 8 modules behind 41100000 moving module 02 { 41825000-4185649f } -> { 41916000-4194749f } [201888] moving module 01 { 41813000-4182433b } -> { 41904000-4191533b } [70460] moving module 00 { 41776000-4181296f } -> { 41867000-4190396f } [641392] moving module 07 { 41476000-41775fff } -> { 41567000-41866fff } [3145728] moving module 06 { 41094000-41475477 } -> { 41185000-41566477 } [4068472] moving module 05 { 41032000-410936ab } -> { 41123000-411846ab } [399020] moving module 04 { 41010000-41031463 } -> { 41101000-41122463 } [136292] moving module 03 { 4100f000-4100f12d } -> { 41100000-4110012d } [302] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 40002000 Regions of list 'regions' [ 40000000, 40000137] { 138} Root mbi_rt [ 40001000, 40001a7f] { a80} Kern fiasco [ 40002000, 400aafff] { a9000} Kern fiasco [ 400c0000, 400ca287] { a288} Sigma0 sigma0 [ 400d0000, 400d6177] { 6178} Sigma0 sigma0 [ 40140000, 4016851b] { 2851c} Root moe [ 40170000, 40176ff3] { 6ff4} Root moe [ 41000000, 4100e55b] { e55c} Boot bootstrap [ 41100000, 41866fff] { 767000} Root Module found kernel options (via ELF) at 40003000 API Version: (87) experimental Sigma0 config ip:400c0100 sp:00000000 Roottask config ip:40140210 sp:00000000 Starting kernel fiasco at 4000124c Non-HYP kernel detected but running in HYP mode, switching back. Hello from Startup::stage2 Per_cpu_data_alloc: (orig: 0xf0099af0-0xf009a0b8) Number of IRQs available at this GIC: 160 FPU: Initialize FPU0: Subarch: 2, Part: 30, Rev: 4, Var: 7, Impl: 41 ARM generic timer: freq=24000000 interval=24000 cnt=211256036 SERIAL ESC: allocated IRQ 33 for serial uart Not using serial hack in slow timer handler. Welcome to L4/Fiasco.OC! L4/Fiasco.OC microkernel on arm Rev: unknown compiled with gcc 4.9.4 for Allwinner A20 [] Build: #4 Fri Jul 28 15:09:33 CEST 2017
Per_cpu_data_alloc: (orig: 0xf0099af0-0xf009a0b8) Allocate 1480 bytes (1KB) for CPU[2] local storage (offset=134ad10, 0xf13e4800-0xf13e4dc8) Number of CPUs: 1 Calibrating timer loopP.e..r_ cpu_data_alloc: (orig: 0xf0099af0-0xf009a0b8) 1llocate 1480 bydteosne (. B) for CPU[1] MlDocB:a l usseto praaggee (siozffe:s et=115200d10, 0xf11ea800-MDB: use page size: 0x1f211eadc8)
!iffSerent frequency on AP CPUsIFPUG1M: Subarch: A20, Part: :30 , Rev: H4e, Var: l7l, Impl: o41
Cache config: ON KIID_PFR[01]: P0000 1131 @ 0001104110 ID_[DA]FR0: 0002010555 200000000000
eD_MMFR[04]: 101 01105 a40000000l l0o1240000c a0t2102211 B CPU[14]:K goes to idle loop for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:40000000;40000fff] [0:400ab000;400bffff] [0:400cb000;400cffff] [0:400d7000;4013ffff] [4:40140000;40168fff] [0:40169000;4016ffff] [4:40170000;40176fff] [0:40177000;410fffff] [4:41100000;41866fff] [0:41867000;bbffffff] IOMEM:---------------------- [0:0;3fffffff] [0:bd000000;ffffffff] MOE: Hello world MOE: found 2023088 KByte free memory MOE: found RAM from 40000000 to bc000000 MOE: allocated 1984 KByte for the page array @0x40177000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [41100000-4110012e] [C:105000] l4lx.cfg BOOTFS: [41101000-41122464] [C:107000] l4re BOOTFS: [41123000-411846ac] [C:109000] ned BOOTFS: [41185000-41566478] [C:10b000] vmlinuz BOOTFS: [41567000-41867000] [C:10d000] ramdisk-arm.rd MOE: cmdline: moe rom/l4lx.cfg MOE: Starting: rom/ned rom/l4lx.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4lx.cfg' libio: Warning: Query of 'vbus' failed! PH 0 offs=00010000 flags=rwx PH-type=0x1 virt=02000000 evirt=0244333c phys=02000000 ephys=0244333c f_sz=003bb3d5 memsz=0044333c PH 1 offs=0037ef74 flags=r-x PH-type=0x4 virt=0236ef74 evirt=0236ef98 phys=0236ef74 ephys=0236ef98 f_sz=00000024 memsz=00000024 PH 2 offs=00000000 flags=rwx PH-type=0x6474e551 virt=00000000 evirt=00000000 phys=00000000 ephys=00000000 f_sz=00000000 memsz=00000000 Starting binary at 0x2000330, argc=6 argv=0xafff4f8c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007cc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (yiyang@Dell-E4XY) (gcc version 4.9.4 (Linaro GCC 4.9-2017.01) ) #2 Fri Jul 28 14:00:04 CEST 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (5 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 0236ef98 [3515kB] RO-Data: 0229e000 - 0235b000 [756kB] Data: 02394000 - 023b6d20 [139kB] Init: 0236f000 - 02394000 [148kB] BSS: 023bb3d5 - 0244333c [543kB] Device scan: Device scan done. l4lx_thread_create: Created thread 41a (cpu0) (u:b3000e00, v:b3000c00, sp:02395fa4) main thread will be 41a L4x: section-with-init(-data): Virt: 0x2000000 to 0x2443fff [4368 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x2443fff [4368 KiB] L4x: Main thread running, waiting... L4x: Memory size: 128MB L4x: Setting superpages for main memory L4x: Adjusted memory start: 02000000 L4x: Main memory: Virt: 0x2600000 to 0xa5fffff [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x2443fff [4368 KiB] panic: going to sleep forever, bye
Any help would be appreciated.
Thanks, Yiyang
Hi,
On Tue Aug 01, 2017 at 09:15:08 +0000, Yiyang Su wrote:
I have already run "Hello World!" on Cubietruck.
At the moment i am trying to run L4Linux. I have built the files on Ubuntu with cross compiler gcc-linaro-4.9.4-arm-linux-gnueabihf. During booting there are two errors, assertion failure and kernel panic. The logs are stated below:
This can be a typical behavior when someone else is also running in the system (e.g. in Trustzone) and both accidentally use the same memory. Could you check what the native Linux uses from the physical memory (e.g. /proc/iomem)?
Adam
Update some information.
I can boot l4linux. Two things occurred the boot problem:
(1) In "Kernel options" of Fiasco configuration the "Enable multi processor support" is by default built-in. In my case if i deactivate this option. Then the assertion failure is gone.
(2) In L4Linux configuration option "(0x00000000) Physical address of main memory" the value 0x00000000 should be kept as it is. My failure was that i changed it to other value, which occurred malloc error.
l4-hackers@os.inf.tu-dresden.de