diff options
Diffstat (limited to 'include/asm-ppc64')
-rw-r--r-- | include/asm-ppc64/iSeries/HvReleaseData.h | 11 | ||||
-rw-r--r-- | include/asm-ppc64/iSeries/LparMap.h | 23 | ||||
-rw-r--r-- | include/asm-ppc64/machdep.h | 2 | ||||
-rw-r--r-- | include/asm-ppc64/mmu.h | 5 | ||||
-rw-r--r-- | include/asm-ppc64/pci.h | 4 | ||||
-rw-r--r-- | include/asm-ppc64/topology.h | 5 | ||||
-rw-r--r-- | include/asm-ppc64/unistd.h | 5 | ||||
-rw-r--r-- | include/asm-ppc64/xics.h | 2 |
8 files changed, 40 insertions, 17 deletions
diff --git a/include/asm-ppc64/iSeries/HvReleaseData.h b/include/asm-ppc64/iSeries/HvReleaseData.h index 01a1f13ea4a0..c8162e5ccb21 100644 --- a/include/asm-ppc64/iSeries/HvReleaseData.h +++ b/include/asm-ppc64/iSeries/HvReleaseData.h | |||
@@ -39,6 +39,11 @@ | |||
39 | * know that this PLIC does not support running an OS "that old". | 39 | * know that this PLIC does not support running an OS "that old". |
40 | */ | 40 | */ |
41 | 41 | ||
42 | #define HVREL_TAGSINACTIVE 0x8000 | ||
43 | #define HVREL_32BIT 0x4000 | ||
44 | #define HVREL_NOSHAREDPROCS 0x2000 | ||
45 | #define HVREL_NOHMT 0x1000 | ||
46 | |||
42 | struct HvReleaseData { | 47 | struct HvReleaseData { |
43 | u32 xDesc; /* Descriptor "HvRD" ebcdic x00-x03 */ | 48 | u32 xDesc; /* Descriptor "HvRD" ebcdic x00-x03 */ |
44 | u16 xSize; /* Size of this control block x04-x05 */ | 49 | u16 xSize; /* Size of this control block x04-x05 */ |
@@ -46,11 +51,7 @@ struct HvReleaseData { | |||
46 | struct naca_struct *xSlicNacaAddr; /* Virt addr of SLIC NACA x08-x0F */ | 51 | struct naca_struct *xSlicNacaAddr; /* Virt addr of SLIC NACA x08-x0F */ |
47 | u32 xMsNucDataOffset; /* Offset of Linux Mapping Data x10-x13 */ | 52 | u32 xMsNucDataOffset; /* Offset of Linux Mapping Data x10-x13 */ |
48 | u32 xRsvd1; /* Reserved x14-x17 */ | 53 | u32 xRsvd1; /* Reserved x14-x17 */ |
49 | u16 xTagsMode:1; /* 0 == tags active, 1 == tags inactive */ | 54 | u16 xFlags; |
50 | u16 xAddressSize:1; /* 0 == 64-bit, 1 == 32-bit */ | ||
51 | u16 xNoSharedProcs:1; /* 0 == shared procs, 1 == no shared */ | ||
52 | u16 xNoHMT:1; /* 0 == allow HMT, 1 == no HMT */ | ||
53 | u16 xRsvd2:12; /* Reserved x18-x19 */ | ||
54 | u16 xVrmIndex; /* VRM Index of OS image x1A-x1B */ | 55 | u16 xVrmIndex; /* VRM Index of OS image x1A-x1B */ |
55 | u16 xMinSupportedPlicVrmIndex; /* Min PLIC level (soft) x1C-x1D */ | 56 | u16 xMinSupportedPlicVrmIndex; /* Min PLIC level (soft) x1C-x1D */ |
56 | u16 xMinCompatablePlicVrmIndex; /* Min PLIC levelP (hard) x1E-x1F */ | 57 | u16 xMinCompatablePlicVrmIndex; /* Min PLIC levelP (hard) x1E-x1F */ |
diff --git a/include/asm-ppc64/iSeries/LparMap.h b/include/asm-ppc64/iSeries/LparMap.h index 038e5df7e9f8..5c32e38c1c01 100644 --- a/include/asm-ppc64/iSeries/LparMap.h +++ b/include/asm-ppc64/iSeries/LparMap.h | |||
@@ -49,19 +49,26 @@ | |||
49 | * entry to map the Esid to the Vsid. | 49 | * entry to map the Esid to the Vsid. |
50 | */ | 50 | */ |
51 | 51 | ||
52 | #define HvEsidsToMap 2 | ||
53 | #define HvRangesToMap 1 | ||
54 | |||
52 | /* Hypervisor initially maps 32MB of the load area */ | 55 | /* Hypervisor initially maps 32MB of the load area */ |
53 | #define HvPagesToMap 8192 | 56 | #define HvPagesToMap 8192 |
54 | 57 | ||
55 | struct LparMap { | 58 | struct LparMap { |
56 | u64 xNumberEsids; // Number of ESID/VSID pairs (1) | 59 | u64 xNumberEsids; // Number of ESID/VSID pairs |
57 | u64 xNumberRanges; // Number of VA ranges to map (1) | 60 | u64 xNumberRanges; // Number of VA ranges to map |
58 | u64 xSegmentTableOffs; // Page number within load area of seg table (0) | 61 | u64 xSegmentTableOffs; // Page number within load area of seg table |
59 | u64 xRsvd[5]; | 62 | u64 xRsvd[5]; |
60 | u64 xKernelEsid; // Esid used to map kernel load (0x0C00000000) | 63 | struct { |
61 | u64 xKernelVsid; // Vsid used to map kernel load (0x0C00000000) | 64 | u64 xKernelEsid; // Esid used to map kernel load |
62 | u64 xPages; // Number of pages to be mapped (8192) | 65 | u64 xKernelVsid; // Vsid used to map kernel load |
63 | u64 xOffset; // Offset from start of load area (0) | 66 | } xEsids[HvEsidsToMap]; |
64 | u64 xVPN; // Virtual Page Number (0x000C000000000000) | 67 | struct { |
68 | u64 xPages; // Number of pages to be mapped | ||
69 | u64 xOffset; // Offset from start of load area | ||
70 | u64 xVPN; // Virtual Page Number | ||
71 | } xRanges[HvRangesToMap]; | ||
65 | }; | 72 | }; |
66 | 73 | ||
67 | extern struct LparMap xLparMap; | 74 | extern struct LparMap xLparMap; |
diff --git a/include/asm-ppc64/machdep.h b/include/asm-ppc64/machdep.h index f0c1d2d92672..f0ef06375947 100644 --- a/include/asm-ppc64/machdep.h +++ b/include/asm-ppc64/machdep.h | |||
@@ -84,7 +84,7 @@ struct machdep_calls { | |||
84 | 84 | ||
85 | void (*init_IRQ)(void); | 85 | void (*init_IRQ)(void); |
86 | int (*get_irq)(struct pt_regs *); | 86 | int (*get_irq)(struct pt_regs *); |
87 | void (*cpu_irq_down)(void); | 87 | void (*cpu_irq_down)(int secondary); |
88 | 88 | ||
89 | /* PCI stuff */ | 89 | /* PCI stuff */ |
90 | void (*pcibios_fixup)(void); | 90 | void (*pcibios_fixup)(void); |
diff --git a/include/asm-ppc64/mmu.h b/include/asm-ppc64/mmu.h index 3d07ddd11e3b..70348a851313 100644 --- a/include/asm-ppc64/mmu.h +++ b/include/asm-ppc64/mmu.h | |||
@@ -200,6 +200,8 @@ extern long native_hpte_insert(unsigned long hpte_group, unsigned long va, | |||
200 | unsigned long prpn, | 200 | unsigned long prpn, |
201 | unsigned long vflags, unsigned long rflags); | 201 | unsigned long vflags, unsigned long rflags); |
202 | 202 | ||
203 | extern void stabs_alloc(void); | ||
204 | |||
203 | #endif /* __ASSEMBLY__ */ | 205 | #endif /* __ASSEMBLY__ */ |
204 | 206 | ||
205 | /* | 207 | /* |
@@ -336,6 +338,9 @@ static inline unsigned long get_vsid(unsigned long context, unsigned long ea) | |||
336 | | (ea >> SID_SHIFT)); | 338 | | (ea >> SID_SHIFT)); |
337 | } | 339 | } |
338 | 340 | ||
341 | #define VSID_SCRAMBLE(pvsid) (((pvsid) * VSID_MULTIPLIER) % VSID_MODULUS) | ||
342 | #define KERNEL_VSID(ea) VSID_SCRAMBLE(GET_ESID(ea)) | ||
343 | |||
339 | #endif /* __ASSEMBLY */ | 344 | #endif /* __ASSEMBLY */ |
340 | 345 | ||
341 | #endif /* _PPC64_MMU_H_ */ | 346 | #endif /* _PPC64_MMU_H_ */ |
diff --git a/include/asm-ppc64/pci.h b/include/asm-ppc64/pci.h index faa772223075..4d057452f59b 100644 --- a/include/asm-ppc64/pci.h +++ b/include/asm-ppc64/pci.h | |||
@@ -134,6 +134,10 @@ extern void | |||
134 | pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, | 134 | pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, |
135 | struct resource *res); | 135 | struct resource *res); |
136 | 136 | ||
137 | extern void | ||
138 | pcibios_bus_to_resource(struct pci_dev *dev, struct resource *res, | ||
139 | struct pci_bus_region *region); | ||
140 | |||
137 | extern int | 141 | extern int |
138 | unmap_bus_range(struct pci_bus *bus); | 142 | unmap_bus_range(struct pci_bus *bus); |
139 | 143 | ||
diff --git a/include/asm-ppc64/topology.h b/include/asm-ppc64/topology.h index fcdcfd26a26b..1e9b19073230 100644 --- a/include/asm-ppc64/topology.h +++ b/include/asm-ppc64/topology.h | |||
@@ -33,6 +33,7 @@ static inline int node_to_first_cpu(int node) | |||
33 | return first_cpu(tmp); | 33 | return first_cpu(tmp); |
34 | } | 34 | } |
35 | 35 | ||
36 | #define pcibus_to_node(node) (-1) | ||
36 | #define pcibus_to_cpumask(bus) (cpu_online_map) | 37 | #define pcibus_to_cpumask(bus) (cpu_online_map) |
37 | 38 | ||
38 | #define nr_cpus_node(node) (nr_cpus_in_node[node]) | 39 | #define nr_cpus_node(node) (nr_cpus_in_node[node]) |
@@ -59,8 +60,10 @@ static inline int node_to_first_cpu(int node) | |||
59 | .nr_balance_failed = 0, \ | 60 | .nr_balance_failed = 0, \ |
60 | } | 61 | } |
61 | 62 | ||
62 | #endif /* CONFIG_NUMA */ | 63 | #else |
63 | 64 | ||
64 | #include <asm-generic/topology.h> | 65 | #include <asm-generic/topology.h> |
65 | 66 | ||
67 | #endif /* CONFIG_NUMA */ | ||
68 | |||
66 | #endif /* _ASM_PPC64_TOPOLOGY_H */ | 69 | #endif /* _ASM_PPC64_TOPOLOGY_H */ |
diff --git a/include/asm-ppc64/unistd.h b/include/asm-ppc64/unistd.h index 4a94acf6bfed..977bc980c1af 100644 --- a/include/asm-ppc64/unistd.h +++ b/include/asm-ppc64/unistd.h | |||
@@ -285,8 +285,11 @@ | |||
285 | #define __NR_waitid 272 | 285 | #define __NR_waitid 272 |
286 | #define __NR_ioprio_set 273 | 286 | #define __NR_ioprio_set 273 |
287 | #define __NR_ioprio_get 274 | 287 | #define __NR_ioprio_get 274 |
288 | #define __NR_inotify_init 275 | ||
289 | #define __NR_inotify_add_watch 276 | ||
290 | #define __NR_inotify_rm_watch 277 | ||
288 | 291 | ||
289 | #define __NR_syscalls 275 | 292 | #define __NR_syscalls 278 |
290 | #ifdef __KERNEL__ | 293 | #ifdef __KERNEL__ |
291 | #define NR_syscalls __NR_syscalls | 294 | #define NR_syscalls __NR_syscalls |
292 | #endif | 295 | #endif |
diff --git a/include/asm-ppc64/xics.h b/include/asm-ppc64/xics.h index 0c45e14e26ca..1092af55d707 100644 --- a/include/asm-ppc64/xics.h +++ b/include/asm-ppc64/xics.h | |||
@@ -17,7 +17,7 @@ | |||
17 | void xics_init_IRQ(void); | 17 | void xics_init_IRQ(void); |
18 | int xics_get_irq(struct pt_regs *); | 18 | int xics_get_irq(struct pt_regs *); |
19 | void xics_setup_cpu(void); | 19 | void xics_setup_cpu(void); |
20 | void xics_teardown_cpu(void); | 20 | void xics_teardown_cpu(int secondary); |
21 | void xics_cause_IPI(int cpu); | 21 | void xics_cause_IPI(int cpu); |
22 | void xics_request_IPIs(void); | 22 | void xics_request_IPIs(void); |
23 | void xics_migrate_irqs_away(void); | 23 | void xics_migrate_irqs_away(void); |