hello I have some sunpci card and I want to made a driver for it. It is a card which includes an x86 processor, RAM, expansion ports, and an onboard graphics controller, allowing complete x86 operating environments on Sun Workstations. My first goal is to be able to see all devices present on this card and use it under Linux. My second goal is to use it like we can use it under Solaris. When plugged, I can see it with prtconf Node 0xf0092a38 .node: f0092a38 interrupt-map: 00010000.00000000.00000000.00000001.f0064548.00000019.00010000.00000000.00000000.00000002.f0064548.00000002.00010000.00000000.00000000.00000003.f0064548.00000018.00010000.00000000.00000000.00000004.f0064548.00000008.00010800.00000000.00000000.00000001.f0064548.0000000a.00010800.00000000.00000000.00000002.f0064548.0000001b.00010800.00000000.00000000.00000003.f0064548.0000000b.00010800.00000000.00000000.00000004.f0064548.0000001a.00011000.00000000.00000000.00000001.f0064548.00000015.00011000.00000000.00000000.00000002.f0064548.00000005.00011000.00000000.00000000.00000003.f0064548.00000014.00011000.00000000.00000000.00000004.f0064548.00000004 interrupt-map-mask: 00fff800.00000000.00000000.00000007 ranges: bus-range: 00000001.00000001 compatible: 70636931.3031312c.32342e33.00706369.31303131.2c323400.70636963.6c617373.2c303630.34303000.70636963.6c617373.2c303630.3400 reg: 00002800.00000000.00000000.00000000.00000000 #address-cells: 00000003 #size-cells: 00000002 device_type: 'pci' name: 'pci' fast-back-to-back: devsel-speed: 00000001 class-code: 00060400 latency-timer: 00000040 cache-line-size: 00000010 revision-id: 00000003 device-id: 00000024 vendor-id: 00001011 and lspci 00:05.0 PCI bridge: Digital Equipment Corporation DECchip 21152 (rev 03) (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 64, Cache Line Size: 64 bytes Region 0: [virtual] Memory at fffffe0100000000 (32-bit, non-prefetchable) [size=1] Region 1: [virtual] Memory at fffffe0100000000 (32-bit, non-prefetchable) [size=1] Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 00001000-00000fff Memory behind bridge: 04000000-03ffffff Prefetchable memory behind bridge: fffffffffff00000-00000000000fffff Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ <SERR- <PERR- [virtual] Expansion ROM at fffffe0100000000 [disabled] [size=1] BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: [dc] Power Management version 1 Flags: PMEClk- DSI- D1- D2- AuxCurrent=220mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Bridge: PM- B3+ You can see that ranges for I/O, memory and prefetchable memory are unusable. I think this is because the value "ranges" in OF(open-firmware) is NULL. And so of_scan_pci_bridge() use pci_cfg_fake_ranges() for getting limits values directly from the sunpci card. But theses values are 0. So I have some questions - Does setting manually IO/mem limits in the card (via a pci_write_config_word(dev, PCI_MEMORY_LIMIT, somevalue); for example) works ? and which values to set ? (base + 0xfff/0xfffff ?) - How can OpenFirmware could be aware of the IO/memory ranges of the sunpci cards ? perhaps via an OBP command at start ? Thanks in advance -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html