Subject: Re: explanation for "new technology" needed
To: Wojciech Puchar <wojtek@tensor.3miasto.net>
From: Charles Swiger <cswiger@mac.com>
List: netbsd-users
Date: 07/23/2005 16:14:19
On Jul 23, 2005, at 12:29 PM, Wojciech Puchar wrote:
>>> anyway - FreeBSD 5.4/amd64 (tried booting from install CD) allocates
>>> different IRQ for every device and all works fine?
>
> more strange - builtin network card ACTUALLY WORKS with FreeBSD- 
> current.
> with every other OS it isn't detected at all (not detected as PCI  
> device at all, not just no driver)!
>
> magic? maybe but i will ask on FreeBSD groups.

Is the NIC attaching at an IRQ greater than 15, BTW?  If so, you  
might even have more than one PCI bus running and have PCI-PCI  
bridges present:

For example, a Dell PE2950 box below has the integrated Intel NIC  
(em0) at irq64:

% vmstat -i
interrupt                          total       rate
irq4: sio0                       1702543          2
irq8: rtc                      108857041        127
irq13: npx0                            1          0
irq14: ata0                           46          0
irq16: uhci0                     7106600          8
irq18: uhci2                     4085456          4
irq19: uhci1                       43059          0
irq46: amr0                      3889370          4
irq64: em0                       7080781          8
irq0: clk                       85043347         99
Total                          217808244        256

ioapic0 <Version 2.0> irqs 0-23 on motherboard
ioapic1 <Version 2.0> irqs 32-55 on motherboard
ioapic2 <Version 2.0> irqs 64-87 on motherboard
ioapic3 <Version 2.0> irqs 96-119 on motherboard
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 2.0 on pci0
pci1: <ACPI PCI bus> on pcib1
[ ... ]
pcib6: <ACPI PCI-PCI bridge> at device 0.0 on pci5
pci6: <ACPI PCI bus> on pcib6
em0: <Intel(R) PRO/1000 Network Connection, Version - 1.7.35> port  
0xdcc0-0xdcff
mem 0xdfae0000-0xdfafffff irq 64 at device 7.0 on pci6

Anyway, without ACPI and the APIC enabled, your AMD64 hardware is  
probably setting up a broken $PIR table, which the right drivers know  
how to fix.  Basicly, if the hardware doesn't allocate an interrupt  
for the devices it sees, the drivers have to when they attach.   
Likewise, if the hardware is lurking behind a PCI-PCI bridge (also  
happens with laptops, particularly devices accessed via a docking  
station), then a simple probe might not find it.

> looks like Microstar made BIOS that f...s things up intentionally  
> so it will work with exactly one version of "the only right" OS  
> with "the only right" extra drivers from their CD.
>
> not good. maybe some day AMD64 systems (or other such cheap&fast)  
> will be available without PC BIOS at all, with some other firmware  
> similar to Alpha SRM or maybe something like this on Mac's, without  
> 1MB of code in OS needed just to know how to configure devices  
> without much success.

You're referring to "OpenFirmware"; it's used on the Mac, Sun  
hardware, and quite possibly Alpha as well.

-- 
-Chuck