Changeset 5080
- Timestamp:
- Feb 3, 2010 11:07:57 PM (3 years ago)
- Location:
- trunk/src/mainboard/supermicro/h8qme_fam10
- Files:
-
- 8 edited
-
Config.lb (modified) (2 diffs)
-
Options.lb (modified) (3 diffs)
-
apc_auto.c (modified) (3 diffs)
-
get_bus_conf.c (modified) (5 diffs)
-
mainboard.c (modified) (1 diff)
-
mb_sysconf.h (modified) (1 diff)
-
mptable.c (modified) (6 diffs)
-
spd_addr.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/mainboard/supermicro/h8qme_fam10/Config.lb
r5075 r5080 289 289 device pci 5.1 on end # SATA 1 290 290 device pci 5.2 on end # SATA 2 291 device pci 6.1 off end # AZA292 device pci 7.0 on293 device pci 1.0 on end294 end295 device pci 8.0 off end296 device pci 9.0 off end291 device pci 6.1 off end # AZA 292 device pci 7.0 on 293 device pci 1.0 on end 294 end 295 device pci 8.0 off end 296 device pci 9.0 off end 297 297 device pci a.0 on end # PCI E 5 298 298 device pci b.0 on end # PCI E 4 … … 313 313 device pci 18.4 on end 314 314 device pci 19.0 on end 315 device pci 19.0 on end 316 device pci 19.0 on 317 chip southbridge/amd/amd8132 318 device pci 0.0 on end 319 device pci 0.1 on end 320 device pci 1.0 on 321 device pci 3.0 on end 322 device pci 3.1 on end 323 end 324 device pci 1.1 on end 325 326 end #amd8132 327 328 end #device pci 19.0 315 device pci 19.0 on end 316 device pci 19.0 on 317 chip southbridge/amd/amd8132 318 device pci 0.0 on end 319 device pci 0.1 on end 320 device pci 1.0 on 321 device pci 3.0 on end 322 device pci 3.1 on end 323 end 324 device pci 1.1 on end 325 end #amd8132 326 end #device pci 19.0 329 327 device pci 19.1 on end 330 328 device pci 19.2 on end -
trunk/src/mainboard/supermicro/h8qme_fam10/Options.lb
r5075 r5080 142 142 default CONFIG_RAMTOP=16384*1024 143 143 #default CONFIG_RAMTOP=16384*8192 144 144 145 ## 145 146 ## Build code for the fallback boot … … 163 164 ## Useful for specifying IRQ routing values 164 165 ## 165 ##default CONFIG_GENERATE_MP_TABLE=1166 166 default CONFIG_GENERATE_MP_TABLE=1 167 167 … … 273 273 default CONFIG_ROM_IMAGE_SIZE = 0x1e000 274 274 275 276 default CONFIG_STACK_SIZE=0x10000 277 default CONFIG_HEAP_SIZE= 0xc000 278 275 ## 276 ## Use a 64K stack 277 ## 278 default CONFIG_STACK_SIZE=0x10000 279 280 ## 281 ## Use a 48K heap 282 ## 283 default CONFIG_HEAP_SIZE=0xc000 279 284 280 285 ## -
trunk/src/mainboard/supermicro/h8qme_fam10/apc_auto.c
r5075 r5080 65 65 66 66 #include <cpu/amd/model_fxx_rev.h> 67 68 //#include "northbridge/amd/amdk8/raminit.h"69 67 #include "northbridge/amd/amkfam10/raminit.h" 70 71 68 #include "cpu/amd/model_fxx/apic_timer.c" 72 69 … … 75 72 //#include "cpu/x86/lapic/boot_cpu.c" 76 73 77 //#include "northbridge/amd/amdk8/reset_test.c"78 74 #include "northbridge/amd/amdfam10/reset_test.c" 79 75 80 //#include "northbridge/amd/amdk8/debug.c"81 76 #include "northbridge/amd/amdfam10/debug.c" 82 77 83 78 #include "southbridge/nvidia/mcp55/mcp55_early_ctrl.c" 84 79 85 //#include "northbridge/amd/amdk8/amdk8_f.h"86 80 #include "northbridge/amd/amdfam10/amdfam10.h" 87 81 … … 90 84 #include "cpu/x86/tsc.h" 91 85 92 //#include "northbridge/amd/amdk8/amdk8_f_pci.c"93 86 #include "northbridge/amd/amdfam10/amdfam10_pci.c" 94 87 -
trunk/src/mainboard/supermicro/h8qme_fam10/get_bus_conf.c
r5075 r5080 63 63 }; 64 64 65 unsigned sbdn3; 66 65 unsigned sbdn3; 67 66 68 67 extern void get_pci1234(void); … … 100 99 m->bus_mcp55[0] = (sysconf.pci1234[0] >> 12) & 0xff; 101 100 102 103 m->bus_8132_0 = (sysconf.pci1234[1] >> 12) & 0xff; 104 sbdn3 =(sysconf.hcdn[1] & 0xff); // first byte of second chain 101 m->bus_8132_0 = (sysconf.pci1234[1] >> 12) & 0xff; 102 sbdn3 = (sysconf.hcdn[1] & 0xff); // first byte of second chain 105 103 106 104 /* MCP55 */ … … 124 122 } 125 123 126 /*8132_1*/124 /* 8132_1 */ 127 125 128 dev = dev_find_slot(m->bus_8132_0, PCI_DEVFN(sbdn3, 0));129 m->bus_8132_1 = pci_read_config8(dev, PCI_SECONDARY_BUS);126 dev = dev_find_slot(m->bus_8132_0, PCI_DEVFN(sbdn3, 0)); 127 m->bus_8132_1 = pci_read_config8(dev, PCI_SECONDARY_BUS); 130 128 m->bus_8132_2 = pci_read_config8(dev, PCI_SUBORDINATE_BUS); 131 129 m->bus_8132_2++; 132 /*8132_2*/133 130 134 dev = dev_find_slot(m->bus_8132_0, PCI_DEVFN(sbdn3+1,0)); 131 /* 8132_2 */ 132 dev = dev_find_slot(m->bus_8132_0, PCI_DEVFN(sbdn3 + 1, 0)); 135 133 m->bus_8132_2 = pci_read_config8(dev, PCI_SECONDARY_BUS); 136 134 m->bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); … … 138 136 139 137 for(i=0; i< sysconf.hc_possible_num; i++) { 140 if(!(sysconf.pci1234[i] & 0x1) ) continue;138 if(!(sysconf.pci1234[i] & 0x1) ) continue; 141 139 142 140 unsigned busn = (sysconf.pci1234[i] >> 12) & 0xff; … … 156 154 #endif 157 155 m->apicid_mcp55 = apicid_base+0; 158 m->apicid_8132_1 = apicid_base+1;156 m->apicid_8132_1 = apicid_base+1; 159 157 m->apicid_8132_2 = apicid_base+2; 160 158 } -
trunk/src/mainboard/supermicro/h8qme_fam10/mainboard.c
r5075 r5080 28 28 29 29 struct chip_operations mainboard_ops = { 30 CHIP_NAME("Supermicro H8QME Mainboard (Family 10)")30 CHIP_NAME("Supermicro H8QME-2+ Mainboard (Family 10)") 31 31 }; -
trunk/src/mainboard/supermicro/h8qme_fam10/mb_sysconf.h
r5075 r5080 29 29 unsigned bus_type[256]; 30 30 31 unsigned char bus_8132_0; //7 32 unsigned char bus_8132_1; //8 33 unsigned char bus_8132_2; //9 34 unsigned apicid_8132_1; 35 unsigned apicid_8132_2; 36 31 unsigned char bus_8132_0; //7 32 unsigned char bus_8132_1; //8 33 unsigned char bus_8132_2; //9 34 unsigned apicid_8132_1; 35 unsigned apicid_8132_2; 37 36 }; 38 37 -
trunk/src/mainboard/supermicro/h8qme_fam10/mptable.c
r5075 r5080 41 41 struct mb_sysconf_t *m; 42 42 unsigned sbdn; 43 44 43 45 44 int i,j; … … 68 67 m = sysconf.mb; 69 68 70 71 72 69 /*Bus: Bus ID Type*/ 73 70 /* define bus and isa numbers */ … … 78 75 smp_write_bus(mc, m->bus_isa, "ISA "); 79 76 80 81 82 83 84 85 77 /*I/O APICs: APIC ID Version State Address*/ 86 78 { … … 89 81 uint32_t dword; 90 82 91 //void smp_write_ioapic(struct mp_config_table *mc, unsigned char id, unsigned char ver, unsigned long apicaddr);92 93 83 dev = dev_find_slot(m->bus_mcp55[0], PCI_DEVFN(sbdn+ 0x1,0)); 94 95 96 84 if (dev) { 97 85 res = find_resource(dev, PCI_BASE_ADDRESS_1); … … 104 92 105 93 dword = 0x5ab0a500; 106 pci_write_config32(dev, 0x80, dword);94 pci_write_config32(dev, 0x80, dword); 107 95 108 96 dword = 0xa000000b; 109 dword = 0x10000002; 97 dword = 0x10000002; 110 98 pci_write_config32(dev, 0x84, dword); 111 99 112 100 } 113 101 114 /* 8132_1*/115 dev = dev_find_slot(m->bus_8132_0, PCI_DEVFN(sbdn3,1));116 res = find_resource(dev,PCI_BASE_ADDRESS_0);117 smp_write_ioapic(mc, m->apicid_8132_1, 0x11, res->base);102 /* 8132_1 */ 103 dev = dev_find_slot(m->bus_8132_0, PCI_DEVFN(sbdn3,1)); 104 res = find_resource(dev,PCI_BASE_ADDRESS_0); 105 smp_write_ioapic(mc, m->apicid_8132_1, 0x11, res->base); 118 106 119 /* 8132_2*/120 dev = dev_find_slot(m->bus_8132_0, PCI_DEVFN(sbdn3+1,1));121 res = find_resource(dev,PCI_BASE_ADDRESS_0);122 smp_write_ioapic(mc, m->apicid_8132_2, 0x11, res->base);107 /* 8132_2 */ 108 dev = dev_find_slot(m->bus_8132_0, PCI_DEVFN(sbdn3+1,1)); 109 res = find_resource(dev,PCI_BASE_ADDRESS_0); 110 smp_write_ioapic(mc, m->apicid_8132_2, 0x11, res->base); 123 111 112 } 113 114 /*I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# */ 115 smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x0); 116 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x1, m->apicid_mcp55, 0x1); 117 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x2); 118 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x3, m->apicid_mcp55, 0x3); 119 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x4, m->apicid_mcp55, 0x4); 120 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x6, m->apicid_mcp55, 0x6); 121 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x7, m->apicid_mcp55, 0x7); 122 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x8, m->apicid_mcp55, 0x8); 123 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0xc, m->apicid_mcp55, 0xc); 124 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0xd, m->apicid_mcp55, 0xd); 125 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0xe, m->apicid_mcp55, 0xe); 126 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0xf, m->apicid_mcp55, 0xf); 127 128 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+1)<<2)|1, m->apicid_mcp55, 0x5); /* 5 SMBus! Not correctly assign!!*/ 129 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0xb); /* 11 USB, OK */ 130 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|1, m->apicid_mcp55, 0xa); /* 10 USB, OK */ 131 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+5)<<2)|0, m->apicid_mcp55, 0x5); /* 5 IDE, OK*/ 132 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+5)<<2)|1, m->apicid_mcp55, 0xa); /* 10 IDE, OK*/ 133 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+5)<<2)|2, m->apicid_mcp55, 0xa); /* 10 IDE, OK*/ 134 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+6)<<2)|1, m->apicid_mcp55, 0xa); /* 10 VGA, OK*/ 135 136 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8132_2, ((3)<<2)|0, m->apicid_mcp55, 0x5); /* 5 eth0, OK*/ 137 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8132_2, ((3)<<2)|1, m->apicid_mcp55, 0xb); /* 11 eth1, OK*/ 124 138 125 } 126 127 128 /*I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID * PIN# */ 129 smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x0); 130 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x1, m->apicid_mcp55, 0x1); 131 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x2); 132 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x3, m->apicid_mcp55, 0x3); 133 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x4, m->apicid_mcp55, 0x4); 134 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x6, m->apicid_mcp55, 0x6); 135 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x7, m->apicid_mcp55, 0x7); 136 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x8, m->apicid_mcp55, 0x8); 137 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0xc, m->apicid_mcp55, 0xc); 138 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0xd, m->apicid_mcp55, 0xd); 139 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0xe, m->apicid_mcp55, 0xe); 140 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0xf, m->apicid_mcp55, 0xf); 141 142 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+1)<<2)|1, m->apicid_mcp55, 0x5); /* 5 SMBus! Not correctly assign!!*/ 143 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0xb); /* 11 USB, OK */ 144 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|1, m->apicid_mcp55, 0xa); /* 10 USB, OK */ 145 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+5)<<2)|0, m->apicid_mcp55, 0x5); /* 5 IDE, OK*/ 146 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+5)<<2)|1, m->apicid_mcp55, 0xa); /* 10 IDE, OK*/ 147 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+5)<<2)|2, m->apicid_mcp55, 0xa); /* 10 IDE, OK*/ 148 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+6)<<2)|1, m->apicid_mcp55, 0xa); /* 10 VGA, OK*/ 149 150 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8132_2, ((3)<<2)|0, m->apicid_mcp55, 0x5); /* 5 eth0, OK*/ 151 smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8132_2, ((3)<<2)|1, m->apicid_mcp55, 0xb); /* 11 eth1, OK*/ 152 153 154 for(j=7;j>=2; j--) { 139 for(j=7;j>=2; j--) { 155 140 if(!m->bus_mcp55[j]) continue; 156 141 for(i=0;i<4;i++) { … … 173 158 mc->mpc_checksum = smp_compute_checksum(mc, mc->mpc_length); 174 159 printk_debug("Wrote the mp table end at: %p - %p\n", 175 mc, smp_next_mpe_entry(mc));160 mc, smp_next_mpe_entry(mc)); 176 161 return smp_next_mpe_entry(mc); 177 162 } -
trunk/src/mainboard/supermicro/h8qme_fam10/spd_addr.h
r5075 r5080 108 108 #endif 109 109 #if CONFIG_MAX_PHYSICAL_CPUS > 2 110 //third node111 RC02, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0,112 // forth node110 //third node 111 RC02, DIMM0, DIMM2, 0, 0, DIMM1, DIMM3, 0, 0, 112 //forth node 113 113 RC03, DIMM4, DIMM6,0 , 0, DIMM5, DIMM7, 0, 0, 114 114 #endif
Note: See TracChangeset
for help on using the changeset viewer.
