2.l4_ipc_error( ),return 4,i look up in l4re document it means L4_ENOT_EXISTENT.but how can i solve that?
The documentation in the header file (pkg/l4sys/include/ipc.h) is quite clear about the error source: L4_IPC_ENOT_EXISTENT = 0x04, /**< Non-existing destination or source. could you please give us a minimal code example (including the lua script and both communcation partners) that >causes this? You communication partner has probably terminated or something like that.
i want to use touchscreen on my omap3530 board.then i add REQUIRES_LIBS_arm = libdrivers-input in file pkg/input/lib/src/makefie. then in function tsc_irq_func( ) in file pkg/drivers/input/src/tsc-omap3.c , l4_ipc_err( tag,l4_utcb()) return 4.
the arm-omap3.devs # OMAP3 (OMAP3EVM, Beagleboard)
hw-root { sys => new Device() { .hid = "System Control"; new-res Mmio(0x48002000 .. 0x48002fff); new-res Mmio(0x48004000 .. 0x48004fff); }
prcm => new Device() { .hid = "OMAP PRCM"; new-res Mmio(0x48004000 .. 0x48004fff); new-res Mmio(0x48005000 .. 0x48005fff); }
gpio => new Device() { .hid = "GPIO"; new-res Mmio(0x48004000 .. 0x48004fff); new-res Mmio(0x48310000 .. 0x48310fff); new-res Mmio(0x49050000 .. 0x49050fff); new-res Mmio(0x49052000 .. 0x49052fff); new-res Mmio(0x49054000 .. 0x49054fff); new-res Mmio(0x49056000 .. 0x49056fff); new-res Mmio(0x49058000 .. 0x49058fff); }
lcd => new Device() { .hid = "OMAP_LCD"; new-res Mmio(0x48050000 .. 0x48050fff); }
i2c1 => new Device() { .hid = "I2C"; new-res Mmio(0x48070000 .. 0x48070fff); }
kp => new Device() { .hid = "OMAP_KP"; new-res Mmio(0x48070000 .. 0x48070fff); }
mcspi => new Device() { .hid = "McSPI"; new-res Mmio(0x48098000 .. 0x48098fff); }
tsc => new Device() { .hid = "OMAP_TSC"; new-res Mmio(0x48098000 .. 0x48098fff); new-res Irq(32); } }
the l4_android-arm.vbus file is # vim:set ft=ioconfig: # configuration file for io
gui => new System_bus() { #KBD => wrap(hw-root.KBD); #MOUSE => wrap(hw-root.MOUSE); tsc => wrap(hw-root.tsc); mcspi => wrap(hw-root.mcspi); kp => wrap(hw-root.kp); i2c1 => wrap(hw-root.i2c1);
gpio => wrap(hw-root.gpio); }
fbdrv => new System_bus() { sys => wrap(hw-root.sys); lcd => wrap(hw-root.lcd); }
android_bus => new System_bus() { }
the cfg file is require("L4");
local lxname = "vmlinuz.android"; local l = L4.default_loader;
local io_caps = { sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0); gui = L4.default_loader:new_channel():svr(); android_bus = L4.default_loader:new_channel():svr(); fbdrv = L4.default_loader:new_channel():svr(); rom = L4.Env.rom; icu = L4.Env.icu; };
local fb_caps = { vbus = io_caps.fbdrv; rom = L4.Env.rom; fb = L4.default_loader:new_channel():svr(); };
L4.default_loader:startv( { caps = io_caps, log = { "io", "red" }, }, "rom/io", "rom/arm-omap3.devs", "rom/l4_android-arm.vbus");
L4.default_loader:startv( { caps = fb_caps, log = { "fb", "cyan" }, }, "rom/fb-drv");
local mag_caps = { mag = l:new_channel(), svc = l:new_channel(), };
l:start({ caps = { vbus = io_caps.gui, fb = fb_caps.fb, mag = mag_caps.mag:svr(), svc = mag_caps.svc:svr(), }, log = { "mag", "g" }, l4re_dbg = L4.Dbg.Warn, }, "rom/mag");
local android_caps = { log = L4.Env.log:m("rws"); vbus = io_caps.android_bus; rom = L4.Env.rom; fb = mag_caps.svc:create(L4.Proto.Goos, "g=800x476+0+0"); };
L4.default_loader:start( { caps = android_caps, l4re_dbg = L4.Dbg.Warn, log = { "android", "yellow" }, }, "rom/" .. lxname .. " console=ttyLv0 androidboot.console=ttyLv0 mem=128M l4bdds.add=rom/system-arm-ginger.img,rw boot=local android.ril=ttyLv1 ip=dhcp l4x_rd=rom/root-arm-ginger.img rw root=1:0 ramdisk_size=1500 init=/init --debug l4fb.touchscreen=1");
thanks!