Re: l4linux with ide-harddisk

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
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                 [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.