/* * TS5300 specific initialization code. * written by Stefan Reinauer * (c) 2006 coresystems GmbH */ #include #include #include #include #include #include #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" static void identify_ts9500(void) { unsigned i, val; TS9500_LED_ON; print_err("TS-9500 add-on found:\n"); val=inb(0x19b); for (i=0; i<8; i++) { print_err(" DIP"); print_err_char(i+0x31); print_err(": "); if((val&(1< static void main(unsigned long bist) { volatile int i; unsigned val; TS5300_LED_ON; // Let the hardware settle a bit. for(i = 0; i < 100; i++) ; setupsc520(); console_init(); print_err("Technologic Systems TS5300 - http://www.embeddedx86.com/\n"); staticmem(); /* Void warranty when label is removed. */ dummy_romcc_workaround_label: do { } while (0); print_err("Memory initialized: 32MB\n"); #if 1 identify_system(); #endif TS5300_LED_OFF; }