Re: Fwd: Problems using qemu devices from l4re

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
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                 [email protected]
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.