]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - arch/ppc/platforms/4xx/oak.h
Linux-2.6.12-rc2
[mirror_ubuntu-artful-kernel.git] / arch / ppc / platforms / 4xx / oak.h
1 /*
2 *
3 * Copyright (c) 1999 Grant Erickson <grant@lcse.umn.edu>
4 *
5 * Module name: oak.h
6 *
7 * Description:
8 * Macros, definitions, and data structures specific to the IBM PowerPC
9 * 403G{A,B,C,CX} "Oak" evaluation board. Anything specific to the pro-
10 * cessor itself is defined elsewhere.
11 *
12 */
13
14 #ifdef __KERNEL__
15 #ifndef __ASM_OAK_H__
16 #define __ASM_OAK_H__
17
18 /* We have an IBM 403G{A,B,C,CX} core */
19 #include <asm/ibm403.h>
20
21 #define _IO_BASE 0
22 #define _ISA_MEM_BASE 0
23 #define PCI_DRAM_OFFSET 0
24
25 /* Memory map for the "Oak" evaluation board */
26
27 #define PPC403SPU_IO_BASE 0x40000000 /* 403 On-chip serial port */
28 #define PPC403SPU_IO_SIZE 0x00000008
29 #define OAKSERIAL_IO_BASE 0x7E000000 /* NS16550DV serial port */
30 #define OAKSERIAL_IO_SIZE 0x00000008
31 #define OAKNET_IO_BASE 0xF4000000 /* NS83902AV Ethernet */
32 #define OAKNET_IO_SIZE 0x00000040
33 #define OAKPROM_IO_BASE 0xFFFE0000 /* AMD 29F010 Flash ROM */
34 #define OAKPROM_IO_SIZE 0x00020000
35
36
37 /* Interrupt assignments fixed by the hardware implementation */
38
39 /* This is annoying kbuild-2.4 problem. -- Tom */
40
41 #define PPC403SPU_RX_INT 4 /* AIC_INT4 */
42 #define PPC403SPU_TX_INT 5 /* AIC_INT5 */
43 #define OAKNET_INT 27 /* AIC_INT27 */
44 #define OAKSERIAL_INT 28 /* AIC_INT28 */
45
46 #ifndef __ASSEMBLY__
47 /*
48 * Data structure defining board information maintained by the boot
49 * ROM on IBM's "Oak" evaluation board. An effort has been made to
50 * keep the field names consistent with the 8xx 'bd_t' board info
51 * structures.
52 */
53
54 typedef struct board_info {
55 unsigned char bi_s_version[4]; /* Version of this structure */
56 unsigned char bi_r_version[30]; /* Version of the IBM ROM */
57 unsigned int bi_memsize; /* DRAM installed, in bytes */
58 unsigned char bi_enetaddr[6]; /* Ethernet MAC address */
59 unsigned int bi_intfreq; /* Processor speed, in Hz */
60 unsigned int bi_busfreq; /* Bus speed, in Hz */
61 } bd_t;
62
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66
67 extern void oak_init(unsigned long r3,
68 unsigned long ird_start,
69 unsigned long ird_end,
70 unsigned long cline_start,
71 unsigned long cline_end);
72 extern void oak_setup_arch(void);
73 extern int oak_setup_residual(char *buffer);
74 extern void oak_init_IRQ(void);
75 extern int oak_get_irq(struct pt_regs *regs);
76 extern void oak_restart(char *cmd);
77 extern void oak_power_off(void);
78 extern void oak_halt(void);
79 extern void oak_time_init(void);
80 extern int oak_set_rtc_time(unsigned long now);
81 extern unsigned long oak_get_rtc_time(void);
82 extern void oak_calibrate_decr(void);
83
84 #ifdef __cplusplus
85 }
86 #endif
87
88 /* Some 4xx parts use a different timebase frequency from the internal clock.
89 */
90 #define bi_tbfreq bi_intfreq
91
92 #define PPC4xx_MACHINE_NAME "IBM Oak"
93
94 #endif /* !__ASSEMBLY__ */
95 #endif /* __ASM_OAK_H__ */
96 #endif /* __KERNEL__ */