Hello again,
Still the same problem, I cannot make it work. I have activated -v in io (you said there are several -v options, where can I find more information? I couldn't find anything about that so far) and made some changes in the cfg and io files. Actually I have created a devs file. The current state of these files is:
app.cfg ---------------------------------------------------------------------------------- -- Include L4 functionality require("L4");
local l = L4.default_loader; local nsshm = l:create_namespace({}); local prodb = l:new_channel();
-- Start io
l:start( { caps = { input = prodb:svr(), icu = L4.Env.icu, sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0), }, }, "rom/io -v rom/app.devs rom/app.io");
l:start( { caps = { log = L4.Env.log:m("wrs"), vbus = prodb, }, log = { "app", "green" }, l4re_dbg = L4.Dbg.Warn, }, "rom/app" ); ----------------------------------------------------------------------------------
app.devs ---------------------------------------------------------------------------------- -- Configure two platform devices to be known to io Io.hw_add_devices { COMM = Io.Hw.Device { hid = "COMM"; Io.Res.irq(63); Io.Res.mmio(0xXXXXXX, 0xYYYYYYY); Io.Res.mmio(0xWWWWW, 0xZZZZZZZZ); } } -- Io.add_vbus("prodb", Io.Vi.System_bus -- { -- COMM = wrap(Io.Hw:match("COMM")); -- }) ----------------------------------------------------------------------------------
and app.io ---------------------------------------------------------------------------------- prodb => new System_bus() { COMM => wrap(hw-root.COMM); } ----------------------------------------------------------------------------------
The verbosity has not improved much. The output is: io | Dev_factory: register factory for N2Hw6DeviceE io | GTF: register factory for 7Pci_dev io | GTF: register factory for N2Hw12Msi_resourceE io | Dev_factory: register factory for N2Hw11Gpio_deviceE io | Io service io | WARNING: Service registration failed: 'prodb' io | Ready. Waiting for request.
So the new piece of information is only WARNING: Service registration failed: 'prodb' " Checking the code, this comes from l4/pkg/io/server/src/main.cc - Add_system_bus, so the check registry->register_obj(b, b->name()).is_valid() fails, which means that the bus created in the io file is not valid and so it is not registered. Is this the reason why the execution gets stalled? Can you see what it is that I am doing wrong now and what a possible fix may be?
Checking the configuration files l4/conf/examples/arm-rv-lcd.cfg l4/conf/examples/arm-rv-lcd.io and l4/pkg/io/config/arm-rv-eb.devs there is no relevant difference that I can see with my configuration files (other than the use of mag, which I don't know and my configuration files being much more simple). I would really appreciate any piece of advice.
Than you very much, MarĂa Soler.