Changeset 3630 for trunk/coreboot-v2
- Timestamp:
- 10/02/08 17:42:14 (3 months ago)
- Location:
- trunk/coreboot-v2/src/southbridge/amd/sb600
- Files:
-
- 23 added
- 2 modified
-
ac97.c (added)
-
ac97audio.dts (added)
-
ac97modem.dts (added)
-
enable_usbdebug_direct.c (added)
-
hda.c (added)
-
hda.dts (added)
-
ide.c (added)
-
ide.dts (added)
-
lpc.c (added)
-
lpc.dts (added)
-
pci.c (added)
-
pci.dts (added)
-
sata.c (added)
-
sata.dts (added)
-
sb600.c (modified) (12 diffs)
-
sb600.dts (added)
-
sb600.h (modified) (2 diffs)
-
sm.c (added)
-
sm.dts (added)
-
stage1.c (added)
-
stage1_reset.c (added)
-
stage1_smbus.c (added)
-
usb.c (added)
-
usb.dts (added)
-
usb2.dts (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/coreboot-v2/src/southbridge/amd/sb600/sb600.c
r3589 r3630 18 18 */ 19 19 20 #include <console/console.h> 21 22 #include <arch/io.h> 23 24 #include <device/device.h> 20 #include <types.h> 21 #include <lib.h> 22 #include <console.h> 25 23 #include <device/pci.h> 24 #include <msr.h> 25 #include <legacy.h> 26 26 #include <device/pci_ids.h> 27 #include <device/pci_ops.h> 27 #include <statictree.h> 28 #include <config.h> 28 29 #include "sb600.h" 29 30 30 static device_t find_sm_dev(device_tdev, u32 devfn)31 { 32 device_tsm_dev;31 static struct device * find_sm_dev(struct device * dev, u32 devfn) 32 { 33 struct device * sm_dev; 33 34 34 35 sm_dev = dev_find_slot(dev->bus->secondary, devfn); … … 50 51 } 51 52 52 void set_sm_enable_bits( device_tsm_dev, u32 reg_pos, u32 mask, u32 val)53 void set_sm_enable_bits(struct device * sm_dev, u32 reg_pos, u32 mask, u32 val) 53 54 { 54 55 u32 reg_old, reg; … … 97 98 } 98 99 99 static void set_pmio_enable_bits( device_tsm_dev, u32 reg_pos,100 static void set_pmio_enable_bits(struct device * sm_dev, u32 reg_pos, 100 101 u32 mask, u32 val) 101 102 { … … 109 110 } 110 111 111 void sb600_enable( device_tdev)112 { 113 device_tsm_dev = 0;114 device_tbus_dev = 0;112 void sb600_enable(struct device * dev) 113 { 114 struct device * sm_dev = 0; 115 struct device * bus_dev = 0; 115 116 int index = -1; 116 117 u32 deviceid; … … 123 124 u32 devfn; 124 125 125 printk _debug("sb600_enable()\n");126 printk(BIOS_DEBUG, "sb600_enable()\n"); 126 127 127 128 /* … … 151 152 if ((bus_dev->vendor == PCI_VENDOR_ID_ATI) && 152 153 (bus_dev->device == PCI_DEVICE_ID_ATI_SB600_PCI)) { 153 devfn = (bus_dev->path. u.pci.devfn) & ~7;154 devfn = (bus_dev->path.pci.devfn) & ~7; 154 155 sm_dev = find_sm_dev(bus_dev, devfn); 155 156 if (!sm_dev) … … 157 158 158 159 /* something under 00:01.0 */ 159 switch (dev->path. u.pci.devfn) {160 switch (dev->path.pci.devfn) { 160 161 case 5 << 3: 161 162 ; … … 165 166 } 166 167 167 i = (dev->path. u.pci.devfn) & ~7;168 i = (dev->path.pci.devfn) & ~7; 168 169 i += (2 << 3); 169 170 for (devfn = (0x14 << 3); devfn <= i; devfn += (1 << 3)) { … … 175 176 return; 176 177 177 switch (dev->path. u.pci.devfn - (devfn - (0x14 << 3))) {178 switch (dev->path.pci.devfn - (devfn - (0x14 << 3))) { 178 179 case (0x12 << 3) | 0: 179 180 index = 8; … … 188 189 case (0x13 << 3) | 4: 189 190 case (0x13 << 3) | 5: 190 index = dev->path. u.pci.devfn & 7;191 index = dev->path.pci.devfn & 7; 191 192 index++; 192 193 index %= 6; … … 218 219 case (0x14 << 3) | 5: 219 220 case (0x14 << 3) | 6: 220 index = dev->path. u.pci.devfn & 7;221 index = dev->path.pci.devfn & 7; 221 222 index -= 5; 222 223 set_pmio_enable_bits(sm_dev, 0x59, 1 << index, … … 225 226 break; 226 227 default: 227 printk _debug("unknown dev: %s deviceid=%4x\n", dev_path(dev),228 printk(BIOS_DEBUG, "unknown dev: %s deviceid=%4x\n", dev_path(dev), 228 229 deviceid); 229 230 } 230 231 } 231 232 232 struct chip_operations southbridge_amd_sb600_ops = { 233 CHIP_NAME("ATI SB600") 234 .enable_dev = sb600_enable, 233 struct device_operations sb600 = { 234 .id = {.type = DEVICE_ID_PCI, 235 {.pci = {.vendor = PCI_VENDOR_ID_AMD, 236 .device = xz}}}, 237 .constructor = default_device_constructor, 238 .phase3_scan = 0, 239 .phase4_enable_disable = sb600_enable, 240 .phase4_read_resources = pci_dev_read_resources, 241 .phase4_set_resources = pci_dev_set_resources, 242 .phase6_init = NULL, 243 .ops_pci = &pci_dev_ops_pci, 235 244 }; -
trunk/coreboot-v2/src/southbridge/amd/sb600/sb600.h
r3589 r3630 21 21 #define SB600_H 22 22 23 #include "chip.h"24 25 23 #define PCI_DEVICE_ID_ATI_SB600_LPC 0x438D 26 24 #define PCI_DEVICE_ID_ATI_SB600_SATA 0x4380 … … 37 35 #define PCI_DEVICE_ID_ATI_SB600_USB_3 0x438A 38 36 #define PCI_DEVICE_ID_ATI_SB600_USB_4 0x438B 37 39 38 extern void pm_iowrite(u8 reg, u8 value); 40 39 extern u8 pm_ioread(u8 reg);
