Eric,
I have tested s2880 with all addon cards, and found interesting problem.
When I plug Adaptec 29320 PCI X scsi card into slot 3 and 4. That share BUS_A of 8131 with LSI SCSI. Linux bios got IO port allocation problem on bus 1.
BUS 1: 1000-2fff LSI will use 3000 later...
Regards
Yinghai Lu
Allocating resources... ASSIGN RESOURCES, bus 0 PCI: 00:01.0 1c <- [0x00001000 - 0x00002fff] bus 1 io PCI: 00:01.0 24 <- [0xfe300000 - 0xfe2fffff] bus 1 prefmem PCI: 00:01.0 20 <- [0xfe100000 - 0xfe1fffff] bus 1 mem ASSIGN RESOURCES, bus 1 PCI: 01:07.0 10 <- [0x00001000 - 0x000010ff] io PCI: 01:07.0 14 <- [0xfe180000 - 0xfe181fff] mem PCI: 01:07.0 1c <- [0x00001400 - 0x000014ff] io PCI: 01:07.1 10 <- [0x00001800 - 0x000018ff] io PCI: 01:07.1 14 <- [0xfe182000 - 0xfe183fff] mem PCI: 01:07.1 1c <- [0x00001c00 - 0x00001cff] io PCI: 01:08.0 10 <- [0x00002000 - 0x000020ff] io PCI: 01:08.0 14 <- [0xfe184000 - 0xfe185fff] mem PCI: 01:08.0 1c <- [0x00002400 - 0x000024ff] io PCI: 01:08.1 10 <- [0x00002800 - 0x000028ff] io PCI: 01:08.1 14 <- [0xfe186000 - 0xfe187fff] mem PCI: 01:08.1 1c <- [0x00002c00 - 0x00002cff] io PCI: 01:09.0 10 <- [0xfe100000 - 0xfe10ffff] mem PCI: 01:09.0 18 <- [0xfe110000 - 0xfe11ffff] mem PCI: 01:09.1 10 <- [0xfe120000 - 0xfe12ffff] mem PCI: 01:09.1 18 <- [0xfe130000 - 0xfe13ffff] mem PCI: 01:0a.0 10 <- [0x00003000 - 0x000030ff] io PCI: 01:0a.0 14 <- [0xfe140000 - 0xfe14ffff] mem PCI: 01:0a.0 1c <- [0xfe150000 - 0xfe15ffff] mem PCI: 01:0a.1 10 <- [0x00003400 - 0x000034ff] io PCI: 01:0a.1 14 <- [0xfe160000 - 0xfe16ffff] mem PCI: 01:0a.1 1c <- [0xfe170000 - 0xfe17ffff] mem ASSIGNED RESOURCES, bus 1
YhLu YhLu@tyan.com writes:
Eric,
I have tested s2880 with all addon cards, and found interesting problem.
When I plug Adaptec 29320 PCI X scsi card into slot 3 and 4. That share BUS_A of 8131 with LSI SCSI. Linux bios got IO port allocation problem on bus 1.
BUS 1: 1000-2fff LSI will use 3000 later...
I believe this is a bug that failed to get pushed forward from freebios tree. I have just committed this fix and a patch is attached.
The problem is because it was performing it's size calculations at address 0. It figured the I/O space registers could be safely packed more tightly then they actually can be.
Eric
bash-2.05a$ cvs diff -u src/devices/device.c ebiederm@cvs.freebios.sourceforge.net's password: Index: src/devices/device.c =================================================================== RCS file: /cvsroot/freebios/freebios2/src/devices/device.c,v retrieving revision 1.4 diff -u -r1.4 device.c --- src/devices/device.c 21 Jul 2003 20:13:42 -0000 1.4 +++ src/devices/device.c 4 Aug 2003 19:52:30 -0000 @@ -217,8 +217,12 @@ if (resource->flags & IORESOURCE_IO) { /* Don't allow potential aliases over the * legacy pci expansion card addresses. + * The legacy pci decodes only 10 bits, + * uses 100h - 3ffh. Therefor, only 0 - ff + * can be used out of each 400h block of io + * space. */ - if ((base > 0x3ff) && ((base & 0x300) != 0)) { + if ((base & 0x300) != 0) { base = (base & ~0x3ff) + 0x400; } /* Don't allow allocations in the VGA IO range.