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