at v2.6.13 108 lines 1.9 kB view raw
1/* 2 * This file is subject to the terms and conditions of the GNU General Public 3 * License. See the file "COPYING" in the main directory of this archive 4 * for more details. 5 * 6 * Miscellaneous ARCS PROM routines. 7 * 8 * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com) 9 * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org) 10 * Copyright (C) 1999 Silicon Graphics, Inc. 11 */ 12#include <linux/config.h> 13#include <linux/init.h> 14#include <linux/kernel.h> 15 16#include <asm/bcache.h> 17 18#include <asm/arc/types.h> 19#include <asm/sgialib.h> 20#include <asm/bootinfo.h> 21#include <asm/system.h> 22 23extern void *sgiwd93_host; 24extern void reset_wd33c93(void *instance); 25 26VOID 27ArcHalt(VOID) 28{ 29 bc_disable(); 30 local_irq_disable(); 31#ifdef CONFIG_SCSI_SGIWD93 32 reset_wd33c93(sgiwd93_host); 33#endif 34 ARC_CALL0(halt); 35never: goto never; 36} 37 38VOID 39ArcPowerDown(VOID) 40{ 41 bc_disable(); 42 local_irq_disable(); 43#ifdef CONFIG_SCSI_SGIWD93 44 reset_wd33c93(sgiwd93_host); 45#endif 46 ARC_CALL0(pdown); 47never: goto never; 48} 49 50/* XXX is this a soft reset basically? XXX */ 51VOID 52ArcRestart(VOID) 53{ 54 bc_disable(); 55 local_irq_disable(); 56#ifdef CONFIG_SCSI_SGIWD93 57 reset_wd33c93(sgiwd93_host); 58#endif 59 ARC_CALL0(restart); 60never: goto never; 61} 62 63VOID 64ArcReboot(VOID) 65{ 66 bc_disable(); 67 local_irq_disable(); 68#ifdef CONFIG_SCSI_SGIWD93 69 reset_wd33c93(sgiwd93_host); 70#endif 71 ARC_CALL0(reboot); 72never: goto never; 73} 74 75VOID 76ArcEnterInteractiveMode(VOID) 77{ 78 bc_disable(); 79 local_irq_disable(); 80#ifdef CONFIG_SCSI_SGIWD93 81 reset_wd33c93(sgiwd93_host); 82#endif 83 ARC_CALL0(imode); 84never: goto never; 85} 86 87LONG 88ArcSaveConfiguration(VOID) 89{ 90 return ARC_CALL0(cfg_save); 91} 92 93struct linux_sysid * 94ArcGetSystemId(VOID) 95{ 96 return (struct linux_sysid *) ARC_CALL0(get_sysid); 97} 98 99VOID __init 100ArcFlushAllCaches(VOID) 101{ 102 ARC_CALL0(cache_flush); 103} 104 105DISPLAY_STATUS * __init ArcGetDisplayStatus(ULONG FileID) 106{ 107 return (DISPLAY_STATUS *) ARC_CALL1(GetDisplayStatus, FileID); 108}