• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/include/asm-arm/arch-ep93xx/
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