summaryrefslogtreecommitdiffstats
path: root/arch
AgeCommit message (Collapse)Author
2008-01-24[POWERPC] Provide a way to protect 4k subpages when using 64k pagesPaul Mackerras
Using 64k pages on 64-bit PowerPC systems makes life difficult for emulators that are trying to emulate an ISA, such as x86, which use a smaller page size, since the emulator can no longer use the MMU and the normal system calls for controlling page protections. Of course, the emulator can emulate the MMU by checking and possibly remapping the address for each memory access in software, but that is pretty slow. This provides a facility for such programs to control the access permissions on individual 4k sub-pages of 64k pages. The idea is that the emulator supplies an array of protection masks to apply to a specified range of virtual addresses. These masks are applied at the level where hardware PTEs are inserted into the hardware page table based on the Linux PTEs, so the Linux PTEs are not affected. Note that this new mechanism does not allow any access that would otherwise be prohibited; it can only prohibit accesses that would otherwise be allowed. This new facility is only available on 64-bit PowerPC and only when the kernel is configured for 64k pages. The masks are supplied using a new subpage_prot system call, which takes a starting virtual address and length, and a pointer to an array of protection masks in memory. The array has a 32-bit word per 64k page to be protected; each 32-bit word consists of 16 2-bit fields, for which 0 allows any access (that is otherwise allowed), 1 prevents write accesses, and 2 or 3 prevent any access. Implicit in this is that the regions of the address space that are protected are switched to use 4k hardware pages rather than 64k hardware pages (on machines with hardware 64k page support). In fact the whole process is switched to use 4k hardware pages when the subpage_prot system call is used, but this could be improved in future to switch only the affected segments. The subpage protection bits are stored in a 3 level tree akin to the page table tree. The top level of this tree is stored in a structure that is appended to the top level of the page table tree, i.e., the pgd array. Since it will often only be 32-bit addresses (below 4GB) that are protected, the pointers to the first four bottom level pages are also stored in this structure (each bottom level page contains the protection bits for 1GB of address space), so the protection bits for addresses below 4GB can be accessed with one fewer loads than those for higher addresses. Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-21[POWERPC] mpc5200: merge defconfigs for all mpc5200 boardsGrant Likely
There is no reason to have separate defconfigs for each mpc5200 board. Instead, here is a common defconfig that can be used for all supported platforms. Merging the defconfigs means there are fewer configuration to test when compile testing all of arch/powerpc and should make support easier. Supported boards: Lite5200(b), Efika, TQM5200, CM5200, MotionPro Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-18[POWERPC] mpc5200: Add generic support for simple MPC5200 based boardsMarian Balakowicz
This patch adds support for 'mpc5200-simple-platform' compatible boards which do not need a platform specific setup. Such boards are supported assuming the following: - GPIO pins are configured by the firmware, - CDM configuration (clocking) is setup correctly by firmware, - if the 'fsl,has-wdt' property is present in one of the gpt nodes, then it is safe to use such gpt to reset the board, - PCI is supported if enabled in the kernel configuration and if there is a PCI bus node defined in the device tree. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-18[POWERPC] mpc5200: Add Promess Motion-PRO DTSMarian Balakowicz
Add device tree source file for Promess Motion-PRO board. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-18[POWERPC] mpc5200: add CM5200 DTSMarian Balakowicz
Add device tree source file for CM5200 board. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-18[POWERPC] mpc5200: Add TQM5200 DTSMarian Balakowicz
Add device tree source file for TQ Components TQM5200 board. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-18[POWERPC] mpc5200: eliminate mpc52xx_*_map_*() functions.Grant Likely
mpc5200 platform code defines a bunch of map functions which duplicate the functionality of of_iomap(). Remove them and use of_iomap() instead. Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-18[POWERPC] mpc5200: Add common mpc52xx_setup_pci() routineMarian Balakowicz
This patch moves a generic pci init code from lite5200 platform file to a common mpc52xx_setup_pci() routine and adds additional compatibility property verification. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-18[POWERPC] mpc5200: Add 'fsl,lpb' bus type for localplus busMarian Balakowicz
Define MPC52xx specific device id list, add new 'fsl,lpb' compatible id for LocalPlus Bus. Signed-off-by: Marian Balakowicz <m8@semihalf.com> Acked-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-17Merge branch 'for-2.6.25' of ↵Paul Mackerras
master.kernel.org:/pub/scm/linux/kernel/git/olof/pasemi into for-2.6.25
2008-01-17[POWERPC] Use <linux/of_{platform, device}.h> and not <asm/...> variants.Jon Loeliger
Signed-off-by: Jon Loeliger <jdl@freescale.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] Check that the syscall table matches the syscall numbersStephen Rothwell
Also check that __NR_syscalls has been updated appropriately. Hopefully this will catch any out of order additions to the table in the future. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] Add hugepagesz boot-time parameterJon Tollefson
This adds the hugepagesz boot-time parameter for ppc64. It lets one pick the size for huge pages. The choices available are 64K and 16M when the base page size is 4k. It defaults to 16M (previously the only only choice) if nothing or an invalid choice is specified. Tested 64K huge pages successfully with the libhugetlbfs 1.2. Signed-off-by: Jon Tollefson <kniht@linux.vnet.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] arch/powerpc/kernel: Use for_each_child_of_nodeStephen Rothwell
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] cell: Use machine_*_initcall() hooks in platform codeGrant Likely
Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] powermac: Use machine_*_initcall() hooks in platform codeGrant Likely
Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] Update .gitignore filesJochen Friedrich
Update .gitignore as needed by dtc addition. Signed-off-by: Jochen Friedrich <jochen@scram.de> Acked-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] pci_32.c: Use for_each_child_of_nodeStephen Rothwell
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] eeh.c: Use for_each_child_of_nodeStephen Rothwell
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] iSeries: eliminate pci_dn bussubnoStephen Rothwell
xlate_iomm_address() really wants the ds_addr to pass to the HV, so store that value (instead of the BAR number) when we allocate the device bars. This is not a fast path, so we can look up the device_node property there instead of using the bussubno field of the pci_dn. The other user of iseries_ds_addr() was already scanning the device tree, so looking up a property will not slow it down any more. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] The pci_dn pcidev is only used by EEHStephen Rothwell
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] Use for_each macros in arch/powerpc/platforms/powermacCyrill Gorcunov
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] Use for_each macros in arch/powerpc/kernelCyrill Gorcunov
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] Use for_each macros in arch/powerpc/sysdevCyrill Gorcunov
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-17[POWERPC] Add of_find_matching_node() helper functionGrant Likely
Similar to of_find_compatible_node(), of_find_matching_node() and for_each_matching_node() allow you to iterate over the device tree looking for specific nodes, except that they take of_device_id tables instead of strings. This also moves of_match_node() from driver/of/device.c to driver/of/base.c to colocate it with the of_find_matching_node which depends on it. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-01-15[POWERPC] pasemi: Move electra-ide to pata_of_platformOlof Johansson
Move electra-ide glue over to the new pata_of_platform framework, and add the quirks needed to that driver. Signed-off-by: Olof Johansson <olof@lixom.net>
2008-01-11Merge branch 'virtex-for-2.6.25' of ↵Josh Boyer
git://git.secretlab.ca/git/linux-2.6-virtex into for-2.6.25
2008-01-09[POWERPC] Xilinx: updated device tree compatibility to match uboot bsp ↵Stephen Neuendorffer
generator. Missed this one in the boot loader before. Signed-off-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-09[POWERPC] Xilinx: Add correct compatible list for device tree bus bindings.Stephen Neuendorffer
Includes both flavors of plb, opb, dcr, and a pseudo 'compound' bus for representing compound peripherals containing more than one logical device. Signed-off-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-09[POWERPC] Xilinx: update compatible list for interrupt controllerStephen Neuendorffer
These values now match what is generated by the uboot BSP generator. Signed-off-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-01-08[POWERPC] 4xx: PCIe: Increase max busses per port to 64Stefan Roese
Because of how big mapping the config space is (1M per bus), we limit how many busses we support for now. In the long run, we could replace that with something akin to kmap_atomic instead. This patch changes the limit from currently 16 to 64. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2008-01-08[POWERPC] 4xx: Add 405GPr and 405EP support in boot wrapperMatthias Fuchs
This patch adds support for 405GPr processors with optional new mode strapping. ibm405gp_fixup_clocks() can now be used for 405GP and 405GPr CPUs. This is in preparation of porting the cpci405 platform support from arch/ppc to arch/powerpc. This patch also adds ibm405ep_fixup_clocks() to support 405EP CPUs from the boot wrapper. Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2008-01-08[POWERPC] 4xx: enable built-in networking for Sequoia defconfigHollis Blanchard
Enable EMAC driver for Sequoia (and while we're in there, disable Macintosh drivers for Sequoia and Bamboo). Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2008-01-04[POWERPC] 4xx: Add EMAC support to Kilauea defconfigStefan Roese
Somehow the EMAC support was dropped (or never really added) to the Kilauea defconfig file. This patch finally adds EMAC support. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2008-01-02[POWERPC] pasemi: Use machine_*_initcall() hooks in platform codeGrant Likely
Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Olof Johansson <olof@lixom.net>
2008-01-02[POWERPC] pasemi: Fix NMI handling checkOlof Johansson
The logic that checks to see if a machine check is caused by an NMI will always match when NMI hasn't been initialized, since the mpic routine will return NO_IRQ (and that's what the nmi_virq value is as well). Signed-off-by: Olof Johansson <olof@lixom.net>
2008-01-02[POWERPC] 4xx: typo in calling machine_device_initcall() for Sequoia boardGrant Likely
Fix an obvious typo. Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2007-12-31Merge branch 'for-2.6.25' of ↵Paul Mackerras
git://git.kernel.org/pub/scm/linux/kernel/git/olof/pasemi
2007-12-31Revert "[POWERPC] Disable PCI IO/Mem on a device when resources can't be ↵Paul Mackerras
allocated" This reverts commit 553aa7659bc0e188348f64e978343ed984eb6e56 at Ben H's request, because it confused IORESOURCE_* flags with command register bits. Requested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-12-28[POWERPC] Enable CONFIG_PCI_MSI and CONFIG_MD in pasemi_defconfigOlof Johansson
Enable MSI now that we have an implementation, and enable CONFIG_MD and the raid options by default as well. Signed-off-by: Olof Johansson <olof@lixom.net>
2007-12-28[POWERPC] pasemi: Distribute interrupts evenly across cpusOlof Johansson
By default the OpenPIC on PWRficient will bias to one core (since that will improve changes of the other core being able to stay idle/powered down). However, this conflicts with most irq load balancing schemes, since setting an interrupt to be delivered to either core doesn't really result in the load being shared. It also doesn't work well with the soft irq disable feature of PPC, since EE will stay on until the first interrupt is taken while soft disabled. Set the gconf0 config bit that enables even distribution of interrupts among the two cores. Signed-off-by: Olof Johansson <olof@lixom.net>
2007-12-28[POWERPC] pasemi: Implement NMI supportOlof Johansson
Some PWRficient-based boards have a NMI button that's wired up to a GPIO as interrupt source. By configuring the openpic accordingly, these get delivered as a machine check with high priority, instead of as an external interrupt. The device tree contains a property "nmi-source" in the openpic node for these systems, and it's the (hwirq) source for the input. Also, for these interrupts, the IACK is read from another register than the regular (MCACK instead), but they are EOI'd as usual. So implement said function for the mpic driver. Finally, move a couple of external function defines to include/ instead of local under sysdev. Being able to mask/unmask and eoi directly saves us from setting up a dummy irq handler that will never be called. Signed-off-by: Olof Johansson <olof@lixom.net>
2007-12-24[POWERPC] 4xx: Update defconfigsJosh Boyer
Update the 4xx board defconfigs Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2007-12-24[POWERPC] 4xx: Minor coding style cleanups for 4xx bootwrapperJosh Boyer
Remove some unneeded braces and make a busy loop more obvious. Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2007-12-24[POWERPC] 4xx: Use machine_device_initcall for bus probeJosh Boyer
Some machine_xx_initcall macros were recently added that check for the machine type before calling the function. This converts the 4xx platforms to use those for bus probing. Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2007-12-24[POWERPC] Remove unneeded variable declarations from mpc837x_mdsJosh Boyer
Remove the declarations for isa_io_base and isa_mem_base as they are declared in pci-common.c now. Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2007-12-24[POWERPC] Conditionally compile e200 and e500 platforms in cputableJosh Boyer
The e200 and e500 platforms are separated in various parts of the kernel with ifdefs, most notably reg_booke.h and traps.c. The new machine_check rework requires them to be similarly separated in cputable.c to avoid compile errors. Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2007-12-24[POWERPC] 4xx: Mark of_bus structures as __initdataJosh Boyer
Mark the of_device_id structures used to probe the various busses on 4xx as __initdata. Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2007-12-23[POWERPC] 4xx: Update Kilauea, Rainier, and Walnut defconfigsJosh Boyer
Enable PCI support for these eval boards among other things. Also selects PCI for Rainier in the Kconfig file. Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
2007-12-23[POWERPC] 4xx: Makalu defconfigStefan Roese
Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>