On Mon, Aug 02, 2010 at 06:42:11PM +0900, KIYOHARA Takashi wrote: > Hi! Quentin, > > > From: Quentin Garnier <[email protected]> > Date: Sun, 1 Aug 2010 15:21:18 +0000 > > > On Sun, Aug 01, 2010 at 11:17:54PM +0900, KIYOHARA Takashi wrote: > > > > All recent PC has information on PCI in ACPI. > > > We can attach pchb in acpi like a lot of other acpi devices. > > > p...@acpi has been fairly supported in FreeBSD since before. > > > > > > ftp://ftp.netbsd.org/pub/NetBSD/misc/kiyohara/ia64/[email protected] > > > > Do you have anything further in mind? This patch is only dmesg > > cosmetics. > > No, I don't. > My ia64 machine not need it. > However it pass segment information to pci(4) in the future possibly.
What kind of segment information? Attached is a preview of information that I supply to instances of pci(4), ppb(4), and cbb(4) through their device properties. The information will help them manage PCI address spaces and to program their address windows correctly, so that I can retire rbus and PCI_ADDR_FIXUP, whose heuristics are incomplete. Currently, I derive the information by scanning PCI Configuration Space. The system BIOS---be it OpenFirmware, ACPI, or something else---may supply similar information. Dave -- David Young OJC Technologies [email protected] Urbana, IL * (217) 278-3933
Properties for device `pci0': <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>device-driver</key> <string>pci</string> <key>device-unit</key> <integer>0x0</integer> <key>pci-resources</key> <dict> <key>memory</key> <dict> <key>bios-reservations</key> <array> <dict> <key>address</key> <integer>0xf2000000</integer> <key>bus</key> <integer>0x0</integer> <key>device</key> <integer>0x2</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x6000000</integer> <key>type</key> <string>window</string> </dict> <dict> <key>address</key> <integer>0xfc300000</integer> <key>bus</key> <integer>0x0</integer> <key>device</key> <integer>0x3</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x300000</integer> <key>type</key> <string>window</string> </dict> <dict> <key>address</key> <integer>0xf8000000</integer> <key>bus</key> <integer>0x0</integer> <key>device</key> <integer>0x1c</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x4000000</integer> <key>type</key> <string>window</string> </dict> <dict> <key>address</key> <integer>0xfc600000</integer> <key>bus</key> <integer>0x0</integer> <key>device</key> <integer>0x1d</integer> <key>function</key> <integer>0x7</integer> <key>size</key> <integer>0x400</integer> <key>type</key> <string>BAR</string> </dict> <dict> <key>address</key> <integer>0xfc100000</integer> <key>bus</key> <integer>0x0</integer> <key>device</key> <integer>0x1e</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x200000</integer> <key>type</key> <string>window</string> </dict> <dict> <key>address</key> <integer>0xfc400000</integer> <key>bus</key> <integer>0x1</integer> <key>device</key> <integer>0x0</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x200000</integer> <key>type</key> <string>window</string> </dict> <dict> <key>address</key> <integer>0xd80f0000</integer> <key>bus</key> <integer>0x2</integer> <key>device</key> <integer>0xe</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x10000</integer> <key>type</key> <string>BAR</string> </dict> <dict> <key>address</key> <integer>0xfc5c0000</integer> <key>bus</key> <integer>0x2</integer> <key>device</key> <integer>0xe</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x20000</integer> <key>type</key> <string>BAR</string> </dict> <dict> <key>address</key> <integer>0xf8000000</integer> <key>bus</key> <integer>0x4</integer> <key>device</key> <integer>0x0</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x4000000</integer> <key>type</key> <string>window</string> </dict> <dict> <key>address</key> <integer>0xf8000000</integer> <key>bus</key> <integer>0x5</integer> <key>device</key> <integer>0x0</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x2000000</integer> <key>type</key> <string>BAR</string> </dict> <dict> <key>address</key> <integer>0xf4000000</integer> <key>bus</key> <integer>0x6</integer> <key>device</key> <integer>0x0</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x4000000</integer> <key>type</key> <string>window</string> </dict> <dict> <key>address</key> <integer>0xf4000000</integer> <key>bus</key> <integer>0x7</integer> <key>device</key> <integer>0x0</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x4000000</integer> <key>type</key> <string>window</string> </dict> <dict> <key>address</key> <integer>0xf4000000</integer> <key>bus</key> <integer>0x8</integer> <key>device</key> <integer>0x0</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x4000000</integer> <key>type</key> <string>window</string> </dict> <dict> <key>address</key> <integer>0xf4000000</integer> <key>bus</key> <integer>0x9</integer> <key>device</key> <integer>0x0</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x2000000</integer> <key>type</key> <string>BAR</string> </dict> <dict> <key>address</key> <integer>0xd0000000</integer> <key>bus</key> <integer>0x10</integer> <key>device</key> <integer>0xd</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x8000000</integer> <key>type</key> <string>BAR</string> </dict> <dict> <key>address</key> <integer>0xfc2d0000</integer> <key>bus</key> <integer>0x10</integer> <key>device</key> <integer>0xd</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x10000</integer> <key>type</key> <string>BAR</string> </dict> </array> <key>size</key> <integer>0x2c600400</integer> <key>start</key> <integer>0xd0000000</integer> </dict> </dict> </dict> </plist>
Properties for device `pci4': <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>device-driver</key> <string>pci</string> <key>device-unit</key> <integer>0x4</integer> <key>pci-resources</key> <dict> <key>memory</key> <dict> <key>bios-reservations</key> <array> <dict> <key>address</key> <integer>0xf4000000</integer> <key>bus</key> <integer>0x9</integer> <key>device</key> <integer>0x0</integer> <key>function</key> <integer>0x0</integer> <key>size</key> <integer>0x2000000</integer> <key>type</key> <string>BAR</string> </dict> </array> <key>size</key> <integer>0x2c600400</integer> <key>start</key> <integer>0xd0000000</integer> </dict> </dict> </dict> </plist>
