Changeset 5178
- Timestamp:
- Mar 1, 2010 10:09:33 AM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/northbridge/intel/i82830/i82830_smihandler.c
r5177 r5178 33 33 extern u32 mbi_len; 34 34 35 #define DEBUG_SMI 35 // #define DEBUG_SMI_I82830 36 36 37 37 /* If YABEL is enabled and it's not running at 0x00000000, we have to add some 38 38 * offset to all our mbi object memory accesses 39 39 */ 40 #if defined(CONFIG_PCI_OPTION_ROM_RUN_YABEL) && !defined(CONFIG_YABEL_DIRECTHW)40 #if defined(CONFIG_PCI_OPTION_ROM_RUN_YABEL) && CONFIG_PCI_OPTION_ROM_RUN_YABEL && !CONFIG_YABEL_DIRECTHW 41 41 #define OBJ_OFFSET CONFIG_YABEL_VIRTMEM_LOCATION 42 42 #else … … 77 77 #define MSH_IF_NOT_PENDING 0x010c 78 78 79 #ifdef DEBUG_SMI_I82830 79 80 static void 80 81 dump(u8 * addr, u32 len) … … 110 111 printk_debug("\n"); 111 112 } 113 #endif 112 114 113 115 typedef struct { … … 148 150 static void mbi_call(u8 subf, banner_id_t *banner_id) 149 151 { 150 // printk_debug("MBI\n"); 151 // printk_debug("|- sub function %x\n", subf); 152 // printk_debug("|- banner id @ %x\n", (u32)banner_id); 153 // printk_debug("| |- mhid %x\n", banner_id->mhid); 154 // printk_debug("| |- function %x\n", banner_id->function); 155 // printk_debug("| |- return status %x\n", banner_id->retsts); 156 // printk_debug("| |- rfu %x\n", banner_id->rfu); 152 #ifdef DEBUG_SMI_I82830 153 printk_debug("MBI\n"); 154 printk_debug("|- sub function %x\n", subf); 155 printk_debug("|- banner id @ %x\n", (u32)banner_id); 156 printk_debug("| |- mhid %x\n", banner_id->mhid); 157 printk_debug("| |- function %x\n", banner_id->function); 158 printk_debug("| |- return status %x\n", banner_id->retsts); 159 printk_debug("| |- rfu %x\n", banner_id->rfu); 160 #endif 157 161 158 162 switch(banner_id->function) { … … 197 201 if (obj_header->objnum == count) { 198 202 int headerlen = ALIGN(sizeof(mbi_header) + mbi_header->name_len + 15, 16); 199 // printk_debug("| |- headerlen = %d\n", headerlen); 203 #ifdef DEBUG_SMI_I82830 204 printk_debug("| |- headerlen = %d\n", headerlen); 205 #endif 200 206 memcpy(&obj_header->header, mbi_header, headerlen); 201 207 obj_header->banner.retsts = MSH_OK; … … 204 210 for (j=0; j < mbi_header->name_len && mbi_header->name[j]; j++) 205 211 printk_debug("%c", mbi_header->name[j]); 206 printk_debug("' found.\n", obj_header->objnum); 207 // dump(banner_id, sizeof(obj_header_t) + 16); 212 printk_debug("' found.\n"); 213 #ifdef DEBUG_SMI_I82830 214 dump(banner_id, sizeof(obj_header_t) + 16); 215 #endif 208 216 break; 209 217 } … … 219 227 mbi_header_t *mbi_header = NULL; 220 228 printk_debug("|- MBI_GetObject\n"); 221 // printk_debug("| |- handle = %016lx\n", getobj->handle); 229 #ifdef DEBUG_SMI_I82830 230 printk_debug("| |- handle = %016lx\n", getobj->handle); 231 #endif 222 232 printk_debug("| |- objnum = %d\n", getobj->objnum); 223 233 printk_debug("| |- start = %x\n", getobj->start); … … 246 256 247 257 getobj->banner.retsts = MSH_OK; 248 //dump(banner_id, sizeof(getobj) + len); 258 #ifdef DEBUG_SMI_I82830 259 dump(banner_id, sizeof(getobj) + len); 260 #endif 249 261 break; 250 262 } … … 276 288 #define PC13 0x13 277 289 278 void smi_interface_call(void) 279 { 280 u32 mmio; 281 mmio = pci_read_config32(PCI_DEV(0, 0x02, 0), 0x14); 290 static void smi_interface_call(void) 291 { 292 u32 mmio = pci_read_config32(PCI_DEV(0, 0x02, 0), 0x14); 282 293 // mmio &= 0xfff80000; 283 294 // printk_debug("mmio=%x\n", mmio); 284 285 u16 swsmi; 286 swsmi=pci_read_config16(PCI_DEV(0, 0x02, 0), 0xe0); 295 u16 swsmi = pci_read_config16(PCI_DEV(0, 0x02, 0), 0xe0); 287 296 288 297 if (!(swsmi & 1)) … … 300 309 swsmi |= (PC13 << 8); 301 310 pci_write_config16(PCI_DEV(0, 0x02, 0), 0xe0, swsmi); 302 // pathetic311 // write magic 303 312 write32(mmio + 0x71428, 0x494e5443); 304 313 return; … … 309 318 case 5: 310 319 printk_debug("Call MBI Functions.\n"); 311 mbi_call(swsmi >> 8, (banner_id_t *)((read l(mmio + 0x71428) & 0x000fffff) + OBJ_OFFSET) );320 mbi_call(swsmi >> 8, (banner_id_t *)((read32(mmio + 0x71428) & 0x000fffff) + OBJ_OFFSET) ); 312 321 // swsmi = 0x0000; 313 322 swsmi &= ~(7 << 5); // Exit: Result
Note: See TracChangeset
for help on using the changeset viewer.
