Commit Graph
100 Commits
Author SHA1 Message Date
Scott Wood 69e77a8b04 perf, powerpc: fsl_emb: Restore setting perf_sample_data.period
Commit 6b95ed345b changed from
a struct initializer to perf_sample_data_init(), but the setting
of the .period member was left out.

Signed-off-by: Scott Wood <[email protected]>
Cc: [email protected]
Signed-off-by: Paul Mackerras <[email protected]>
2010-08-03 10:56:45 +10:00
Scott Wood fe04b11215 powerpc/e500mc: Implement machine check handler.
Most of the MSCR bit assigments are different in e500mc versus
e500, and they are now write-one-to-clear.

Some e500mc machine check conditions are made recoverable (as long as
they aren't stuck on), most notably L1 instruction cache parity errors.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2010-05-21 07:41:52 -05:00
Scott Wood a11106544f powerpc/perf: e500 support
This implements perf_event support for the Freescale embedded performance
monitor, based on the existing perf_event.c that supports server/classic
chips.

Some limitations:
- Performance monitor interrupts are regular EE interrupts, and thus you
  can't profile places with interrupts disabled.  We may want to implement
  soft IRQ-disabling, with perfmon interrupts exempted and treated as NMIs.
- When trying to schedule multiple event groups at once, and using
  restricted events, situations could arise where scheduling fails even
  though it would be possible.  Consider three groups, each with two events.
  One group has restricted events, the others don't.  The two non-restricted
  groups are scheduled, then one is removed, which happens to occupy the two
  counters that can't do restricted events.  The remaining non-restricted
  group will not be moved to the non-restricted-capable counters to make
  room if the restricted group tries to be scheduled.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: Paul Mackerras <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2010-03-05 03:04:08 -06:00
Scott Wood 9d6df3fdfc powerpc/perf: Build callchain code regardless of hardware event support.
It's also useful for software events, as well as future support for
other types of hardware counters.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: Paul Mackerras <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2010-03-04 10:46:29 -06:00
Scott Wood c1317f7163 mtd: eLBC NAND: give more verbose output on error
We want error information even if the kernel hasn't been built for verbose
debugging.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Artem Bityutskiy <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2009-11-30 09:53:55 +00:00
Scott Wood 476459a6cf mtd: eLBC NAND: use recommended command sequences
Currently, the program and erase sequences do not wait for completion,
instead relying on a subsequent waitfunc() callback.  However, this causes
the chipselect to be deasserted while the NAND chip is still asserting the
busy pin, which can corrupt activity on other chipselects.

This patch switches to using the sequences recommended by the manual,
in which a wait is performed within the initial command sequence.  We can
now re-use the status byte from the initial command sequence, rather than
having to do another status read in the waitfunc.

Since we're already touching the command sequences, it also cleans up some
cruft in SEQIN that isn't needed since we cannot program partial pages
outside of OOB.

Signed-off-by: Scott Wood <[email protected]>
Reported-by: Suchit Lepcha <[email protected]>
Signed-off-by: Artem Bityutskiy <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2009-11-30 09:53:49 +00:00
Scott Wood b3a70f0bc3 mtd: eLBC NAND: increase bus timeout to maximum
When a NAND operation is in progress, all other localbus operations
(including NOR flash) will have to wait for access to the bus.  However, the
NAND operation may take longer to complete than the default timeout.  Thus,
if NOR is accessed while a NAND operation is in progress, the NAND operation
will fail.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Artem Bityutskiy <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2009-11-30 09:53:32 +00:00
Scott Wood 65cc0fa3bd powerpc/pq2fads: Update device tree for use with device-tree-aware u-boot.
Add aliases, and correct CS0 offset to match how u-boot
programs it (this was not a problem with cuImage because
the wrapper would reprogram the localbus to match the device
tree).

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2009-04-06 09:09:46 -05:00
Scott Wood 4d8107f474 cpm_uart: Disable CPM udbg when re-initing CPM uart, even if not the console.
Previously, if udbg was using the CPM uart, and the normal CPM uart driver
was enabled, but the console was directed elsewhere, udbg would not be
stopped prior to initialization.  This resulted in udbg hanging forever
waiting for the CPM to process a descriptor.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2009-04-06 09:09:33 -05:00
Scott Wood bd86ef3784 cpm_uart: Initialize port.dev before it's used.
Previously, this caused NULL to sometimes be passed as a device
to the DMA code.  With recent DMA changes, that now causes a BUG().

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2009-04-06 09:09:28 -05:00
Scott Wood 49e6e3f1ae powerpc/bootwrapper: Use the child-bus #address-cells to decide which range entry to use
The correct #address-cells was still used for the actual translation,
so the impact is only a possibility of choosing the wrong range entry
or failing to find any match.  Most common cases were not affected.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2008-12-21 14:21:17 +11:00
Scott Wood 8dd217b27e powerpc: Add cuImage.mpc866ads to the bootwrapper as a cuboot-8xx target
This patch fixes the following build error with mpc866_ads_defconfig:

<--  snip  -->

...
  WRAP    arch/powerpc/boot/cuImage.mpc866ads
powerpc64-linux-ld: arch/powerpc/boot/cuboot-mpc866ads.o: No such file: No such file or directory
make[2]: *** [arch/powerpc/boot/cuImage.mpc866ads] Error 1

<--  snip  -->

Reported-by: Adrian Bunk <[email protected]>
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Adrian Bunk <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-08-21 00:37:04 -05:00
Scott Wood 2a54adc3ad gianfar: Call gfar_halt_nodisable() from gfar_halt().
gfar_halt() was factored out into halting and disabling by commit
d87eb12785, as the suspend() method
only wants to do the former.  However, the call to gfar_halt_nodisable()
from gfar_halt() apparently got lost during the patch respin process.

This adds it back.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2008-08-14 04:26:57 -04:00
Scott Wood 00262986ce Add fsl,magic-packet to, and clean up, the gianfar binding.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-07-16 17:57:48 -05:00
Scott Wood d87eb12785 gianfar: Add magic packet and suspend/resume support.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-07-16 17:57:47 -05:00
Scott Wood 574366128d powerpc/mpc8313erdb: Add power management to the device tree.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-07-16 17:57:31 -05:00
Scott Wood d49747bdfb powerpc/mpc83xx: Power Management support
Basic PM support for 83xx.  Standby is implemented as sleep.
Suspend-to-RAM is implemented as "deep sleep" (with the processor
turned off) on 831x.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-07-16 17:57:30 -05:00
Scott Wood 7e72063c9a powerpc: Update example SOC node in booting-without-of.txt.
Convert to DTS version 1, eliminate some obsolete practices, and
correct some errors (compared to the actual 8540 device tree).

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-07-16 17:57:29 -05:00
Scott Wood 2dff41775d powerpc: Document Freescale power management nodes, and the sleep property.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-07-16 17:57:28 -05:00
Scott Wood e2d7550511 powerpc: Fix copy-and-paste error in clrsetbits_le16
This was pointed out by Detlev Zundel when this code was being
added to U-boot.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2008-06-30 22:31:07 +10:00
Scott Wood 0b2cca804e [POWERPC] Add 6xx-style HID0_SLEEP support.
This adds a function to put a 6xx/7xx/7xxx/83xx family CPU into sleep
mode, and return after an interrupt has occurred.  It expects to be
called with interrupts disabled, and returns with interrupts disabled.
Interrupts are enabled while the processor is asleep, but the interrupt
that wakes the processor is not handled; it is still pending when this
function returns.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Guennadi Liakhovetski <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2008-05-16 23:22:28 +10:00
Scott Wood a86e2cbe26 fs_enet: Fix a memory leak in fs_enet_mdio_probe
There are more memory leaks in the !PPC_CPM_NEW_BINDING case, but that code
will disappear soon along with arch/ppc.

Reported by Daniel Marjamki <[email protected]> at
http://bugzilla.kernel.org/show_bug.cgi?id=10591

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2008-05-06 12:22:37 -04:00
Scott Wood 576506645d [MTD] [NAND] fsl_elbc_nand: Fix SEQIN handling for large pages.
Previously, a READ command was erroneously issued rather than SEQIN.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2008-04-22 15:36:24 +01:00
Scott Wood 1e31de7aae [POWERPC] 83xx: mpc8313erdb - Enable FCM NAND and OF partitions in defconfig
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-04-17 01:01:40 -05:00
Scott Wood 378458d865 [POWERPC] cuboot-pq2: PCI fixes
1. Detect (and bail out on) more conditions that violate the
assumptions of the setup code -- we assume in such cases that the device
tree is correct and reflects what the firmware did.

2. The inbound memory mask calculation was wrong.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-04-17 01:01:40 -05:00
Scott Wood 3866409541 [POWERPC] fsl_soc: Factor fsl_get_sys_freq() out of the wdt and spi inits.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-04-17 01:01:40 -05:00
Scott Wood 3dd82a1ea7 [POWERPC] CPM: Always use new binding.
The kconfig entry can go away once arch/ppc and references to the config in
drivers are removed.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-04-17 01:01:40 -05:00
Scott Wood a55387e5ad [POWERPC] 8xx: Fix wrapper platform for adder875, and combine defconfigs.
This fixes the following bug:
http://ozlabs.org/pipermail/linuxppc-dev/2008-February/051979.html

Separate defconfigs are no longer needed now that CONFIG_DEVICE_TREE is gone.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-03-07 08:42:41 -06:00
Scott Wood 5bd3670f31 fs_enet: Don't call phy_mii_ioctl() in atomic context.
The lock acquisition in fs_ioctl() does not appear to actually be necessary,
and thus is simply removed.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2008-02-23 23:55:00 -05:00
Scott Wood 76b1046716 [MTD] [NAND] Freescale enhanced Local Bus Controller FCM NAND support.
Signed-off-by: Nick Spence <[email protected]>
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2008-02-07 10:26:57 +00:00
Scott Wood 551ed332da [POWERPC] update_mmu_cache: Don't cache-flush non-readable pages
Currently, update_mmu_cache will crash if given a no-access PTE.
There's no need to synchronize dcache/icache unless it's an exec
mapping -- however, due to the existence of older glibc versions that
execute out of a read-but-no-exec page, readability is tested instead.

This assumes no exec-only mappings; if such mappings become supported,
they will need to go through the kmap_atomic() version of
dcache/icache synchronization.

This fixes a bug reported by some users where the kernel would crash
while dumping core on a threaded program.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: Benjamin Herrenschmidt <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2008-02-06 16:30:01 +11:00
Scott Wood 266fb4af93 [POWERPC] 8xx: adder875, ep88xc: fix to match recent 8xx cleanups.
asm/commproc.h was renamed to asm/cpm1.h
sysdev/commproc.h was renamed to platforms/8xx/mpc8xx.h
m8xx_pic_init was renamed to mpc8xx_pics_init

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-02-05 23:29:58 -06:00
Scott Wood 1c45f60406 [MTD] [NAND] Fix misparenthesization introduced by commit 78b65179...
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2008-02-03 22:14:12 +11:00
Scott Wood 9a310d2119 [MTD] Factor out OF partition support from the NOR driver.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2008-02-03 18:06:48 +11:00
Scott Wood de7566bff3 [POWERPC] 8xx: adder875 - Fix flash bus-width and remove duplicate __initdata
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-01-23 19:34:56 -06:00
Scott Wood 5f44668c88 [POWERPC] 83xx: Update MPC8313e RDB defconfig for MTD, NAND, JFFS2.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-01-23 19:34:53 -06:00
Scott Wood 12600e48ca [POWERPC] 83xx: MPC8313e RDB - Add NOR flash to the device tree.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-01-23 19:34:49 -06:00
Scott Wood ff5ac76088 [POWERPC] 83xx: MPC8313e RBD add NAND to device tree
Add NAND to device tree, and call of_platform_bus_probe().

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-01-23 19:34:46 -06:00
Scott Wood 0dde1a1df9 [POWERPC] 82xx: Embedded Planet EP8248E support
This board is also resold by Freescale under the names
"QUICCStart MPC8248 Evaluation System" and "CWH-PPC-8248N-VE".

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-01-23 19:34:43 -06:00
Scott Wood b09c16440e [POWERPC] 8xx: Analogue & Micro Adder875 board support.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-01-23 19:34:40 -06:00
Scott Wood 6c7e072b16 [POWERPC] fsl_soc: Fix get_immrbase() to use ranges, rather than reg.
Don't depend on the reg property as a way to determine the base
of the immr space.  The reg property might be defined differently for
different SoC families.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2008-01-23 19:34:33 -06:00
Scott Wood 78b65179d0 [MTD] [NAND] Don't panic if a controller driver does ecc its own way.
Some hardware, such as the enhanced local bus controller used on some
mpc83xx chips, does ecc transparently when reading and writing data, rather
than providing a generic calculate/correct mechanism that can be exported to
the nand subsystem.

The subsystem should not BUG() when calculate, correct, or hwctl are
missing, if the methods that call them have been overridden.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
2008-01-08 07:51:57 +00:00
Scott Wood 7ac5dde99e [POWERPC] Implement arch disable/enable irq hooks.
These hooks ensure that a decrementer interrupt is not pending when
suspending; otherwise, problems may occur on 6xx/7xx/7xxx-based
systems (except for powermacs, which use a separate suspend path).
For example, with deep sleep on the 831x, a pending decrementer will
cause a system freeze because the SoC thinks the decrementer interrupt
would have woken the system, but the core must have interrupts
disabled due to the setup required for deep sleep.

Changed via-pmu.c to use the new ppc_md hooks, and made the arch_*
functions call the generic_* functions unconditionally.  -- paulus

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-12-21 22:13:35 +11:00
Scott Wood 2a9d2d97d3 [POWERPC] wrapper: Treat NULL as root node in devp_offset; add devp_offset_find()
Many operations, as currently used in the wrapper, assume they can
pass NULL and have it be treated as the root node.  However, libfdt-wrapper
converts NULL to -1, which is only appropriate when searching for nodes,
and will cause an error otherwise.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-12-20 16:11:46 +11:00
Scott Wood 754e5f3f3a [POWERPC] wrapper: Rename offset in offset_devp()
fdt_wrapper_create_node passes a variable called offset to offset_devp(),
which uses said parameter to initialize a local variable called offset.

Due to one of the odder aspects of the C language, the result is an
undefined variable, with no error or warning.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-12-20 16:11:46 +11:00
Scott Wood 255b09eb26 [POWERPC] 83xx: mpc8313erdb: Fix whitespace.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-12-13 22:52:45 -06:00
Scott Wood 8129a59a53 [POWERPC] 83xx: mpc834x_mds: Fix whitespace and call of_platform_bus_probe().
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-12-13 22:52:32 -06:00
Scott Wood 0b5cf10691 [POWERPC] 8xx: Convert mpc866ads to the new device binding.
Verified on mpc866ads. This version has muram and brg nodes added to dts
to get the things work.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Vitaly Bordug <[email protected]>
2007-12-13 22:45:35 -06:00
Scott Wood e8b5f43f7b [POWERPC] 82xx: mpc8272ads, pq2fads: Update defconfig with CONFIG_FS_ENET_MDIO_FCC
This was recently made configurable, and needs to be set for these boards.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-12-13 22:44:49 -06:00
Scott Wood cd2150bca9 [POWRPC] CPM2: Eliminate section mismatch warning in cpm2_reset().
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-12-13 22:44:38 -06:00
Scott Wood 4c011b1fb8 [POWERPC] cpm: Fix a couple minor issues in cpm_common.c.
A debugging printk is removed, and a comment is fixed to match
the code.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-11-09 03:47:44 -06:00
Scott Wood aeb4552fad [POWERPC] bootwrapper: Revert ps3 binary flag usage, and remove .bin suffix
The ps3 target produces two images, and the binary one is not the
"primary" image that corresponds to the -o flag; thus, it no longer
uses the generic binary flag.

On platforms which do use the binary flag, it no longer produces a
.bin suffix, so that the output file matches what was passed to the -o flag.

This should fix the zImage ln problems for the ps3 target.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: Geert Uytterhoeven <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-11-08 14:15:30 +11:00
Scott Wood f860f49ee2 fs_enet: Update for API changes
This driver was recently broken by several changes for which this
driver was not (or was improperly) updated:

1. SET_MODULE_OWNER() was removed.
2. netif_napi_add() was only being called when building with
the old CPM binding.
3. The received/budget test was backwards.
4. to_net_dev() was wrong -- the device struct embedded in
the net_device struct is not the same as the of_platform
device in the private struct.
5. napi_disable/napi_enable was being called even when napi
was not being used.

These changes have been fixed, and napi is now on by default.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-10-17 20:11:28 -04:00
Scott Wood bf4994d781 rtc: RTC class driver for the ds1374
This patch adds an RTC class driver for the Maxim/Dallas 1374 RTC chip,
based on drivers/i2c/chips/ds1374.c.  It supports alarm functionality.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: Alessandro Zummo <[email protected]>
Cc: David Brownell <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-10-16 09:43:13 -07:00
Scott Wood ab9683ca81 [POWERPC] 85xx: Add cpm nodes for 8541/8555 CDS
We don't use any CPM devices on these boards, but the muram node on these
chips is different from the 8560, so it's helpful to people working with
custom boards based on these chips.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-11 09:14:31 -05:00
Scott Wood 8abc8f5f1e [POWERPC] 85xx: Convert mpc8560ads to the new CPM binding.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-11 09:14:31 -05:00
Scott Wood 52aff9f93e [POWERPC] mpc8272ads: Remove muram from the CPM reg property.
This is described by the muram node now.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-11 09:14:31 -05:00
Scott Wood 31a5bb04d5 fs_enet: sparse fixes
Mostly a bunch of __iomem annotations.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-10-10 16:54:04 -07:00
Scott Wood 2b5b3a604a fs_enet: Convert mii-bitbang to use the generic bitbang MDIO code.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-10-10 16:54:04 -07:00
Scott Wood e2ec4581ad Generic bitbanged MDIO library
Previously, bitbanged MDIO was only supported in individual
hardware-specific drivers.  This code factors out the higher level
protocol implementation, reducing the hardware-specific portion to
functions setting direction, data, and clock.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-10-10 16:54:03 -07:00
Scott Wood 976de6a8c3 fs_enet: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set.
The existing OF glue code was crufty and broken.  Rather than fix it, it
will be removed, and the ethernet driver now talks to the device tree
directly.

The old, non-CONFIG_PPC_CPM_NEW_BINDING code can go away once CPM
platforms are dropped from arch/ppc (which will hopefully be soon), and
existing arch/powerpc boards that I wasn't able to test on for this
patchset get converted (which should be even sooner).

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-10-10 16:54:03 -07:00
Scott Wood 0d0d9c150c fs_enet: Align receive buffers.
At least some hardware driven by this driver needs receive buffers
to be aligned on a 16-byte boundary.  This usually happens by chance,
but it breaks if slab debugging is enabled.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-10-10 16:54:02 -07:00
Scott Wood c6565331b7 fs_enet: mac-fcc: Eliminate __fcc-* macros.
These macros accomplish nothing other than defeating type checking.

This patch also fixes one instance of the wrong register size being
used that was revealed by enabling type checking.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-10-10 16:54:01 -07:00
Scott Wood b7336d3d88 fs_enet: Include linux/string.h from linux/fs_enet_pd.h
It is needed for strstr().

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-10-10 16:54:01 -07:00
Scott Wood 0fb300fa9d fs_enet: Whitespace cleanup.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
2007-10-10 16:54:00 -07:00
Scott Wood 15f8c604a7 [POWERPC] cpm: Describe multi-user ram in its own device node.
The way the current CPM binding describes available multi-user (a.k.a.
dual-ported) RAM doesn't work well when there are multiple free regions,
and it doesn't work at all if the region doesn't begin at the start of
the muram area (as the hardware needs to be programmed with offsets into
this area).  The latter situation can happen with SMC UARTs on CPM2, as its
parameter RAM is relocatable, u-boot puts it at zero, and the kernel doesn't
support moving it.

It is now described with a muram node, similar to QE.  The current CPM
binding is sufficiently recent (i.e. never appeared in an official release)
that compatibility with existing device trees is not an issue.

The code supporting the new binding is shared between cpm1 and cpm2, rather
than remain separated.  QE should be able to use this code as well, once
minor fixes are made to its device trees.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 15:47:05 -05:00
Scott Wood 5dd57a1308 [POWERPC] 8xx: Move softemu8xx.c from arch/ppc
Previously, Soft_emulate_8xx was called with no implementation, resulting in
build failures whenever building 8xx without math emulation.  The
implementation is copied from arch/ppc to resolve this issue.

However, this sort of minimal emulation is not a very good idea other than
for compatibility with existing userspaces, as it's less efficient than
soft-float and can mislead users into believing they have soft-float.  Thus,
it is made a configurable option, off by default.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:54 -05:00
Scott Wood 3611f2ad42 [POWERPC] mpc82xx: Add pq2fads board support.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:47 -05:00
Scott Wood e00c5498a2 [POWERPC] mpc82xx: Update mpc8272ads, and factor out PCI and reset.
1. PCI and reset are factored out into pq2.c.  I renamed them from m82xx
to pq2 because they won't work on the Integrated Host Processor line of
82xx chips (i.e. 8240, 8245, and such).

2. The PCI PIC, which is nominally board-specific, is used on multiple
boards, and thus is used into pq2ads-pci-pic.c.

3. The new CPM binding is used.

4. General cleanup.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:44 -05:00
Scott Wood 11c146cc19 [POWERPC] 8xx/wrapper: Embedded Planet EP88xC support
This board is also resold by Freescale under the names
"QUICCStart MPC885 Evaluation System" and "CWH-PPC-885XN-VE".

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:40 -05:00
Scott Wood 20906ecea2 [POWERPC] 8xx: mpc885ads cleanup
It now uses the new CPM binding and the generic pin/clock functions, and
has assorted fixes and cleanup.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:38 -05:00
Scott Wood 96fca1dea8 [POWERPC] Document local bus nodes in the device tree, and update cuboot-pq2.
The localbus node is used to describe devices that are connected via a chip
select or similar mechanism.  The advantages over placing the devices under
the root node are that it can be probed without probing other random things
under the root, and that the description of which chip select a given device
uses can be used to set up mappings if the firmware failed to do so in a
useful manner.

cuboot-pq2 is updated to match the binding; previously, it called itself
chipselect rather than localbus, and used phandle linkage between the
actual bus node and the control node (the current agreement is to simply use
the fully-qualified address of the control registers, and ignore the overlap
with the IMMR node).

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:34 -05:00
Scott Wood 2d2294ae12 [POWERPC] mpc8272ads: Change references from 82xx_ADS to 8272_ADS.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:31 -05:00
Scott Wood d1df447197 [POWERPC] mpc82xx: Rename mpc82xx_ads to mpc8272_ads.
This is just a rename patch; internal references to mpc82xx_ads will be
changed in the next one.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:27 -05:00
Scott Wood 4ff62e1c7f [POWERPC] mpc82xx: Remove a bunch of cruft that duplicates generic functionality.
m82xx_calibrate_decr(), mpc82xx_ads_show_cpuinfo(), and mpc82xx_halt() do
anything useful beyond what the generic code does.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:24 -05:00
Scott Wood 11af1192b7 [POWERPC] mpc82xx: Define CPU_FTR_NEED_COHERENT
The 8272 (and presumably other PCI PQ2 chips) appear to have the
same issue as the 83xx regarding PCI streaming DMA.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:21 -05:00
Scott Wood 7f21f52940 [POWERPC] cpm2: Add cpm2_set_pin().
This provides a generic way for board code to set up CPM pins, rather
than directly poking magic values into registers.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:18 -05:00
Scott Wood 2652d4ec4a [POWERPC] cpm2: Add SCCs to cpm2_clk_setup(), and cpm2_smc_clk_setup().
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:14 -05:00
Scott Wood 449012daa9 [POWERPC] cpm2: Infrastructure code cleanup.
Mostly sparse fixes (__iomem annotations, etc); also, cpm2_immr
is used rather than creating many temporary mappings.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-04 11:02:04 -05:00
Scott Wood 7401685242 [POWERPC] 8xx: Work around CPU15 erratum.
The CPU15 erratum on MPC8xx chips can cause incorrect code execution
under certain circumstances, where there is a conditional or indirect
branch in the last word of a page, with a target in the last cache line
of the next page.  This patch implements one of the suggested
workarounds, by forcing a TLB miss whenever execution crosses a page
boundary.  This is done by invalidating the pages before and after the
one being loaded into the TLB in the ITLB miss handler.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:36:36 -05:00
Scott Wood 663edbd264 [POWERPC] 8xx: Add pin and clock setting functions.
These let board code set up pins and clocks without having to
put magic numbers directly into the registers.

The clock function is mostly duplicated from the cpm2 version;
hopefully this stuff can be merged at some point.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:36:36 -05:00
Scott Wood fb533d0c5a [POWERPC] 8xx: Infrastructure code cleanup.
1. Keep a global mpc8xx_immr mapping, rather than constantly
creating temporary mappings.
2. Look for new fsl,cpm1 and fsl,cpm1-pic names.
3. Always reset the CPM when not using the udbg console;
this is required in case the firmware initialized a device
that is incompatible with one that the kernel is about to
use.
4. Remove some superfluous casts and header includes.
5. Change a usage of IMAP_ADDR to get_immrbase().
6. Use phys_addr_t, not uint, for dpram_pbase.
7. Various sparse-related fixes, such as __iomem annotations.
8. Remove mpc8xx_show_cpuinfo, which doesn't provide anything
useful beyond the generic cpuinfo handler.
9. Move prototypes for 8xx support functions from board files
to sysdev/commproc.h.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:36:35 -05:00
Scott Wood ccf0d68e83 [POWERPC] 8xx: Fix CONFIG_PIN_TLB.
1. Move CONSISTENT_START on 8xx so that it doesn't overlap the IMMR mapping.
2. The wrong register was being loaded into SPRN_MD_RPN.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:36:35 -05:00
Scott Wood d948a29ea7 [POWERPC] cpm_uart: Issue STOP_TX command before initializing console.
This prevents some bootloader/bootwrapper characters from being lost.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:36:35 -05:00
Scott Wood c1dcfd9d19 [POWERPC] cpm_uart: sparse fixes
Mostly a bunch of direct access to in/out conversions, plus a few
cast removals, __iomem annotations, and miscellaneous cleanup.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:36:35 -05:00
Scott Wood 7ae870368d [POWERPC] cpm_uart: Be an of_platform device when CONFIG_PPC_CPM_NEW_BINDING is set.
The existing OF glue code was crufty and broken.  Rather than fix it,
it has been removed, and the serial driver now talks to the device tree
directly.

The non-CONFIG_PPC_CPM_NEW_BINDING code can go away once CPM platforms
are dropped from arch/ppc (which will hopefully be soon), and existing
arch/powerpc boards that I wasn't able to test on for this patchset get
converted (which should be even sooner).

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:36:35 -05:00
Scott Wood a94b89a481 [POWERPC] bootwrapper: Use fsl_get_immr() in cuboot-pq2.c.
Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:36:35 -05:00
Scott Wood bbc6fac387 [POWERPC] bootwrapper: Add fsl_get_immr() and 8xx/pq2 clock functions.
fsl_get_immr() uses /soc/ranges to determine the immr.

mpc885_get_clock() transforms a crystal frequency into a system frequency
according to the PLL register settings.

pq2_get_clocks() does the same as the above for the PowerQUICC II,
except that it produces several different clocks.

The mpc8xx/pq2 set_clocks() functions modify common properties in
the device tree based on the given clock data.

The mpc885/pq2 fixup_clocks() functions call get_clocks(), and
pass the results to set_clocks().

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:36:35 -05:00
Scott Wood 568091512d [POWERPC] bootwrapper: Support all-in-one PCI nodes in cuboot-pq2.
Consensus was reached to put PCI nodes at the root of the tree (and not
under /soc), but the phandle to a control node was rejected in favor of
simply not worrying about /pci/reg overlapping /soc/ranges.

This updates cuboot-82xx to not look for the phandle.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:35:43 -05:00
Scott Wood c374e00e17 [POWERPC] Add early debug console for CPM serial ports.
This code assumes that the ports have been previously set up, with
buffers in DPRAM.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:35:43 -05:00
Scott Wood e631ae3b16 [POWERPC] Introduce new CPM device bindings.
This introduces a new device binding for the CPM and other devices on
these boards.  Some of the changes include:

1. Proper namespace scoping for Freescale compatibles and properties.

2. Use compatible rather than things like device_type and model
to determine which particular variant of a device is present.

3. Give the drivers the relevant CPM command word directly, rather than
requiring it to have a lookup table based on device-id, SCC v. SMC, and
CPM version.

4. Specify the CPCR and the usable DPRAM region in the CPM's reg property.

Boards that do not require the legacy bindings should select
CONFIG_PPC_CPM_NEW_BINDING to enable the of_platform CPM devices. Once
all existing boards are converted and tested, the config option can
become default y to prevent new boards from using the old model.  Once
arch/ppc is gone, the config option can be removed altogether.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:35:43 -05:00
Scott Wood 6d817aa71f [POWERPC] CPM: Change from fsl,brg-frequency to brg/clock-frequency
As suggested by David Gibson, now that we have a separate node
for the baud rate generators, it's better to use the standard
clock-frequency property than a cpm-node-level fsl,brg-frequency
property.

This patch updates existing places where fsl,brg-frequency is
used.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-10-03 20:35:43 -05:00
Scott Wood 0de2d82006 [POWERPC] Make instruction dumping work in real mode
On non-book-E, exceptions execute in real mode.  If a fault happens
that leads to a register dump, the kernel currently prints XXXXXXXX
because it doesn't realize that PC is a physical address.

This patch checks whether instruction address translation is turned
on, and if not converts PC into a virtual address.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: Kumar Gala <[email protected]>
Acked-by: Olof Johansson <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-10-03 11:48:44 +10:00
Scott Wood fec6047047 [POWERPC] bootwrapper: Add PlanetCore firmware support
This is a library that board code can use to extract information from the
PlanetCore configuration keys.  PlanetCore is used on various boards from
Embedded Planet.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-10-03 11:48:43 +10:00
Scott Wood 27ff35d902 [POWERPC] bootwrapper: Factor out dt_set_mac_address()
This allows callers to set addresses one at a time when that would be more
convenient.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-10-03 11:48:43 +10:00
Scott Wood 5a24e1a177 [PPC] Add clrbits8 and setbits8.
These I/O accessors will be used in code under drivers/,
which is expected to still work in arch/ppc.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-09-14 08:53:43 -05:00
Scott Wood f923473611 [POWERPC] fsl_soc.c cleanup
1. Update the way get_brgfreq() finds things in the device tree.

It now uses names that are less namespace polluting.  The old names
are supported until all boards are converted.

2. "size" is changed from unsigned int to int, to match what
of_get_property() expects.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Kumar Gala <[email protected]>
2007-09-14 08:51:43 -05:00
Scott Wood bde6c6e16a [POWERPC] Check _PAGE_RW and _PAGE_PRESENT on kernel addresses
Previously, the TLB miss handlers assumed that pages above KERNELBASE are
always present and read/write.  This assumption is false in the case of
CONFIG_DEBUG_PAGEALLOC.

Signed-off-by: Scott Wood <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-09-14 01:33:23 +10:00
Scott Wood 96ebc3bfb6 [POWERPC] bootwrapper: Only print MAC addresses when the node is actually present
Some firmwares (such as PlanetCore) only provide a base MAC address, and
expect the kernel to set certain bits to generate the addresses for the
other ports.  As such, MAC addresses are generated that may not correspond
to actual hardware.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-09-14 01:33:23 +10:00
Scott Wood 21f3fe2f7a [POWERPC] bootwrapper: Add get_path()
This will be used by the PlanetCore firmware support to construct
a linux,stdout-path from the serial node that it finds.

Signed-off-by: Scott Wood <[email protected]>
Acked-by: David Gibson <[email protected]>
Signed-off-by: Paul Mackerras <[email protected]>
2007-09-14 01:33:23 +10:00