1 /* 2 * Setup kernel for a Sun3x machine 3 * 4 * (C) 1999 Thomas Bogendoerfer (tsbogend@alpha.franken.de) 5 * 6 * based on code from Oliver Jowett <oliver@jowett.manawatu.gen.nz> 7 */ 8 9 #include <linux/types.h> 10 #include <linux/mm.h> 11 #include <linux/console.h> 12 #include <linux/init.h> 13 14 #include <asm/system.h> 15 #include <asm/machdep.h> 16 #include <asm/irq.h> 17 #include <asm/sun3xprom.h> 18 #include <asm/sun3ints.h> 19 #include <asm/setup.h> 20 #include <asm/oplib.h> 21 22 #include "time.h" 23 24 volatile char *clock_va; 25 extern volatile unsigned char *sun3_intreg; 26 27 extern void sun3_get_model(char *model); 28 29 void sun3_leds(unsigned int i) 30 { 31 32 } 33 34 static int sun3x_get_hardware_list(char *buffer) 35 { 36 37 int len = 0; 38 39 len += sprintf(buffer + len, "PROM Revision:\t%s\n", 40 romvec->pv_monid); 41 42 return len; 43 44 } 45 46 /* 47 * Setup the sun3x configuration info 48 */ 49 void __init config_sun3x(void) 50 { 51 52 sun3x_prom_init(); 53 54 mach_max_dma_address = 0xffffffff; /* we can DMA anywhere, whee */ 55 56 mach_sched_init = sun3x_sched_init; 57 mach_init_IRQ = sun3_init_IRQ; 58 59 mach_gettimeoffset = sun3x_gettimeoffset; 60 mach_reset = sun3x_reboot; 61 62 mach_hwclk = sun3x_hwclk; 63 mach_get_model = sun3_get_model; 64 mach_get_hardware_list = sun3x_get_hardware_list; 65 66 sun3_intreg = (unsigned char *)SUN3X_INTREG; 67 68 /* only the serial console is known to work anyway... */ 69 #if 0 70 switch (*(unsigned char *)SUN3X_EEPROM_CONS) { 71 case 0x10: 72 serial_console = 1; 73 conswitchp = NULL; 74 break; 75 case 0x11: 76 serial_console = 2; 77 conswitchp = NULL; 78 break; 79 default: 80 serial_console = 0; 81 conswitchp = &dummy_con; 82 break; 83 } 84 #endif 85 86 } 87 88