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