diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-03-29 19:58:22 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-03-29 19:58:22 -0500 |
commit | 79072f38909e3d9883317238887460c39ddcc4cb (patch) | |
tree | 28369f5a844535ff836565eefd62695b0e890fa3 /include/asm-ppc | |
parent | 200d5a7684cc49ef4be40e832daf3f217e70dfbb (diff) | |
parent | 55d8ca4f8094246da6e71889a4e04bfafaa78b10 (diff) |
Merge branch 'upstream'
Diffstat (limited to 'include/asm-ppc')
-rw-r--r-- | include/asm-ppc/harrier.h | 2 | ||||
-rw-r--r-- | include/asm-ppc/ibm44x.h | 2 | ||||
-rw-r--r-- | include/asm-ppc/ibm4xx.h | 4 | ||||
-rw-r--r-- | include/asm-ppc/io.h | 7 | ||||
-rw-r--r-- | include/asm-ppc/machdep.h | 17 | ||||
-rw-r--r-- | include/asm-ppc/mpc10x.h | 3 | ||||
-rw-r--r-- | include/asm-ppc/mpc52xx.h | 5 | ||||
-rw-r--r-- | include/asm-ppc/mpc8260.h | 1 | ||||
-rw-r--r-- | include/asm-ppc/mpc83xx.h | 1 | ||||
-rw-r--r-- | include/asm-ppc/mpc85xx.h | 1 | ||||
-rw-r--r-- | include/asm-ppc/mpc8xx.h | 3 | ||||
-rw-r--r-- | include/asm-ppc/page.h | 4 | ||||
-rw-r--r-- | include/asm-ppc/pgtable.h | 9 | ||||
-rw-r--r-- | include/asm-ppc/ppc_sys.h | 34 | ||||
-rw-r--r-- | include/asm-ppc/prom.h | 156 | ||||
-rw-r--r-- | include/asm-ppc/serial.h | 7 | ||||
-rw-r--r-- | include/asm-ppc/time.h | 5 | ||||
-rw-r--r-- | include/asm-ppc/todc.h | 2 | ||||
-rw-r--r-- | include/asm-ppc/xparameters.h | 18 |
19 files changed, 92 insertions, 189 deletions
diff --git a/include/asm-ppc/harrier.h b/include/asm-ppc/harrier.h index 36c73ab7e43e..7acd7fc126ec 100644 --- a/include/asm-ppc/harrier.h +++ b/include/asm-ppc/harrier.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/ppc/kernel/harrier.h | ||
3 | * | ||
4 | * Definitions for Motorola MCG Harrier North Bridge & Memory controller | 2 | * Definitions for Motorola MCG Harrier North Bridge & Memory controller |
5 | * | 3 | * |
6 | * Author: Dale Farnsworth | 4 | * Author: Dale Farnsworth |
diff --git a/include/asm-ppc/ibm44x.h b/include/asm-ppc/ibm44x.h index f835066fb3ca..3acc382cc83f 100644 --- a/include/asm-ppc/ibm44x.h +++ b/include/asm-ppc/ibm44x.h | |||
@@ -29,7 +29,7 @@ | |||
29 | 29 | ||
30 | /* TLB entry offset/size used for pinning kernel lowmem */ | 30 | /* TLB entry offset/size used for pinning kernel lowmem */ |
31 | #define PPC44x_PIN_SHIFT 28 | 31 | #define PPC44x_PIN_SHIFT 28 |
32 | #define PPC44x_PIN_SIZE (1 << PPC44x_PIN_SHIFT) | 32 | #define PPC_PIN_SIZE (1 << PPC44x_PIN_SHIFT) |
33 | 33 | ||
34 | /* Lowest TLB slot consumed by the default pinned TLBs */ | 34 | /* Lowest TLB slot consumed by the default pinned TLBs */ |
35 | #define PPC44x_LOW_SLOT 63 | 35 | #define PPC44x_LOW_SLOT 63 |
diff --git a/include/asm-ppc/ibm4xx.h b/include/asm-ppc/ibm4xx.h index 6c28ae7807f4..38f99710752b 100644 --- a/include/asm-ppc/ibm4xx.h +++ b/include/asm-ppc/ibm4xx.h | |||
@@ -51,6 +51,10 @@ | |||
51 | #include <platforms/4xx/xilinx_ml300.h> | 51 | #include <platforms/4xx/xilinx_ml300.h> |
52 | #endif | 52 | #endif |
53 | 53 | ||
54 | #if defined(CONFIG_XILINX_ML403) | ||
55 | #include <platforms/4xx/xilinx_ml403.h> | ||
56 | #endif | ||
57 | |||
54 | #ifndef __ASSEMBLY__ | 58 | #ifndef __ASSEMBLY__ |
55 | 59 | ||
56 | #ifdef CONFIG_40x | 60 | #ifdef CONFIG_40x |
diff --git a/include/asm-ppc/io.h b/include/asm-ppc/io.h index df9cf6ed189d..b919d8fb7d98 100644 --- a/include/asm-ppc/io.h +++ b/include/asm-ppc/io.h | |||
@@ -575,4 +575,11 @@ extern void pci_iounmap(struct pci_dev *dev, void __iomem *); | |||
575 | */ | 575 | */ |
576 | #define xlate_dev_kmem_ptr(p) p | 576 | #define xlate_dev_kmem_ptr(p) p |
577 | 577 | ||
578 | /* access ports */ | ||
579 | #define setbits32(_addr, _v) out_be32((_addr), in_be32(_addr) | (_v)) | ||
580 | #define clrbits32(_addr, _v) out_be32((_addr), in_be32(_addr) & ~(_v)) | ||
581 | |||
582 | #define setbits16(_addr, _v) out_be16((_addr), in_be16(_addr) | (_v)) | ||
583 | #define clrbits16(_addr, _v) out_be16((_addr), in_be16(_addr) & ~(_v)) | ||
584 | |||
578 | #endif /* __KERNEL__ */ | 585 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-ppc/machdep.h b/include/asm-ppc/machdep.h index a3e8a45e45a9..e1a0a7b213d7 100644 --- a/include/asm-ppc/machdep.h +++ b/include/asm-ppc/machdep.h | |||
@@ -19,6 +19,18 @@ struct pci_dev; | |||
19 | struct seq_file; | 19 | struct seq_file; |
20 | struct file; | 20 | struct file; |
21 | 21 | ||
22 | /* | ||
23 | * This is for compatibility with ARCH=powerpc. | ||
24 | */ | ||
25 | #define machine_is(x) __MACHINE_IS_##x | ||
26 | #define __MACHINE_IS_powermac 0 | ||
27 | #define __MACHINE_IS_chrp 0 | ||
28 | #ifdef CONFIG_PPC_PREP | ||
29 | #define __MACHINE_IS_prep 1 | ||
30 | #else | ||
31 | #define __MACHINE_IS_prep 0 | ||
32 | #endif | ||
33 | |||
22 | /* We export this macro for external modules like Alsa to know if | 34 | /* We export this macro for external modules like Alsa to know if |
23 | * ppc_md.feature_call is implemented or not | 35 | * ppc_md.feature_call is implemented or not |
24 | */ | 36 | */ |
@@ -44,7 +56,7 @@ struct machdep_calls { | |||
44 | void (*power_off)(void); | 56 | void (*power_off)(void); |
45 | void (*halt)(void); | 57 | void (*halt)(void); |
46 | 58 | ||
47 | void (*idle)(void); | 59 | void (*idle_loop)(void); |
48 | void (*power_save)(void); | 60 | void (*power_save)(void); |
49 | 61 | ||
50 | long (*time_init)(void); /* Optional, may be NULL */ | 62 | long (*time_init)(void); /* Optional, may be NULL */ |
@@ -104,9 +116,6 @@ struct machdep_calls { | |||
104 | unsigned long size, | 116 | unsigned long size, |
105 | pgprot_t vma_prot); | 117 | pgprot_t vma_prot); |
106 | 118 | ||
107 | /* this is for modules, since _machine can be a define -- Cort */ | ||
108 | int ppc_machine; | ||
109 | |||
110 | /* Motherboard/chipset features. This is a kind of general purpose | 119 | /* Motherboard/chipset features. This is a kind of general purpose |
111 | * hook used to control some machine specific features (like reset | 120 | * hook used to control some machine specific features (like reset |
112 | * lines, chip power control, etc...). | 121 | * lines, chip power control, etc...). |
diff --git a/include/asm-ppc/mpc10x.h b/include/asm-ppc/mpc10x.h index 77b1e092c206..b30a6a3b5bd2 100644 --- a/include/asm-ppc/mpc10x.h +++ b/include/asm-ppc/mpc10x.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * arch/ppc/kernel/mpc10x.h | ||
3 | * | ||
4 | * Common routines for the Motorola SPS MPC106/8240/107 Host bridge/Mem | 2 | * Common routines for the Motorola SPS MPC106/8240/107 Host bridge/Mem |
5 | * ctlr/EPIC/etc. | 3 | * ctlr/EPIC/etc. |
6 | * | 4 | * |
@@ -165,6 +163,7 @@ enum ppc_sys_devices { | |||
165 | MPC10X_DMA1, | 163 | MPC10X_DMA1, |
166 | MPC10X_UART0, | 164 | MPC10X_UART0, |
167 | MPC10X_UART1, | 165 | MPC10X_UART1, |
166 | NUM_PPC_SYS_DEVS, | ||
168 | }; | 167 | }; |
169 | 168 | ||
170 | int mpc10x_bridge_init(struct pci_controller *hose, | 169 | int mpc10x_bridge_init(struct pci_controller *hose, |
diff --git a/include/asm-ppc/mpc52xx.h b/include/asm-ppc/mpc52xx.h index a055e0756b9d..7e9842805a28 100644 --- a/include/asm-ppc/mpc52xx.h +++ b/include/asm-ppc/mpc52xx.h | |||
@@ -60,6 +60,7 @@ enum ppc_sys_devices { | |||
60 | MPC52xx_ATA, | 60 | MPC52xx_ATA, |
61 | MPC52xx_I2C1, | 61 | MPC52xx_I2C1, |
62 | MPC52xx_I2C2, | 62 | MPC52xx_I2C2, |
63 | NUM_PPC_SYS_DEVS, | ||
63 | }; | 64 | }; |
64 | 65 | ||
65 | 66 | ||
@@ -354,6 +355,7 @@ struct mpc52xx_xlb { | |||
354 | u32 snoop_window; /* XLB + 0x70 */ | 355 | u32 snoop_window; /* XLB + 0x70 */ |
355 | }; | 356 | }; |
356 | 357 | ||
358 | #define MPC52xx_XLB_CFG_PLDIS (1 << 31) | ||
357 | #define MPC52xx_XLB_CFG_SNOOP (1 << 15) | 359 | #define MPC52xx_XLB_CFG_SNOOP (1 << 15) |
358 | 360 | ||
359 | /* Clock Distribution control */ | 361 | /* Clock Distribution control */ |
@@ -426,6 +428,9 @@ extern void mpc52xx_calibrate_decr(void); | |||
426 | 428 | ||
427 | extern void mpc52xx_find_bridges(void); | 429 | extern void mpc52xx_find_bridges(void); |
428 | 430 | ||
431 | extern void mpc52xx_setup_cpu(void); | ||
432 | |||
433 | |||
429 | 434 | ||
430 | /* Matching of PSC function */ | 435 | /* Matching of PSC function */ |
431 | struct mpc52xx_psc_func { | 436 | struct mpc52xx_psc_func { |
diff --git a/include/asm-ppc/mpc8260.h b/include/asm-ppc/mpc8260.h index 321452695039..6ba69a86b9dd 100644 --- a/include/asm-ppc/mpc8260.h +++ b/include/asm-ppc/mpc8260.h | |||
@@ -83,6 +83,7 @@ enum ppc_sys_devices { | |||
83 | MPC82xx_CPM_SMC2, | 83 | MPC82xx_CPM_SMC2, |
84 | MPC82xx_CPM_USB, | 84 | MPC82xx_CPM_USB, |
85 | MPC82xx_SEC1, | 85 | MPC82xx_SEC1, |
86 | NUM_PPC_SYS_DEVS, | ||
86 | }; | 87 | }; |
87 | 88 | ||
88 | #ifndef __ASSEMBLY__ | 89 | #ifndef __ASSEMBLY__ |
diff --git a/include/asm-ppc/mpc83xx.h b/include/asm-ppc/mpc83xx.h index 7cdf60fa69b6..3c23fc43bfbc 100644 --- a/include/asm-ppc/mpc83xx.h +++ b/include/asm-ppc/mpc83xx.h | |||
@@ -108,6 +108,7 @@ enum ppc_sys_devices { | |||
108 | MPC83xx_USB2_DR, | 108 | MPC83xx_USB2_DR, |
109 | MPC83xx_USB2_MPH, | 109 | MPC83xx_USB2_MPH, |
110 | MPC83xx_MDIO, | 110 | MPC83xx_MDIO, |
111 | NUM_PPC_SYS_DEVS, | ||
111 | }; | 112 | }; |
112 | 113 | ||
113 | #endif /* CONFIG_83xx */ | 114 | #endif /* CONFIG_83xx */ |
diff --git a/include/asm-ppc/mpc85xx.h b/include/asm-ppc/mpc85xx.h index c8a96aa44fb7..f47002a60edf 100644 --- a/include/asm-ppc/mpc85xx.h +++ b/include/asm-ppc/mpc85xx.h | |||
@@ -139,6 +139,7 @@ enum ppc_sys_devices { | |||
139 | MPC85xx_eTSEC4, | 139 | MPC85xx_eTSEC4, |
140 | MPC85xx_IIC2, | 140 | MPC85xx_IIC2, |
141 | MPC85xx_MDIO, | 141 | MPC85xx_MDIO, |
142 | NUM_PPC_SYS_DEVS, | ||
142 | }; | 143 | }; |
143 | 144 | ||
144 | /* Internal interrupts are all Level Sensitive, and Positive Polarity */ | 145 | /* Internal interrupts are all Level Sensitive, and Positive Polarity */ |
diff --git a/include/asm-ppc/mpc8xx.h b/include/asm-ppc/mpc8xx.h index 46f159cf589e..3515a7fa6c89 100644 --- a/include/asm-ppc/mpc8xx.h +++ b/include/asm-ppc/mpc8xx.h | |||
@@ -111,8 +111,11 @@ enum ppc_sys_devices { | |||
111 | MPC8xx_CPM_SMC1, | 111 | MPC8xx_CPM_SMC1, |
112 | MPC8xx_CPM_SMC2, | 112 | MPC8xx_CPM_SMC2, |
113 | MPC8xx_CPM_USB, | 113 | MPC8xx_CPM_USB, |
114 | NUM_PPC_SYS_DEVS, | ||
114 | }; | 115 | }; |
115 | 116 | ||
117 | #define PPC_PIN_SIZE (24 * 1024 * 1024) /* 24Mbytes of data pinned */ | ||
118 | |||
116 | #ifndef BOARD_CHIP_NAME | 119 | #ifndef BOARD_CHIP_NAME |
117 | #define BOARD_CHIP_NAME "" | 120 | #define BOARD_CHIP_NAME "" |
118 | #endif | 121 | #endif |
diff --git a/include/asm-ppc/page.h b/include/asm-ppc/page.h index 538e0c8ab243..a70ba2ee552d 100644 --- a/include/asm-ppc/page.h +++ b/include/asm-ppc/page.h | |||
@@ -149,8 +149,7 @@ extern int page_is_ram(unsigned long pfn); | |||
149 | #define __pa(x) ___pa((unsigned long)(x)) | 149 | #define __pa(x) ___pa((unsigned long)(x)) |
150 | #define __va(x) ((void *)(___va((unsigned long)(x)))) | 150 | #define __va(x) ((void *)(___va((unsigned long)(x)))) |
151 | 151 | ||
152 | #define pfn_to_page(pfn) (mem_map + ((pfn) - PPC_PGSTART)) | 152 | #define ARCH_PFN_OFFSET (PPC_PGSTART) |
153 | #define page_to_pfn(page) ((unsigned long)((page) - mem_map) + PPC_PGSTART) | ||
154 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | 153 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) |
155 | #define page_to_virt(page) __va(page_to_pfn(page) << PAGE_SHIFT) | 154 | #define page_to_virt(page) __va(page_to_pfn(page) << PAGE_SHIFT) |
156 | 155 | ||
@@ -175,5 +174,6 @@ extern __inline__ int get_order(unsigned long size) | |||
175 | /* We do define AT_SYSINFO_EHDR but don't use the gate mecanism */ | 174 | /* We do define AT_SYSINFO_EHDR but don't use the gate mecanism */ |
176 | #define __HAVE_ARCH_GATE_AREA 1 | 175 | #define __HAVE_ARCH_GATE_AREA 1 |
177 | 176 | ||
177 | #include <asm-generic/memory_model.h> | ||
178 | #endif /* __KERNEL__ */ | 178 | #endif /* __KERNEL__ */ |
179 | #endif /* _PPC_PAGE_H */ | 179 | #endif /* _PPC_PAGE_H */ |
diff --git a/include/asm-ppc/pgtable.h b/include/asm-ppc/pgtable.h index 6d1c39e8a6af..570b355162fa 100644 --- a/include/asm-ppc/pgtable.h +++ b/include/asm-ppc/pgtable.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <asm/processor.h> /* For TASK_SIZE */ | 12 | #include <asm/processor.h> /* For TASK_SIZE */ |
13 | #include <asm/mmu.h> | 13 | #include <asm/mmu.h> |
14 | #include <asm/page.h> | 14 | #include <asm/page.h> |
15 | #include <asm/io.h> /* For sub-arch specific PPC_PIN_SIZE */ | ||
15 | struct mm_struct; | 16 | struct mm_struct; |
16 | 17 | ||
17 | extern unsigned long va_to_phys(unsigned long address); | 18 | extern unsigned long va_to_phys(unsigned long address); |
@@ -127,9 +128,8 @@ extern unsigned long ioremap_bot, ioremap_base; | |||
127 | * of RAM. -- Cort | 128 | * of RAM. -- Cort |
128 | */ | 129 | */ |
129 | #define VMALLOC_OFFSET (0x1000000) /* 16M */ | 130 | #define VMALLOC_OFFSET (0x1000000) /* 16M */ |
130 | #ifdef CONFIG_44x | 131 | #ifdef PPC_PIN_SIZE |
131 | #include <asm/ibm44x.h> | 132 | #define VMALLOC_START (((_ALIGN((long)high_memory, PPC_PIN_SIZE) + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))) |
132 | #define VMALLOC_START (((_ALIGN((long)high_memory, PPC44x_PIN_SIZE) + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))) | ||
133 | #else | 133 | #else |
134 | #define VMALLOC_START ((((long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))) | 134 | #define VMALLOC_START ((((long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1))) |
135 | #endif | 135 | #endif |
@@ -837,7 +837,8 @@ static inline int io_remap_pfn_range(struct vm_area_struct *vma, | |||
837 | */ | 837 | */ |
838 | #define pgtable_cache_init() do { } while (0) | 838 | #define pgtable_cache_init() do { } while (0) |
839 | 839 | ||
840 | extern int get_pteptr(struct mm_struct *mm, unsigned long addr, pte_t **ptep); | 840 | extern int get_pteptr(struct mm_struct *mm, unsigned long addr, pte_t **ptep, |
841 | pmd_t **pmdp); | ||
841 | 842 | ||
842 | #include <asm-generic/pgtable.h> | 843 | #include <asm-generic/pgtable.h> |
843 | 844 | ||
diff --git a/include/asm-ppc/ppc_sys.h b/include/asm-ppc/ppc_sys.h index 83d8c77c124d..4b94f7059ebe 100644 --- a/include/asm-ppc/ppc_sys.h +++ b/include/asm-ppc/ppc_sys.h | |||
@@ -33,6 +33,8 @@ | |||
33 | #include <asm/mpc52xx.h> | 33 | #include <asm/mpc52xx.h> |
34 | #elif defined(CONFIG_MPC10X_BRIDGE) | 34 | #elif defined(CONFIG_MPC10X_BRIDGE) |
35 | #include <asm/mpc10x.h> | 35 | #include <asm/mpc10x.h> |
36 | #elif defined(CONFIG_XILINX_VIRTEX) | ||
37 | #include <platforms/4xx/virtex.h> | ||
36 | #else | 38 | #else |
37 | #error "need definition of ppc_sys_devices" | 39 | #error "need definition of ppc_sys_devices" |
38 | #endif | 40 | #endif |
@@ -44,9 +46,26 @@ struct ppc_sys_spec { | |||
44 | u32 value; | 46 | u32 value; |
45 | u32 num_devices; | 47 | u32 num_devices; |
46 | char *ppc_sys_name; | 48 | char *ppc_sys_name; |
49 | u8 config[NUM_PPC_SYS_DEVS]; | ||
47 | enum ppc_sys_devices *device_list; | 50 | enum ppc_sys_devices *device_list; |
48 | }; | 51 | }; |
49 | 52 | ||
53 | struct platform_notify_dev_map { | ||
54 | const char *bus_id; | ||
55 | void (*rtn)(struct platform_device * pdev, int idx); | ||
56 | }; | ||
57 | |||
58 | enum platform_device_func { | ||
59 | PPC_SYS_FUNC_DUMMY = 0, | ||
60 | PPC_SYS_FUNC_ETH = 1, | ||
61 | PPC_SYS_FUNC_UART = 2, | ||
62 | PPC_SYS_FUNC_HLDC = 3, | ||
63 | PPC_SYS_FUNC_USB = 4, | ||
64 | PPC_SYS_FUNC_IRDA = 5, | ||
65 | }; | ||
66 | |||
67 | #define PPC_SYS_CONFIG_DISABLED 1 | ||
68 | |||
50 | /* describes all specific chips and which devices they have on them */ | 69 | /* describes all specific chips and which devices they have on them */ |
51 | extern struct ppc_sys_spec ppc_sys_specs[]; | 70 | extern struct ppc_sys_spec ppc_sys_specs[]; |
52 | extern struct ppc_sys_spec *cur_ppc_sys_spec; | 71 | extern struct ppc_sys_spec *cur_ppc_sys_spec; |
@@ -72,5 +91,20 @@ extern void *ppc_sys_get_pdata(enum ppc_sys_devices dev) __init; | |||
72 | /* remove a device from the system */ | 91 | /* remove a device from the system */ |
73 | extern void ppc_sys_device_remove(enum ppc_sys_devices dev); | 92 | extern void ppc_sys_device_remove(enum ppc_sys_devices dev); |
74 | 93 | ||
94 | /* Function assignment stuff */ | ||
95 | void ppc_sys_device_initfunc(void); | ||
96 | void ppc_sys_device_setfunc(enum ppc_sys_devices dev, | ||
97 | enum platform_device_func func); | ||
98 | void ppc_sys_device_set_func_all(enum platform_device_func func); | ||
99 | |||
100 | void platform_notify_map(const struct platform_notify_dev_map *map, | ||
101 | struct device *dev); | ||
102 | |||
103 | /* Enable / disable stuff */ | ||
104 | void ppc_sys_device_disable(enum ppc_sys_devices dev); | ||
105 | void ppc_sys_device_enable(enum ppc_sys_devices dev); | ||
106 | void ppc_sys_device_enable_all(void); | ||
107 | void ppc_sys_device_disable_all(void); | ||
108 | |||
75 | #endif /* __ASM_PPC_SYS_H */ | 109 | #endif /* __ASM_PPC_SYS_H */ |
76 | #endif /* __KERNEL__ */ | 110 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-ppc/prom.h b/include/asm-ppc/prom.h index 6d431d6fb022..adc5ae784924 100644 --- a/include/asm-ppc/prom.h +++ b/include/asm-ppc/prom.h | |||
@@ -8,126 +8,19 @@ | |||
8 | #ifndef _PPC_PROM_H | 8 | #ifndef _PPC_PROM_H |
9 | #define _PPC_PROM_H | 9 | #define _PPC_PROM_H |
10 | 10 | ||
11 | #include <linux/config.h> | 11 | /* This is used in arch/ppc/mm/mem_pieces.h */ |
12 | #include <linux/types.h> | ||
13 | |||
14 | typedef u32 phandle; | ||
15 | typedef u32 ihandle; | ||
16 | |||
17 | struct address_range { | ||
18 | unsigned int space; | ||
19 | unsigned int address; | ||
20 | unsigned int size; | ||
21 | }; | ||
22 | |||
23 | struct interrupt_info { | ||
24 | int line; | ||
25 | int sense; /* +ve/-ve logic, edge or level, etc. */ | ||
26 | }; | ||
27 | |||
28 | struct reg_property { | 12 | struct reg_property { |
29 | unsigned int address; | 13 | unsigned int address; |
30 | unsigned int size; | 14 | unsigned int size; |
31 | }; | 15 | }; |
32 | 16 | ||
33 | struct property { | ||
34 | char *name; | ||
35 | int length; | ||
36 | unsigned char *value; | ||
37 | struct property *next; | ||
38 | }; | ||
39 | |||
40 | /* | ||
41 | * Note: don't change this structure for now or you'll break BootX ! | ||
42 | */ | ||
43 | struct device_node { | ||
44 | char *name; | ||
45 | char *type; | ||
46 | phandle node; | ||
47 | int n_addrs; | ||
48 | struct address_range *addrs; | ||
49 | int n_intrs; | ||
50 | struct interrupt_info *intrs; | ||
51 | char *full_name; | ||
52 | struct property *properties; | ||
53 | struct device_node *parent; | ||
54 | struct device_node *child; | ||
55 | struct device_node *sibling; | ||
56 | struct device_node *next; /* next device of same type */ | ||
57 | struct device_node *allnext; /* next in list of all nodes */ | ||
58 | }; | ||
59 | |||
60 | struct prom_args; | ||
61 | typedef void (*prom_entry)(struct prom_args *); | ||
62 | |||
63 | /* OBSOLETE: Old style node lookup */ | ||
64 | extern struct device_node *find_devices(const char *name); | ||
65 | extern struct device_node *find_type_devices(const char *type); | ||
66 | extern struct device_node *find_path_device(const char *path); | ||
67 | extern struct device_node *find_compatible_devices(const char *type, | ||
68 | const char *compat); | ||
69 | extern struct device_node *find_all_nodes(void); | ||
70 | |||
71 | /* New style node lookup */ | ||
72 | extern struct device_node *of_find_node_by_name(struct device_node *from, | ||
73 | const char *name); | ||
74 | extern struct device_node *of_find_node_by_type(struct device_node *from, | ||
75 | const char *type); | ||
76 | extern struct device_node *of_find_compatible_node(struct device_node *from, | ||
77 | const char *type, const char *compat); | ||
78 | extern struct device_node *of_find_node_by_path(const char *path); | ||
79 | extern struct device_node *of_find_all_nodes(struct device_node *prev); | ||
80 | extern struct device_node *of_get_parent(const struct device_node *node); | ||
81 | extern struct device_node *of_get_next_child(const struct device_node *node, | ||
82 | struct device_node *prev); | ||
83 | extern struct device_node *of_node_get(struct device_node *node); | ||
84 | extern void of_node_put(struct device_node *node); | ||
85 | |||
86 | /* Other Prototypes */ | ||
87 | extern void abort(void); | ||
88 | extern unsigned long prom_init(int, int, prom_entry); | ||
89 | extern void prom_print(const char *msg); | ||
90 | extern void relocate_nodes(void); | ||
91 | extern void finish_device_tree(void); | ||
92 | extern int device_is_compatible(struct device_node *device, const char *); | ||
93 | extern int machine_is_compatible(const char *compat); | ||
94 | extern unsigned char *get_property(struct device_node *node, const char *name, | ||
95 | int *lenp); | ||
96 | extern int prom_add_property(struct device_node* np, struct property* prop); | ||
97 | extern void prom_get_irq_senses(unsigned char *, int, int); | ||
98 | extern int prom_n_addr_cells(struct device_node* np); | ||
99 | extern int prom_n_size_cells(struct device_node* np); | ||
100 | |||
101 | extern struct resource* | ||
102 | request_OF_resource(struct device_node* node, int index, const char* name_postfix); | ||
103 | extern int release_OF_resource(struct device_node* node, int index); | ||
104 | |||
105 | extern void print_properties(struct device_node *node); | ||
106 | extern int call_rtas(const char *service, int nargs, int nret, | ||
107 | unsigned long *outputs, ...); | ||
108 | |||
109 | /* | 17 | /* |
110 | * PCI <-> OF matching functions | 18 | * These macros assist in performing the address calculations that we |
111 | */ | 19 | * need to do to access data when the kernel is running at an address |
112 | struct pci_bus; | 20 | * that is different from the address that the kernel is linked at. |
113 | struct pci_dev; | 21 | * The reloc_offset() function returns the difference between these |
114 | extern int pci_device_from_OF_node(struct device_node *node, | 22 | * two addresses and the macros simplify the process of adding or |
115 | u8* bus, u8* devfn); | 23 | * subtracting this offset to/from pointer values. |
116 | extern struct device_node* pci_busdev_to_OF_node(struct pci_bus *, int); | ||
117 | extern struct device_node* pci_device_to_OF_node(struct pci_dev *); | ||
118 | extern void pci_create_OF_bus_map(void); | ||
119 | |||
120 | /* | ||
121 | * When we call back to the Open Firmware client interface, we usually | ||
122 | * have to do that before the kernel is relocated to its final location | ||
123 | * (this is because we can't use OF after we have overwritten the | ||
124 | * exception vectors with our exception handlers). These macros assist | ||
125 | * in performing the address calculations that we need to do to access | ||
126 | * data when the kernel is running at an address that is different from | ||
127 | * the address that the kernel is linked at. The reloc_offset() function | ||
128 | * returns the difference between these two addresses and the macros | ||
129 | * simplify the process of adding or subtracting this offset to/from | ||
130 | * pointer values. See arch/ppc/kernel/prom.c for how these are used. | ||
131 | */ | 24 | */ |
132 | extern unsigned long reloc_offset(void); | 25 | extern unsigned long reloc_offset(void); |
133 | extern unsigned long add_reloc_offset(unsigned long); | 26 | extern unsigned long add_reloc_offset(unsigned long); |
@@ -136,45 +29,12 @@ extern unsigned long sub_reloc_offset(unsigned long); | |||
136 | #define PTRRELOC(x) ((typeof(x))add_reloc_offset((unsigned long)(x))) | 29 | #define PTRRELOC(x) ((typeof(x))add_reloc_offset((unsigned long)(x))) |
137 | #define PTRUNRELOC(x) ((typeof(x))sub_reloc_offset((unsigned long)(x))) | 30 | #define PTRUNRELOC(x) ((typeof(x))sub_reloc_offset((unsigned long)(x))) |
138 | 31 | ||
139 | |||
140 | /* | ||
141 | * OF address retreival & translation | ||
142 | */ | ||
143 | |||
144 | |||
145 | /* Translate an OF address block into a CPU physical address | ||
146 | */ | ||
147 | #define OF_BAD_ADDR ((u64)-1) | ||
148 | extern u64 of_translate_address(struct device_node *np, u32 *addr); | ||
149 | |||
150 | /* Extract an address from a device, returns the region size and | ||
151 | * the address space flags too. The PCI version uses a BAR number | ||
152 | * instead of an absolute index | ||
153 | */ | ||
154 | extern u32 *of_get_address(struct device_node *dev, int index, | ||
155 | u64 *size, unsigned int *flags); | ||
156 | extern u32 *of_get_pci_address(struct device_node *dev, int bar_no, | ||
157 | u64 *size, unsigned int *flags); | ||
158 | |||
159 | /* Get an address as a resource. Note that if your address is | ||
160 | * a PIO address, the conversion will fail if the physical address | ||
161 | * can't be internally converted to an IO token with | ||
162 | * pci_address_to_pio(), that is because it's either called to early | ||
163 | * or it can't be matched to any host bridge IO space | ||
164 | */ | ||
165 | extern int of_address_to_resource(struct device_node *dev, int index, | ||
166 | struct resource *r); | ||
167 | extern int of_pci_address_to_resource(struct device_node *dev, int bar, | ||
168 | struct resource *r); | ||
169 | |||
170 | #ifndef CONFIG_PPC_OF | ||
171 | /* | 32 | /* |
172 | * Fallback definitions for builds where we don't have prom.c included. | 33 | * Fallback definitions since we don't support OF in arch/ppc any more. |
173 | */ | 34 | */ |
174 | #define machine_is_compatible(x) 0 | 35 | #define machine_is_compatible(x) 0 |
175 | #define of_find_compatible_node(f, t, c) NULL | 36 | #define of_find_compatible_node(f, t, c) NULL |
176 | #define get_property(p, n, l) NULL | 37 | #define get_property(p, n, l) NULL |
177 | #endif | ||
178 | 38 | ||
179 | #endif /* _PPC_PROM_H */ | 39 | #endif /* _PPC_PROM_H */ |
180 | #endif /* __KERNEL__ */ | 40 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-ppc/serial.h b/include/asm-ppc/serial.h index 485a924e4d06..b74af5461564 100644 --- a/include/asm-ppc/serial.h +++ b/include/asm-ppc/serial.h | |||
@@ -41,15 +41,10 @@ | |||
41 | #else | 41 | #else |
42 | 42 | ||
43 | /* | 43 | /* |
44 | * XXX Assume for now it has PC-style ISA serial ports. | 44 | * XXX Assume it has PC-style ISA serial ports - true for PReP at least. |
45 | * This is true for PReP and CHRP at least. | ||
46 | */ | 45 | */ |
47 | #include <asm/pc_serial.h> | 46 | #include <asm/pc_serial.h> |
48 | 47 | ||
49 | #if defined(CONFIG_MAC_SERIAL) | ||
50 | #define SERIAL_DEV_OFFSET ((_machine == _MACH_prep || _machine == _MACH_chrp) ? 0 : 2) | ||
51 | #endif | ||
52 | |||
53 | #endif /* !CONFIG_GEMINI and others */ | 48 | #endif /* !CONFIG_GEMINI and others */ |
54 | #endif /* __ASM_SERIAL_H__ */ | 49 | #endif /* __ASM_SERIAL_H__ */ |
55 | #endif /* __KERNEL__ */ | 50 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-ppc/time.h b/include/asm-ppc/time.h index 321fb75b5f22..c86112323c9f 100644 --- a/include/asm-ppc/time.h +++ b/include/asm-ppc/time.h | |||
@@ -153,5 +153,10 @@ extern __inline__ unsigned binary_tbl(void) { | |||
153 | ({unsigned z; asm ("mulhwu %0,%1,%2" : "=r" (z) : "r" (x), "r" (y)); z;}) | 153 | ({unsigned z; asm ("mulhwu %0,%1,%2" : "=r" (z) : "r" (x), "r" (y)); z;}) |
154 | 154 | ||
155 | unsigned mulhwu_scale_factor(unsigned, unsigned); | 155 | unsigned mulhwu_scale_factor(unsigned, unsigned); |
156 | |||
157 | #define account_process_vtime(tsk) do { } while (0) | ||
158 | #define calculate_steal_time() do { } while (0) | ||
159 | #define snapshot_timebases() do { } while (0) | ||
160 | |||
156 | #endif /* __ASM_TIME_H__ */ | 161 | #endif /* __ASM_TIME_H__ */ |
157 | #endif /* __KERNEL__ */ | 162 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-ppc/todc.h b/include/asm-ppc/todc.h index 84bae7d76814..937c7dbe6e5c 100644 --- a/include/asm-ppc/todc.h +++ b/include/asm-ppc/todc.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-ppc/todc.h | ||
3 | * | ||
4 | * Definitions for the M48Txx and mc146818 series of Time of day/Real Time | 2 | * Definitions for the M48Txx and mc146818 series of Time of day/Real Time |
5 | * Clock chips. | 3 | * Clock chips. |
6 | * | 4 | * |
diff --git a/include/asm-ppc/xparameters.h b/include/asm-ppc/xparameters.h deleted file mode 100644 index fe4eac629139..000000000000 --- a/include/asm-ppc/xparameters.h +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | /* | ||
2 | * include/asm-ppc/xparameters.h | ||
3 | * | ||
4 | * This file includes the correct xparameters.h for the CONFIG'ed board | ||
5 | * | ||
6 | * Author: MontaVista Software, Inc. | ||
7 | * source@mvista.com | ||
8 | * | ||
9 | * 2004 (c) MontaVista Software, Inc. This file is licensed under the terms | ||
10 | * of the GNU General Public License version 2. This program is licensed | ||
11 | * "as is" without any warranty of any kind, whether express or implied. | ||
12 | */ | ||
13 | |||
14 | #include <linux/config.h> | ||
15 | |||
16 | #if defined(CONFIG_XILINX_ML300) | ||
17 | #include <platforms/4xx/xparameters/xparameters_ml300.h> | ||
18 | #endif | ||