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 (davem@davemloft.net) 9 * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org) 10 * Copyright (C) 1999 Silicon Graphics, Inc. 11 */ 12 #include <linux/init.h> 13 #include <linux/kernel.h> 14 15 #include <asm/bcache.h> 16 17 #include <asm/fw/arc/types.h> 18 #include <asm/sgialib.h> 19 #include <asm/bootinfo.h> 20 21 VOID 22 ArcHalt(VOID) 23 { 24 bc_disable(); 25 local_irq_disable(); 26 ARC_CALL0(halt); 27 never: goto never; 28 } 29 30 VOID 31 ArcPowerDown(VOID) 32 { 33 bc_disable(); 34 local_irq_disable(); 35 ARC_CALL0(pdown); 36 never: goto never; 37 } 38 39 /* XXX is this a soft reset basically? XXX */ 40 VOID 41 ArcRestart(VOID) 42 { 43 bc_disable(); 44 local_irq_disable(); 45 ARC_CALL0(restart); 46 never: goto never; 47 } 48 49 VOID 50 ArcReboot(VOID) 51 { 52 bc_disable(); 53 local_irq_disable(); 54 ARC_CALL0(reboot); 55 never: goto never; 56 } 57 58 VOID 59 ArcEnterInteractiveMode(VOID) 60 { 61 bc_disable(); 62 local_irq_disable(); 63 ARC_CALL0(imode); 64 never: goto never; 65 } 66 67 LONG 68 ArcSaveConfiguration(VOID) 69 { 70 return ARC_CALL0(cfg_save); 71 } 72 73 struct linux_sysid * 74 ArcGetSystemId(VOID) 75 { 76 return (struct linux_sysid *) ARC_CALL0(get_sysid); 77 } 78 79 VOID __init 80 ArcFlushAllCaches(VOID) 81 { 82 ARC_CALL0(cache_flush); 83 } 84 85 DISPLAY_STATUS * __init ArcGetDisplayStatus(ULONG FileID) 86 { 87 return (DISPLAY_STATUS *) ARC_CALL1(GetDisplayStatus, FileID); 88 } 89