URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-arm/] [arch-ebsa110/] [system.h] - Rev 1276
Go to most recent revision | Compare with Previous | Blame | View Log
/* * linux/include/asm-arm/arch-ebsa110/system.h * * Copyright (C) 1996-2000 Russell King. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #ifndef __ASM_ARCH_SYSTEM_H #define __ASM_ARCH_SYSTEM_H /* * EBSA110 idling methodology: * * We can not execute the "wait for interrupt" instruction since that * will stop our MCLK signal (which provides the clock for the glue * logic, and therefore the timer interrupt). * * Instead, we spin, polling the IRQ_STAT register for the occurrence * of any interrupt with core clock down to the memory clock. */ static inline void arch_idle(void) { const char *irq_stat = (char *)0xff000000; /* disable clock switching */ asm volatile ("mcr%? p15, 0, %0, c15, c2, 2" : : "r" (0)); /* wait for an interrupt to occur */ while (!*irq_stat) cpu_relax(); /* enable clock switching */ asm volatile ("mcr%? p15, 0, %0, c15, c1, 2" : : "r" (0)); } #define arch_reset(mode) cpu_reset(0x80000000) #endif
Go to most recent revision | Compare with Previous | Blame | View Log