Hi all,
I’m sorry to bother again on the same topic. Many thanks to Matthias and Adam, with their help I was able to make some progress on configuring the BeagleBone Black MMC driver for L4linux. But I still have problem to boot the L4linux. Here is where I am so far. I’m very frustrated now any hints and advice would be very appreciated.
Following Adam and Matthias’s suggestions I found out: 1. I need to enable TI DMA driver and TI MMC driver , so I updated Kconfig and compiled the kernel DMA engine support as well as TI MMC driver. 2. a FDT also need to be passed to L4Linux kernel, so based on beagleBoard Linux repository (https://github.com/beagleboard/linux https://github.com/beagleboard/linux) I modified the simple.dts [src/l4linux/arch/l4/boot/dts/simple.dts] (as attached)
Everything looks fine, I was able to see the l4linux scan device and pick up the FDT (as shown ”Machine model: L4Linux (DT)”) and preallocate DMA (“DMA: preallocated 256 KiB pool for atomic coherent allocations”). However the booting process stoped right after printing the following:
DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 IO | new iomem region: p=49000000 v=400000 s=400000 (bmb=0x2b138) IO | map mem: p=49000000 v=400000 s=10000: done(0) __l4x_ioremap: Mapping physaddr 49000000 [0x10000 Bytes, 49000000+010000] to 00302000+000000
The following are my .devs, .io, cfg files.
+++++++ l4linux.devs +++++++ local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
scrm = Hw.Device(function() compatible = {"ti,am3-scrm"}; Resource.regs = Res.mmio(0x44e10000, 0x44e11fff);
-- pinmux = Hw.Device(function() -- compatible = {"pinctrl-single"}; -- Resource.regs = Res.mmio(0x800, 0xa37); -- end);
-- edma_xbar = Hw.Device(function() -- compatible = {"ti,am335x-edma-crossbar"}; -- Resource.regs = Res.mmio(0xf90, 0xfcf); -- end);
end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3-tpcc"}; Resource.regA = Res.mmio(0x49000000, 0x4900ffff); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end);
tptc0 = Hw.Device(function() Property.hid = "EDMA_TPTC0"; compatible = {"ti,edma3-tptc"}; Resource.reg = Res.mmio(0x49800000, 0x498fffff); Resource.irq = Res.irq(112); end);
tptc1 = Hw.Device(function() Property.hid = "EDMA_TPTC1"; compatible = {"ti,edma3-tptc"}; Resource.reg = Res.mmio(0x49900000, 0x499fffff); Resource.irq = Res.irq(113); end);
tptc2 = Hw.Device(function() Property.hid = "EDMA_TPTC2"; compatible = {"ti,edma3-tptc"}; Resource.reg = Res.mmio(0x49a00000, 0x49afffff); Resource.irq = Res.irq(114); end);
gpio0 = Hw.Device(function() Property.hid = "GPIO0"; compatible = {"ti,omap4-gpio"}; Resource.reg = Res.mmio(0x44e07000, 0x44e07fff); Resource.irq = Res.irq(96); end);
emif = Hw.Device(function() Property.hid = "EMIF"; compatible = {"ti,emif-am3352"}; Resource.reg = Res.mmio(0x4C000000, 0x4C000fff); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc2 = Hw.Device(function() Property.hid = "MMC2"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x481d8000, 0x481d8fff); Resource.irq = Res.irq(28); Property.flags = Io.Hw_device_DF_dma_supported; end);
ocmcram = Hw.Device(function() compatible = {"mmio-sram"}; Resource.regs = Res.mmio(0x40300000, 0x40301fff); end); end)
+++++++ l4linux.io +++++++ local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { intc = wrap(hw.intc);
prcm = wrap(hw:match("ti,am3-prcm")); srcm = wrap(hw.scrm); -- srcm_pinmux = wrap(hw.scrm.pinmux); -- srcm_edma_xbar = wrap(hw.scrm.edma_xbar);
edma = wrap(hw.edma); tptc0 = wrap(hw.tptc0); tptc1 = wrap(hw.tptc1); tptc2 = wrap(hw.tptc2);
emif = wrap(hw.emif);
mmc1 = wrap(hw.mmc1); mmc2 = wrap(hw.mmc2);
gpio0 = wrap(hw.gpio0); ocmcram = wrap(hw.ocmcram); })
+++++++ l4linux.cfg +++++++ local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io -vvvvvv rom/l4linux.devs rom/l4linux.io" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd rw root=1:0 l4x_dtb=rom/l4-device-tree.dtb ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1" );
+++++++ terminal log +++++++
Starting kernel ...
L4 Bootstrapper Build: #78 Mon Jul 17 16:51:38 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 12 modules behind 81100000 moving module 02 { 81991000-819ba49f } -> { 81a81000-81aaa49f } [169120] moving module 01 { 8197f000-8199033b } -> { 81a6f000-81a8033b } [70460] moving module 00 { 818fd000-8197e017 } -> { 819ed000-81a6e017 } [528408] moving module 11 { 815fd000-818fcfff } -> { 816ed000-819ecfff } [3145728] moving module 10 { 811fb000-815fc47b } -> { 812eb000-816ec47b } [4199548] moving module 09 { 81088000-811fa8c7 } -> { 81178000-812ea8c7 } [1517768] moving module 08 { 8102e000-810876ab } -> { 8111e000-811776ab } [366252] moving module 07 { 81014000-8102d463 } -> { 81104000-8111d463 } [103524] moving module 06 { 81013000-81013ff4 } -> { 81103000-81103ff4 } [4085] moving module 05 { 81012000-81012e7a } -> { 81102000-81102e7a } [3707] moving module 04 { 81011000-8101135b } -> { 81101000-8110135b } [860] moving module 03 { 81010000-81010324 } -> { 81100000-81100324 } [805] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 800001ab] { 1ac} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5c3] { f5c4} Boot bootstrap [ 81100000, 819ecfff] { 8ed000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 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.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819ecfff] [0:819ed000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235792 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-81100325] [C:105000] l4linux.cfg BOOTFS: [81101000-8110135c] [C:107000] l4linux.io BOOTFS: [81102000-81102e7b] [C:109000] l4linux.devs BOOTFS: [81103000-81103ff5] [C:10b000] l4-device-tree.dtb BOOTFS: [81104000-8111d464] [C:10d000] l4re BOOTFS: [8111e000-811776ac] [C:10f000] ned BOOTFS: [81178000-812ea8c8] [C:111000] io BOOTFS: [812eb000-816ec47c] [C:113000] vmlinuz BOOTFS: [816ed000-819ed000] [C:115000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 7 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | warning: inconsistent fixed resource @ device: /System Bus/ IO | : hid=MMC1 IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | warning: inconsistent fixed resource @ device: /System Bus/ IO | : hid=MMC2 IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Loading: config 'rom/l4linux.io' IO | Add IRQ resources to vbus: IRQ [00000000000060-00000000000060 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000072-00000000000072 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000070-00000000000070 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000071-00000000000071 1] none (32bit) (align=0 flags=1) IO | l4linux: [N12_GLOBAL__N_112Virtual_sbusE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | L4ICU: [N2Vi6Sw_icuE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | gpio0: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IRQ [00000000000060-00000000000060 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000044e07000-00000044e07fff 1000] non-pref (32bit) (align=fff flags=2) IO | Resources: ===== end ===== IO | ocmcram: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000040300000-00000040301fff 2000] non-pref (32bit) (align=1fff flags=2) IO | Resources: ===== end ===== IO | mmc1: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | tptc2: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IRQ [00000000000072-00000000000072 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049a00000-00000049afffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | emif: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [0000004c000000-0000004c000fff 1000] non-pref (32bit) (align=fff flags=2) IO | Resources: ===== end ===== IO | mmc2: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | edma: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | srcm: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e10000-00000044e11fff 2000] non-pref (32bit) (align=1fff flags=2) IO | Resources: ===== end ===== IO | tptc0: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IRQ [00000000000070-00000000000070 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049800000-000000498fffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | tptc1: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IRQ [00000000000071-00000000000071 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049900000-000000499fffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | prcm: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | gpio0: hid=GPIO0 IO | Clients: ===== start ==== IO | gpio0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IRQ [00000000000060-00000000000060 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000044e07000-00000044e07fff 1000] non-pref (32bit) (align=fff flags=2) IO | Resources: ===== end ===== IO | ocmcram: hid= IO | Clients: ===== start ==== IO | ocmcram: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000040300000-00000040301fff 2000] non-pref (32bit) (align=1fff flags=2) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc1: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | tptc2: hid=EDMA_TPTC2 IO | Clients: ===== start ==== IO | tptc2: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IRQ [00000000000072-00000000000072 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049a00000-00000049afffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | tptc1: hid=EDMA_TPTC1 IO | Clients: ===== start ==== IO | tptc1: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IRQ [00000000000071-00000000000071 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049900000-000000499fffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | emif: hid=EMIF IO | Clients: ===== start ==== IO | emif: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [0000004c000000-0000004c000fff 1000] non-pref (32bit) (align=fff flags=2) IO | Resources: ===== end ===== IO | mmc2: hid=MMC2 IO | Clients: ===== start ==== IO | mmc2: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | tptc0: hid=EDMA_TPTC0 IO | Clients: ===== start ==== IO | tptc0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IRQ [00000000000070-00000000000070 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049800000-000000498fffff 100000] non-pref (32bit) (align=fffff flags=2) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | scrm: hid= IO | Clients: ===== start ==== IO | srcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10000-00000044e11fff 2000] non-pref (32bit) (align=1fff flags=2) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0246d67c phys=02000000 ephys=0246d67c f_sz=003e43d5 memsz=0046d67c PH 1 offs=0039c4f8 flags=r-x PH-type=0x4 virt=023944f8 evirt=0239451c phys=023944f8 ephys=0239451c 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 0x2000310, argc=8 argv=0xafff4f84 *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #28 Mon Jul 17 15:10:51 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (7 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd rw root=1:0 ramdisk_size=4000 l4x_dtb=rom/l4-device-tree.dtb CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 0239451c [3665kB] RO-Data: 022b2000 - 0237b000 [804kB] Data: 023bc000 - 023df800 [142kB] Init: 02395000 - 023bc000 [156kB] BSS: 023e43d5 - 0246d67c [548kB] Device scan: Device: L4ICU Device: gpio0 IRQ: 00000060 - 00000060 MEM: 44e07000 - 44e07fff Device: ocmcram MEM: 40300000 - 40301fff Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: tptc2 IRQ: 00000072 - 00000072 MEM: 49a00000 - 49afffff Device: emif MEM: 4c000000 - 4c000fff Device: mmc2 MEM: 481d8000 - 481d8fff IRQ: 0000001c - 0000001c DMAD: 00000000 - 00000000 Device: edma MEM: 49000000 - 4900ffff IRQ: 0000000e - 0000000e IRQ: 0000000d - 0000000d IRQ: 0000000c - 0000000c Device: srcm MEM: 44e10000 - 44e11fff Device: tptc0 IRQ: 00000070 - 00000070 MEM: 49800000 - 498fffff Device: tptc1 IRQ: 00000071 - 00000071 MEM: 49900000 - 499fffff Device: prcm MEM: 44e00000 - 44e03fff Device scan done. IO | DMA: use CPU-phys addresses for DMA l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023bdfa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x246dfff [4536 KiB] section-with-init(-data): Phys: 0x8017c000 to 0x805e9fff, [4536 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x246dfff [4536 KiB] error: failed to get physical address for 2000000. 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] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x246dfff [4536 KiB] error: failed to get physical address for 2000000. Loading: rom/ramdisk-arm.rd INITRD: Size of RAMdisk is 3072KiB RAMdisk from 00002000 to 00302000 [3072KiB] l4lx_thread_create: Created thread 422 (timer0) (u:b3000a00, v:00000000, sp:02405fa0) Booting Linux on physical CPU 0x0 Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #28 Mon Jul 17 15:10:51 EDT 2017 DTB: virt=02600100 phys=81a00100 CPU: Fiasco [413fc082] revision 2 (ARMv7), cr=00400000 CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine model: L4Linux (DT) Ignoring RAM at 0x80000000-0x90000000 (!CONFIG_HIGHMEM) Consider using a HIGHMEM enabled kernel. Memory policy: Data cache writealloc CPU: All CPU(s) started in SVC mode. INITRD: 00002000 - 00302000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 33973 Kernel command line: mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd rw root=1:0 ramdisk_size=4000 l4x_dtb=rom/l4-device-tree.dtb PID hash table entries: 1024 (order: 0, 4096 bytes) Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Memory: 129676K/137220K available (2861K kernel code, 142K rwdata, 804K rodata, 156K init, 548K bss, 7544K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0xbffff000 - 0xc0000000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x0a600000 - 0x12600000 ( 128 MB) lowmem : 0x00000000 - 0x0a600000 ( 166 MB) modules : 0x01010000 - 0x02000000 ( 15 MB) .text : 0x02000000 - 0x0239451c (3666 kB) .init : 0x02395000 - 0x023bc000 ( 156 kB) .data : 0x023bc000 - 0x023df800 ( 142 kB) .bss : 0x023e43d5 - 0x0246d67c ( 549 kB) NR_IRQS:282 clocksource: l4kipclk: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns l4timer: Using IRQ210 sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns Console: colour dummy device 80x30 console [ttyLv0] enabled Calibrating delay loop... 990.41 BogoMIPS (lpj=4952064) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) CPU: Testing write buffer coherency: ok Setting up static identity map for 0x2000000 - 0x2000000 VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 IO | new iomem region: p=49000000 v=400000 s=400000 (bmb=0x2b138) IO | map mem: p=49000000 v=400000 s=10000: done(0) __l4x_ioremap: Mapping physaddr 49000000 [0x10000 Bytes, 49000000+010000] to 00302000+000000
Thanks -Dan
On Jul 15, 2017, at 5:43 PM, Daniel (Xiaolong) Wang xiaolongw@mail.usf.edu wrote:
Many thanks, Matthias for your hint. Sorry for the delay I was traveling last week. Unfortunately I still have trouble.
As you suggested I turned on the CONFIG_USE_OF in L4Linux configuration. I downloaded the am3335x-black.dtb device tree from this link https://github.com/dominicgs/BeagleDancer/tree/master/devicetree https://github.com/dominicgs/BeagleDancer/tree/master/devicetree, and updated my devs file as follow:
+++++++++++++ l4linux.devs +++++++++++++ local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end); edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regA = Res.mmio(0x49000000, 0x4900ffff); Resource.regB = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end); mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end); i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end);
end)
However when I try to boot the L4linux it shows me "error: failed to get physical address for 2000000.” and hangs… Is there anything that I did wrong? I also tried to remove Property.flags = Io.Hw_device_DF_dma_supported; setup then it result in a different error:
"IO | vbus l4linux does not support a global DMA domain error: could not assign DMA space to vBUS: -2 DMA will not work!"
Thanks -Dan
FYI
+++++++++++++ terminal log with Property.flags = Io.Hw_device_DF_dma_supported;+++++++++++++
Starting kernel ...
L4 Bootstrapper Build: #51 Sat Jul 15 18:34:35 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 12 modules behind 81100000 moving module 02 { 8198e000-819b749f } -> { 81a7e000-81aa749f } [169120] moving module 01 { 8197c000-8198d33b } -> { 81a6c000-81a7d33b } [70460] moving module 00 { 818fa000-8197b017 } -> { 819ea000-81a6b017 } [528408] moving module 11 { 815fa000-818f9fff } -> { 816ea000-819e9fff } [3145728] moving module 10 { 81200000-815f947b } -> { 812f0000-816e947b } [4166780] moving module 09 { 8108d000-811ff8c7 } -> { 8117d000-812ef8c7 } [1517768] moving module 08 { 81033000-8108c6ab } -> { 81123000-8117c6ab } [366252] moving module 07 { 81019000-81032463 } -> { 81109000-81122463 } [103524] moving module 06 { 81013000-81018bac } -> { 81103000-81108bac } [23469] moving module 05 { 81012000-81012a0d } -> { 81102000-81102a0d } [2574] moving module 04 { 81011000-8101123d } -> { 81101000-8110123d } [574] moving module 03 { 81010000-8101034c } -> { 81100000-8110034c } [845] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 800001a7] { 1a8} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5c3] { f5c4} Boot bootstrap [ 81100000, 819e9fff] { 8ea000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 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.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819e9fff] [0:819ea000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235804 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-8110034d] [C:105000] l4linux.cfg BOOTFS: [81101000-8110123e] [C:107000] l4linux.io http://l4linux.io/ BOOTFS: [81102000-81102a0e] [C:109000] l4linux.devs BOOTFS: [81103000-81108bad] [C:10b000] device-tree.dtb BOOTFS: [81109000-81122464] [C:10d000] l4re BOOTFS: [81123000-8117c6ac] [C:10f000] ned BOOTFS: [8117d000-812ef8c8] [C:111000] io BOOTFS: [812f0000-816e947c] [C:113000] vmlinuz BOOTFS: [816ea000-819ea000] [C:115000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 7 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | warning: inconsistent fixed resource @ device: /System Bus/ IO | : hid=MMC1 IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Loading: config 'rom/l4linux.io http://l4linux.io/' IO | Add IRQ resources to vbus: IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Add IRQ resources to vbus: IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | l4linux: [N12_GLOBAL__N_112Virtual_sbusE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | L4ICU: [N2Vi6Sw_icuE] IO | Resources: ==== start ==== IO | Resources: ===== end ===== IO | edma: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc1: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | prcm: [N2Vi9Proxy_devE] IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc1: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000d-0000000000000d 1] none (32bit) (align=0 flags=1) IO | IOMEM [00000049000000-0000004900ffff 10000] non-pref (32bit) (align=ffff flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | IRQ [0000000000000c-0000000000000c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0246763c phys=02000000 ephys=0246763c f_sz=003de3d5 memsz=0046763c PH 1 offs=00396294 flags=r-x PH-type=0x4 virt=0238e294 evirt=0238e2b8 phys=0238e294 ephys=0238e2b8 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 0x2000310, argc=10 argv=0xafff4f7c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #5 Sat Jul 15 17:28:20 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (9 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 l4x_dtb=rom/device-tree.dtb ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 0238e2b8 [3640kB] RO-Data: 022ad000 - 02375000 [800kB] Data: 023b6000 - 023d9680 [141kB] Init: 0238f000 - 023b6000 [156kB] BSS: 023de3d5 - 0246763c [548kB] Device scan: Device: L4ICU Device: edma MEM: 44e10f90 - 44e10fcf IRQ: 0000000d - 0000000d MEM: 49000000 - 4900ffff IRQ: 0000000e - 0000000e IRQ: 0000000c - 0000000c Device: i2c0 MEM: 44e0b000 - 44e0bfff IRQ: 00000046 - 00000046 Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: prcm MEM: 44e00000 - 44e03fff Device scan done. IO | DMA: use CPU-phys addresses for DMA l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023b7fa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x2467fff [4512 KiB] section-with-init(-data): Phys: 0x80177000 to 0x805defff, [4512 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x2467fff [4512 KiB] error: failed to get physical address for 2000000. 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] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x2467fff [4512 KiB] error: failed to get physical address for 2000000.
On Jul 9, 2017, at 11:17 AM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com> wrote:
Hi,
On 07/08/2017 01:41 AM, Daniel (Xiaolong) Wang wrote:
Hi Adam,
I setup CONFIG_L4_SERVER, I checked using nm the result is:
*00000800 W l4x_srv_init* *00000804 t l4x_srv_init_resolver*
I also tested without the CONFIG_L4_SERVER, it works with out CONFIG_L4_SERVER. However I could not see the the MMC under /dev folder or under /sys/device. Does that mean the IO configuration file I specified does not work?
The setup looks ok. In io's log output you can see that e.g. the edma and the mmc1 device both have a client. You can increase io's log verboseness by adding more (up to seven) '-v' switches. Eventually you will get the vbus configuration printed.
The reason you don't see any MMC device in /dev is that L4Linux does not know about the physical devices (yet). You have to pass in a device tree (FDT) using the 'l4x_dtb' kernel command line option e.g.
l4x_dtb=rom/your_device_tree.dtb
Don't forget to add the device tree to your entry in the modules.list file. Also make sure to enable CONFIG_USE_OF in your L4Linux configuration.
Best, Matthias.
The IO stil shows “no 'iommu' capability found use CPU-phys for DMA” and a warning “warning: could not register control interface at cap 'platform_ctl'"
Attachment is the newest configuration file: ************* l4linux.cfg ************* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io -vvv rom/l4linux.devs rom/l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/>" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1" );
************* l4linux.devs ************* local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
Io.hw_add_devices(function() prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irqA = Res.irq(12); Resource.irqB = Res.irq(13); Resource.irqC = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end); end)
************* l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/> ************* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:mmc1); -- mmc2 = wrap(hw:mmc2); -- mmc3 = wrap(hw:mmc3); i2c0 = wrap(hw:i2c0); -- i2c1 = wrap(hw:i2c1); })
************* Booting info ************* Starting kernel ...
L4 Bootstrapper Build: #47 Fri Jul 7 19:33:01 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 81978000-819a149f } -> { 81a68000-81a9149f } [169120] moving module 01 { 81966000-8197733b } -> { 81a56000-81a6733b } [70460] moving module 00 { 818e4000-81965017 } -> { 819d4000-81a55017 } [528408] moving module 10 { 815e4000-818e3fff } -> { 816d4000-819d3fff } [3145728] moving module 09 { 811fa000-815e347b } -> { 812ea000-816d347b } [4101244] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-81012a0a } -> { 81102000-81102a0a } [2571] moving module 04 { 81011000-8101123d } -> { 81101000-8110123d } [574] moving module 03 { 81010000-8101032d } -> { 81100000-8110032d } [814] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 819d3fff] { 8d4000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 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.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;819d3fff] [0:819d4000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235892 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-8110032e] [C:105000] l4linux.cfg BOOTFS: [81101000-8110123e] [C:107000] l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/> BOOTFS: [81102000-81102a0b] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-816d347c] [C:111000] vmlinuz BOOTFS: [816d4000-819d4000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' *IO | Io service* *IO | Verboseness level: 4* *IO | unused physical memory space:* *IO | [00000000000000-0000007fffffff]* *IO | [00000090000000-000000ffffffff]* *IO | no 'iommu' capability found use CPU-phys for DMA* *IO | Loading: config 'rom/l4linux.devs'* *IO | warning: inconsistent fixed resource @ device: /System Bus/* *IO | : hid=MMC1* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Loading: config 'rom/l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/>'* *IO | Real Hardware -----------------------------------* *IO | System Bus: hid=* *IO | Resources: ==== start ====* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Resources: ===== end =====* *IO | mmc1: hid=MMC1* *IO | Clients: ===== start ====* *IO | mmc1: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2)* *IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1)* *IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6)* *IO | Resources: ===== end =====* *IO | prcm: hid=* *IO | Clients: ===== start ====* *IO | prcm: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2)* *IO | Resources: ===== end =====* *IO | edma: hid=EDMA* *IO | Clients: ===== start ====* *IO | edma: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2)* *IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1)* *IO | Resources: ===== end =====* *IO | i2c0: hid=omap4-i2c0* *IO | Clients: ===== start ====* *IO | i2c0: [N2Vi9Proxy_devE]* *IO | Clients: ===== end ====* *IO | Resources: ==== start ====* *IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2)* *IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1)* *IO | Resources: ===== end =====* *IO | warning: could not register control interface at cap 'platform_ctl'* *IO | Ready. Waiting for request.* PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=0245743c phys=02000000 ephys=0245743c f_sz=003ce3d5 memsz=0045743c PH 1 offs=003889a4 flags=r-x PH-type=0x4 virt=023809a4 evirt=023809c8 phys=023809a4 ephys=023809c8 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 0x2000310, argc=9 argv=0xafff4f84 *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc ======> L4Linux starting... <======== Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 Binary name: rom/vmlinuz This is an AEABI build. Linux kernel command line (8 args): mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 CPU mapping (l:p)[1]: 0:0 Image: 02000000 - 02600000 [6144 KiB]. Areas: Text: 02000000 - 023809c8 [3586kB] RO-Data: 022a5000 - 02368000 [780kB] Data: 023a6000 - 023c9540 [141kB] Init: 02381000 - 023a6000 [148kB] BSS: 023ce3d5 - 0245743c [548kB] Device scan: Device: L4ICU Device: edma MEM: 44e10f90 - 44e10fcf IRQ: 0000000e - 0000000e Device: i2c0 MEM: 44e0b000 - 44e0bfff IRQ: 00000046 - 00000046 Device: mmc1 MEM: 48060000 - 48060fff IRQ: 00000040 - 00000040 DMAD: 00000000 - 00000000 Device: prcm MEM: 44e00000 - 44e03fff Device scan done. l4lx_thread_create: Created thread 41d (cpu0) (u:b3000e00, v:b3000c00, sp:023a7fa4) main thread will be 41d L4x: section-with-init(-data): Virt: 0x2000000 to 0x2457fff [4448 KiB] section-with-init(-data): Phys: 0x80176000 to 0x805cdfff, [4448 KiB] L4x: section-with-init-text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. 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] Main memory: Phys: 0x81a00000 to 0x899fffff, [131072 KiB] l4x: vmalloc area: 0a600000 - 12600000 L4x: text: Virt: 0x2000000 to 0x2457fff [4448 KiB] error: failed to get physical address for 2000000. Loading: rom/ramdisk-arm.rd INITRD: Size of RAMdisk is 3072KiB RAMdisk from 00002000 to 00302000 [3072KiB] l4lx_thread_create: Created thread 422 (timer0) (u:b3000a00, v:00000000, sp:023effa0) Booting Linux on physical CPU 0x0 Linux version 4.7.0-l4 (daniel@daniel-ubuntu14) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #4 Fri Jul 7 19:22:05 EDT 2017 CPU: Fiasco [413fc082] revision 2 (ARMv7), cr=00400000 CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache Machine: L4 Ignoring unrecognised tag 0x00000000 Memory policy: Data cache writealloc CPU: All CPU(s) started in SVC mode. INITRD: 00002000 - 00302000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 33973 Kernel command line: mem=128M console=ttyLv0 l4x_rd=rom/ramdisk-arm.rd root=1:0 ramdisk_size=4000 showpfexc=1 showghost=1 print-fatal-signals=1 PID hash table entries: 1024 (order: 0, 4096 bytes) Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Memory: 129696K/137220K available (2806K kernel code, 141K rwdata, 780K rodata, 148K init, 548K bss, 7524K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0xbffff000 - 0xc0000000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x0a600000 - 0x12600000 ( 128 MB) lowmem : 0x00000000 - 0x0a600000 ( 166 MB) modules : 0x01010000 - 0x02000000 ( 15 MB) .text : 0x02000000 - 0x023809c8 (3587 kB) .init : 0x02381000 - 0x023a6000 ( 148 kB) .data : 0x023a6000 - 0x023c9540 ( 142 kB) .bss : 0x023ce3d5 - 0x0245743c ( 549 kB) NR_IRQS:282 clocksource: l4kipclk: mask: 0xffffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 3526361616960 ns l4timer: Using IRQ210 sched_clock: 64 bits at 1000kHz, resolution 1000ns, wraps every 2199023255500ns Console: colour dummy device 80x30 console [ttyLv0] enabled Calibrating delay loop... 990.41 BogoMIPS (lpj=4952064) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) CPU: Testing write buffer coherency: ok Setting up static identity map for 0x2000000 - 0x2000000 VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns NET: Registered protocol family 16 DMA: preallocated 256 KiB pool for atomic coherent allocations Failed to create "l4x" debugfs directory: 1 clocksource: Switched to clocksource l4kipclk NET: Registered protocol family 2 TCP established hash table entries: 2048 (order: 1, 8192 bytes) TCP bind hash table entries: 2048 (order: 1, 8192 bytes) TCP: Hash tables configured (established 2048 bind 2048) UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 Trying to unpack rootfs image as initramfs... rootfs image is not initramfs (junk in compressed archive); looks like an initrd INITRD: Freeing memory. l4x: Checks passed. NetWinder Floating Point Emulator V0.97 (double precision) futex hash table entries: 256 (order: -1, 3072 bytes) workingset: timestamp_bits=29 max_order=15 bucket_order=0 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) L4 serial driver serial-ttyLv.0: ttyLv0 at MMIO 0x1 (irq = 211, base_baud = 230400) is a L4-vcon l4ser_shm: L4 shared mem serial driver l4cdds: No name given, not starting. brd: module loaded l4bdds: No name given, not starting. mousedev: PS/2 mouse device common for all mice NET: Registered protocol family 17 L4IRQ: set irq type of 211 to 1 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 3072KiB [1 disk] into ram disk... done. EXT4-fs (ram0): couldn't mount as ext3 due to feature incompatibilities EXT4-fs (ram0): mounting ext2 file system using the ext4 subsystem EXT4-fs (ram0): mounted filesystem without journal. Opts: (null) VFS: Mounted root (ext2 filesystem) readonly on device 1:0. Freeing unused kernel memory: 148K (02381000 - 023a6000) This architecture does not have kernel memory protection.
Please press Enter to activate this console.
Thanks -Dan
On Jul 7, 2017, at 6:08 PM, Adam Lackorzynski <adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de <mailto:adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de>> wrote:
On Fri Jul 07, 2017 at 16:49:35 -0500, Daniel (Xiaolong) Wang wrote:
Many thanks to Matthias and Adam. With you help I was able to get some progress on BeagleBone Black. Here is what I have:
********* l4linux.cfg ********* local L4 = require("L4");
local loader = L4.default_loader;
local lxname = "vmlinuz"
-- start io local vbus_l4linux = loader:new_channel(); local vbus_input = loader:new_channel();
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; input = vbus_input:svr(); l4linux = vbus_l4linux:svr(); }, log = {"IO", "magenta"}, }, "rom/io rom/l4linux.io http://l4linux.io/ <http://l4linux.io http://l4linux.io/>" );
loader:start( { caps = { vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = L4.Env.log:m("rws"); }, "rom/vmlinuz mem=128M console=ttyLv0 lvx_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000" );
********* l4linux.devs ********* (according to https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/d...https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi https://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi%3Chttps://github.com/beagleboard/devicetree-source/blob/master/arch/arm/boot/dts/am33xx.dtsi%3E) local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function()
prcm = Hw.Device(function() compatible = {"ti,am3-prcm"}; Resource.regs = Res.mmio(0x44e00000, 0x44e03fff); end);
edma = Hw.Device(function() Property.hid = "EDMA"; compatible = {"ti,edma3"}; Resource.regs = Res.mmio(0x49000000, 0x4900ffff); Resource.regs = Res.mmio(0x44e10f90, 0x44e10fcf); Resource.irq = Res.irq(12); Resource.irq = Res.irq(13); Resource.irq = Res.irq(14); end);
mmc1 = Hw.Device(function() Property.hid = "MMC1"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x48060000, 0x48060fff); Resource.irq = Res.irq(64); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc2 = Hw.Device(function() Property.hid = "MMC2"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x481d8000, 0x481d8fff); Resource.irq = Res.irq(28); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
mmc3 = Hw.Device(function() Property.hid = "MMC3"; compatible = {"ti,omap4-hsmmc"}; Resource.regs = Res.mmio(0x47810000, 0x47810fff); Resource.irq = Res.irq(29); -- Property.flags = Io.Hw_device_DF_dma_supported; end);
i2c0 = Hw.Device(function() Property.hid = "omap4-i2c0"; compatible = {"ti,omap4-i2c"}; Resource.regs = Res.mmio(0x44e0b000, 0x44e0bfff); Resource.irq = Res.irq(70); end);
i2c1 = Hw.Device(function() Property.hid = "omap4-i2c1"; compatible = {"ti,omap3-i2c"}; Resource.regs = Res.mmio(0x4802a000, 0x4802afff); Resource.irq = Res.irq(71); end); end)
********* l4linux.io http://l4linux.io/ <http://l4linux.io/ http://l4linux.io/> ********* local hw = Io.system_bus()
Io.add_vbus("l4linux", Io.Vi.System_bus { prcm = wrap(hw:match("ti,am3-prcm")); edma = wrap(hw:match("ti,edma3")); mmc1 = wrap(hw:match("ti,omap4-hsmmc","MMC1")); mmc2 = wrap(hw:match("ti,omap4-hsmmc","MMC2")); mmc3 = wrap(hw:match("ti,omap4-hsmmc","MMC3")); i2c0 = wrap(hw:match("ti,omap4-i2c","omap4-i2c0")); i2c1 = wrap(hw:match("ti,omap4-i2c","omap4-i2c1")); })
You're matching too much here (see IO's complaints below). Only do mmc1 = wrap(hw.mmc1); mmc2 = wrap(hw.mmc2); mmc3 = wrap(hw.mmc3); i2c0 = wrap(hw.i2c0); i2c1 = wrap(hw.i2c1); (or only match for that pattern that matches once).
However after I run the uimage on the board the system just hang…
Starting kernel ...
L4 Bootstrapper Build: #32 Fri Jul 7 17:37:33 EDT 2017, 4.7.3 Scanning up to 256 MB RAM, starting at offset 32MB Memory size is 256MB (80000000 - 8fffffff) RAM: 0000000080000000 - 000000008fffffff: 262144kB Total RAM: 256MB Scanning fiasco Scanning sigma0 Scanning moe Moving up to 11 modules behind 81100000 moving module 02 { 819e0000-81a0949f } -> { 81ad0000-81af949f } [169120] moving module 01 { 819ce000-819df33b } -> { 81abe000-81acf33b } [70460] moving module 00 { 8194c000-819cd017 } -> { 81a3c000-81abd017 } [528408] moving module 10 { 8164c000-8194bfff } -> { 8173c000-81a3bfff } [3145728] moving module 09 { 811fa000-8164b47b } -> { 812ea000-8173b47b } [4527228] moving module 08 { 81087000-811f98c7 } -> { 81177000-812e98c7 } [1517768] moving module 07 { 8102d000-810866ab } -> { 8111d000-811766ab } [366252] moving module 06 { 81013000-8102c463 } -> { 81103000-8111c463 } [103524] moving module 05 { 81012000-810129d0 } -> { 81102000-811029d0 } [2513] moving module 04 { 81011000-810112be } -> { 81101000-811012be } [703] moving module 03 { 81010000-810102ff } -> { 81100000-811002ff } [768] Loading fiasco Loading sigma0 Loading moe find kernel info page... found kernel info page (via ELF) at 80002000 Regions of list 'regions' [ 80000000, 80000187] { 188} Root mbi_rt [ 80001000, 80001b7f] { b80} Kern fiasco [ 80002000, 8008efff] { 8d000} Kern fiasco [ 800c0000, 800c9cfb] { 9cfc} Sigma0 sigma0 [ 800d0000, 800d6177] { 6178} Sigma0 sigma0 [ 80140000, 8016eff3] { 2eff4} Root moe [ 81000000, 8100f5a3] { f5a4} Boot bootstrap [ 81100000, 81a3bfff] { 93c000} Root Module found kernel options (via ELF) at 80003000 API Version: (87) experimental Sigma0 config ip:800c0100 sp:00000000 Roottask config ip:80140260 sp:00000000 Starting kernel fiasco at 80001350 Hello from Startup::stage2 FPU: Initialize FPU0: Subarch: 3, Part: 30, Rev: 3, Var: c, Impl: 41 SERIAL ESC: allocated IRQ 72 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.7.3 for AM33xx [] Build: #1 Mon Jun 26 12:21:04 EDT 2017
Calibrating timer loop... done. MDB: use page size: 20 MDB: use page size: 12 SIGMA0: Hello! KIP @ 80002000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [4:80000000;80000fff] [0:8008f000;800bffff] [0:800ca000;800cffff] [0:800d7000;8013ffff] [4:80140000;8016efff] [0:8016f000;810fffff] [4:81100000;81a3bfff] [0:81a3c000;8effffff] IOMEM:---------------------- [0:0;7fffffff] [0:90000000;ffffffff] MOE: Hello world MOE: found 235476 KByte free memory MOE: found RAM from 80000000 to 8f000000 MOE: allocated 240 KByte for the page array @0x800d7000 MOE: virtual user address space [0-bfffffff] MOE: rom name space cap -> [C:103000] BOOTFS: [81100000-81100300] [C:105000] l4linux.cfg BOOTFS: [81101000-811012bf] [C:107000] l4linux.io http://l4linux.io/ <http://l4linux.io/ http://l4linux.io/> BOOTFS: [81102000-811029d1] [C:109000] l4linux.devs BOOTFS: [81103000-8111c464] [C:10b000] l4re BOOTFS: [8111d000-811766ac] [C:10d000] ned BOOTFS: [81177000-812e98c8] [C:10f000] io BOOTFS: [812ea000-8173b47c] [C:111000] vmlinuz BOOTFS: [8173c000-81a3c000] [C:113000] ramdisk-arm.rd MOE: cmdline: moe rom/l4linux.cfg MOE: Starting: rom/ned rom/l4linux.cfg MOE: loading 'rom/ned' Ned says: Hi World! Ned: loading file: 'rom/l4linux.cfg' IO | Io service IO | Verboseness level: 4 IO | unused physical memory space: IO | [00000000000000-0000007fffffff] IO | [00000090000000-000000ffffffff] IO | no 'iommu' capability found use CPU-phys for DMA IO | Loading: config 'rom/l4linux.devs' IO | Loading: config 'rom/l4linux.io http://l4linux.io/ <http://l4linux.io/ http://l4linux.io/>' IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc1' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc2' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'mmc3' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | WARNING: device 'i2c0' already assigned to another virtual bus. IO | Real Hardware ----------------------------------- IO | System Bus: hid= IO | Resources: ==== start ==== IO | DMADOM [00000000000000-00000000000000 1] non-pref (32bit) (align=0 flags=6) IO | Resources: ===== end ===== IO | mmc1: hid=MMC1 IO | Clients: ===== start ==== IO | mmc3[1]: [N2Vi9Proxy_devE] IO | mmc2[1]: [N2Vi9Proxy_devE] IO | mmc1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000048060000-00000048060fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000040-00000000000040 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c1: hid=omap4-i2c1 IO | Clients: ===== start ==== IO | i2c1[1]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [0000004802a000-0000004802afff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000047-00000000000047 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc2: hid=MMC2 IO | Clients: ===== start ==== IO | mmc3[2]: [N2Vi9Proxy_devE] IO | mmc2[2]: [N2Vi9Proxy_devE] IO | mmc1[2]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [000000481d8000-000000481d8fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001c-0000000000001c 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | mmc3: hid=MMC3 IO | Clients: ===== start ==== IO | mmc3[3]: [N2Vi9Proxy_devE] IO | mmc2[3]: [N2Vi9Proxy_devE] IO | mmc1[3]: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000047810000-00000047810fff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [0000000000001d-0000000000001d 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | edma: hid=EDMA IO | Clients: ===== start ==== IO | edma: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e10f90-00000044e10fcf 40] non-pref (32bit) (align=3f flags=2) IO | IRQ [0000000000000e-0000000000000e 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | i2c0: hid=omap4-i2c0 IO | Clients: ===== start ==== IO | i2c1[2]: [N2Vi9Proxy_devE] IO | i2c0: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e0b000-00000044e0bfff 1000] non-pref (32bit) (align=fff flags=2) IO | IRQ [00000000000046-00000000000046 1] none (32bit) (align=0 flags=1) IO | Resources: ===== end ===== IO | prcm: hid= IO | Clients: ===== start ==== IO | prcm: [N2Vi9Proxy_devE] IO | Clients: ===== end ==== IO | Resources: ==== start ==== IO | IOMEM [00000044e00000-00000044e03fff 4000] non-pref (32bit) (align=3fff flags=2) IO | Resources: ===== end ===== IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc3[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[1] IO | /l4linux/mmc2[1] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc3[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[2] IO | /l4linux/mmc2[2] IO | warning: conflicting virtual clients: IO | /l4linux/mmc2[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc3[3] IO | warning: conflicting virtual clients: IO | /l4linux/mmc1[3] IO | /l4linux/mmc2[3] IO | warning: conflicting virtual clients: IO | /l4linux/i2c0 IO | /l4linux/i2c1[2] IO | warning: could not register control interface at cap 'platform_ctl' IO | Ready. Waiting for request. PH 0 offs=00008000 flags=rwx PH-type=0x1 virt=02000000 evirt=024bd81c phys=02000000 ephys=024bd81c f_sz=00435512 memsz=004bd81c PH 1 offs=003eb0c8 flags=r-x PH-type=0x4 virt=023e30c8 evirt=023e30ec phys=023e30c8 ephys=023e30ec 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 0x2000318, argc=7 argv=0xafff4f8c *argv=0xb1007ff4 argv0=rom/vmlinuz External resolver is at 0xa80007fc Symbol 'l4x_srv_init' not found L4Re[rm]: unhandled read page fault at 0x4 pc=0x0 L4Re: unhandled exception: pc=0x0 (pfa=0) L4Re: Global::l4re_aux->ldr_flags=0
At this point I have no idea what to do any help will be much appreciated! Thank you very much!
Ok, now that's strange, that should not happen. In L4Linux, do you have CONFIG_L4_SERVER enabled or disabled? Does arch/l4/kernel/main.o contain the l4x_srv_init symbol or not (check with 'nm arch/l4/kernel/main.o | grep l4x_srv_init')?
Adam
Thanks -Dan
On Jun 29, 2017, at 3:39 PM, Matthias Lange <matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com <mailto:matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com>> wrote:
Hi,
On 06/29/2017 10:11 PM, Daniel (Xiaolong) Wang wrote: > Hi all, > > I want to give L4Linux access to SD card, and ethernet driver. > Initially I thought by run L4Linux kernel on top of L4re, drivers > built with L4Linux kernel can just work. After trying and reading the > email archive, seems like I need to configure the corresponding > capability in cfg. I’m very new to L4re environment is there any > tutorials or references that can help me understand it better? (I’m > currently reading the manual, my development board is a beagle bone > black)
In case of ARM platforms this is (still) not an easy undertaking. What you have to do is basically this:
- Enable the desired device drivers in your kernel configuration.
- Make L4Linux compile.
- Create a device tree which contains the device nodes of the desired
devices. 4. Create an io configuration for L4Re with the devices and their resources and assign the desired devices to a vbus which is eventually given to L4Linux. You can read about io and its configuration here [1]. 5. Boot your setup on the target. At this stage, you usually you have to instrument the device driver to debug the reasons why it is failing.
Best, Matthias.
[1] http://l4re.org/doc/io.html http://l4re.org/doc/io.html <http://l4re.org/doc/io.html http://l4re.org/doc/io.html>
> > Also I’m trying to build a L4Linux with MMC driver. My configuration > is based on default arm_defconfig. I enabled > > * Make Linux be a Server * Bus driver for L4vbus * L4shm based > network driver * MMC/SD/SDIO card support -> HW reset support for > eMMC, MMC block device driver, Use bounce buffer for simple hosts, > SDIO UART/GPS class support, Secure Digital Host Controller Interface > Support, SDHCI platform and OF driver helper, MediaTek SD/MMC Card > Interface support * DOS/FAT/NT Filesystem -> MSDOS fs support, VFAT > fs support > > however, when it build the following errors show did I do something > wrong? > > LD drivers/i2c/busses/built-in.o LD > drivers/i2c/muxes/built-in.o LD drivers/i2c/built-in.o LD > drivers/idle/built-in.o CC drivers/input/input.o CC > drivers/input/input-compat.o CC drivers/input/input-mt.o CC > drivers/input/ff-core.o LD drivers/input/input-core.o CC > drivers/input/mousedev.o CC drivers/input/evdev.o LD > drivers/input/built-in.o LD drivers/iommu/built-in.o CC > drivers/irqchip/irqchip.o LD drivers/irqchip/built-in.o LD > drivers/leds/built-in.o LD drivers/lguest/built-in.o LD > drivers/macintosh/built-in.o LD > drivers/media/common/b2c2/built-in.o LD > drivers/media/common/saa7146/built-in.o LD > drivers/media/common/siano/built-in.o LD > drivers/media/common/v4l2-tpg/built-in.o LD > drivers/media/common/built-in.o LD > drivers/media/firewire/built-in.o LD > drivers/media/i2c/soc_camera/built-in.o LD > drivers/media/i2c/built-in.o LD > drivers/media/mmc/siano/built-in.o LD > drivers/media/mmc/built-in.o LD > drivers/media/pci/b2c2/built-in.o LD > drivers/media/pci/ddbridge/built-in.o LD > drivers/media/pci/dm1105/built-in.o LD > drivers/media/pci/mantis/built-in.o LD > drivers/media/pci/netup_unidvb/built-in.o LD > drivers/media/pci/ngene/built-in.o LD > drivers/media/pci/pluto2/built-in.o LD > drivers/media/pci/pt1/built-in.o LD > drivers/media/pci/pt3/built-in.o LD > drivers/media/pci/saa7146/built-in.o LD > drivers/media/pci/smipcie/built-in.o LD > drivers/media/pci/ttpci/built-in.o LD > drivers/media/pci/built-in.o LD > drivers/media/platform/omap/built-in.o LD > drivers/media/platform/built-in.o LD > drivers/media/rc/keymaps/built-in.o LD > drivers/media/rc/built-in.o LD drivers/media/tuners/built-in.o > LD drivers/media/usb/b2c2/built-in.o LD > drivers/media/usb/dvb-usb/built-in.o LD > drivers/media/usb/dvb-usb-v2/built-in.o LD > drivers/media/usb/s2255/built-in.o LD > drivers/media/usb/siano/built-in.o LD > drivers/media/usb/stkwebcam/built-in.o LD > drivers/media/usb/ttusb-budget/built-in.o LD > drivers/media/usb/ttusb-dec/built-in.o LD > drivers/media/usb/zr364xx/built-in.o LD > drivers/media/usb/built-in.o LD drivers/media/built-in.o LD > drivers/mfd/built-in.o LD drivers/misc/cb710/built-in.o LD > drivers/misc/eeprom/built-in.o LD > drivers/misc/lis3lv02d/built-in.o LD > drivers/misc/mic/bus/built-in.o LD drivers/misc/mic/built-in.o > LD drivers/misc/ti-st/built-in.o LD > drivers/misc/built-in.o CC drivers/mmc/card/block.o CC > drivers/mmc/card/queue.o LD drivers/mmc/card/mmc_block.o CC > drivers/mmc/card/sdio_uart.o LD drivers/mmc/card/built-in.o CC > drivers/mmc/core/core.o CC drivers/mmc/core/bus.o CC > drivers/mmc/core/host.o CC drivers/mmc/core/mmc.o CC > drivers/mmc/core/mmc_ops.o CC drivers/mmc/core/sd.o CC > drivers/mmc/core/sd_ops.o CC drivers/mmc/core/sdio.o CC > drivers/mmc/core/sdio_ops.o CC drivers/mmc/core/sdio_bus.o CC > drivers/mmc/core/sdio_cis.o CC drivers/mmc/core/sdio_io.o CC > drivers/mmc/core/sdio_irq.o CC drivers/mmc/core/quirks.o CC > drivers/mmc/core/slot-gpio.o CC drivers/mmc/core/pwrseq.o CC > drivers/mmc/core/debugfs.o LD drivers/mmc/core/mmc_core.o CC > drivers/mmc/core/pwrseq_simple.o CC > drivers/mmc/core/pwrseq_emmc.o LD drivers/mmc/core/built-in.o CC > drivers/mmc/host/sdhci.o CC drivers/mmc/host/mtk-sd.o CC > drivers/mmc/host/sdhci-pltfm.o CC > drivers/mmc/host/sdhci-of-arasan.o CC > drivers/mmc/host/sdhci-of-at91.o LD drivers/mmc/host/built-in.o > LD drivers/mmc/built-in.o CC drivers/net/Space.o CC > drivers/net/loopback.o CC drivers/net/l4shmnet.o LD > drivers/net/built-in.o LD drivers/nfc/built-in.o LD > drivers/nvme/host/built-in.o LD drivers/nvme/built-in.o CC > drivers/of/base.o CC drivers/of/device.o CC > drivers/of/platform.o CC drivers/of/fdt.o CC > drivers/of/fdt_address.o CC drivers/of/address.o CC > drivers/of/irq.o CC drivers/of/of_reserved_mem.o LD > drivers/of/built-in.o LD drivers/platform/built-in.o LD > drivers/power/built-in.o LD drivers/pwm/built-in.o CC > drivers/rtc/rtc-lib.o LD drivers/rtc/built-in.o LD > drivers/soc/bcm/built-in.o LD drivers/soc/fsl/built-in.o LD > drivers/soc/built-in.o CC drivers/tty/tty_io.o CC > drivers/tty/n_tty.o CC drivers/tty/tty_ioctl.o CC > drivers/tty/tty_ldisc.o CC drivers/tty/tty_buffer.o CC > drivers/tty/tty_port.o CC drivers/tty/tty_mutex.o CC > drivers/tty/tty_ldsem.o CC drivers/tty/pty.o CC > drivers/tty/sysrq.o LD drivers/tty/ipwireless/built-in.o CC > drivers/tty/serial/serial_core.o CC drivers/tty/serial/l4ser.o > CC drivers/tty/serial/l4ser_shm.o LD > drivers/tty/serial/built-in.o CC drivers/tty/vt/vt_ioctl.o CC > drivers/tty/vt/vc_screen.o CC drivers/tty/vt/selection.o CC > drivers/tty/vt/keyboard.o CC drivers/tty/vt/consolemap.o CC > drivers/tty/vt/consolemap_deftbl.o CC drivers/tty/vt/vt.o CC > drivers/tty/vt/defkeymap.o LD drivers/tty/vt/built-in.o LD > drivers/tty/built-in.o LD drivers/video/backlight/built-in.o CC > drivers/video/console/dummycon.o CC > drivers/video/console/fbcon.o CC > drivers/video/console/bitblit.o CC > drivers/video/console/softcursor.o LD > drivers/video/console/built-in.o CC > drivers/video/fbdev/core/fb_cmdline.o CC > drivers/video/fbdev/core/fb_notify.o CC > drivers/video/fbdev/core/fbmem.o CC > drivers/video/fbdev/core/fbmon.o CC > drivers/video/fbdev/core/fbcmap.o CC > drivers/video/fbdev/core/fbsysfs.o CC > drivers/video/fbdev/core/modedb.o CC > drivers/video/fbdev/core/fbcvt.o LD > drivers/video/fbdev/core/fb.o LD > drivers/video/fbdev/core/built-in.o LD > drivers/video/fbdev/omap2/omapfb/displays/built-in.o LD > drivers/video/fbdev/omap2/omapfb/dss/built-in.o LD > drivers/video/fbdev/omap2/omapfb/built-in.o LD > drivers/video/fbdev/omap2/built-in.o LD > drivers/video/fbdev/built-in.o CC drivers/video/logo/logo.o LOGO > drivers/video/logo/logo_linux_mono.c CC > drivers/video/logo/logo_linux_mono.o LOGO > drivers/video/logo/logo_linux_vga16.c CC > drivers/video/logo/logo_linux_vga16.o LOGO > drivers/video/logo/logo_linux_clut224.c CC > drivers/video/logo/logo_linux_clut224.o LD > drivers/video/logo/built-in.o LOGO > drivers/video/logo/logo_superh_mono.c LOGO > drivers/video/logo/clut_vga16.c LOGO > drivers/video/logo/logo_blackfin_vga16.c LOGO > drivers/video/logo/logo_superh_vga16.c LOGO > drivers/video/logo/logo_blackfin_clut224.c LOGO > drivers/video/logo/logo_dec_clut224.c LOGO > drivers/video/logo/logo_m32r_clut224.c LOGO > drivers/video/logo/logo_mac_clut224.c LOGO > drivers/video/logo/logo_parisc_clut224.c LOGO > drivers/video/logo/logo_sgi_clut224.c LOGO > drivers/video/logo/logo_spe_clut224.c LOGO > drivers/video/logo/logo_sun_clut224.c LOGO > drivers/video/logo/logo_superh_clut224.c LD > drivers/video/built-in.o LD drivers/built-in.o LD > sound/built-in.o LD firmware/built-in.o CC > arch/l4/drivers/vbus/l4vbus.o LD > arch/l4/drivers/vbus/built-in.o CC arch/l4/drivers/events.o LD > arch/l4/drivers/built-in.o CC net/socket.o LD > net/802/built-in.o CC net/core/sock.o CC > net/core/request_sock.o CC net/core/skbuff.o CC > net/core/datagram.o CC net/core/stream.o CC net/core/scm.o > CC net/core/gen_stats.o CC net/core/gen_estimator.o CC > net/core/net_namespace.o CC net/core/secure_seq.o CC > net/core/flow_dissector.o CC net/core/sysctl_net_core.o CC > net/core/dev.o CC net/core/ethtool.o CC > net/core/dev_addr_lists.o CC net/core/dst.o CC > net/core/netevent.o CC net/core/neighbour.o CC > net/core/rtnetlink.o CC net/core/utils.o CC > net/core/link_watch.o CC net/core/filter.o CC > net/core/sock_diag.o CC net/core/dev_ioctl.o CC > net/core/tso.o CC net/core/sock_reuseport.o CC > net/core/flow.o CC net/core/net-sysfs.o CC > net/core/net-procfs.o LD net/core/built-in.o CC > net/ethernet/eth.o LD net/ethernet/built-in.o CC > net/ipv4/route.o CC net/ipv4/inetpeer.o CC > net/ipv4/protocol.o CC net/ipv4/ip_input.o CC > net/ipv4/ip_fragment.o CC net/ipv4/ip_forward.o CC > net/ipv4/ip_options.o CC net/ipv4/ip_output.o CC > net/ipv4/ip_sockglue.o CC net/ipv4/inet_hashtables.o CC > net/ipv4/inet_timewait_sock.o CC > net/ipv4/inet_connection_sock.o CC net/ipv4/tcp.o CC > net/ipv4/tcp_input.o CC net/ipv4/tcp_output.o CC > net/ipv4/tcp_timer.o CC net/ipv4/tcp_ipv4.o CC > net/ipv4/tcp_minisocks.o CC net/ipv4/tcp_cong.o CC > net/ipv4/tcp_metrics.o CC net/ipv4/tcp_fastopen.o CC > net/ipv4/tcp_recovery.o CC net/ipv4/tcp_offload.o CC > net/ipv4/datagram.o CC net/ipv4/raw.o CC net/ipv4/udp.o CC > net/ipv4/udplite.o CC net/ipv4/udp_offload.o CC > net/ipv4/arp.o CC net/ipv4/icmp.o CC net/ipv4/devinet.o CC > net/ipv4/af_inet.o CC net/ipv4/igmp.o CC > net/ipv4/fib_frontend.o CC net/ipv4/fib_semantics.o CC > net/ipv4/fib_trie.o CC net/ipv4/inet_fragment.o CC > net/ipv4/ping.o CC net/ipv4/ip_tunnel_core.o CC > net/ipv4/gre_offload.o CC net/ipv4/sysctl_net_ipv4.o CC > net/ipv4/proc.o CC net/ipv4/xfrm4_mode_beet.o CC > net/ipv4/xfrm4_mode_transport.o CC net/ipv4/xfrm4_mode_tunnel.o > CC net/ipv4/ipconfig.o CC net/ipv4/inet_diag.o CC > net/ipv4/tcp_diag.o CC net/ipv4/tcp_cubic.o CC > net/ipv4/xfrm4_policy.o CC net/ipv4/xfrm4_state.o CC > net/ipv4/xfrm4_input.o CC net/ipv4/xfrm4_output.o CC > net/ipv4/xfrm4_protocol.o LD net/ipv4/built-in.o CC > net/ipv6/addrconf_core.o CC net/ipv6/exthdrs_core.o CC > net/ipv6/ip6_checksum.o CC net/ipv6/ip6_icmp.o CC > net/ipv6/output_core.o CC net/ipv6/protocol.o CC > net/ipv6/ip6_offload.o CC net/ipv6/tcpv6_offload.o CC > net/ipv6/exthdrs_offload.o LD net/ipv6/built-in.o CC > net/netlink/af_netlink.o CC net/netlink/genetlink.o LD > net/netlink/built-in.o CC net/packet/af_packet.o LD > net/packet/built-in.o CC net/sched/sch_generic.o CC > net/sched/sch_mq.o LD net/sched/built-in.o CC > net/unix/af_unix.o CC net/unix/garbage.o CC > net/unix/sysctl_net_unix.o LD net/unix/unix.o LD > net/unix/built-in.o CC net/xfrm/xfrm_policy.o CC > net/xfrm/xfrm_state.o CC net/xfrm/xfrm_hash.o CC > net/xfrm/xfrm_input.o CC net/xfrm/xfrm_output.o CC > net/xfrm/xfrm_sysctl.o CC net/xfrm/xfrm_replay.o LD > net/xfrm/built-in.o CC net/sysctl_net.o LD net/built-in.o > CC lib/lockref.o CC lib/bcd.o CC lib/div64.o CC > lib/sort.o CC lib/parser.o CC lib/halfmd4.o CC > lib/debug_locks.o CC lib/random32.o CC > lib/bust_spinlocks.o CC lib/kasprintf.o CC lib/bitmap.o CC > lib/scatterlist.o CC lib/gcd.o CC lib/lcm.o CC > lib/list_sort.o CC lib/uuid.o CC lib/flex_array.o CC > lib/iov_iter.o CC lib/clz_ctz.o CC lib/bsearch.o CC > lib/find_bit.o CC lib/llist.o CC lib/memweight.o CC > lib/kfifo.o CC lib/percpu-refcount.o CC lib/percpu_ida.o CC > lib/rhashtable.o CC lib/reciprocal_div.o CC lib/once.o CC > lib/string_helpers.o CC lib/hexdump.o CC lib/kstrtox.o CC > lib/pci_iomap.o CC lib/iomap_copy.o CC lib/devres.o CC > lib/hweight.o CC lib/bitrev.o CC lib/crc16.o HOSTCC > lib/gen_crc32table GEN lib/crc32table.h CC lib/crc32.o CC > lib/genalloc.o CC lib/fonts/fonts.o CC > lib/fonts/font_8x8.o CC lib/fonts/font_8x16.o LD > lib/fonts/font.o LD lib/fonts/built-in.o CC > lib/lz4/lz4_decompress.o LD lib/lz4/built-in.o CC > lib/lzo/lzo1x_decompress_safe.o LD lib/lzo/lzo_decompress.o LD > lib/lzo/built-in.o CC lib/xz/xz_dec_syms.o CC > lib/xz/xz_dec_stream.o CC lib/xz/xz_dec_lzma2.o CC > lib/xz/xz_dec_bcj.o LD lib/xz/xz_dec.o LD > lib/xz/built-in.o CC lib/zlib_inflate/inffast.o CC > lib/zlib_inflate/inflate.o CC lib/zlib_inflate/infutil.o CC > lib/zlib_inflate/inftrees.o CC lib/zlib_inflate/inflate_syms.o > LD lib/zlib_inflate/zlib_inflate.o LD > lib/zlib_inflate/built-in.o CC lib/swiotlb.o CC > lib/iommu-helper.o CC lib/iommu-common.o CC lib/syscall.o > CC lib/nlattr.o CC lib/dynamic_queue_limits.o CC > lib/net_utils.o LD lib/built-in.o CC lib/argv_split.o CC > lib/bug.o CC lib/cmdline.o CC lib/ctype.o CC > lib/dec_and_lock.o CC lib/decompress.o CC > lib/decompress_bunzip2.o CC lib/decompress_inflate.o CC > lib/decompress_unlz4.o CC lib/decompress_unlzma.o CC > lib/decompress_unlzo.o CC lib/decompress_unxz.o CC > lib/dma-noop.o CC lib/dump_stack.o CC lib/earlycpio.o CC > lib/extable.o CC lib/fdt.o CC lib/fdt_empty_tree.o CC > lib/fdt_ro.o CC lib/fdt_rw.o CC lib/fdt_strerror.o CC > lib/fdt_sw.o CC lib/fdt_wip.o CC lib/flex_proportions.o CC > lib/idr.o CC lib/int_sqrt.o CC lib/ioremap.o CC > lib/irq_regs.o CC lib/is_single_threaded.o CC lib/klist.o > CC lib/kobject.o CC lib/kobject_uevent.o CC lib/md5.o > CC lib/nmi_backtrace.o CC lib/nodemask.o CC > lib/plist.o CC lib/radix-tree.o CC lib/ratelimit.o CC > lib/rbtree.o CC lib/seq_buf.o CC lib/sha1.o CC > lib/show_mem.o CC lib/string.o CC lib/timerqueue.o CC > lib/vsprintf.o AR lib/lib.a CC > arch/l4/lib/arch-arm/../proc.o CC > arch/l4/lib/arch-arm/../debugfs.o LD > arch/l4/lib/arch-arm/built-in.o AS > arch/l4/lib/arch-arm/../../../arm/lib/ashldi3.o AS > arch/l4/lib/arch-arm/../../../arm/lib/ashrdi3.o AS > arch/l4/lib/arch-arm/../../../arm/lib/backtrace.o AS > arch/l4/lib/arch-arm/../../../arm/lib/bswapsdi2.o AS > arch/l4/lib/arch-arm/../../../arm/lib/call_with_stack.o AS > arch/l4/lib/arch-arm/../../../arm/lib/changebit.o AS > arch/l4/lib/arch-arm/../../../arm/lib/clearbit.o AS > arch/l4/lib/arch-arm/../../../arm/lib/copy_page.o AS > arch/l4/lib/arch-arm/../../../arm/lib/csumipv6.o AS > arch/l4/lib/arch-arm/../../../arm/lib/csumpartial.o AS > arch/l4/lib/arch-arm/../../../arm/lib/csumpartialcopy.o AS > arch/l4/lib/arch-arm/../../../arm/lib/delay-loop.o CC > arch/l4/lib/arch-arm/../../../arm/lib/delay.o AS > arch/l4/lib/arch-arm/../../../arm/lib/div64.o AS > arch/l4/lib/arch-arm/../../../arm/lib/findbit.o AS > arch/l4/lib/arch-arm/../../../arm/lib/io-readsb.o AS > arch/l4/lib/arch-arm/../../../arm/lib/io-readsl.o AS > arch/l4/lib/arch-arm/../../../arm/lib/io-readsw-armv4.o AS > arch/l4/lib/arch-arm/../../../arm/lib/io-writesb.o AS > arch/l4/lib/arch-arm/../../../arm/lib/io-writesl.o AS > arch/l4/lib/arch-arm/../../../arm/lib/io-writesw-armv4.o AS > arch/l4/lib/arch-arm/../../../arm/lib/lib1funcs.o AS > arch/l4/lib/arch-arm/../../../arm/lib/lshrdi3.o AS > arch/l4/lib/arch-arm/../../../arm/lib/memchr.o AS > arch/l4/lib/arch-arm/../../../arm/lib/memcpy.o AS > arch/l4/lib/arch-arm/../../../arm/lib/memmove.o AS > arch/l4/lib/arch-arm/../../../arm/lib/memset.o AS > arch/l4/lib/arch-arm/../../../arm/lib/memzero.o AS > arch/l4/lib/arch-arm/../../../arm/lib/muldi3.o AS > arch/l4/lib/arch-arm/../../../arm/lib/setbit.o AS > arch/l4/lib/arch-arm/../../../arm/lib/strchr.o AS > arch/l4/lib/arch-arm/../../../arm/lib/strrchr.o AS > arch/l4/lib/arch-arm/../../../arm/lib/testchangebit.o AS > arch/l4/lib/arch-arm/../../../arm/lib/testclearbit.o AS > arch/l4/lib/arch-arm/../../../arm/lib/testsetbit.o AS > arch/l4/lib/arch-arm/../../../arm/lib/ucmpdi2.o CC > arch/l4/lib/arch-arm/../csumpartialcopyuser.o CC > arch/l4/lib/arch-arm/../memcpy_user.o CC > arch/l4/lib/arch-arm/../pte.o CC > arch/l4/lib/arch-arm/../uaccess.o AR arch/l4/lib/arch-arm/lib.a > LD arch/l4/l4lxlib/generic/built-in.o CC > arch/l4/l4lxlib/generic/irq_gen.o CC > arch/l4/l4lxlib/generic/legacy.o CC > arch/l4/l4lxlib/generic/thread_gen.o AR > arch/l4/l4lxlib/generic/lib.a LD > arch/l4/l4lxlib/l4env/built-in.o CC > arch/l4/l4lxlib/l4env/irq_vcpu.o CC > arch/l4/l4lxlib/l4env/memory.o CC arch/l4/l4lxlib/l4env/misc.o > CC arch/l4/l4lxlib/l4env/task.o CC > arch/l4/l4lxlib/l4env/thread.o AR arch/l4/l4lxlib/l4env/lib.a LD > virt/lib/built-in.o LD virt/built-in.o LINK vmlinux LD > vmlinux.o MODPOST vmlinux.o GEN .version CHK > include/generated/compile.h UPD include/generated/compile.h CC > init/version.o LD init/built-in.o drivers/built-in.o: In > function `sdhci_at91_probe': > /home/daniel/Desktop/l4re-snapshot/src/l4linux/build-arm/../drivers/mmc/host/sdhci-of-at91.c:212: > undefined reference to `clk_set_rate' make[1]: *** [vmlinux] Error 1 > make[1]: Leaving directory > `/home/daniel/Desktop/l4re-snapshot/src/l4linux/build-arm' make: *** > [sub-make] Error 2 > > > _______________________________________________ l4-hackers mailing > list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de > <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> > http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers <http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers>
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Adam
Adam adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de <mailto:adam@os.inf.tu-dresden.de mailto:adam@os.inf.tu-dresden.de> Lackorzynski http://os.inf.tu-dresden.de/~adam/ http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de <mailto:l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de mailto:l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
-- Matthias Lange, matthias.lange@kernkonzept.com mailto:matthias.lange@kernkonzept.com, +49-351-41 888 614
Kernkonzept GmbH. Sitz: Dresden. Amtsgericht Dresden, HRB 31129. Geschäftsführer: Dr.-Ing. Michael Hohmuth