openwrt/staging/blogic.git
16 years ago[POWERPC] Provide a way to protect 4k subpages when using 64k pages
Paul Mackerras [Wed, 23 Jan 2008 21:35:13 +0000 (08:35 +1100)]
[POWERPC] Provide a way to protect 4k subpages when using 64k pages

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>
16 years ago[POWERPC] mpc5200: merge defconfigs for all mpc5200 boards
Grant Likely [Mon, 21 Jan 2008 18:22:22 +0000 (11:22 -0700)]
[POWERPC] mpc5200: merge defconfigs for all mpc5200 boards

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>
16 years ago[POWERPC] mpc5200: Cleanup checkpatch.pl problems in mpc52xx_uart.c
John Rigby [Wed, 16 Jan 2008 21:37:25 +0000 (08:37 +1100)]
[POWERPC] mpc5200: Cleanup checkpatch.pl problems in mpc52xx_uart.c

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 <jrigby@freescale.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
16 years ago[POWERPC] Separate MPC52xx PSC FIFO registers from rest of PSC
John Rigby [Wed, 16 Jan 2008 21:37:24 +0000 (08:37 +1100)]
[POWERPC] Separate MPC52xx PSC FIFO registers from rest of PSC

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 <jrigby@freescale.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
16 years ago[POWERPC] mpc5200: Add generic support for simple MPC5200 based boards
Marian Balakowicz [Thu, 15 Nov 2007 11:40:21 +0000 (22:40 +1100)]
[POWERPC] mpc5200: Add generic support for simple MPC5200 based boards

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>
16 years ago[POWERPC] mpc5200: Add Promess Motion-PRO DTS
Marian Balakowicz [Fri, 9 Nov 2007 17:12:49 +0000 (04:12 +1100)]
[POWERPC] mpc5200: Add Promess Motion-PRO DTS

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>
16 years ago[POWERPC] mpc5200: add CM5200 DTS
Marian Balakowicz [Fri, 9 Nov 2007 17:12:31 +0000 (04:12 +1100)]
[POWERPC] mpc5200: add CM5200 DTS

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>
16 years ago[POWERPC] mpc5200: Add TQM5200 DTS
Marian Balakowicz [Fri, 9 Nov 2007 17:12:20 +0000 (04:12 +1100)]
[POWERPC] mpc5200: Add TQM5200 DTS

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>
16 years ago[POWERPC] mpc5200: eliminate mpc52xx_*_map_*() functions.
Grant Likely [Fri, 18 Jan 2008 16:30:37 +0000 (09:30 -0700)]
[POWERPC] mpc5200: eliminate mpc52xx_*_map_*() functions.

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>
16 years ago[POWERPC] mpc5200: Add common mpc52xx_setup_pci() routine
Marian Balakowicz [Fri, 9 Nov 2007 17:11:56 +0000 (04:11 +1100)]
[POWERPC] mpc5200: Add common mpc52xx_setup_pci() routine

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>
16 years ago[POWERPC] mpc5200: Add 'fsl,lpb' bus type for localplus bus
Marian Balakowicz [Fri, 9 Nov 2007 17:11:49 +0000 (04:11 +1100)]
[POWERPC] mpc5200: Add 'fsl,lpb' bus type for localplus bus

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>
16 years agoMerge branch 'for-2.6.25' of master.kernel.org:/pub/scm/linux/kernel/git/olof/pasemi...
Paul Mackerras [Thu, 17 Jan 2008 05:17:58 +0000 (16:17 +1100)]
Merge branch 'for-2.6.25' of /linux/kernel/git/olof/pasemi into for-2.6.25

16 years ago[POWERPC] Use <linux/of_{platform, device}.h> and not <asm/...> variants.
Jon Loeliger [Mon, 7 Jan 2008 18:07:15 +0000 (05:07 +1100)]
[POWERPC] Use <linux/of_{platform, device}.h> and not <asm/...> variants.

Signed-off-by: Jon Loeliger <jdl@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Check that the syscall table matches the syscall numbers
Stephen Rothwell [Mon, 7 Jan 2008 05:12:44 +0000 (16:12 +1100)]
[POWERPC] Check that the syscall table matches the syscall numbers

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>
16 years ago[POWERPC] Add hugepagesz boot-time parameter
Jon Tollefson [Thu, 3 Jan 2008 22:59:50 +0000 (09:59 +1100)]
[POWERPC] Add hugepagesz boot-time parameter

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>
16 years ago[POWERPC] #address-cells & #size-cells properties are not inherited
Mark A. Greer [Thu, 3 Jan 2008 15:40:47 +0000 (02:40 +1100)]
[POWERPC] #address-cells & #size-cells properties are not inherited

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 <mgreer@mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] therm_adt746x: Eliminate some build warnings
Stephen Rothwell [Thu, 3 Jan 2008 04:17:12 +0000 (15:17 +1100)]
[POWERPC] therm_adt746x: Eliminate some build warnings

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_result

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] therm_windtunnel: Eliminate some build warnings
Stephen Rothwell [Thu, 3 Jan 2008 04:15:28 +0000 (15:15 +1100)]
[POWERPC] therm_windtunnel: Eliminate some build warnings

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_result

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] arch/powerpc/kernel: Use for_each_child_of_node
Stephen Rothwell [Thu, 3 Jan 2008 04:13:37 +0000 (15:13 +1100)]
[POWERPC] arch/powerpc/kernel: Use for_each_child_of_node

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] cell: Use machine_*_initcall() hooks in platform code
Grant Likely [Wed, 2 Jan 2008 19:14:36 +0000 (06:14 +1100)]
[POWERPC] cell: Use machine_*_initcall() hooks in platform code

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] powermac: Use machine_*_initcall() hooks in platform code
Grant Likely [Wed, 2 Jan 2008 19:14:28 +0000 (06:14 +1100)]
[POWERPC] powermac: Use machine_*_initcall() hooks in platform code

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] therm_pm72: Suppress some compile warnings
Stephen Rothwell [Wed, 2 Jan 2008 05:25:32 +0000 (16:25 +1100)]
[POWERPC] therm_pm72: Suppress some compile warnings

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_result

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Update .gitignore files
Jochen Friedrich [Mon, 31 Dec 2007 16:14:53 +0000 (03:14 +1100)]
[POWERPC] Update .gitignore files

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>
16 years ago[POWERPC] pci_32.c: Use for_each_child_of_node
Stephen Rothwell [Fri, 21 Dec 2007 04:52:43 +0000 (15:52 +1100)]
[POWERPC] pci_32.c: Use for_each_child_of_node

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] eeh.c: Use for_each_child_of_node
Stephen Rothwell [Fri, 21 Dec 2007 04:52:07 +0000 (15:52 +1100)]
[POWERPC] eeh.c: Use for_each_child_of_node

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] iSeries: eliminate pci_dn bussubno
Stephen Rothwell [Fri, 21 Dec 2007 04:50:09 +0000 (15:50 +1100)]
[POWERPC] iSeries: eliminate pci_dn bussubno

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>
16 years ago[POWERPC] The pci_dn pcidev is only used by EEH
Stephen Rothwell [Fri, 21 Dec 2007 04:49:11 +0000 (15:49 +1100)]
[POWERPC] The pci_dn pcidev is only used by EEH

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] The pci_dn class_code is only used by EEH
Stephen Rothwell [Fri, 21 Dec 2007 04:48:18 +0000 (15:48 +1100)]
[POWERPC] The pci_dn class_code is only used by EEH

... so move it into the #ifdef CONFIG_EEH section.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] booting-without-of: localbus should not include board name
Anton Vorontsov [Fri, 14 Dec 2007 18:48:26 +0000 (05:48 +1100)]
[POWERPC] booting-without-of: localbus should not include board name

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.html

http://ozlabs.org/pipermail/linuxppc-dev/2007-October/044411.html
http://ozlabs.org/pipermail/linuxppc-dev/2007-October/044413.html

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Use for_each macros in arch/powerpc/platforms/powermac
Cyrill Gorcunov [Thu, 29 Nov 2007 19:46:54 +0000 (06:46 +1100)]
[POWERPC] Use for_each macros in arch/powerpc/platforms/powermac

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Use for_each macros in arch/powerpc/kernel
Cyrill Gorcunov [Thu, 29 Nov 2007 19:45:47 +0000 (06:45 +1100)]
[POWERPC] Use for_each macros in arch/powerpc/kernel

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Use for_each macros in arch/powerpc/sysdev
Cyrill Gorcunov [Thu, 29 Nov 2007 19:44:36 +0000 (06:44 +1100)]
[POWERPC] Use for_each macros in arch/powerpc/sysdev

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] Add of_find_matching_node() helper function
Grant Likely [Tue, 8 Jan 2008 19:20:40 +0000 (06:20 +1100)]
[POWERPC] Add of_find_matching_node() helper function

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>
16 years ago[POWERPC] Kill sparse warning in HPTE_V_COMPARE()
Geert Uytterhoeven [Mon, 26 Nov 2007 16:24:43 +0000 (03:24 +1100)]
[POWERPC] Kill sparse warning in HPTE_V_COMPARE()

Fixes sparse warning: constant 0xffffffffffffff80 is so big it is
unsigned long

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
16 years ago[POWERPC] pasemi: Move electra-ide to pata_of_platform
Olof Johansson [Tue, 4 Dec 2007 20:44:32 +0000 (14:44 -0600)]
[POWERPC] pasemi: Move electra-ide to pata_of_platform

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>
16 years agolibata: pata_of_platform: OF-Platform PATA device driver
Anton Vorontsov [Wed, 9 Jan 2008 19:10:41 +0000 (22:10 +0300)]
libata: pata_of_platform: OF-Platform PATA device driver

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 <avorontsov@ru.mvista.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
16 years agolibata: pata_platform: make probe and remove functions device type neutral
Anton Vorontsov [Wed, 9 Jan 2008 19:10:22 +0000 (22:10 +0300)]
libata: pata_platform: make probe and remove functions device type neutral

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 <avorontsov@ru.mvista.com>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
16 years agoMerge branch 'virtex-for-2.6.25' of git://git.secretlab.ca/git/linux-2.6-virtex into...
Josh Boyer [Fri, 11 Jan 2008 13:02:57 +0000 (07:02 -0600)]
Merge branch 'virtex-for-2.6.25' of git://git.secretlab.ca/git/linux-2.6-virtex into for-2.6.25

16 years ago[POWERPC] Xilinx uartlite: Section type fixups
Stephen Neuendorffer [Tue, 8 Jan 2008 19:35:09 +0000 (06:35 +1100)]
[POWERPC] Xilinx uartlite: Section type fixups

All the __devexit functions are now appropriately tagged.  This fixes
some ppc link warnings.

Signed-off-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Acked-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
16 years ago[POWERPC] Xilinx: updated device tree compatibility to match uboot bsp generator.
Stephen Neuendorffer [Tue, 8 Jan 2008 19:35:08 +0000 (06:35 +1100)]
[POWERPC] Xilinx: updated device tree compatibility to match uboot bsp 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>
16 years ago[POWERPC] Xilinx: Update booting-without-of.
Stephen Neuendorffer [Tue, 8 Jan 2008 19:35:07 +0000 (06:35 +1100)]
[POWERPC] Xilinx: Update booting-without-of.

This now better describes what the UBoot device tree generator
actually does.  In particular:

1) Nodes have a label derived from the device name, and a node name
derived from a generic version of the device type, e.g. 'ethernet',
'serial', etc.

2) Usage of compound nodes (representing more than one device in the
same IP) which actually works.  This requires having a valid
compatible node, and all the other things that a bus normally has.
I've chosen 'xlnx,compound' as the bus name to describe these compound
nodes.

In addition, I've clarified some of the language relating to how mhs
nodes should be represent in the device tree.

Signed-off-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
16 years ago[POWERPC] Xilinx: Add correct compatible list for device tree bus bindings.
Stephen Neuendorffer [Tue, 8 Jan 2008 19:35:06 +0000 (06:35 +1100)]
[POWERPC] Xilinx: Add correct compatible list for device tree bus bindings.

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>
16 years ago[POWERPC] Xilinx: update compatible list for interrupt controller
Stephen Neuendorffer [Tue, 8 Jan 2008 19:35:04 +0000 (06:35 +1100)]
[POWERPC] Xilinx: update compatible list for interrupt controller

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>
16 years ago[POWERPC] 4xx: PCIe: Increase max busses per port to 64
Stefan Roese [Mon, 31 Dec 2007 05:41:15 +0000 (16:41 +1100)]
[POWERPC] 4xx: PCIe: Increase max busses per port to 64

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>
16 years ago[POWERPC] 4xx: Add 405GPr and 405EP support in boot wrapper
Matthias Fuchs [Thu, 6 Dec 2007 22:23:05 +0000 (09:23 +1100)]
[POWERPC] 4xx: Add 405GPr and 405EP support in boot wrapper

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>
16 years ago[POWERPC] 4xx: enable built-in networking for Sequoia defconfig
Hollis Blanchard [Fri, 4 Jan 2008 23:26:54 +0000 (10:26 +1100)]
[POWERPC] 4xx: enable built-in networking for Sequoia defconfig

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>
16 years ago[POWERPC] 4xx: Add EMAC support to Kilauea defconfig
Stefan Roese [Fri, 4 Jan 2008 14:00:43 +0000 (01:00 +1100)]
[POWERPC] 4xx: Add EMAC support to Kilauea defconfig

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>
16 years ago[POWERPC] pasemi: Use machine_*_initcall() hooks in platform code
Grant Likely [Wed, 2 Jan 2008 19:32:28 +0000 (12:32 -0700)]
[POWERPC] pasemi: Use machine_*_initcall() hooks in platform code

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Olof Johansson <olof@lixom.net>
16 years ago[POWERPC] pasemi: Fix NMI handling check
Olof Johansson [Wed, 2 Jan 2008 18:35:50 +0000 (12:35 -0600)]
[POWERPC] pasemi: Fix NMI handling check

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>
16 years ago[POWERPC] 4xx: typo in calling machine_device_initcall() for Sequoia board
Grant Likely [Wed, 2 Jan 2008 17:23:56 +0000 (04:23 +1100)]
[POWERPC] 4xx: typo in calling machine_device_initcall() for Sequoia board

Fix an obvious typo.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years agoMerge branch 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/olof/pasemi
Paul Mackerras [Mon, 31 Dec 2007 02:54:13 +0000 (13:54 +1100)]
Merge branch 'for-2.6.25' of git://git./linux/kernel/git/olof/pasemi

16 years agoRevert "[POWERPC] Disable PCI IO/Mem on a device when resources can't be allocated"
Paul Mackerras [Sun, 30 Dec 2007 23:04:15 +0000 (10:04 +1100)]
Revert "[POWERPC] Disable PCI IO/Mem on a device when resources can't be 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>
16 years ago[POWERPC] Enable CONFIG_PCI_MSI and CONFIG_MD in pasemi_defconfig
Olof Johansson [Fri, 28 Dec 2007 16:41:28 +0000 (10:41 -0600)]
[POWERPC] Enable CONFIG_PCI_MSI and CONFIG_MD in pasemi_defconfig

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>
16 years ago[POWERPC] pasemi: Distribute interrupts evenly across cpus
Olof Johansson [Fri, 28 Dec 2007 04:16:29 +0000 (22:16 -0600)]
[POWERPC] pasemi: Distribute interrupts evenly across cpus

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>
16 years ago[POWERPC] pasemi: Implement NMI support
Olof Johansson [Thu, 20 Dec 2007 19:11:18 +0000 (13:11 -0600)]
[POWERPC] pasemi: Implement NMI support

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>
16 years ago[POWERPC] 4xx: Update defconfigs
Josh Boyer [Tue, 25 Dec 2007 01:46:29 +0000 (19:46 -0600)]
[POWERPC] 4xx: Update defconfigs

Update the 4xx board defconfigs

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Minor coding style cleanups for 4xx bootwrapper
Josh Boyer [Tue, 25 Dec 2007 01:46:06 +0000 (19:46 -0600)]
[POWERPC] 4xx: Minor coding style cleanups for 4xx bootwrapper

Remove some unneeded braces and make a busy loop more obvious.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Use machine_device_initcall for bus probe
Josh Boyer [Mon, 24 Dec 2007 16:42:02 +0000 (10:42 -0600)]
[POWERPC] 4xx: Use machine_device_initcall for bus probe

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>
16 years ago[POWERPC] Remove unneeded variable declarations from mpc837x_mds
Josh Boyer [Mon, 24 Dec 2007 15:01:11 +0000 (09:01 -0600)]
[POWERPC] Remove unneeded variable declarations from mpc837x_mds

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>
16 years ago[POWERPC] Conditionally compile e200 and e500 platforms in cputable
Josh Boyer [Mon, 24 Dec 2007 14:44:47 +0000 (08:44 -0600)]
[POWERPC] Conditionally compile e200 and e500 platforms in cputable

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>
16 years ago[POWERPC] 4xx: Mark of_bus structures as __initdata
Josh Boyer [Mon, 24 Dec 2007 14:40:31 +0000 (08:40 -0600)]
[POWERPC] 4xx: Mark of_bus structures as __initdata

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>
16 years ago[POWERPC] 4xx: Update Kilauea, Rainier, and Walnut defconfigs
Josh Boyer [Thu, 20 Dec 2007 15:00:17 +0000 (09:00 -0600)]
[POWERPC] 4xx: Update Kilauea, Rainier, and Walnut defconfigs

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>
16 years ago[POWERPC] 4xx: Makalu defconfig
Stefan Roese [Fri, 21 Dec 2007 07:11:01 +0000 (18:11 +1100)]
[POWERPC] 4xx: Makalu defconfig

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Makalu dts
Stefan Roese [Fri, 21 Dec 2007 07:10:51 +0000 (18:10 +1100)]
[POWERPC] 4xx: Makalu dts

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add AMCC Makalu board support to platforms/40x
Stefan Roese [Fri, 21 Dec 2007 07:10:36 +0000 (18:10 +1100)]
[POWERPC] 4xx: Add AMCC Makalu board support to platforms/40x

This patch adds basic support for the AMCC Makalu board to arch/powerpc.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Change Kilauea PCIe bus ranges in dts file
Stefan Roese [Sat, 15 Dec 2007 08:10:56 +0000 (19:10 +1100)]
[POWERPC] 4xx: Change Kilauea PCIe bus ranges in dts file

Currently we have some limitations in the 4xx PCIe driver and can't
support all possible PCIe busses. But the current limits in the
dts file are quite low (only 16 busses per RC). This patch increases
the number to 64 per RC.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add aliases node to 4xx dts files
Stefan Roese [Sat, 15 Dec 2007 07:55:16 +0000 (18:55 +1100)]
[POWERPC] 4xx: Add aliases node to 4xx dts files

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add PCI entry to 440GRx Rainier DTS.
Valentine Barshak [Fri, 21 Dec 2007 17:22:39 +0000 (04:22 +1100)]
[POWERPC] 4xx: Add PCI entry to 440GRx Rainier DTS.

This adds PCI entry to PowerPC 440GRx Rainier DTS.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: update 440EP(x)/440GR(x) identical PVR issue workaround
Valentine Barshak [Fri, 21 Dec 2007 16:24:02 +0000 (03:24 +1100)]
[POWERPC] 4xx: update 440EP(x)/440GR(x) identical PVR issue workaround

Renaming the CPU nodes with generic names put the CPU model in
the "model" property and thus broke the PowerPC 440EP(x)/440GR(x)
identical PVR workaround. The updates it to use the new model property
for CPU identification.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Rename CPU nodes to avoid dtc incompatibility
Josh Boyer [Thu, 6 Dec 2007 19:20:05 +0000 (13:20 -0600)]
[POWERPC] 4xx: Rename CPU nodes to avoid dtc incompatibility

Recent DTC versions disallow certain special characters in full paths without
being quoted with {}.  That however breaks compatibility with older DTC
versions.  Work around this by renaming the CPU nodes for the 4xx files to a
generic node name, and specify the processor type in the model property of the
CPU node.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Set ibpre for 405EX in 4xx PCIe driver
Stefan Roese [Fri, 7 Dec 2007 09:34:34 +0000 (20:34 +1100)]
[POWERPC] 4xx: Set ibpre for 405EX in 4xx PCIe driver

This patch sets the ibpre flag (Inbound Presence) for the 405EX
in the 4xx PCIe driver.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add Kilauea PCIe support to dts and Kconfig
Stefan Roese [Fri, 7 Dec 2007 09:34:26 +0000 (20:34 +1100)]
[POWERPC] 4xx: Add Kilauea PCIe support to dts and Kconfig

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Change Kilauea dts to support new EMAC device tree properties
Stefan Roese [Sat, 1 Dec 2007 10:25:00 +0000 (21:25 +1100)]
[POWERPC] 4xx: Change Kilauea dts to support new EMAC device tree properties

The recent changes from Benjamin Herrenschmidt to the ibm_newemac now
make it possible to support other 4xx variants by just defining the
correct properties in the device tree. In this case of the 405EX we
need to define "has-mdio" in the RGMII node and "has-inverted-stacr-oc"
and "has-new-stacr-staopc" in the EMAC node same as on the 440EPx.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add 405EX CPU type needed for EMAC support on Kilauea
Stefan Roese [Sat, 1 Dec 2007 10:19:55 +0000 (21:19 +1100)]
[POWERPC] 4xx: Add 405EX CPU type needed for EMAC support on Kilauea

For EMAC support, 405EX needs to be defined to enable the corresponding
EMAC features (IBM_NEW_EMAC_EMAC4, etc.).

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Fix TLB 0 problem with CONFIG_SERIAL_TEXT_DEBUG
Stefan Roese [Tue, 20 Nov 2007 10:19:16 +0000 (21:19 +1100)]
[POWERPC] 4xx: Fix TLB 0 problem with CONFIG_SERIAL_TEXT_DEBUG

Right now TLB entry 0 ist used as UART0 mapping for the early debug
output (via CONFIG_SERIAL_TEXT_DEBUG). This causes problems when many
TLB's get used upon Linux bootup (e.g. while PCIe scanning behind
bridges and/or switches on 440SPe platforms). This will overwrite the
TLB 0 entry and further debug output's may crash/hang the system.

This patch moves the early debug UART0 TLB entry from 0 to 62 as done
in arch/powerpc. This way it is in the "pinned" area and will not get
overwritten. Also the arch/ppc/mm/44x_mmu.c code is now synced with the
newer code from arch/powerpc.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: libfdt and pci fixes for Rainier
Josh Boyer [Thu, 20 Dec 2007 14:55:34 +0000 (08:55 -0600)]
[POWERPC] 4xx: libfdt and pci fixes for Rainier

Update the Rainier wrapper for the libfdt merge and add the pci flags to the
platform file.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Include missing header
Josh Boyer [Fri, 14 Dec 2007 12:36:35 +0000 (06:36 -0600)]
[POWERPC] 4xx: Include missing header

A small error caused a header file to be removed making sequoia support no
longer compile.  Fix it.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 44x: Sequoia and Rainier updates for 2.6.25
Valentine Barshak [Thu, 6 Dec 2007 16:21:12 +0000 (19:21 +0300)]
[POWERPC] 44x: Sequoia and Rainier updates for 2.6.25

PowerPC 440Epx/GRx Sequoia/Rainier updates for 2.6.25

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Fix 440grx setup function to call 440A fixup
Josh Boyer [Tue, 4 Dec 2007 19:02:18 +0000 (13:02 -0600)]
[POWERPC] 4xx: Fix 440grx setup function to call 440A fixup

The mechanism to do the setup for 440A cores changed recently.  This fixes
the 440grx setup function to call __fixup_440A_mcheck.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add PCI entry to 440EPx Sequoia DTS.
Valentine Barshak [Fri, 21 Dec 2007 16:26:01 +0000 (03:26 +1100)]
[POWERPC] 4xx: Add PCI entry to 440EPx Sequoia DTS.

This adds PCI entry to PowerPC 440EPx Sequoia DTS.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Correct 440GRx machine_check callback
Valentine Barshak [Fri, 21 Dec 2007 16:22:23 +0000 (03:22 +1100)]
[POWERPC] 4xx: Correct 440GRx machine_check callback

Correct the PowerPC 440GRx machine check callback.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: rework UIC cascade irq handling
Valentine Barshak [Thu, 6 Dec 2007 13:48:26 +0000 (00:48 +1100)]
[POWERPC] 4xx: rework UIC cascade irq handling

This is a UIC cascade handler rework to use set_irq_chained_handler() for
cascade, just like othe ppc platforms do. With current implementation we have
additional redirection for irq handler and we call generic_handle_irq twice
(once for the primary uic and the other time for handling cascade interrupt).
This causes Ingo's realtime support patch to stop working on 4xx.

Not sure of any other possible problems though, but with
set_irq_chained_handler() we can abolish "struct irqaction cascade" from the
chip descriptor and call generic_handle_irq() once, directly for cascade irq.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: make UIC use generic level irq handler
Valentine Barshak [Wed, 14 Nov 2007 14:00:52 +0000 (01:00 +1100)]
[POWERPC] 4xx: make UIC use generic level irq handler

This patch makes PowerPC 4xx UIC use generic level irq handler instead
of a custom handle_uic_irq() function. We ack only edge irqs in mask_ack
callback, since acking a level irq on UIC has no effect if the interrupt
is still asserted by the device, even if the interrupt is already masked.
So, to really de-assert the interrupt we need to de-assert the external
source first *and* ack it on UIC then. The handle_level_irq() function
masks and ack's the interrupt with mask_ack callback prior to calling
the actual ISR and unmasks it at the end. So, to use it with UIC interrupts
we need to ack level irqs in the unmask callback instead, after the ISR
has de-asserted the external interrupt source. Even if we ack the interrupt
that we didn't handle (unmask/ack it at the end of the handler, while
next irq is already pending) it will not de-assert the irq, untill we
de-assert its exteral source.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: 440GRx Rainier default config
Valentine Barshak [Tue, 30 Oct 2007 17:00:49 +0000 (04:00 +1100)]
[POWERPC] 4xx: 440GRx Rainier default config

PowerPC 440GRx Rainier default config.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: 440GRx Rainier board support.
Valentine Barshak [Tue, 30 Oct 2007 16:57:39 +0000 (03:57 +1100)]
[POWERPC] 4xx: 440GRx Rainier board support.

PowerPC 440GRx Rainier board support.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: 440GRx Rainier DTS.
Valentine Barshak [Tue, 30 Oct 2007 16:56:50 +0000 (03:56 +1100)]
[POWERPC] 4xx: 440GRx Rainier DTS.

PowerPC 440GRx Rainier DTS.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: 440GRx Rainier bootwrapper.
Valentine Barshak [Tue, 30 Oct 2007 16:56:06 +0000 (03:56 +1100)]
[POWERPC] 4xx: 440GRx Rainier bootwrapper.

Bootwrapper code for PowerPC 440GRx Rainier board.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: 440EPx Sequoia USB OHCI DTS entry
Valentine Barshak [Mon, 8 Oct 2007 14:26:58 +0000 (00:26 +1000)]
[POWERPC] 4xx: 440EPx Sequoia USB OHCI DTS entry

Add the 440EPx Sequoia USB OHCI device tree entry.

Signed-off-by: Valentine Barshak <vbarshak@ru.mvista.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add 440SPe revA runtime detection to PCIe
Stefan Roese [Fri, 21 Dec 2007 04:39:38 +0000 (15:39 +1100)]
[POWERPC] 4xx: Add 440SPe revA runtime detection to PCIe

This patch adds runtime detection of the 440SPe revision A chips. These
chips are equipped with a slighly different PCIe core and need special/
different initialization. The compatible node is changed to
"plb-pciex-440spe" ("A" and "B" dropped). This is needed for boards that
can be equipped with both PPC revisions like the AMCC Yucca.

Signed-off-by: Stefan Roese <sr@denx.de>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] pci32: 4xx embedded platforms want to reassign all PCI resources
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:37 +0000 (15:39 +1100)]
[POWERPC] pci32: 4xx embedded platforms want to reassign all PCI resources

This makes 4xx embedded platforms re-assign all PCI resources as we
pretty much never care about what the various firmwares have done on
these, it's generally not compatible with the way the kernel will map
the bridges.

We still need to also enable bus renumbering on some of them, but I
will do that from a separate patch after I've fixed 4xx PCIe to handle
all bus numbers.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: PCI-E Link setup improvements
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:36 +0000 (15:39 +1100)]
[POWERPC] 4xx: PCI-E Link setup improvements

This improves the way the 4xx PCI-E code handles checking for a link
and adds explicit testing of CRS result codes on config space accesses.

This should make it more reliable.

Also, bridges with no link are now still created, though config space
accesses beyond the root complex are filtered. This is one step toward
eventually supporting hotplug.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: remove bogus "ranges" property in Bamboo EBC node
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:35 +0000 (15:39 +1100)]
[POWERPC] 4xx: remove bogus "ranges" property in Bamboo EBC node

This removes a bogus empty "ranges" property in the EBC device node
of the Bamboo board device-tree.

The "ranges" property should be created by the wrapper code when it is
implemented.  Until then, remove the empty property since it incorrectly
implies that there is a 1:1 address mapping between the EBC and the OPB.

This also fixes a warning from newer DTCs.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Base support for 440SPe "Katmai" eval board
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:34 +0000 (15:39 +1100)]
[POWERPC] 4xx: Base support for 440SPe "Katmai" eval board

This adds base support for the Katmai board, including PCI-X and
PCI-Express (but no RTC, nvram, etc... yet).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Stefan Roese <sr@denx.de>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Rework clock probing in boot wrapper
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:33 +0000 (15:39 +1100)]
[POWERPC] 4xx: Rework clock probing in boot wrapper

This reworks the boot wrapper library function that probes
the chip clocks. Better separate the base function that is
used on 440GX,SPe,EP,... from the uart fixups as those need
different device-tree path on different processors.

Also, rework the function itself based on the arch/ppc code
from Eugene Surovegin which I find more readable, and which
handles one more bypass case. Also handle the subtle difference
between 440EP/EPx and 440SPe/GX, on the former, PerClk is derived
from the PLB clock while on the later, it's derived from the OPB.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add CPR0 accessors to boot wrapper
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:32 +0000 (15:39 +1100)]
[POWERPC] 4xx: Add CPR0 accessors to boot wrapper

This adds macros to the boot wrapper to access the CPR
registers from the boot wrappers.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Add mfspr/mtspr inline macros to 4xx bootwrapper
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:32 +0000 (15:39 +1100)]
[POWERPC] 4xx: Add mfspr/mtspr inline macros to 4xx bootwrapper

The 4xx bootwrapper occasionally needs to access SPR registers,
this adds mfspr/mtspr wrappers to it.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Adds decoding of 440SPE memory size to boot wrapper library
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:31 +0000 (15:39 +1100)]
[POWERPC] 4xx: Adds decoding of 440SPE memory size to boot wrapper library

This adds a function to the bootwrapper 4xx library to decode memory
size on 440SPE processors.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Wire up 440EP USB controller support to Bamboo board
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:30 +0000 (15:39 +1100)]
[POWERPC] 4xx: Wire up 440EP USB controller support to Bamboo board

This adds the definition of the on-chip OHCI controller to the
Bamboo board's device-tree. This is enough to get it probed and
working, though a separate patch fixing a bug in the OHCI driver
is needed to make it reliable.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Wire up PCI on Bamboo board
Benjamin Herrenschmidt [Fri, 21 Dec 2007 04:39:29 +0000 (15:39 +1100)]
[POWERPC] 4xx: Wire up PCI on Bamboo board

This adds the device-tree bits & call to ppc4xx_pci_find_bridges()
to make PCI work on the Bamboo board

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
16 years ago[POWERPC] 4xx: Base support for 440GX Taishan eval board
Hugh Blemings [Fri, 21 Dec 2007 04:39:28 +0000 (15:39 +1100)]
[POWERPC] 4xx: Base support for 440GX Taishan eval board

This patch adds base support for the AMCC Taishan 440GX evaluation
board.

Signed-off-by: Hugh Blemings <hugh@blemings.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>