list of PCI_MEM_ONLY devices

Additional operating system/hardware discussion (Windows, Linux, *BSD and others)
Forum rules
Any posts concerning pirated software or offering to buy/sell/trade commercial software are subject to removal.
User avatar
shutitalldown
Posts: 177
Joined: Sat Feb 10, 2018 3:28 am

list of PCI_MEM_ONLY devices

Unread postby shutitalldown » Thu Mar 15, 2018 1:11 pm

The PCI is an ugly beast, boards can be made for PCI_IO, PCI_MEM, or both.
I need a list of devices known to work as memory mapped PCI devices.

In the list:
- sATA controllers
- pATA controllers
- SAS controllers
- firewire controllers
- SCSI controllers
- RS232/RS422 controllers
- Ethernet 100Base-T controllers
- Ethernet 1000Base-T controllers
- Ethernet 100Base-SX controllers
- USB (ohci, ehci) controllers
- FC controllers

you can check if it's PCI_MEM_ONLY by watching at the output of

Code: Select all

lspci -v


examples:

Code: Select all

00:0f.1 SCSI storage controller: LSI Logic / Symbios Logic 53C896/897 (rev 07)
        Subsystem: LSI53C896/7 PCI to Dual Channel Ultra2 SCSI Multifunction Controller
        Flags: bus master, medium devsel, latency 255, IRQ 20
        I/O ports at 0800 [size=256]
        Memory at fffffffff4004000 (64-bit, non-prefetchable) [size=1K]
        Memory at fffffffff4000000 (64-bit, non-prefetchable) [size=8K]
        Capabilities: [40] Power Management version 2
        Kernel driver in use: sym53c8xx


I/O ports at 0800 ---> it uses PCI_IO
Memory at ---> it uses PCI_MEM
it's a combined PCI device!


Code: Select all

01:05.0 RAID bus controller: VIA Technologies, Inc. VT6421 IDE/SATA Controller (rev 50)
        Subsystem: VIA Technologies, Inc. VT6421 IDE/SATA Controller
        Flags: bus master, medium devsel, latency 240, IRQ 21
        I/O ports at 12500 [size=16]
        I/O ports at 12400 [size=16]
        I/O ports at 12300 [size=16]
        I/O ports at 12200 [size=16]
        I/O ports at 12100 [size=32]
        I/O ports at 12000 [size=256]
        Expansion ROM at fffffffff4800000 [disabled] [size=64K]
        Capabilities: [e0] Power Management version 2
        Kernel driver in use: sata_via


I/O ports at 12500 ---> it uses PCI_IO
it's a PCI_IO_ONLY device (exactly the opposite of what I need)

Code: Select all

00:0e.2 USB controller: National Semiconductor Corporation USB Controller (rev 02) (prog-if 10 [OHCI])
        Flags: bus master, medium devsel, latency 240, IRQ 1
        Memory at fffffffff4007000 (32-bit, non-prefetchable) [size=4K]
        Memory at fffffffff4006000 (32-bit, non-prefetchable) [size=4K]
        Kernel driver in use: ohci-pci


Memory at fffffffff4007000 ---> it uses PCI_MEM
Bingo!!! here it is an example of PCI_MEM_ONLY :D
I am tattooed in reverse, cause if you break rules you don't know where it leads.
But, say, all the venus in furs are so manically depressed and manically dressed.

robespierre
Posts: 1698
Joined: Mon Sep 12, 2011 2:28 pm
Location: Boston

Re: list of PCI_MEM_ONLY devices

Unread postby robespierre » Thu Mar 15, 2018 2:11 pm

The host PCI bridge is normally configurable to provide windows into the PCI's memory, I/O, and configuration spaces, of which the configuration space is separate and also required for every device.
:PI: :O2: :Indigo2IMP: :Indigo2IMP:

User avatar
shutitalldown
Posts: 177
Joined: Sat Feb 10, 2018 3:28 am

Re: list of PCI_MEM_ONLY devices

Unread postby shutitalldown » Thu Mar 15, 2018 2:47 pm

Devices classified "PCI_MEM_ONLY" included, of course, their configuration space (that is like accessing memory), but I have hardware that can't perform PCI_IO, and that *IS* the reason for my request.
I am tattooed in reverse, cause if you break rules you don't know where it leads.
But, say, all the venus in furs are so manically depressed and manically dressed.

User avatar
jan-jaap
Donor
Donor
Posts: 5071
Joined: Thu Jun 17, 2004 11:35 am
Location: Wijchen, The Netherlands
Contact:

Re: list of PCI_MEM_ONLY devices

Unread postby jan-jaap » Thu Mar 15, 2018 3:51 pm

shutitalldown wrote:I have hardware that can't perform PCI_IO, and that *IS* the reason for my request.

So your hardware has a PCI bus, but is at best partially compliant with the PCI spec? Are you sure you're not violating some other platform dependent constraint? For example, the config space should allow byte reads and writes, but memory areas may need to be accessed as properly aligned 32bit numbers. Failing to do that can result in aborted transactions on the PCI bus.

User avatar
shutitalldown
Posts: 177
Joined: Sat Feb 10, 2018 3:28 am

Re: list of PCI_MEM_ONLY devices

Unread postby shutitalldown » Fri Mar 16, 2018 2:22 am

The PCI configuration space is not affected by the request I did: A PCI_MEM_ONLY device includes its configuration space, that is fully compliant to spec, it simply misses the PCI_IO.

jan-jaap wrote:So your hardware has a PCI bus, but is at best partially compliant with the PCI spec?


The PCI_IO is not mandatory. It is possible, but not mandatory. It's more a request "de-facto" since PCs have always implemented both, PCI_IO and PCI_mem in their expansion cards. It has always been a natural choice for them, followed by RISC workstations, that come with a special hardware to satisfy expansion cards (90% designed for PCs, and then adapted, e.g. Apple PowerMac's PCI cards). But in my case, I don't have any PCI_IO circuits in the PCI controller on the bus.

I need a list, guys. If you can help :D
I am tattooed in reverse, cause if you break rules you don't know where it leads.
But, say, all the venus in furs are so manically depressed and manically dressed.


Return to “Miscellaneous Operating Systems/Hardware”

Who is online

Users browsing this forum: No registered users and 2 guests