l4linux with ide-harddisk
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Sat Aug 10 23:20:06 CEST 2013
Hi,
On Wed Aug 07, 2013 at 15:11:50 +0200, Rudolf Weber wrote:
> I prepared a 32 bit ubuntu system on a virtualbox and replaced the linux - Kernel through the
> l4re-snapshot-2013060718 - L4Linux-mag-x86 Konfiguration.
>
> First I made a disk and add it to the vm and I could mount it !
You mounted it while booting from the ramdisk?
> I wonder ( see later).
>
> Now I configured the Ubuntu-Linux-Root-Disk as /dev/hda and:
> ...
> piix 0000:00:03.0: IDE controller (0x8086:0x7111 rev 0x01)
> pci 0000:00:03.0: No interrupt pin configured for device 0000:00:03.0
> piix 0000:00:03.0: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xd000-0xd007
> ide1: BM-DMA at 0xd008-0xd00f
> hdc: VBOX CD-ROM, ATAPI CD/DVD-ROM drive
> hdc: UDMA/33 mode selected
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> ESC[37mio | ERROR: binding irq 15, result is -1 (Operation not permitted)
> ESC[0m
> ESC[33ml4linux | Bind irq to icu failed with -1ESC[0m
> l4x-irq: Did not get IRQ 15 from IO service
>
>
> ==> I think, the interupt is not delegated from the IO-Server to l4linux
> My understanding is, that the io-Server manage all interrupts,ioports.
> But why I could mount a disk ?
>
> I dont see a device in x86-legacy.dev, so I add IDE0 and IDE1 (see attachment),
> and add a systembus
>
> disks => new System_bus()
> {
> IDE0 => wrap(hw-root.match("ide0"));
> IDE1 => wrap(hw-root.match("ide1"));
> }
> in
> l4lx-x86.io (see attachment)
Two issues here:
- There's only one vbus per client (e.g. L4Linux), adding another one,
and giving it to the client under another (unknown) name will not
make the client use those devices.
- The disk controller (and thus the disks) are already included in
your l4linux vbus because of the specified PCI class.
> in the start-config l4lx-gfx.cfg the disks are granted to l4linux (see attachment)
>
> As result, the output is
> piix 0000:00:03.0: IDE controller (0x8086:0x7111 rev 0x01)
> pci 0000:00:03.0: No interrupt pin configured for device 0000:00:03.0
> piix 0000:00:03.0: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xd000-0xd007
> ide1: BM-DMA at 0xd008-0xd00f
> hda: VBOX HARDDISK, ATA DISK drive
> hda: UDMA/33 mode selected
> hdc: VBOX CD-ROM, ATAPI CD/DVD-ROM drive
> Switching to clocksource tsc
> hdc: UDMA/33 mode selected
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> ESC[33ml4linux | Bind irq to icu failed with -1ESC[0m
> l4x-irq: Did not get IRQ 15 from IO service
> ------------[ cut here ]------------
> WARNING: at /home/rw/l4exp/l4re-snapshot-2013060718/src/l4linux/arch/l4/l4lxlib/
> l4env/irq_vcpu.c:106 l4lx_irq_dev_startup+0x17a/0x180()
> Modules linked in:
> Pid: 1, comm: swapper Not tainted 3.9.0-l4 #1
> Call Trace:
>
> -> the ERROR "ERROR: binding irq 15, result is -1 (Operation not permitted)"
> don't appear,
> but the result is the same.
>
> The current output of the serialine is in l4ubuntu.1
>
> The l4-linux I configured with PCI/VPCI see attatchment x86_rw_config like in my last E-mails.
>
> Summary:
> * How to grant the ide-Controllers to l4linux ?
> * Why l4Linux can't get the interrupt - what is wrong with my configuration ?
You should add -vvv (or more) to rom/io in the start script. Then you'll
see what has actually been put on each clients vbus. There we should see
more details.
> HW-Question: How are the IDE-Controllers and the PCI related ?
An IDE controller is a PCI device, that's why scanning the PCI bus will
find it. The disk controller driver will then find the connected disks.
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