24 Jan, 2008
1 commit
-
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
22 Jan, 2008
3 commits
-
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, MotionProSigned-off-by: Grant Likely
-
In preparation of adding MPC5121 support
cleanup some things that checkpatch.pl complains
about also some minor fixes suggested by
Stephen Rothwell.Signed-off-by: John Rigby
Signed-off-by: Grant Likely -
This is in preparation for the addition of MPC512x
PSC support. The main difference in the 512x is
in the fifo registers.Signed-off-by: John Rigby
Signed-off-by: Grant Likely
19 Jan, 2008
7 commits
-
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
Signed-off-by: Grant Likely -
Add device tree source file for Promess Motion-PRO board.
Signed-off-by: Marian Balakowicz
Signed-off-by: Grant Likely -
Add device tree source file for CM5200 board.
Signed-off-by: Marian Balakowicz
Signed-off-by: Grant Likely -
Add device tree source file for TQ Components TQM5200 board.
Signed-off-by: Marian Balakowicz
Signed-off-by: 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
-
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
Signed-off-by: Grant Likely -
Define MPC52xx specific device id list, add new
'fsl,lpb' compatible id for LocalPlus Bus.Signed-off-by: Marian Balakowicz
Acked-by: David Gibson
Signed-off-by: Grant Likely
17 Jan, 2008
23 commits
-
Signed-off-by: Jon Loeliger
Signed-off-by: Paul Mackerras -
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
Signed-off-by: Paul Mackerras -
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
Signed-off-by: Paul Mackerras -
Fix error in booting-without-of.txt that indicates that a node can inherit
its #address-cells and #size-cells definitions from its parent's parent.
This is not correct.Signed-off-by: Mark A. Greer
Signed-off-by: Paul Mackerras -
We don't care if the device_create_file calls fail, the driver will work
just as well without them, so just issue a runtime warning.drivers/macintosh/therm_adt746x.c: In function 'thermostat_init':
drivers/macintosh/therm_adt746x.c:615: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_adt746x.c:616: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_adt746x.c:617: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_adt746x.c:618: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_adt746x.c:619: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_adt746x.c:620: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_adt746x.c:621: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_adt746x.c:622: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_adt746x.c:623: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_adt746x.c:625: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_resultSigned-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras -
We don't care if the device_create_file calls fail, the driver will work
just as well without them, so just issue a runtime warning.drivers/macintosh/therm_windtunnel.c: In function 'setup_hardware':
drivers/macintosh/therm_windtunnel.c:268: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_windtunnel.c:269: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_resultSigned-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras -
Signed-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras -
Signed-off-by: Grant Likely
Acked-by: Arnd Bergmann
Signed-off-by: Paul Mackerras -
Signed-off-by: Grant Likely
Signed-off-by: Paul Mackerras -
We don't really care if any of these calls to device_create_file fails,
so just issue warnings in that case.drivers/macintosh/therm_pm72.c: In function 'init_cpu_state':
drivers/macintosh/therm_pm72.c:1185: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1186: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1187: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1188: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1189: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1191: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1192: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1193: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1194: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1195: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c: In function 'init_backside_state':
drivers/macintosh/therm_pm72.c:1383: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1384: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c: In function 'init_drives_state':
drivers/macintosh/therm_pm72.c:1503: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1504: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c: In function 'init_dimms_state':
drivers/macintosh/therm_pm72.c:1625: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c: In function 'init_slots_state':
drivers/macintosh/therm_pm72.c:1743: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_result
drivers/macintosh/therm_pm72.c:1744: warning: ignoring return value of 'device_create_file', declared with attribute warn_unused_resultSigned-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras -
Update .gitignore as needed by dtc addition.
Signed-off-by: Jochen Friedrich
Acked-by: David Gibson
Signed-off-by: Paul Mackerras -
Signed-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras -
Signed-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras -
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
Signed-off-by: Paul Mackerras -
Signed-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras -
... so move it into the #ifdef CONFIG_EEH section.
Signed-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras -
Fix documentation once and for ever, because I'm pretty tired of
repeating that I am merely following it. ;-)http://ozlabs.org/pipermail/linuxppc-dev/2007-December/048096.html
http://ozlabs.org/pipermail/linuxppc-dev/2007-November/046977.html
http://ozlabs.org/pipermail/linuxppc-dev/2007-November/046979.htmlhttp://ozlabs.org/pipermail/linuxppc-dev/2007-October/044411.html
http://ozlabs.org/pipermail/linuxppc-dev/2007-October/044413.htmlSigned-off-by: Anton Vorontsov
Signed-off-by: Paul Mackerras -
Signed-off-by: Cyrill Gorcunov
Signed-off-by: Paul Mackerras -
Signed-off-by: Cyrill Gorcunov
Signed-off-by: Paul Mackerras -
Signed-off-by: Cyrill Gorcunov
Signed-off-by: Paul Mackerras -
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
Signed-off-by: Paul Mackerras -
Fixes sparse warning: constant 0xffffffffffffff80 is so big it is
unsigned longSigned-off-by: Geert Uytterhoeven
Signed-off-by: Paul Mackerras
16 Jan, 2008
3 commits
-
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
-
This driver nicely wraps around pata_platform library functions,
and provides OF platform bus bindings to the PATA devices.Also add || PPC to the PATA_PLATFORM's "depends on" Kconfig entry,
needed for PA Semi Electra.Signed-off-by: Anton Vorontsov
Signed-off-by: Olof Johansson -
Split pata_platform_{probe,remove} into two pieces:
1. pata_platform_{probe,remove} -- platform_device-dependant bits;
2. __ptata_platform_{probe,remove} -- device type neutral bits.This is done to not duplicate code for the OF-platform driver.
Signed-off-by: Anton Vorontsov
Acked-by: Paul Mundt
Signed-off-by: Olof Johansson
11 Jan, 2008
1 commit
09 Jan, 2008
2 commits
-
All the __devexit functions are now appropriately tagged. This fixes
some ppc link warnings.Signed-off-by: Stephen Neuendorffer
Acked-by: Peter Korsgaard
Signed-off-by: Grant Likely -
Missed this one in the boot loader before.
Signed-off-by: Stephen Neuendorffer
Signed-off-by: Grant Likely