mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
This is a small HT fixup until HT links get figured out better.
It removes processors from the list of devices on the domain's bus so that pci_scan_bus won't disable them, then scans for them, then puts them back. There are lots of other ways to do this, but this one seemed minimally invasive and ends up with a correct tree. The dts fixups I should have put in with the other K8 patch for the new resource allocator. I went to the v2 Config.lb files and tried to get them as complete as possible. Signed-off-by: Myles Watson <mylesgw@gmail.com> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://coreboot.org/repository/coreboot-v3@1109 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
parent
403cb4754c
commit
33e15e4148
4 changed files with 193 additions and 108 deletions
|
@ -66,52 +66,75 @@
|
||||||
/{
|
/{
|
||||||
device_operations="dbm690t";
|
device_operations="dbm690t";
|
||||||
mainboard_vendor = "AMD";
|
mainboard_vendor = "AMD";
|
||||||
mainboard_name = "Serengeti";
|
mainboard_name = "dbm690t";
|
||||||
cpus { };
|
cpus { };
|
||||||
apic@0 {
|
apic@0 {
|
||||||
};
|
};
|
||||||
domain@0 {
|
domain@0 {
|
||||||
/config/("northbridge/amd/k8/domain");
|
/config/("northbridge/amd/k8/domain");
|
||||||
pci@1,0{
|
/* Make sure that the HT device is first; if it isn't found,
|
||||||
|
* the rest of the devices won't be found.
|
||||||
|
*/
|
||||||
|
pci@0 {
|
||||||
|
/config/("southbridge/amd/rs690/ht.dts");
|
||||||
};
|
};
|
||||||
/* guesses; we need a real lspci */
|
pci@1{
|
||||||
pci0@18,0 {
|
/config/("southbridge/amd/sb600/pci.dts");
|
||||||
/config/("northbridge/amd/k8/pci");
|
pci@5{
|
||||||
/* make sure that the ht device is first, as it controls many other things. */
|
|
||||||
pci0 {
|
|
||||||
/config/("southbridge/amd/rs690/ht.dts");
|
|
||||||
};
|
|
||||||
pci1{
|
|
||||||
/config/("southbridge/amd/rs690/gfx.dts");
|
/config/("southbridge/amd/rs690/gfx.dts");
|
||||||
};
|
};
|
||||||
pci2{
|
};
|
||||||
/config/("southbridge/amd/rs690/pcie.dts");
|
pci@6{ /* Port 2 */
|
||||||
};
|
/config/("southbridge/amd/rs690/pcie.dts");
|
||||||
pci4{
|
};
|
||||||
/config/("southbridge/amd/sb600/hda.dts");
|
pci@7{ /* Port 3 */
|
||||||
};
|
/config/("southbridge/amd/rs690/pcie.dts");
|
||||||
pci5{
|
};
|
||||||
/config/("southbridge/amd/sb600/usb.dts");
|
pci@12{
|
||||||
};
|
/config/("southbridge/amd/sb600/hda.dts");
|
||||||
pci6{
|
};
|
||||||
/config/("southbridge/amd/sb600/usb2.dts");
|
pci@13,0{
|
||||||
|
/config/("southbridge/amd/sb600/usb.dts");
|
||||||
|
};
|
||||||
|
pci@13,1{
|
||||||
|
/config/("southbridge/amd/sb600/usb.dts");
|
||||||
|
};
|
||||||
|
pci@13,2{
|
||||||
|
/config/("southbridge/amd/sb600/usb.dts");
|
||||||
|
};
|
||||||
|
pci@13,3{
|
||||||
|
/config/("southbridge/amd/sb600/usb.dts");
|
||||||
|
};
|
||||||
|
pci@13,4{
|
||||||
|
/config/("southbridge/amd/sb600/usb.dts");
|
||||||
|
};
|
||||||
|
pci@13,5{
|
||||||
|
/config/("southbridge/amd/sb600/usb2.dts");
|
||||||
|
};
|
||||||
|
pci@14,0{
|
||||||
|
/config/("southbridge/amd/sb600/sm.dts");
|
||||||
|
};
|
||||||
|
pci@14,1{
|
||||||
|
/config/("southbridge/amd/sb600/ide.dts");
|
||||||
|
};
|
||||||
|
pci@14,2{
|
||||||
|
/config/("southbridge/amd/sb600/ac97audio.dts");
|
||||||
|
};
|
||||||
|
pci@14,3{
|
||||||
|
/config/("southbridge/amd/sb600/lpc.dts");
|
||||||
|
ioport@2e {
|
||||||
|
/config/("superio/ite/it8712f/dts");
|
||||||
|
com1enable = "1";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
pci1@18,0 {
|
pci@14,4{
|
||||||
/config/("northbridge/amd/k8/pci");
|
/config/("southbridge/amd/sb600/pci.dts");
|
||||||
};
|
};
|
||||||
pci2@18,0 {
|
pci@18,0 {
|
||||||
/config/("northbridge/amd/k8/pci");
|
/config/("northbridge/amd/k8/pci");
|
||||||
/* just for illustrating link #2 */
|
|
||||||
pci@2,0{
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
pci@18,1 {};
|
pci@18,1 {};
|
||||||
pci@18,2 {};
|
pci@18,2 {};
|
||||||
pci@18,3 {};
|
pci@18,3 {};
|
||||||
ioport@2e {
|
|
||||||
/config/("superio/ite/it8712f/dts");
|
|
||||||
com1enable = "1";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,75 +22,81 @@
|
||||||
device_operations="serengeti";
|
device_operations="serengeti";
|
||||||
mainboard_vendor = "AMD";
|
mainboard_vendor = "AMD";
|
||||||
mainboard_name = "Serengeti";
|
mainboard_name = "Serengeti";
|
||||||
subsystem_vendor = "PCI_VENDOR_ID_AMD";
|
mainboard_pci_subsystem_vendor = "PCI_VENDOR_ID_AMD";
|
||||||
subsystem_device = "0x2b80";
|
mainboard_pci_subsystem_device = "0x2b80";
|
||||||
cpus { };
|
cpus { };
|
||||||
apic@0 {
|
apic@0 {
|
||||||
/config/("northbridge/amd/k8/apic");
|
/config/("northbridge/amd/k8/apic");
|
||||||
};
|
};
|
||||||
domain@0 {
|
domain@0 {
|
||||||
/config/("northbridge/amd/k8/domain");
|
/config/("northbridge/amd/k8/domain");
|
||||||
|
pci_a@0,0 {
|
||||||
|
/config/("southbridge/amd/amd8132/pcix.dts");
|
||||||
|
};
|
||||||
|
pci_a@0,1 {
|
||||||
|
/config/("southbridge/amd/amd8132/apic.dts");
|
||||||
|
};
|
||||||
|
pci_a@1,0 {
|
||||||
|
/config/("southbridge/amd/amd8132/pcix.dts");
|
||||||
|
};
|
||||||
|
pci_a@1,1 {
|
||||||
|
/config/("southbridge/amd/amd8132/apic.dts");
|
||||||
|
};
|
||||||
|
pci@0,0 {
|
||||||
|
/config/("southbridge/amd/amd8111/pci.dts");
|
||||||
|
pci@0,0{
|
||||||
|
/config/("southbridge/amd/amd8111/usb.dts");
|
||||||
|
};
|
||||||
|
pci@0,1{
|
||||||
|
/config/("southbridge/amd/amd8111/usb.dts");
|
||||||
|
};
|
||||||
|
pci@0,2{
|
||||||
|
/config/("southbridge/amd/amd8111/usb2.dts");
|
||||||
|
disabled;
|
||||||
|
};
|
||||||
|
pci@1,0{
|
||||||
|
/config/("southbridge/amd/amd8111/nic.dts");
|
||||||
|
disabled;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pci@1,0 {
|
||||||
|
/config/("southbridge/amd/amd8111/lpc.dts");
|
||||||
|
ioport@2e {
|
||||||
|
/config/("superio/winbond/w83627hf/dts");
|
||||||
|
kbenable = "1";
|
||||||
|
com1enable = "1";
|
||||||
|
hwmenable = "1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pci@1,1 {
|
||||||
|
/config/("southbridge/amd/amd8111/ide.dts");
|
||||||
|
ide0_enable = "1";
|
||||||
|
ide1_enable = "1";
|
||||||
|
};
|
||||||
|
pci@1,2 {
|
||||||
|
/config/("southbridge/amd/amd8111/smbus.dts");
|
||||||
|
};
|
||||||
|
pci@1,3 {
|
||||||
|
/config/("southbridge/amd/amd8111/acpi.dts");
|
||||||
|
};
|
||||||
|
pci@1,5 {
|
||||||
|
/config/("southbridge/amd/amd8111/ac97audio.dts");
|
||||||
|
disabled;
|
||||||
|
};
|
||||||
|
pci@1,6 {
|
||||||
|
/config/("southbridge/amd/amd8111/ac97modem.dts");
|
||||||
|
disabled;
|
||||||
|
};
|
||||||
|
pci@1,7 {
|
||||||
|
};
|
||||||
|
pci_8@0,0 {
|
||||||
|
/config/("southbridge/amd/amd8151/agpbridge.dts");
|
||||||
|
};
|
||||||
|
pci_8@1,0 {
|
||||||
|
/config/("southbridge/amd/amd8151/agpdev.dts");
|
||||||
|
};
|
||||||
pci@18,0 {
|
pci@18,0 {
|
||||||
/config/("northbridge/amd/k8/pci");
|
/config/("northbridge/amd/k8/pci");
|
||||||
pci_a@0,0 {
|
|
||||||
/config/("southbridge/amd/amd8132/pcix.dts");
|
|
||||||
};
|
|
||||||
pci_a@0,1 {
|
|
||||||
/config/("southbridge/amd/amd8132/apic.dts");
|
|
||||||
};
|
|
||||||
pci_a@1,0 {
|
|
||||||
/config/("southbridge/amd/amd8132/pcix.dts");
|
|
||||||
};
|
|
||||||
pci_a@1,1 {
|
|
||||||
/config/("southbridge/amd/amd8132/apic.dts");
|
|
||||||
};
|
|
||||||
pci@0,0 {
|
|
||||||
/config/("southbridge/amd/amd8111/pci.dts");
|
|
||||||
pci@0,0{
|
|
||||||
/config/("southbridge/amd/amd8111/usb.dts");
|
|
||||||
};
|
|
||||||
pci@0,1{
|
|
||||||
/config/("southbridge/amd/amd8111/usb.dts");
|
|
||||||
};
|
|
||||||
pci@0,2{
|
|
||||||
/config/("southbridge/amd/amd8111/usb2.dts");
|
|
||||||
disabled;
|
|
||||||
};
|
|
||||||
pci@1,0{
|
|
||||||
/config/("southbridge/amd/amd8111/nic.dts");
|
|
||||||
disabled;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pci@1,0 {
|
|
||||||
/config/("southbridge/amd/amd8111/lpc.dts");
|
|
||||||
ioport@2e {
|
|
||||||
/config/("superio/winbond/w83627hf/dts");
|
|
||||||
kbenable = "1";
|
|
||||||
com1enable = "1";
|
|
||||||
hwmenable = "1";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
pci@1,1 {
|
|
||||||
/config/("southbridge/amd/amd8111/ide.dts");
|
|
||||||
ide0_enable = "1";
|
|
||||||
ide1_enable = "1";
|
|
||||||
};
|
|
||||||
pci@1,2 {
|
|
||||||
/config/("southbridge/amd/amd8111/smbus.dts");
|
|
||||||
};
|
|
||||||
pci@1,3 {
|
|
||||||
/config/("southbridge/amd/amd8111/acpi.dts");
|
|
||||||
};
|
|
||||||
pci@1,5 {
|
|
||||||
/config/("southbridge/amd/amd8111/ac97audio.dts");
|
|
||||||
disabled;
|
|
||||||
};
|
|
||||||
pci@1,6 {
|
|
||||||
/config/("southbridge/amd/amd8111/ac97modem.dts");
|
|
||||||
disabled;
|
|
||||||
};
|
|
||||||
pci@1,7 {
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
pci@18,1 {};
|
pci@18,1 {};
|
||||||
pci@18,2 {};
|
pci@18,2 {};
|
||||||
|
@ -101,12 +107,6 @@
|
||||||
/config/("northbridge/amd/k8/pci");
|
/config/("northbridge/amd/k8/pci");
|
||||||
};
|
};
|
||||||
pci@19,1 {
|
pci@19,1 {
|
||||||
pci@0,0 {
|
|
||||||
/config/("southbridge/amd/amd8151/agpbridge.dts");
|
|
||||||
};
|
|
||||||
pci@1,0 {
|
|
||||||
/config/("southbridge/amd/amd8151/agpdev.dts");
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
pci@19,2 {};
|
pci@19,2 {};
|
||||||
pci@19,3 {
|
pci@19,3 {
|
||||||
|
|
|
@ -44,20 +44,58 @@
|
||||||
apic@0 {
|
apic@0 {
|
||||||
};
|
};
|
||||||
domain@0 {
|
domain@0 {
|
||||||
pci@1,0{
|
pci@0,0 { /* MCP55 RAM? */
|
||||||
|
};
|
||||||
|
pci@1,0 {
|
||||||
|
/config/("southbridge/nvidia/mcp55/lpc.dts");
|
||||||
|
ioport@2e {
|
||||||
|
/config/("superio/ite/it8716f/dts");
|
||||||
|
com1enable = "1";
|
||||||
|
ecenable = "1";
|
||||||
|
kbenable = "1";
|
||||||
|
mouseenable = "1";
|
||||||
|
gpioenable = "1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
pci@1,1 { /* smbus */
|
||||||
|
};
|
||||||
|
pci@2,0 { /* usb */
|
||||||
|
};
|
||||||
|
pci@2,1 { /* usb */
|
||||||
|
};
|
||||||
|
pci@4,0 {
|
||||||
|
/config/("southbridge/nvidia/mcp55/ide.dts");
|
||||||
|
ide0_enable = "1";
|
||||||
|
};
|
||||||
|
pci@5,0 {
|
||||||
|
/config/("southbridge/nvidia/mcp55/sata.dts");
|
||||||
|
sata0_enable = "1";
|
||||||
|
};
|
||||||
|
pci@5,1 {
|
||||||
|
/config/("southbridge/nvidia/mcp55/sata.dts");
|
||||||
|
sata1_enable = "1";
|
||||||
|
};
|
||||||
|
pci@6,0 { /* PCI */
|
||||||
|
};
|
||||||
|
pci@6,1 {
|
||||||
|
/*/config/("southbridge/nvidia/mcp55/audio.dts"); */
|
||||||
|
};
|
||||||
|
pci@8,0 {
|
||||||
|
/*
|
||||||
|
/config/("southbridge/nvidia/mcp55/nic.dts");
|
||||||
|
mac_eeprom_smbus = "3";
|
||||||
|
mac_eeprom_addr = "0x51";
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
pci@f,0 { /* PCIe */
|
||||||
};
|
};
|
||||||
pci@18,0 {
|
pci@18,0 {
|
||||||
/config/("northbridge/amd/k8/pci");
|
/config/("northbridge/amd/k8/pci");
|
||||||
pci@0,0 {
|
|
||||||
/config/("southbridge/nvidia/mcp55/ide.dts");
|
|
||||||
};
|
|
||||||
pci@0,1 {
|
|
||||||
/config/("southbridge/nvidia/mcp55/sata.dts");
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
ioport@2e {
|
pci@18,1 {};
|
||||||
/config/("superio/ite/it8716f/dts");
|
pci@18,2 {};
|
||||||
com1enable = "1";
|
pci@18,3 {
|
||||||
|
/config/("northbridge/amd/k8/mcf3");
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -717,6 +717,7 @@ static unsigned int k8_domain_scan_bus(struct device * dev, unsigned int max)
|
||||||
{
|
{
|
||||||
unsigned reg;
|
unsigned reg;
|
||||||
int i;
|
int i;
|
||||||
|
struct device *last_dev, *children;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "%s: %s \n", __func__, dev->dtsname);
|
printk(BIOS_DEBUG, "%s: %s \n", __func__, dev->dtsname);
|
||||||
|
|
||||||
|
@ -746,8 +747,31 @@ static unsigned int k8_domain_scan_bus(struct device * dev, unsigned int max)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Take processors off the list; we always know what link they're on. */
|
||||||
|
for (last_dev = dev->link[0].children; last_dev;
|
||||||
|
last_dev = last_dev->sibling)
|
||||||
|
if (last_dev && last_dev->sibling == __f0_dev[0])
|
||||||
|
last_dev->sibling = NULL;
|
||||||
|
|
||||||
max = amdk8_scan_chains(dev, __f0_dev[0], max);
|
max = amdk8_scan_chains(dev, __f0_dev[0], max);
|
||||||
|
|
||||||
|
/* Save non-processor children. */
|
||||||
|
children = dev->link[0].children;
|
||||||
|
|
||||||
|
/* Probe for processors and disable those that don't respond. */
|
||||||
|
dev->link[0].children = __f0_dev[0];
|
||||||
|
pci_scan_bus(&dev->link[0], PCI_DEVFN(0x18,0), 0xff, 0);
|
||||||
|
|
||||||
|
/* Add them back to the new end of the list. */
|
||||||
|
for (last_dev = children; last_dev && last_dev->sibling;
|
||||||
|
last_dev = last_dev->sibling);
|
||||||
|
|
||||||
|
if (last_dev) {
|
||||||
|
last_dev->sibling = __f0_dev[0];
|
||||||
|
dev->link[0].children = children;
|
||||||
|
} else
|
||||||
|
dev->link[0].children = __f0_dev[0];
|
||||||
|
|
||||||
return max;
|
return max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue