Hi,
On Mon Jul 07, 2014 at 23:40:22 +0200, Maria Soler wrote:
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
-v can be specified multiple times for more verbosity (such as -vvvv).
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(),
Put "prodb = prodb:svr()," here (instead of input).
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" },
Just use one of the 'log' entries here.
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?
For the register_obj to work, the statement in the lua script must be there, i.e. the name 'prodb' is important here.
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.
Adam