fixes to make adl855pc compile.

fixes to emulator.


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1806 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Ronald G. Minnich 2004-11-28 04:39:45 +00:00
parent 637b699865
commit 284c27f299
6 changed files with 31 additions and 21 deletions

View File

@ -1,5 +1,5 @@
#define ASSEMBLY 1 #define ASSEMBLY 1
#define ASM_CONSOLE_LOGLEVEL 10 #define ASM_CONSOLE_LOGLEVEL 8
#include <stdint.h> #include <stdint.h>
#include <device/pci_def.h> #include <device/pci_def.h>
#include <arch/io.h> #include <arch/io.h>
@ -80,29 +80,28 @@ static void main(unsigned long bist)
w83627hf_enable_serial(SERIAL_DEV, TTYS0_BASE); w83627hf_enable_serial(SERIAL_DEV, TTYS0_BASE);
uart_init(); uart_init();
console_init(); console_init();
print_err("HARD MAIN0\n");
/* Halt if there was a built in self test failure */ /* Halt if there was a built in self test failure */
report_bist_failure(bist); report_bist_failure(bist);
print_err("HARD MAIN\n");
#if 1 #if 0
print_pci_devices(); print_pci_devices();
#endif #endif
print_err("after print pci dev \n");
if(!bios_reset_detected()) { if(!bios_reset_detected()) {
enable_smbus(); enable_smbus();
print_err("after enable smbus\n"); #if 0
#if 1
dump_spd_registers(&memctrl[0]); dump_spd_registers(&memctrl[0]);
// dump_smbus_registers(); // dump_smbus_registers();
#endif #endif
print_err("after dump spd registers\n");
memreset_setup(); memreset_setup();
print_err("memreset setup\n");
sdram_initialize(sizeof(memctrl)/sizeof(memctrl[0]), memctrl); sdram_initialize(sizeof(memctrl)/sizeof(memctrl[0]), memctrl);
print_err("sdram init\n");
} }
#if 0 #if 0
else { else {

View File

@ -17,9 +17,9 @@
/* converted to C 6/2004 yhlu */ /* converted to C 6/2004 yhlu */
#define DEBUG_RAM_CONFIG 12 #define DEBUG_RAM_CONFIG 2
#undef ASM_CONSOLE_LOGLEVEL #undef ASM_CONSOLE_LOGLEVEL
#define ASM_CONSOLE_LOGLEVEL 10 #define ASM_CONSOLE_LOGLEVEL 8
#define dumpnorth() dump_pci_device(PCI_DEV(0, 0, 1)) #define dumpnorth() dump_pci_device(PCI_DEV(0, 0, 1))
/* DDR DIMM Mode register Definitions */ /* DDR DIMM Mode register Definitions */
@ -380,14 +380,14 @@ static void write_8dwords(uint32_t src_addr, uint32_t dst_addr) {
static void ram_set_d0f0_regs(const struct mem_controller *ctrl) { static void ram_set_d0f0_regs(const struct mem_controller *ctrl) {
#if DEBUG_RAM_CONFIG #if DEBUG_RAM_CONFIG
dumpnorth(); //dumpnorth();
#endif #endif
int i; int i;
int max; int max;
max = sizeof(register_values)/sizeof(register_values[0]); max = sizeof(register_values)/sizeof(register_values[0]);
for(i = 0; i < max; i += 3) { for(i = 0; i < max; i += 3) {
uint32_t reg; uint32_t reg;
#if DEBUG_RAM_CONFIG #if DEBUG_RAM_CONFIG >=2
print_debug_hex32(register_values[i]); print_debug_hex32(register_values[i]);
print_debug(" <-"); print_debug(" <-");
print_debug_hex32(register_values[i+2]); print_debug_hex32(register_values[i+2]);
@ -1395,10 +1395,10 @@ static void dram_finish(const struct mem_controller *ctrl)
if(dword == 1) { if(dword == 1) {
#if DEBUG_RAM_CONFIG #if DEBUG_RAM_CONFIG
print_debug(ecc_pre_init); // print_debug(ecc_pre_init);
#endif #endif
#if DEBUG_RAM_CONFIG #if DEBUG_RAM_CONFIG
print_debug(ecc_post_init); // print_debug(ecc_post_init);
#endif #endif
#if 0 #if 0
/* Clear the ECC error bits */ /* Clear the ECC error bits */
@ -1409,7 +1409,7 @@ static void dram_finish(const struct mem_controller *ctrl)
} }
#if DEBUG_RAM_CONFIG #if DEBUG_RAM_CONFIG
dumpnorth(); // dumpnorth();
#endif #endif
/* verify_ram(); */ /* verify_ram(); */

View File

@ -105,7 +105,7 @@ static int smbus_read_byte(unsigned device, unsigned address)
unsigned char global_status_register; unsigned char global_status_register;
unsigned char byte; unsigned char byte;
print_err("smbus_read_byte\r\n"); /*print_err("smbus_read_byte\r\n");*/
if (smbus_wait_until_ready() < 0) { if (smbus_wait_until_ready() < 0) {
print_err_hex8(-2); print_err_hex8(-2);
return -2; return -2;
@ -150,9 +150,11 @@ print_err("smbus_read_byte\r\n");
print_err_hex8(-1); print_err_hex8(-1);
return -1; return -1;
} }
/*
print_err("smbus_read_byte: "); print_err("smbus_read_byte: ");
print_err_hex32(device); print_err(" ad "); print_err_hex32(address); print_err_hex32(device); print_err(" ad "); print_err_hex32(address);
print_err("value "); print_err_hex8(byte); print_err("\r\n"); print_err("value "); print_err_hex8(byte); print_err("\r\n");
*/
return byte; return byte;
} }
#if 0 #if 0

View File

@ -4,6 +4,8 @@
target adl855pc target adl855pc
mainboard digitallogic/adl855pc mainboard digitallogic/adl855pc
option DEFAULT_CONSOLE_LOGLEVEL=10
option MAXIMUM_CONSOLE_LOGLEVEL=10
romimage "normal" romimage "normal"
option USE_FALLBACK_IMAGE=0 option USE_FALLBACK_IMAGE=0
option ROM_IMAGE_SIZE=0x10000 option ROM_IMAGE_SIZE=0x10000

View File

@ -7,6 +7,7 @@
#include <getopt.h> #include <getopt.h>
#define die(x) { perror(x); exit(1); } #define die(x) { perror(x); exit(1); }
#define warn(x) { perror(x); }
#include <x86emu.h> #include <x86emu.h>
#include "test.h" #include "test.h"
@ -258,8 +259,9 @@ int main(int argc, char **argv)
X86EMU_setupPioFuncs(&myfuncs); X86EMU_setupPioFuncs(&myfuncs);
ioperm(0, 0x400, 1); ioperm(0, 0x400, 1);
if (iopl(3) < 0) if (iopl(3) < 0) {
die("iopl"); warn("iopl failed, continuing anyway");
}
/* Emergency sync ;-) */ /* Emergency sync ;-) */
sync(); sync();

View File

@ -669,7 +669,12 @@ u16 *decode_rm_seg_register(int reg)
DECODE_PRINTF("DS"); DECODE_PRINTF("DS");
return &M.x86.R_DS; return &M.x86.R_DS;
case 4: case 4:
case 5: DECODE_PRINTF("FS");
return &M.x86.R_FS;
case 5:
DECODE_PRINTF("GS");
return &M.x86.R_GS;
case 6: case 6:
case 7: case 7:
DECODE_PRINTF("ILLEGAL SEGREG"); DECODE_PRINTF("ILLEGAL SEGREG");