Dear L4Hackers,
I have a problem running the example "isr" in the pkg/examples/sys/isr folder in l4 source. It prints "isr | Press keys now, Shift-Q to exit" then It fails to detect any interrupts and just keeps waiting. My configuration is as follows, emulated using Qemu on vexpress-a15 machine:
modules.list:
entry isr kernel fiasco -jdb_cmd=JS -serial_esc roottask moe rom/ex_isr.cfg module ex_isr.cfg module isr module ned module l4re module keyboard.io module arm-ve.devs module io module cons
arm-ve.devs: -- vim:set ft=lua:
local Res = Io.Res local Hw = Io.Hw
Io.hw_add_devices(function() KBD = Hw.Device(function() Property.hid = "AMBA KMI Kbd"; compatible = {"arm,pl050","arm,primecell"}; Resource.irq = Res.irq(44); Resource.regs = Res.mmio(0x1c060000, 0x1c060010); end); end)
keyboard.io: local hw = Io.system_bus();
Io.add_vbus("keyboard", Io.Vi.System_bus { amba = wrap(hw:match("arm,pl050")); })
ex_isr.cfg: local L4 = require("L4");
local loader = L4.default_loader; vbus_key = loader:new_channel();
local cons = loader:new_channel(); loader:start( { caps = { cons = cons:svr() }, log = L4.Env.log, }, "rom/cons -k -a" );
L4.default_loader.log_fab = cons;
loader:start( { caps = { sigma0 = L4.cast(L4.Proto.Factory,L4.Env.sigma0):create(L4.Proto.Sigma0); icu = L4.Env.icu; keyboard = vbus_key:svr(); }, l4re_dbg = L4.Dbg.Boot, log = {"IO", "magenta"}, }, "rom/io -vvv rom/arm-ve.devs rom/keyboard.io");
loader:start({ caps = { icu = L4.Env.icu; vbus = vbus_key }, log = {"isr", "cyan", "key=1"}, }, "rom/isr");
where "rom/isr" refers to the example file "isr/main.c" provided.
Thank you so much Nourhan