On Mon, Aug 02, 2010 at 06:42:11PM +0900, KIYOHARA Takashi wrote: > Hi! Quentin, > > > From: Quentin Garnier <cube%cubidou.net@localhost> > 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. > > > pchb@acpi has been fairly supported in FreeBSD since before. > > > > > > ftp://ftp.netbsd.org/pub/NetBSD/misc/kiyohara/ia64/pchb%acpi-support.diff@localhost > > > > 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 dyoung%ojctech.com@localhost 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>