Tyan S2885

YhLu YhLu at tyan.com
Fri Dec 5 18:03:01 CET 2003


Eric,

I change amdk8_scan_root_bus to:

unsigned int amdk8_scan_root_bus(device_t root, unsigned int max)
{               
        unsigned reg;   
        uint32_t value; 
        /* Unmap all of the other pci busses */
        printk_debug("\nbefore pci_scan_bus\n");
        for(reg = 0xe0; reg <= 0xec; reg += 4) { 
                value = f1_read_config32(reg);
                printk_debug("amdk8_scan_root_bus %0x =  %0x  max = %0x\n",
reg,value,max);
                if((value>>24)>max)
                        f1_write_config32(reg, 0);
        }       
        for(reg = 0xe0; reg <= 0xec; reg += 4) { 
                value = f1_read_config32(reg);
                printk_debug("amdk8_scan_root_bus %0x =  %0x  max = %0x\n",
reg,value,max);
        }       

        max = pci_scan_bus(&root->link[0], PCI_DEVFN(0x18, 0), 0xff, max);
                
        printk_debug("after pci_scan_bus\n");
        for(reg = 0xe0; reg <= 0xec; reg += 4) {
                value = f1_read_config32(reg);
                printk_debug("amdk8_scan_root_bus %0x =  %0x  max = %0x\n",
reg,value,max);
        }       
                
        return max;
}               

I think as least you only need to clear the regs that contain bigger bus
number than the next bus for scanning.

The result will be in the end.

The problems:
1. It can not access 8151 on CPU link0 and so can not scan it
2. The HT scan seems can not figure out and set the link and read/write
enable bit in e0. It set the e0 to 0x05050000  

Regards

Yinghai Lu

Copying LinuxBIOS to ram.
Jumping to LinuxBIOS.
LinuxBIOS-1.1.52.0_Fallback Fri Dec 5 14:29:03 EST 2003 booting...
Finding PCI configuration type.
PCI: Using configuration type 1
Enumerating: AMD K8 Northbridge
Enumerating: AMD K8 Northbridge
Enumerating: AMD K8
Enumerating: AMD K8
Enumerating: AMD 8111
Enumerating buses...
before pci_scan_bus
amdk8_scan_root_bus e0 =  4000203  max = 0
amdk8_scan_root_bus e4 =  6050003  max = 0
amdk8_scan_root_bus e8 =  0  max = 0
amdk8_scan_root_bus ec =  0  max = 0
amdk8_scan_root_bus e0 =  0  max = 0
amdk8_scan_root_bus e4 =  0  max = 0
amdk8_scan_root_bus e8 =  0  max = 0
amdk8_scan_root_bus ec =  0  max = 0
PCI: pci_scan_bus for bus 0
PCI: 00:18.0 [1022/1100] enabled
PCI: 00:18.1 [1022/1101] enabled
PCI: 00:18.2 [1022/1102] enabled
PCI: 00:18.3 [1022/1103] ops
PCI: 00:18.3 [1022/1103] enabled
PCI: 00:19.0 [1022/1100] enabled
PCI: 00:19.1 [1022/1101] enabled
PCI: 00:19.2 [1022/1102] enabled
PCI: 00:19.3 [1022/1103] ops
PCI: 00:19.3 [1022/1103] enabled
amdk8_scan_chains max: 0 starting...
Hyper transport scan link: 2 max: 1
PCI: 01:01.0 [1022/7450] enabled next_unitid: 0003
PCI: 01:03.0 [1022/7460] enabled next_unitid: 0007
HyperT reset needed
PCI: pci_scan_bus for bus 1
PCI: 01:01.0 [1022/7450] bus ops
PCI: 01:01.0 [1022/7450] enabled
PCI: 01:01.1 [1022/7451] ops
PCI: 01:01.1 [1022/7451] enabled
PCI: 01:02.0 [1022/7450] bus ops
PCI: 01:02.0 [1022/7450] enabled
PCI: 01:02.1 [1022/7451] ops
PCI: 01:02.1 [1022/7451] enabled
PCI: 01:03.0 [1022/7460] enabled
PCI: 01:04.0 [1022/7468] bus ops
PCI: 01:04.0 [1022/7468] enabled
PCI: 01:04.1 [1022/7469] ops
PCI: 01:04.1 [1022/7469] enabled
PCI: 01:04.2 [1022/746a] enabled
PCI: 01:04.3 [1022/746b] ops
PCI: 01:04.3 [1022/746b] enabled
PCI: 01:04.5 [1022/746d] enabled
amd8111_enable dev: PCI: 01:04.6 lpc_dev: PCI: 01:04.0 index: 6 reg: ffff ->
ffbf done
PCI: 01:04.6 [ffff/ffff] disabled
PCI: pci_scan_bus for bus 2
PCI: 02:09.0 [14e4/16a7] ops
PCI: 02:09.0 [14e4/16a7] enabled
PCI: pci_scan_bus returning with max=02
PCI: pci_scan_bus for bus 3
PCI: pci_scan_bus returning with max=03
PCI: pci_scan_bus for bus 4
PCI: 04:00.0 [1022/7464] ops
PCI: 04:00.0 [1022/7464] enabled
PCI: 04:00.1 [1022/7464] ops
PCI: 04:00.1 [1022/7464] enabled
PCI: 04:00.2 [1022/7463] ops
PCI: 04:00.2 [1022/7463] enabled
amd8111_enable dev: PCI: 04:01.0 lpc_dev: PCI: 01:04.0 index: 9 reg: ffbf ->
fdbf done
PCI: 04:01.0 [ffff/ffff] disabled
PCI: 04:0b.0 [1095/3114] ops
PCI: 04:0b.0 [1095/3114] enabled
PCI: 04:0c.0 [104c/8023] ops
PCI: 04:0c.0 [104c/8023] enabled
PCI: pci_scan_bus returning with max=04
PCI: pci_scan_bus returning with max=04
Hyper transport scan link: 2 new max: 4
Hypertransport scan link done
Hyper transport scan link: 0 max: 5
Missing static device: PCI: 05:00.0
HyperT reset not needed
PCI: pci_scan_bus for bus 5
PCI: 05:00.0 [ffff/ffff/00ffff] has unknown header type ff, ignoring.
PCI: 05:00.0 No device operations
PCI: 05:01.0 [ffff/ffff/00ffff] has unknown header type ff, ignoring.
PCI: 05:01.0 No device operations
PCI: pci_scan_bus returning with max=05
Hyper transport scan link: 0 new max: 5
Hypertransport scan link done
amdk8_scan_chains max: 5 done
amdk8_scan_chains max: 5 starting...
amdk8_scan_chains max: 5 done
PCI: pci_scan_bus returning with max=05
after pci_scan_bus
amdk8_scan_root_bus e0 =  5050000  max = 5
amdk8_scan_root_bus e4 =  0  max = 5
amdk8_scan_root_bus e8 =  0  max = 5
amdk8_scan_root_bus ec =  0  max = 5
done
Allocating resources...
PCI: 05:00.0 missing read_resources
PCI: 05:01.0 missing read_resources
PCI: 05:00.0 missing read_resources
PCI: 05:01.0 missing read_resources
PCI: 04:01.0 missing read_resources
PCI: 04:01.0 missing read_resources
PCI: 04:01.0 missing read_resources
PCI: 01:04.6 missing read_resources
PCI: 01:04.6 missing read_resources
ASSIGN RESOURCES, bus 0
PCI: 05:00.0 missing read_resources
PCI: 05:01.0 missing read_resources
PCI: 00:18.0 c8 <- [0x00003000 - 0x00002fff] node 0 link 0 io
PCI: 05:00.0 missing read_resources
PCI: 05:01.0 missing read_resources
PCI: 00:18.0 80 <- [0xfec00000 - 0xfebfffff] node 0 link 0 mem
PCI: 01:04.6 missing read_resources
PCI: 00:18.0 c0 <- [0x00001000 - 0x00002fff] node 0 link 2 io
PCI: 01:04.6 missing read_resources
PCI: 00:18.0 b8 <- [0xfe900000 - 0xfebfffff] node 0 link 2 mem
ASSIGN RESOURCES, bus 5
PCI: 05:00.0 missing set_resources
PCI: 05:01.0 missing set_resources
ASSIGNED RESOURCES, bus 5
ASSIGN RESOURCES, bus 1
PCI: 01:01.0 1c <- [0x00002000 - 0x00001fff] bus 2 io
PCI: 01:01.0 24 <- [0xfeb00000 - 0xfeafffff] bus 2 prefmem
PCI: 01:01.0 20 <- [0xfe900000 - 0xfe9fffff] bus 2 mem
ASSIGN RESOURCES, bus 2
PCI: 02:09.0 10 <- [0xfe900000 - 0xfe90ffff] mem
ASSIGNED RESOURCES, bus 2
PCI: 01:01.1 10 <- [0xfeb00000 - 0xfeb00fff] mem
PCI: 01:02.0 1c <- [0x00002000 - 0x00001fff] bus 3 io
PCI: 01:02.0 24 <- [0xfeb00000 - 0xfeafffff] bus 3 prefmem
PCI: 01:02.0 20 <- [0xfeb00000 - 0xfeafffff] bus 3 mem
PCI: 01:02.1 10 <- [0xfeb01000 - 0xfeb01fff] mem
PCI: 04:01.0 missing read_resources
PCI: 01:03.0 1c <- [0x00001000 - 0x00001fff] bus 4 io
PCI: 04:01.0 missing read_resources
PCI: 01:03.0 24 <- [0xfeb00000 - 0xfeafffff] bus 4 prefmem
PCI: 04:01.0 missing read_resources
PCI: 01:03.0 20 <- [0xfea00000 - 0xfeafffff] bus 4 mem
ASSIGN RESOURCES, bus 4
PCI: 04:00.0 10 <- [0xfea04000 - 0xfea04fff] mem
PCI: 04:00.1 10 <- [0xfea05000 - 0xfea05fff] mem
PCI: 04:00.2 10 <- [0xfea08000 - 0xfea080ff] mem
PCI: 04:00.2 14 <- [0xfea09000 - 0xfea0901f] mem
PCI: 04:01.0 missing set_resources
PCI: 04:0b.0 10 <- [0x00001010 - 0x00001017] io
PCI: 04:0b.0 14 <- [0x00001030 - 0x00001033] io
PCI: 04:0b.0 18 <- [0x00001020 - 0x00001027] io
PCI: 04:0b.0 1c <- [0x00001040 - 0x00001043] io
PCI: 04:0b.0 20 <- [0x00001000 - 0x0000100f] io
PCI: 04:0b.0 24 <- [0xfea07000 - 0xfea073ff] mem
PCI: 04:0c.0 10 <- [0xfea06000 - 0xfea067ff] mem
PCI: 04:0c.0 14 <- [0xfea00000 - 0xfea03fff] mem
ASSIGNED RESOURCES, bus 4
PCI: 01:04.0 00 <- [0x00000000 - 0xffffffff] io
PCI: 01:04.0 00 <- [0x00000000 - 0xffffffff] mem
PCI: 01:04.1 20 <- [0x00002460 - 0x0000246f] io
PCI: 01:04.2 10 <- [0x00002440 - 0x0000245f] io
PCI: 01:04.5 10 <- [0x00002000 - 0x000020ff] io
PCI: 01:04.5 14 <- [0x00002400 - 0x0000243f] io
PCI: 01:04.6 missing set_resources
ASSIGNED RESOURCES, bus 1
ASSIGNED RESOURCES, bus 0
done.
Enabling resourcess...
PCI: 00:18.0 cmd <- 00
PCI: 05:00.0 missing enable_resources
PCI: 05:01.0 missing enable_resources
PCI: 01:01.0 bridge ctrl <- 0000
PCI: 01:01.0 cmd <- 07
PCI: 02:09.0 cmd <- 02
PCI: 01:01.1 cmd <- 06
PCI: 01:02.0 bridge ctrl <- 0000
PCI: 01:02.0 cmd <- 07
PCI: 01:02.1 cmd <- 06
PCI: 01:03.0 bridge ctrl <- 0000
PCI: 01:03.0 cmd <- 07
PCI: 04:00.0 cmd <- 02
PCI: 04:00.1 cmd <- 02
PCI: 04:00.2 cmd <- 02
PCI: 04:01.0 missing enable_resources
PCI: 04:0b.0 cmd <- 03
PCI: 04:0c.0 cmd <- 02
PCI: 01:04.0 cmd <- 0f
PCI: 01:04.1 cmd <- 01
PCI: 01:04.2 cmd <- 01
PCI: 01:04.3 cmd <- 00
PCI: 01:04.5 cmd <- 01
PCI: 01:04.6 missing enable_resources
PCI: 00:18.1 cmd <- 00
PCI: 00:18.2 cmd <- 00
PCI: 00:18.3 cmd <- 00
PCI: 00:19.0 cmd <- 00
PCI: 00:19.1 cmd <- 00
PCI: 00:19.2 cmd <- 00
PCI: 00:19.3 cmd <- 00
done.
Initializing devices...
PCI: 00:18.3 init
NB: Function 3 Misc Control.. done.
PCI: 00:19.3 init
NB: Function 3 Misc Control.. resetting cpu






More information about the coreboot mailing list