Fwd: Problems using qemu devices from l4re
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Tue Jul 8 00:05:36 CEST 2014
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
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list