|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] xen and pci
I have found one thing from my kernel configuration:
I use PCMCIA WLAN driver atmel_cs.c.
It requires CONFIG_ISA.
I do have:
CONFIG_ISA=y
CONFIG_ISAPNP=y
I don't know, why atmel_cs.c needs ISA bus.
atmel_cs.c notes, that if ISA bus is not enabled, the driver
might not be able to assign an IRQ. I don't know, on which
kind of PCMCIA hardware.
For other readers: my PCMCIA WLAN card works under Xen Domain-0.
I do have a working kernel configuration for it.
Here is a short summary, with the ISA bus:
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
CONFIG_ATMEL=m
CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
CONFIG_HOTPLUG_PCI_FAKE=m
CONFIG_HOTPLUG_PCI=m
CONFIG_HOTPLUG_PCI_PCIE=m
# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set
CONFIG_HOTPLUG_PCI_SHPC=m
# CONFIG_HOTPLUG_PCI_SHPC_PHPRM_LEGACY is not set
# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set
CONFIG_HOTPLUG=y
CONFIG_NET_PCMCIA=y
CONFIG_PCI_ATMEL=m
# CONFIG_PCMCIA_AHA152X is not set
CONFIG_PCMCIA_ATMEL=m
# CONFIG_PCMCIA_AXNET is not set
CONFIG_PCMCIA_DEBUG=y
# CONFIG_PCMCIA_FDOMAIN is not set
# CONFIG_PCMCIA_FMVJ18X is not set
# CONFIG_PCMCIA_NETWAVE is not set
# CONFIG_PCMCIA_NINJA_SCSI is not set
# CONFIG_PCMCIA_NMCLAN is not set
# CONFIG_PCMCIA_PCNET is not set
CONFIG_PCMCIA_PROBE=y
# CONFIG_PCMCIA_QLOGIC is not set
# CONFIG_PCMCIA_RAYCS is not set
# CONFIG_PCMCIA_SMC91C92 is not set
# CONFIG_PCMCIA_SYM53C500 is not set
# CONFIG_PCMCIA_WAVELAN is not set
# CONFIG_PCMCIA_WL3501 is not set
# CONFIG_PCMCIA_XIRCOM is not set
# CONFIG_PCMCIA_XIRC2PS is not set
# CONFIG_PCMCIA_XIRTULIP is not set
CONFIG_PCMCIA=y
# CONFIG_PCMCIA_3C574 is not set
# CONFIG_PCMCIA_3C589 is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_YENTA=m
# PCMCIA/CardBus support
# PCMCIA character devices
# PCMCIA network device support
# PCMCIA SCSI adapter support
CONFIG_GENERIC_ISA_DMA=y
CONFIG_ISA=y
#
CONFIG_ISAPNP=y
# CONFIG_PNPBIOS is not set
Marko Ristola
On Sat, 18 Dec 2004 18:41:31 -0500 (EST) Adam Sulmicki <adam@xxxxxxxxxxxx>
wrote:
> On Sat, 30 Oct 2004, Keir Fraser wrote:
>
> > *However* I think that pcmcia/cardbus bridges are safe to tell dom0
> > about (Xen cannot probe behind them) and they have a special subtype
> > that we could detect. So we can rejig the test that hides the bridges
> to
> > be a little bit smarter.
>
> > --- common/physdev.c 2004-10-22 11:51:50.918741798 +0100
> > +++ common-new/physdev.c 2004-10-30 08:40:33.513342843 +0100
> > @@ -747,7 +747,8 @@
> > *
> > * In Linux2.6 we set pcibios_scan_all_fns().
> > */
> > - if ( dev->hdr_type != PCI_HEADER_TYPE_NORMAL )
> > + if ( (dev->hdr_type != PCI_HEADER_TYPE_NORMAL) &&
> > + (dev->hdr_type != PCI_HEADER_TYPE_CARDBUS) )
> > continue;
> > pdev = xmalloc(sizeof(phys_dev_t));
> > pdev->dev = dev;
>
> The lack of pcmcia network was annoying me so I poked more around.
>
> The above fix helps in that linux can find the cardbus bridge.
>
> HOWEVER, once it finds it would like to configure devices behind this
> bridge, and it seems the xen prevents linux from doing just that.
>
> It seems like linux treats the stuff it finds behind cardbus bridge
> like
> PCI device (i'm not sure if it is a real device or just how linux
> treats
> it a virtual pci devices).
>
> thus for output of /sbin/lspci from linux classic we get
>
> redbull:/usr/src/cm/xen # /sbin/lspci
>
> 0000:00:00.0 Host bridge: Intel Corp. 82830 830 Chipset Host Bridge
> (rev 02)
> 0000:00:01.0 PCI bridge: Intel Corp. 82830 830 Chipset AGP Bridge (rev
> 02)
> 0000:00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev
> 01)
> 0000:00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev
> 01)
> 0000:00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev
> 01)
> 0000:00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 41)
> 0000:00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 01)
> 0000:00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 01)
> 0000:00:1f.3 SMBus: Intel Corp. 82801CA/CAM SMBus Controller (rev 01)
> 0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97
> Audio Controller (rev 01)
> 0000:01:00.0 VGA compatible controller: S3 Inc. SuperSavage IX/C SDR
> (rev 05)
> 0000:02:00.0 CardBus bridge: Texas Instruments PCI1420
> 0000:02:00.1 CardBus bridge: Texas Instruments PCI1420
> 0000:02:02.0 Communication controller: Lucent Microelectronics WinModem
> 56k (rev 01)
> 0000:02:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100
> VE (LOM) Ethernet Controller (rev 41)
> 0000:07:00.0 Ethernet controller: Xircom Cardbus Ethernet 10/100 (rev
> 03)
>
> redbull:/usr/src/cm/xen # /sbin/lspci -tv
>
> -[00]-+-00.0 Intel Corp. 82830 830 Chipset Host Bridge
> +-01.0-[01]----00.0 S3 Inc. SuperSavage IX/C SDR
> +-1d.0 Intel Corp. 82801CA/CAM USB (Hub #1)
> +-1d.1 Intel Corp. 82801CA/CAM USB (Hub #2)
> +-1d.2 Intel Corp. 82801CA/CAM USB (Hub #3)
> +-1e.0-[02-08]--+-[07]---00.0 Xircom Cardbus Ethernet 10/100
> | \-[02]-+-00.0 Texas Instruments PCI1420
> | +-00.1 Texas Instruments PCI1420
> | +-02.0 Lucent Microelectronics WinModem
> 56k
> | \-08.0 Intel Corp. 82801CAM (ICH3)
> PRO/100 VE (LOM) Ethernet Controller
> +-1f.0 Intel Corp. 82801CAM ISA Bridge (LPC)
> +-1f.1 Intel Corp. 82801CAM IDE U100
> +-1f.3 Intel Corp. 82801CA/CAM SMBus Controller
> \-1f.5 Intel Corp. 82801CA/CAM AC'97 Audio Controller
>
>
> ... but when we repeat it under xenolinux, we don't see the "PCI"
> device
> "Xircom Cardbus Ethernet 10/100" anymore (although we do see the
> cardbus
> bridge)
>
> redbull:/usr/src/cm/xen # /sbin/lspci
>
> 0000:00:00.0 Host bridge: Intel Corp. 82830 830 Chipset Host Bridge
> (rev 02)
> 0000:00:1d.0 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #1) (rev
> 01)
> 0000:00:1d.1 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #2) (rev
> 01)
> 0000:00:1d.2 USB Controller: Intel Corp. 82801CA/CAM USB (Hub #3) (rev
> 01)
> 0000:00:1f.0 ISA bridge: Intel Corp. 82801CAM ISA Bridge (LPC) (rev 01)
> 0000:00:1f.1 IDE interface: Intel Corp. 82801CAM IDE U100 (rev 01)
> 0000:00:1f.3 SMBus: Intel Corp. 82801CA/CAM SMBus Controller (rev 01)
> 0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801CA/CAM AC'97
> Audio Controller (rev 01)
> 0000:01:00.0 VGA compatible controller: S3 Inc. SuperSavage IX/C SDR
> (rev 05)
> 0000:02:00.0 CardBus bridge: Texas Instruments PCI1420
> 0000:02:00.1 CardBus bridge: Texas Instruments PCI1420
> 0000:02:02.0 Communication controller: Lucent Microelectronics WinModem
> 56k (rev 01)
> 0000:02:08.0 Ethernet controller: Intel Corp. 82801CAM (ICH3) PRO/100
> VE (LOM) Ethernet Controller (rev 41)
>
> redbull:/usr/src/cm/xen # /sbin/lspci -tv
>
> -+-[02]-+-00.0 Texas Instruments PCI1420
> | +-00.1 Texas Instruments PCI1420
> | +-02.0 Lucent Microelectronics WinModem 56k
> | \-08.0 Intel Corp. 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet
> Controller
> +-[01]---00.0 S3 Inc. SuperSavage IX/C SDR
> \-[00]-+-00.0 Intel Corp. 82830 830 Chipset Host Bridge
> +-1d.0 Intel Corp. 82801CA/CAM USB (Hub #1)
> +-1d.1 Intel Corp. 82801CA/CAM USB (Hub #2)
> +-1d.2 Intel Corp. 82801CA/CAM USB (Hub #3)
> +-1f.0 Intel Corp. 82801CAM ISA Bridge (LPC)
> +-1f.1 Intel Corp. 82801CAM IDE U100
> +-1f.3 Intel Corp. 82801CA/CAM SMBus Controller
> \-1f.5 Intel Corp. 82801CA/CAM AC'97 Audio Controller
>
> poking a bit around we can see that the xircom pci device gets added by
>
> yenta_socket.c. In there yenta_allocate_res() tries to allocate
> resources
> for those devices behing the bridge. However, it appears that xen
> prevents
> xenolinux just from doing that, as shown below.
>
> (XEN) 02:00:01 reg=0x14 len=0x01 val=0x00000210 0 Guest 0 attempting
> sub-dword read to BASE_ADDRESS 1
> (XEN) PCI: Found IRQ 9 for device 02:00.1
> (XEN) PCI: Sharing IRQ 9 with 00:1f.3
> (XEN) PCI: Sharing IRQ 9 with 00:1f.5
> (XEN) 02:00:01 reg=0x14 len=0x01 val=0x00000210 0 Guest 0 attempting
> sub-dword read to BASE_ADDRESS 1
> (XEN) 02:00:01 reg=0x18 len=0x04 val=0xb00a0702 0 Guest attempting
> update to BASE_ADDRESS 2
> (XEN) 02:00:01 reg=0x1c len=0x04 val=0x10c00000 0 Guest attempting
> update to BASE_ADDRESS 3
> (XEN) 02:00:01 reg=0x20 len=0x04 val=0x10ffffff 0 Guest attempting
> update to BASE_ADDRESS 4
> (XEN) 02:00:01 reg=0x24 len=0x04 val=0x11000000 0 Guest attempting
> update to BASE_ADDRESS 5
> (XEN) 02:00:01 reg=0x30 len=0x04 val=0x000048ff 0 caution: guest tried
> to change rom address.
> (XEN) b=7 d=0 f=0 target does not exist
> (XEN) pci_cfgreg_read : 07:00:00 reg=0x0e len=0x01 val=0xffffffff
> ret=0xffffffed
> (XEN) b=7 d=0 f=0 target does not exist
> (XEN) pci_cfgreg_read : 07:00:00 reg=0x00 len=0x04 val=0xffffffff
> ret=0xffffffed
>
> ideas?
>
>
> -------------------------------------------------------
> SF email is sponsored by - The IT Product Guide
> Read honest & candid reviews on hundreds of IT Products from real
> users.
> Discover which products truly live up to the hype. Start reading now.
> http://productguide.itmanagersjournal.com/
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/xen-devel
>
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- Re: [Xen-devel] xen and pci,
mristola <=
|
|
|
|
|