l4linux, making progress

Ryan Brown ribrdb at gmail.com
Thu Jun 28 22:20:14 CEST 2012


Thanks, I'm up and running now!  What should the io config for rtc look
like? And what's the benefit of using rtc? I haven't given l4linux access
to any RTC hardware in my io config, but it seems to be running ok so far
without the rtc server.

On Thu, Jun 28, 2012 at 10:56 AM, Adam Lackorzynski <
adam at os.inf.tu-dresden.de> wrote:

> Hi,
>
> On Wed Jun 27, 2012 at 20:56:04 -0700, Ryan Brown wrote:
> > Ok, I tried it without the rtc server and got further. But now I'm
> getting
> > a kernel panic, and I still don't see any output from the linux kernel.
> How
> > can I get linux to output to the serial console?
> >
> > l4linux | libio: Warning: Finding 'icu' in system bus failed with 'No
> such
> > object found'
>
> This usually means that l4linux does not have a 'vbus' cap assigned.
>
> > l4linux | PH  0 (t:        1) offs=00001000 vaddr=00400000 vend=005d2000
> > l4linux |                     phys=00400000 ephys=005d2000
> > l4linux |                     f_sz=001d1040 memsz=001d2000 flgs=r-x
> > l4linux | PH  1 (t:        1) offs=001d3000 vaddr=005d2000 vend=00d39000
> > l4linux |                     phys=005d2000 ephys=00d39000
> > l4linux |                     f_sz=006c4102 memsz=00767000 flgs=rw-
> > l4linux | PH  2 (t:        4) offs=0015e948 vaddr=0055d948 vend=0055d96c
> > l4linux |                     phys=0055d948 ephys=0055d96c
> > l4linux |                     f_sz=00000024 memsz=00000024 flgs=---
> > l4linux | Starting binary at 0x400000, argc=2 argv=0x80007fa0
> > *argv=0xb1007ff4 argv0=rom/vmlinuz
> > l4linux | External resolver is at 0xa80006e0
> > l4linux | ======> L4Linux 2.6 starting... <========
> > l4linux | Linux version 3.0.0-l4-svn23 (ribrdb at ribox.sfo.corp.google.com
> )
> > (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) ) #15 Wed Jun 27 20:27:59
> PDT
> > 2012
> > l4linux | Binary name: rom/vmlinuz
> > l4linux | Linux kernel command line (1 args): mem=200M
>
> console=ttyLv0 earlyprintk=1
>  (of course needs earlyprintk-driver enabled)
>
> > l4linux | CPU mapping (l:p)[1]: 0:0
> > l4linux | Image: 00400000 - 00d39000 [9444 KiB].
> > l4linux | Areas: Text:     00400000 - 005d2000 [1864kB] (a bit longer)
> > l4linux |        Data:     005d2000 - 005edd20 [111kB]
> > l4linux |        Initdata: 005ef000 - 00c97000 [6816kB]
> > l4linux |        BSS:      00c98000 - 00d29000 [580kB]
> > l4linux | gs=43   fs=43
> > l4linux | Device scan:
> > l4linux | Device scan done.
> > l4linux | l4x_fiasco_gdt_entry_offset = 9
> > l4linux | upage
> > l4linux | l4lx_thread_create: Created thread 416 (cpu0) (u:b3000400,
> > v:b3000600, sp:005d3ff4)
> > l4linux | main thread will be 416
> > l4linux | l4x_register_pointer_section: addr = 005d2000 size = 7761920
> > l4linux | section-with-init: virt: 0x5d2000 to 0xd38fff [7580 KiB]
> > l4linux | section-with-init: Phys: 0x00649000 to 0x00db0000, Size:
>  7761920
> > l4linux | l4x_linux_startup: thread 416.
> > l4linux | Main thread running, waiting...
> > l4linux | main thread: received startup message.
> > l4linux | l4x_setup_memory: Forcing superpages for main memory
> > l4linux | l4re_global_env: 0xb1007f34
> > l4linux | Main memory size: 200MB
> > l4linux |     Main memory: virt: 0x1000000 to 0xd7fffff [204800 KiB]
> > l4linux |     Main memory: Phys: 0x02c00000 to 0x0f400000, Size:
> 209715200
> > l4linux | Filling lower ptabs...
> > l4linux | Done (1707 entries).
> > l4linux | l4x_register_pointer_section: addr = 005d2000 size = 7761920
> > l4linux |             end: virt: 0x5d2000 to 0xd38fff [7580 KiB]
> > l4linux |             end: Phys: 0x00649000 to 0x00db0000, Size:  7761920
> > l4linux | l4lx_thread_create: Created thread 41d (timer.i0) (u:b3000800,
> > v:00000000, sp:00cc3ff8)
> > l4linux | timer_irq_thread: Starting timer IRQ thread.
> > l4linux | panic: going to sleep forever, bye
> >
> >
> > On Wed, Jun 27, 2012 at 4:28 PM, Ryan Brown <ribrdb at gmail.com> wrote:
> >
> > > I've managed to get my l4linux build to start running, but it doesn't
> seem
> > > to get far:
> > > l4linux | libio: Warning: Finding 'icu' in system bus failed with 'No
> such
> > > object found'
> > > 4linux | PH  0 (t:        1) offs=00001000 vaddr=00400000 vend=005d1000
> > > l4linux |                     phys=00400000 ephys=005d1000
> > > l4linux |                     f_sz=001d0cb8 memsz=001d1000 flgs=r-x
> > > l4linux | PH  1 (t:        1) offs=001d2000 vaddr=005d1000
> vend=00d36000
> > > l4linux |                     phys=005d1000 ephys=00d36000
> > > l4linux |                     f_sz=006c4c10 memsz=00765000 flgs=rw-
> > > l4linux | PH  2 (t:        4) offs=0015df14 vaddr=0055cf14
> vend=0055cf38
> > > l4linux |                     phys=0055cf14 ephys=0055cf38
> > > l4linux |                     f_sz=00000024 memsz=00000024 flgs=---
> > > l4linux | Starting binary at 0x400000, argc=3 argv=0x80007f9c
> > > *argv=0xb1007ff4 argv0=rom/vmlinuz
> > > l4linux | External resolver is at 0xa80006e0
> > > l4linux | ======> L4Linux 2.6 starting... <========
> > > l4linux | Linux version 3.0.0-l4-svn23 (
> ribrdb at ribox.sfo.corp.google.com)
> > > (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) ) #10 Wed Jun 27 16:00:19
> PDT
> > > 2012
> > > l4linux | Binary name: rom/vmlinuz
> > > l4linux | Linux kernel command line (2 args): mem=200M console=ttyLv0
>
> console=ttyLv0 is good :)
>
> > > l4linux | Configuration checks disabled, you know what you're doing.
> > > l4linux | CPU mapping (l:p)[1]: 0:0
> > > l4linux | Image: 00400000 - 00d36000 [9432 KiB].
> > > l4linux | Areas: Text:     00400000 - 005d1000 [1860kB] (a bit longer)
> > > l4linux |        Data:     005d1000 - 005edc60 [115kB]
> > > l4linux |        Initdata: 005ef000 - 00c96000 [6812kB]
> > > l4linux |        BSS:      00c96000 - 00d26000 [576kB]
> > > l4linux | gs=43   fs=43
> > > l4linux | Device scan:
> > > l4linux | l4x_fiasco_gdt_entry_offset = 9
> > >
> > > Then it just stops.  What's happened here? Should I see more output? Or
> > > does the kernel output go somewhere else? I've compiled my kernel with
> an
> > > initramfs that does an "echo hello init" at the beginning of init, but
> I
> > > never see that.
>
> You should see the complete kernel boot log as we're all used to and
> then the output of your init.
>
> > > Do I need to worry about that 'icu' 'No such object found'? I tried
> adding
> > > a capability to icu for l4linux, but that didn't seem to help.
>
> It just means it won't get any devices (device scan also showed that
> nothing was found). But this does not prevent that it does not work at
> all.
>
> > >
> > > Also, I'm having trouble getting my io config correct. IO prints out:
> > > io      | Loading: config 'rom/l4lx-virtio.io'
> > > io      | rom/l4lx-virtio.io:7.37-50: warning: could not find
> > > 'PCI/VEN_1AF4'
> > >
> > > but then later on I see:
> > >
> > > io      |     P6Device: S4__ ""
> > > io      |     Hw::Device[S4__]
> > > io      |       0000:00:04.0: display controller [0]
> > > io      |                     0x1af4 0x1000
> > > io      |                     Red Hat, Inc Virtio network device
> > > io      |       IOPORT  [0000000000c000-0000000000c03f 40] non-pref
> > > (32bit) (align=3f flags=4a03)
> > > io      |       IRQ     [0000000000000b-0000000000000b 1] level high
> > > (32bit) (align=0 flags=104201)
> > >
> > > What's up with that?
>
> Buggy, VEN_ and DEV_ mixed up, so DEV_ should do.
>
> > > l4lx-virtio.cfg
> > >
> > > loader = L4.default_loader;
> > >
> > > bus_linux = loader:new_channel();
> > > bus_rtc = loader:new_channel();
> > > rtc_cap = loader:new_channel();
> > >
> > > loader:start({
> > >   caps = {
> > >     rom = rom;
> > >     sigma0 = L4.cast(L4.Proto.Factory,
> > > L4.Env.sigma0):create(L4.Proto.Sigma0);
> > >     l4linux = bus_linux:svr();
> > >     icu = L4.Env.icu;
> > >     rtc_bus = bus_rtc:svr();
> > >   },
> > >   log = { "io", "red" },
> > > }, "rom/io -vvvv rom/x86-legacy.devs rom/l4lx-virtio.io");
> > >
> > > loader:start({
> > >   caps = {
> > >     rom = rom;
> > >     vbus = bus_rtc;
> > >     rtc = rtc_cap:svr();
> > >   },
> > >   log = { "rtc", "green" },
> > > }, "rom/rtc");
> > >
> > > L4.default_loader:start(
> > >   { caps = {
> > >       log = L4.Env.log:m("rws");
> > >       vbus = bus_linux;
> > >       rtc = rtc_cap;
> > >     },
> > >     l4re_dbg = L4.Dbg.Warn,
> > >     log = { "l4linux", "yellow" },
> > >   },
> > >   "rom/vmlinuz mem=200M console=ttyLv0 ");
> > >
> > > l4lx-virtio.io
> > >
> > > l4linux => new System_bus()
> > > {
> > >   # Add a new virtual PCI root bridge
> > >   PCI0 => new PCI_bus()
> > >   {
> > >     # Allow access to virtio devices.
> > >     pci_l4x[] => wrap(hw-root.match("PCI/VEN_1AF4"));
> > >   }
> > > }
>
> For rtc the io config is missing its bus but otherwise it looks ok.
> So I do not understand why L4Linux doesn't get it.
>
>
>
>
> Adam
> --
> Adam                 adam at os.inf.tu-dresden.de
>   Lackorzynski         http://os.inf.tu-dresden.de/~adam/
>
> _______________________________________________
> l4-hackers mailing list
> l4-hackers at os.inf.tu-dresden.de
> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20120628/cfdb8127/attachment.html>


More information about the l4-hackers mailing list