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