/* * TS5300 specific initialization code. * written by Stefan Reinauer * (c) 2006 coresystems GmbH */ #define ASSEMBLY 1 #define ASM_CONSOLE_LOGLEVEL 6 #include #include #include #include #include #include #include "pc80/mc146818rtc_early.c" #include "pc80/serial.c" #include "arch/i386/lib/console.c" #include "ram/ramtest.c" #include "cpu/x86/bist.h" #define TS5300_LED_OFF outb((inb(0x77)&0xfe), 0x77) #define TS5300_LED_ON outb((inb(0x77)|1), 0x77) #define TS9500_LED_OFF outb((inb(0x19a)&0xfe), 0x19a) #define TS9500_LED_ON outb((inb(0x19a)|1), 0x19a) /* PAR register setup */ void setup_pars(void) { volatile unsigned long *par; par = (unsigned long *) 0xfffef088; /* NOTE: Ron says, move this to mainboard.c */ *par++ = 0x00000000; *par++ = 0x340f0070; *par++ = 0x380701f0; *par++ = 0x3c0103f6; *par++ = 0x2c0f0300; *par++ = 0x447c00a0; *par++ = 0xe600000c; *par++ = 0x300046e8; *par++ = 0x500400d0; *par++ = 0x281f0140; *par++ = 0x00000000; *par++ = 0x00000000; *par++ = 0x00000000; *par++ = 0x8a07c940; /* Flash setup */ *par++ = 0x00000000; *par++ = 0xee00400e; } #include "cpu/amd/sc520/raminit.c" #include "debug.c" static void identify_ts9500(void) { unsigned i, val; TS9500_LED_ON; print_err("TS-9500 add-on found:\r\n"); val=inb(0x19b); for (i=0; i<8; i++) { print_err(" DIP"); print_err_char(i+0x31); print_err(": "); if((val&(1<