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