1/* 2 * linux/include/asm-arm/arch-ep93xx/uncompress.h 3 * 4 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or (at 9 * your option) any later version. 10 */ 11 12#include <asm/arch/ep93xx-regs.h> 13 14static unsigned char __raw_readb(unsigned int ptr) 15{ 16 return *((volatile unsigned char *)ptr); 17} 18 19static unsigned int __raw_readl(unsigned int ptr) 20{ 21 return *((volatile unsigned int *)ptr); 22} 23 24static void __raw_writeb(unsigned char value, unsigned int ptr) 25{ 26 *((volatile unsigned char *)ptr) = value; 27} 28 29static void __raw_writel(unsigned int value, unsigned int ptr) 30{ 31 *((volatile unsigned int *)ptr) = value; 32} 33 34 35#define PHYS_UART1_DATA 0x808c0000 36#define PHYS_UART1_FLAG 0x808c0018 37#define UART1_FLAG_TXFF 0x20 38 39static inline void putc(int c) 40{ 41 int i; 42 43 for (i = 0; i < 1000; i++) { 44 /* Transmit fifo not full? */ 45 if (!(__raw_readb(PHYS_UART1_FLAG) & UART1_FLAG_TXFF)) 46 break; 47 } 48 49 __raw_writeb(c, PHYS_UART1_DATA); 50} 51 52static inline void flush(void) 53{ 54} 55 56 57#define PHYS_ETH_SELF_CTL 0x80010020 58#define ETH_SELF_CTL_RESET 0x00000001 59 60static void ethernet_reset(void) 61{ 62 unsigned int v; 63 64 /* Reset the ethernet MAC. */ 65 v = __raw_readl(PHYS_ETH_SELF_CTL); 66 __raw_writel(v | ETH_SELF_CTL_RESET, PHYS_ETH_SELF_CTL); 67 68 /* Wait for reset to finish. */ 69 while (__raw_readl(PHYS_ETH_SELF_CTL) & ETH_SELF_CTL_RESET) 70 ; 71} 72 73 74static void arch_decomp_setup(void) 75{ 76 ethernet_reset(); 77} 78 79#define arch_decomp_wdog() 80