#
458148c0 |
| 23-Jun-2006 |
Michael Ellerman <michael@ellerman.id.au> |
[POWERPC] Setup RTAS values earlier, to enable rtas_call() earlier
Althought RTAS is instantiated when we enter the kernel, we can't actually call into it until we know its entry point address. Curr
[POWERPC] Setup RTAS values earlier, to enable rtas_call() earlier
Althought RTAS is instantiated when we enter the kernel, we can't actually call into it until we know its entry point address. Currently we grab that in rtas_initialize(), however that's quite late in the boot sequence.
To enable rtas_call() earlier, we can grab the RTAS entry etc. values while we're scanning the flattened device tree. There's existing code to retrieve the values from /chosen, however we don't store them there anymore, so remove that code.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
7a4571ae |
| 23-Jun-2006 |
Michael Ellerman <michael@ellerman.id.au> |
[POWERPC] Export flat device tree via debugfs for debugging
If DEBUG is turned on in prom.c, export the flat device tree via debugfs. This has been handy on several occasions.
To look at it: # mou
[POWERPC] Export flat device tree via debugfs for debugging
If DEBUG is turned on in prom.c, export the flat device tree via debugfs. This has been handy on several occasions.
To look at it: # mount -t debugfs none /sys/kernel/debug # od -a /sys/kernel/debug/powerpc/flat-device-tree and/or # dtc -fI dtb /sys/kernel/debug/powerpc/flat-device-tree -O dts
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
acf7d768 |
| 19-Jun-2006 |
Benjamin Herrenschmidt <benh@kernel.crashing.org> |
[POWERPC] cell: add RAS support
This is a first version of support for the Cell BE "Reliability, Availability and Serviceability" features.
It doesn't yet handle some of the RAS interrupts (the one
[POWERPC] cell: add RAS support
This is a first version of support for the Cell BE "Reliability, Availability and Serviceability" features.
It doesn't yet handle some of the RAS interrupts (the ones described in iic_is/iic_irr), I'm still working on a proper way to expose these. They are essentially a cascaded controller by themselves (sic !) though I may just handle them locally to the iic driver. I need also to sync with David Erb on the way he hooked in the performance monitor interrupt.
So that's all for 2.6.17 and I'll do more work on that with my rework of the powerpc interrupt layer that I'm hacking on at the moment.
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
Revision tags: v2.6.17 |
|
#
8a300887 |
| 17-Jun-2006 |
Jon Loeliger <jdl@jdl.com> |
[POWERPC] Prevent duplicate lmb reservations for Device Tree blob.
Signed-off-by: Jon Loeliger <jdl@freescale.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
|
#
bf72aeba |
| 14-Jun-2006 |
Paul Mackerras <paulus@samba.org> |
powerpc: Use 64k pages without needing cache-inhibited large pages
Some POWER5+ machines can do 64k hardware pages for normal memory but not for cache-inhibited pages. This patch lets us use 64k ha
powerpc: Use 64k pages without needing cache-inhibited large pages
Some POWER5+ machines can do 64k hardware pages for normal memory but not for cache-inhibited pages. This patch lets us use 64k hardware pages for most user processes on such machines (assuming the kernel has been configured with CONFIG_PPC_64K_PAGES=y). User processes start out using 64k pages and get switched to 4k pages if they use any non-cacheable mappings.
With this, we use 64k pages for the vmalloc region and 4k pages for the imalloc region. If anything creates a non-cacheable mapping in the vmalloc region, the vmalloc region will get switched to 4k pages. I don't know of any driver other than the DRM that would do this, though, and these machines don't have AGP.
When a region gets switched from 64k pages to 4k pages, we do not have to clear out all the 64k HPTEs from the hash table immediately. We use the _PAGE_COMBO bit in the Linux PTE to indicate whether the page was hashed in as a 64k page or a set of 4k pages. If hash_page is trying to insert a 4k page for a Linux PTE and it sees that it has already been inserted as a 64k page, it first invalidates the 64k HPTE before inserting the 4k HPTE. The hash invalidation routines also use the _PAGE_COMBO bit, to determine whether to look for a 64k HPTE or a set of 4k HPTEs to remove. With those two changes, we can tolerate a mix of 4k and 64k HPTEs in the hash table, and they will all get removed when the address space is torn down.
Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
Revision tags: v2.6.17-rc6, v2.6.17-rc5 |
|
#
4d1f3f25 |
| 18-May-2006 |
Jimi Xenidis <jimix@watson.ibm.com> |
[PATCH] powerpc: Auto reserve of device tree blob
A devtree compiler (dtc) generated devtree blob is "relocatable" and so does not contain a reserved_map entry for the blob itself. This means that
[PATCH] powerpc: Auto reserve of device tree blob
A devtree compiler (dtc) generated devtree blob is "relocatable" and so does not contain a reserved_map entry for the blob itself. This means that if passed to Linux, Linux will not get lmb_reserve() the blob and it could be over. The following patch will explicitly reserve the "blob" as it was given to us and stops prom_init.c from creating a reserved mapping for the blob.
NOTE: that the dtc/kexec should not generate the blob reservation entry. Although if they do, LMB reserver handles overlaps.
Signed-off-by: <jimix@watson.ibm.com> Acked-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
35dd5432 |
| 17-May-2006 |
Michael Ellerman <michael@ellerman.id.au> |
[PATCH] powerpc: Move crashkernel= handling into the kernel.
This was missing a quilt ref.
Signed-off-by: Paul Mackerras <paulus@samba.org>
|
#
47310413 |
| 17-May-2006 |
Michael Ellerman <michael@ellerman.id.au> |
[PATCH] powerpc: Kdump header cleanup
We need to know the base address of the kdump kernel even when we're not a kdump kernel, so add a #define for it. Move the logic that sets the kdump kernelbase
[PATCH] powerpc: Kdump header cleanup
We need to know the base address of the kdump kernel even when we're not a kdump kernel, so add a #define for it. Move the logic that sets the kdump kernelbase into kdump.h instead of page.h.
Rename kdump_setup() to setup_kdump_trampoline() to make it clearer what it's doing, and add an empty definition for the !CRASH_DUMP case to avoid a
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
2babf5c2 |
| 17-May-2006 |
Michael Ellerman <michael@ellerman.id.au> |
[PATCH] powerpc: Unify mem= handling
We currently do mem= handling in three seperate places. And as benh pointed out I wrote two of them. Now that we parse command line parameters earlier we can cle
[PATCH] powerpc: Unify mem= handling
We currently do mem= handling in three seperate places. And as benh pointed out I wrote two of them. Now that we parse command line parameters earlier we can clean this mess up.
Moving the parsing out of prom_init means the device tree might be allocated above the memory limit. If that happens we'd have to move it. As it happens we already have logic to do that for kdump, so just genericise it.
This also means we might have reserved regions above the memory limit, if we do the bootmem allocator will blow up, so we have to modify lmb_enforce_memory_limit() to truncate the reserves as well.
Tested on P5 LPAR, iSeries, F50, 44p. Tested moving device tree on P5 and 44p and F50.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
846f77b0 |
| 17-May-2006 |
Michael Ellerman <michael@ellerman.id.au> |
[PATCH] powerpc: Parse early parameters earlier
Currently we have call parse_early_param() earliyish, but not really very early. In particular, it's not early enough to do things like mem=x or crash
[PATCH] powerpc: Parse early parameters earlier
Currently we have call parse_early_param() earliyish, but not really very early. In particular, it's not early enough to do things like mem=x or crashkernel=blah, which is annoying.
So do it earlier. I've checked all the early param handlers, and none of them look like they should have any trouble with this. I haven't tested the booke_wdt ones though.
On 32-bit we were doing the CONFIG_CMDLINE logic twice, so don't.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
Revision tags: v2.6.17-rc4 |
|
#
d205819e |
| 03-May-2006 |
Paul Mackerras <paulus@samba.org> |
[PATCH] powerpc: Use the ibm,pa-features property if available
Forthcoming IBM machines will have a "ibm,pa-features" property on CPU nodes, that contains bits indicating which optional architecture
[PATCH] powerpc: Use the ibm,pa-features property if available
Forthcoming IBM machines will have a "ibm,pa-features" property on CPU nodes, that contains bits indicating which optional architecture features are implemented by the CPU. This adds code to use the property, if present, to update our CPU feature bitmaps. Note that this means we can both set and clear feature bits based on what the firmware tells us.
This is based on a patch by Will Schmidt <willschm@us.ibm.com>.
Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
Revision tags: v2.6.17-rc3, v2.6.17-rc2 |
|
#
28897731 |
| 12-Apr-2006 |
Olof Johansson <olof@lixom.net> |
[PATCH] powerpc: Lower threshold for DART enablement to 1GB
Turn on the DART already at 1GB. This is needed because of crippled devices in some systems, i.e. Airport Extreme cards, only supporting 3
[PATCH] powerpc: Lower threshold for DART enablement to 1GB
Turn on the DART already at 1GB. This is needed because of crippled devices in some systems, i.e. Airport Extreme cards, only supporting 30-bit DMA addresses.
Otherwise, users with between 1 and 2GB of memory will need to manually enable it with iommu=force, and that's no good.
Some simple performance tests show that there's a slight impact of enabling DART, but it's in the 1-3% range (kernel build with disk I/O as well as over NFS).
iommu=off can still be used for those who don't want to deal with the overhead (and don't need it for any devices).
Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
Revision tags: v2.6.17-rc1 |
|
#
e8222502 |
| 28-Mar-2006 |
Benjamin Herrenschmidt <benh@kernel.crashing.org> |
[PATCH] powerpc: Kill _machine and hard-coded platform numbers
This removes statically assigned platform numbers and reworks the powerpc platform probe code to use a better mechanism. With this, bo
[PATCH] powerpc: Kill _machine and hard-coded platform numbers
This removes statically assigned platform numbers and reworks the powerpc platform probe code to use a better mechanism. With this, board support files can simply declare a new machine type with a macro, and implement a probe() function that uses the flattened device-tree to detect if they apply for a given machine.
We now have a machine_is() macro that replaces the comparisons of _machine with the various PLATFORM_* constants. This commit also changes various drivers to use the new macro instead of looking at _machine.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
4d177fbf |
| 28-Mar-2006 |
Stephen Rothwell <sfr@canb.auug.org.au> |
[PATCH] powerpc: a couple of trivial compile warning fixes
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
|
#
10d713ae |
| 27-Mar-2006 |
Kumar Gala <galak@kernel.crashing.org> |
powerpc: use memparse() for mem= command line parsing
Use memparse() instead of our own code for handling the parsing of mem=
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
|
#
4df20460 |
| 25-Mar-2006 |
Anton Blanchard <anton@samba.org> |
[PATCH] powerpc: Allow non zero boot cpuids
We currently have a hack to flip the boot cpu and its secondary thread to logical cpuid 0 and 1. This means the logical - physical mapping will differ dep
[PATCH] powerpc: Allow non zero boot cpuids
We currently have a hack to flip the boot cpu and its secondary thread to logical cpuid 0 and 1. This means the logical - physical mapping will differ depending on which cpu is boot cpu. This is most apparent on kexec, where we might kexec on any cpu and therefore change the mapping from boot to boot.
The patch below does a first pass early on to work out the logical cpuid of the boot thread. We then fix up some paca structures to match.
Ive also removed the boot_cpuid_phys variable for ppc64, to be consistent we use get_hard_smp_processor_id(boot_cpuid) everywhere.
Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
Revision tags: v2.6.16, v2.6.16-rc6, v2.6.16-rc5 |
|
#
329dda08 |
| 24-Feb-2006 |
Kumar Gala <galak@kernel.crashing.org> |
[PATCH] powerpc: Fix mem= cmdline handling on arch/powerpc for !MULTIPLATFORM
mem= command line option was being ignored in arch/powerpc if we were not a CONFIG_MULTIPLATFORM (which is handled via p
[PATCH] powerpc: Fix mem= cmdline handling on arch/powerpc for !MULTIPLATFORM
mem= command line option was being ignored in arch/powerpc if we were not a CONFIG_MULTIPLATFORM (which is handled via prom_init stub). The initial command line extraction and parsing needed to be moved earlier in the boot process and have code to actual parse mem= and do something about it.
Also, fixed a compile warning in the file.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Acked-by: Segher Boessenkool <segher@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
show more ...
|
Revision tags: v2.6.16-rc4, v2.6.16-rc3, v2.6.16-rc2 |
|
#
d7a5b2ff |
| 25-Jan-2006 |
Michael Ellerman <michael@ellerman.id.au> |
[PATCH] powerpc: Always panic if lmb_alloc() fails
Currently most callers of lmb_alloc() don't check if it worked or not, if it ever does weird bad things will probably happen. The few callers who d
[PATCH] powerpc: Always panic if lmb_alloc() fails
Currently most callers of lmb_alloc() don't check if it worked or not, if it ever does weird bad things will probably happen. The few callers who do check just panic or BUG_ON.
So make lmb_alloc() panic internally, to catch bugs at the source. The few callers who did check the result no longer need to.
The only caller that did anything interesting with the return result was careful_allocation(). For it we create __lmb_alloc_base() which _doesn't_ panic automatically, a little messy, but passable.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
090db7c8 |
| 04-Feb-2006 |
Olaf Hering <olh@suse.de> |
[PATCH] powerpc: remove pointer/integer confusion in of_find_node_by_name
remove pointer/integer confusion
Signed-off-by: Olaf Hering <olh@suse.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
|
#
b68239ee |
| 03-Feb-2006 |
Michael Ellerman <michael@ellerman.id.au> |
[PATCH] powerpc: Don't overwrite flat device tree with kdump kernel
It's possible for prom_init to allocate the flat device tree inside the kdump crash kernel region. If this happens, when we load t
[PATCH] powerpc: Don't overwrite flat device tree with kdump kernel
It's possible for prom_init to allocate the flat device tree inside the kdump crash kernel region. If this happens, when we load the kdump kernel we overwrite the flattened device tree, which is bad.
We could make prom_init try and avoid allocating inside the crash kernel region, but then we run into issues if the crash kernel region uses all the space inside the RMO. The easiest solution is to move the flat device tree once we're running in the kernel.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
fa938953 |
| 25-Jan-2006 |
Michael Ellerman <michael@ellerman.id.au> |
[PATCH] powerpc: Don't allocate zero bytes in finish_device_tree()
In prom.c we run finish_node() on allnodes twice. The first time we just calculate how much memory we'll need, the second time we d
[PATCH] powerpc: Don't allocate zero bytes in finish_device_tree()
In prom.c we run finish_node() on allnodes twice. The first time we just calculate how much memory we'll need, the second time we do the actual work.
If the calculation stage determines that we need 0 bytes, then we should skip the lmb allocation. Although an alloc of zero will work, it has been seen to lead to a BUG_ON() in reserve_bootmem() on at least one machine.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
Revision tags: v2.6.16-rc1 |
|
#
ecaa8b0f |
| 12-Jan-2006 |
Dave C Boutcher <sleddog@us.ibm.com> |
[PATCH] powerpc: Add of_find_property function
Add an of_find_property function that returns a struct property given a property name. Then change the get_property function to use that routine inter
[PATCH] powerpc: Add of_find_property function
Add an of_find_property function that returns a struct property given a property name. Then change the get_property function to use that routine internally.
Signed-off-by: Dave Boutcher <sleddog@us.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
088186de |
| 12-Jan-2006 |
Dave C Boutcher <sleddog@us.ibm.com> |
[PATCH] powerpc: Add/remove/update properties in firmware device tree
Add support for updating and removing device tree properties. Since we hand out pointers to properties with gay abandon, we can
[PATCH] powerpc: Add/remove/update properties in firmware device tree
Add support for updating and removing device tree properties. Since we hand out pointers to properties with gay abandon, we can't just free the property storage. Instead we move deleted, or the old copy of an updated property, to a "dead properties" list.
Also note, its not feasable to kref device tree properties. we call get_property() all over the kernel in a wild variety of contexts.
One consequence of this change is that we now take a read_lock(&devtree_lock) when doing get_property().
Signed-off-by: Dave Boutcher <sleddog@us.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
cbbcf340 |
| 11-Jan-2006 |
Kumar Gala <galak@gate.crashing.org> |
[PATCH] powerpc: Fixed memory reserve map layout
powerpc: Fixed memory reserve map layout
The memory reserve map is suppose to be a pair of 64-bit integers to represent each region. On ppc32 the c
[PATCH] powerpc: Fixed memory reserve map layout
powerpc: Fixed memory reserve map layout
The memory reserve map is suppose to be a pair of 64-bit integers to represent each region. On ppc32 the code was treating the pair as two 32-bit integers. Additional the prom_init code was producing the wrong layout on ppc32.
Added a simple check to try to provide backwards compatibility.
Signed-off-by: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
show more ...
|
#
943ffb58 |
| 09-Jan-2006 |
Adrian Bunk <bunk@stusta.de> |
spelling: s/retreive/retrieve/
Signed-off-by: Adrian Bunk <bunk@stusta.de>
|