162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Setup kernel for a Sun3x machine 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * (C) 1999 Thomas Bogendoerfer (tsbogend@alpha.franken.de) 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * based on code from Oliver Jowett <oliver@jowett.manawatu.gen.nz> 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include <linux/types.h> 1162306a36Sopenharmony_ci#include <linux/mm.h> 1262306a36Sopenharmony_ci#include <linux/seq_file.h> 1362306a36Sopenharmony_ci#include <linux/console.h> 1462306a36Sopenharmony_ci#include <linux/init.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#include <asm/machdep.h> 1762306a36Sopenharmony_ci#include <asm/irq.h> 1862306a36Sopenharmony_ci#include <asm/sun3xprom.h> 1962306a36Sopenharmony_ci#include <asm/sun3ints.h> 2062306a36Sopenharmony_ci#include <asm/setup.h> 2162306a36Sopenharmony_ci#include <asm/oplib.h> 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci#include "time.h" 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_civolatile char *clock_va; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciextern void sun3_get_model(char *model); 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_civoid sun3_leds(unsigned int i) 3062306a36Sopenharmony_ci{ 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci} 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_cistatic void sun3x_get_hardware_list(struct seq_file *m) 3562306a36Sopenharmony_ci{ 3662306a36Sopenharmony_ci seq_printf(m, "PROM Revision:\t%s\n", romvec->pv_monid); 3762306a36Sopenharmony_ci} 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci/* 4062306a36Sopenharmony_ci * Setup the sun3x configuration info 4162306a36Sopenharmony_ci */ 4262306a36Sopenharmony_civoid __init config_sun3x(void) 4362306a36Sopenharmony_ci{ 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci sun3x_prom_init(); 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci mach_sched_init = sun3x_sched_init; 4862306a36Sopenharmony_ci mach_init_IRQ = sun3_init_IRQ; 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci mach_reset = sun3x_reboot; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci mach_hwclk = sun3x_hwclk; 5362306a36Sopenharmony_ci mach_get_model = sun3_get_model; 5462306a36Sopenharmony_ci mach_get_hardware_list = sun3x_get_hardware_list; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci sun3_intreg = (unsigned char *)SUN3X_INTREG; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci /* only the serial console is known to work anyway... */ 5962306a36Sopenharmony_ci#if 0 6062306a36Sopenharmony_ci switch (*(unsigned char *)SUN3X_EEPROM_CONS) { 6162306a36Sopenharmony_ci case 0x10: 6262306a36Sopenharmony_ci serial_console = 1; 6362306a36Sopenharmony_ci conswitchp = NULL; 6462306a36Sopenharmony_ci break; 6562306a36Sopenharmony_ci case 0x11: 6662306a36Sopenharmony_ci serial_console = 2; 6762306a36Sopenharmony_ci conswitchp = NULL; 6862306a36Sopenharmony_ci break; 6962306a36Sopenharmony_ci default: 7062306a36Sopenharmony_ci serial_console = 0; 7162306a36Sopenharmony_ci break; 7262306a36Sopenharmony_ci } 7362306a36Sopenharmony_ci#endif 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci} 7662306a36Sopenharmony_ci 77