19 Sep, 2007
1 commit
-
Recent changes to the timekeeping code broke support for the PowerPC 601
processor which doesn't have the usual timebase facility but a slightly
different thing called (yuck) the RTC.This fixes it, boot tested on an old 601 based PowerMac 7200.
Signed-off-by: Benjamin Herrenschmidt
Signed-off-by: Paul Mackerras
11 Sep, 2007
1 commit
-
The Cell BE Architecture spec states that the SPU MFC Class 0 interrupt
is edge-triggered. The current spu interrupt handler assumes this
behavior and does not clear the interrupt status.The PS3 hypervisor visualizes all SPU interrupts as level, and on return
from the interrupt handler the hypervisor will deliver a new virtual
interrupt for any unmasked interrupts which for which the status has not
been cleared. This fix clears the interrupt status in the interrupt
handler.Signed-off-by: Masato Noguchi
Signed-off-by: Geoff Levand
Signed-off-by: Jeremy Kerr
Acked-by: Arnd Bergmann
Signed-off-by: Paul Mackerras
18 Aug, 2007
1 commit
-
Reserved MCSR bits on FSL BookE parts may have spurious values
when mcheck occurs. Mask these off when printing the MCSR to
avoid confusion. Also, get rid of the MCSR_GL_CI bit defined
for e500 - this bit doesn't actually have any meaning.Signed-off-by: Becky Bruce
Signed-off-by: Kumar Gala
10 Aug, 2007
2 commits
-
powerpc has a couple of bugs in the usage of dma_masks that tend to
break when drivers explicitly try to set a 32-bit mask for example.First, the code that generates the pci devices from the OF device-tree
doesn't initialize the mask properly, then our implementation of
set_dma_mask() was trying to validate the -previous- mask value, not the
one passed in as an argument.This fixes these problems.
Signed-off-by: Benjamin Herrenschmidt
Signed-off-by: Paul Mackerras -
This patch moves affinity initialization code from spu_base.c to a
new spu_management_of_ops function (init_affinity), which is empty
in the case of PS3. This fixes a linking problem that was happening
when compiling for PS3.
Also, some small code style changes were made.Signed-off-by: Andre Detsch
Signed-off-by: Geoff Levand
Acked-by: Arnd Bergmann
Signed-off-by: Paul Mackerras
03 Aug, 2007
2 commits
-
On a machine with hardware 64kB pages and a kernel configured for a
64kB base page size, we need to change the vmalloc segment from 64kB
pages to 4kB pages if some driver creates a non-cacheable mapping in
the vmalloc area. However, we never updated with SLB shadow buffer.
This fixes it. Thanks to paulus for finding this.Also added some write barriers to ensure the shadow buffer contents
are always consistent.Signed-off-by: Michael Neuling
Signed-off-by: Paul Mackerras -
The real page number field in our PTEs when configured for 64kB pages
is currently 32 bits, which turns out to be not quite enough for the
resources that the eHCA driver wants to map. This expands the RPN
field to include 2 adjacent, previously-unused bits.Signed-off-by: Paul Mackerras
Acked-by: Benjamin Herrenschmidt
01 Aug, 2007
2 commits
-
Alexey Dobriyan noticed that the new WARN_ON() semantics that were
introduced by commit 684f978347deb42d180373ac4c427f82ef963171 (to also
return the value to be warned on) didn't compile when given a bitfield,
because the typeof doesn't work for bitfields.So instead of the typeof trick, use an "int" variable together with a
"!!(x)" expression, as suggested by Al Viro.To make matters more interesting, Paul Mackerras points out that that is
sub-optimal on Power, but the old asm-coded comparison seems to be buggy
anyway on 32-bit Power if the conditional was 64-bit, so I think there
are more problems there.Regardless, the new WARN_ON() semantics may have been a bad idea. But
this at least avoids the more serious complications.Cc: Alexey Dobriyan
Cc: Herbert Xu
Cc: Paul Mackerras
Cc: Al Viro
Cc: Ingo Molnar
Cc: Andrew Morton
Signed-off-by: Linus Torvalds -
Remove unused TIF_NOTIFY_RESUME flag for all processor architectures. The
flag was not used excecpt on IA-64 where the patch replaces it with
TIF_PERFMON_WORK.Signed-off-by: stephane eranian
Cc:
Cc: "Luck, Tony"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
27 Jul, 2007
3 commits
-
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (21 commits)
[POWERPC] spusched: Fix initial timeslice calculation
[POWERPC] spufs: Fix incorrect initialization of cbe_spu_info.spus
[POWERPC] Fix Maple platform ISA bus
[POWERPC] Make pci_iounmap actually unmap things
[POWERPC] Add function to check if address is an IO port
[POWERPC] Fix Pegasos keyboard detection
[POWERPC] iSeries: Fix section mismatch warning in lpevents
[POWERPC] iSeries: Fix section mismatch warnings
[POWERPC] iSeries: We need vio_enable_interrupts
[POWERPC] Fix RTC and device tree on linkstation machines
[POWERPC] Add of_register_i2c_devices()
[POWERPC] Fix loop with unsigned long counter variable
[POWERPC] Fix register labels on show_regs() message for 4xx/Book-E
[POWERPC] Only allow building of BootX text support on PPC_MULTIPLATFORM
[POWERPC] Fix the ability to reset on MPC8544 DS and MPC8568 MDS boards
[POWERPC] Fix mpc7448hpc2 tsi108 device_type bug
[POWREPC] Fixup a number of modpost warnings on ppc32
[POWERPC] Fix ethernet PHY support on MPC8544 DS
[POWERPC] Don't try to allocate resources for a Freescale POWERPC PHB
Revert "[POWERPC] Don't complain if size-cells == 0 in prom_parse()"
... -
Nathan Lynch reported:
2.6.23-rc1 breaks the build for 64-bit powerpc for me (using
maple_defconfig):LD vmlinux.o
powerpc64-unknown-linux-gnu-ld: dynreloc miscount for
kernel/built-in.o, section .opd
powerpc64-unknown-linux-gnu-ld: can not edit opd Bad value
make: *** [vmlinux.o] Error 1However, I see a possibly related binutils patch:
http://article.gmane.org/gmane.comp.gnu.binutils/33650It was tracked down to be caused by the weak prototype
declaration in mm.h:
__attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma);But there is no need to make the declaration weak - only the definition
needs to be marked weak. So drop the weak declaration. And in the process
drop the duplicate definition in page.h for powerpc.Note: the arch_vma_name fix for x86_64 needs to be applied first to avoid
breaking x86_64Signed-off-by: Sam Ravnborg
Cc: Nathan Lynch
Cc: Paul Mackerras
Cc: Benjamin Herrenschmidt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Since powerpc insists on printing the _value_ of condition
and on casting it to long... At least let's make it a force-cast.Signed-off-by: Al Viro
Signed-off-by: Linus Torvalds
26 Jul, 2007
3 commits
-
This adds a function that tells you if a given kernel virtual address
is hitting a PCI or ISA IO port permanent mapping or not. This is to
be used in the next patch to fix iomap APIs to properly unmap things.Signed-off-by: Benjamin Herrenschmidt
Signed-off-by: Paul Mackerras -
WARNING: vmlinux.o(.text+0x8124): Section mismatch: reference to .init.text:.iSeries_early_setup (between '.__start_initialization_iSeries' and '.__mmu_off')
WARNING: vmlinux.o(.text+0x8128): Section mismatch: reference to .init.text:.early_setup (between '.__start_initialization_iSeries' and '.__mmu_off')Signed-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras -
Commit 3d0e91f7ace12499c4b00088e9a6b1361e1bb0ca introduced a requirement
for vio_enable_interrupts which iSeires has never needed. So create a
dummy one.Signed-off-by: Stephen Rothwell
Signed-off-by: Paul Mackerras
24 Jul, 2007
2 commits
-
We need the ability to set P2P bridge registers to properly setup the virtual
P2P bridges that exist in PCIe controllers for some of the embedded setups.Signed-off-by: Kumar Gala
-
Make it so we do a runtime check to know if we need to write cfg_addr
as big or little endian. This is needed if we want to allow 86xx support
to co-exist in the same kernel as other 6xx PPCs.Signed-off-by: Kumar Gala
23 Jul, 2007
3 commits
-
We don't use setup_indirect_pci_nomap in arch/powerpc and it appears
the users that needed it from arch/ppc are now using setup_indirect_pci.Signed-off-by: Kumar Gala
-
Added PPC_INDIRECT_TYPE_NO_PCIE_LINK flag to the indirect pci handling
code to ensure that we don't talk to any device other than the PHB
if we don't have PCIe link. Some controllers will lockup if they try
to do a config cycle to any device on the bus except the PHB.Signed-off-by: Kumar Gala
-
Added early_find_capability that wraps pci_bus_find_capability and uses
fake_pci_bus() to allow us to call it before we've fully setup the
pci_controller.Signed-off-by: Kumar Gala
22 Jul, 2007
2 commits
-
Some HW platforms, such as the new cell blades, requires some MPIC sources
to be left alone by the operating system. This implements support for
a "protected-sources" property in the mpic controller node containing a list
of source numbers to be protected against operating system interference.For those interested in the gory details, the MPIC on the southbridge of
those blades has some of the processor outputs routed to the cell, and
at least one routed as a GPIO to the service processor. It will be used
in the GA product for routing some of the southbridge error interrupts
to the service processor which implements some of the RAS stuff, such
as checkstopping when fatal errors occurs before they can propagate.Signed-off-by: Benjamin Herrenschmidt
Acked-by: Arnd Bergmann
Signed-off-by: Paul Mackerras -
...since it modifies it (when it sets the OF_DETACHED flag).
Signed-off-by: Segher Boessenkool
Signed-off-by: Paul Mackerras
21 Jul, 2007
10 commits
-
This sorts out the various lists and related locks in the spu code.
In detail:
- the per-node free_spus and active_list are gone. Instead struct spu
gained an alloc_state member telling whether the spu is free or not
- the per-node spus array is now locked by a per-node mutex, which
takes over from the global spu_lock and the per-node active_mutex
- the spu_alloc* and spu_free function are gone as the state change is
now done inline in the spufs code. This allows some more sharing of
code for the affinity vs normal case and more efficient locking
- some little refactoring in the affinity code for this locking schemeSigned-off-by: Christoph Hellwig
Signed-off-by: Arnd Bergmann -
From: Maynard Johnson
This patch updates the existing arch/powerpc/oprofile/op_model_cell.c
to add in the SPU profiling capabilities. In addition, a 'cell' subdirectory
was added to arch/powerpc/oprofile to hold Cell-specific SPU profiling code.
Exports spu_set_profile_private_kref and spu_get_profile_private_kref which
are used by OProfile to store private profile information in spufs data
structures.Also incorporated several fixes from other patches (rrn). Check pointer
returned from kzalloc. Eliminated unnecessary cast. Better error
handling and cleanup in the related area. 64-bit unsigned long parameter
was being demoted to 32-bit unsigned int and eventually promoted back to
unsigned long.Signed-off-by: Carl Love
Signed-off-by: Maynard Johnson
Signed-off-by: Bob Nelson
Signed-off-by: Arnd Bergmann
Acked-by: Paul Mackerras -
This patch adds support for additional flags at spu_create, which relate
to the establishment of affinity between contexts and contexts to memory.
A fourth, optional, parameter is supported. This parameter represent
a affinity neighbor of the context being created, and is used when defining
SPU-SPU affinity.
Affinity is represented as a doubly linked list of spu_contexts.Signed-off-by: Andre Detsch
Signed-off-by: Arnd Bergmann -
This patch adds affinity data to each spu instance.
A doubly linked list is created, meant to connect the spus
in the physical order they are placed in the BE. SPUs
near to memory should be marked as having memory affinity.
Adjustments of the fields acording to FW properties is done
in separate patches, one for CPBW, one for Malta (patch for
Malta under testing).Signed-off-by: Andre Detsch
Signed-off-by: Arnd Bergmann -
Addition of a spufs-global "cbe_info" array. Each entry contains information
about one Cell/B.E. node, namelly:
* list of spus (both free and busy spus are in this list);
* list of free spus (replacing the static spu_list from spu_base.c)
* number of spus;
* number of reserved (non scheduleable) spus.SPE affinity implementation actually requires only access to one spu per
BE node (since it implements its own pointer to walk through the other spus
of the ring) and the number of scheduleable spus (n_spus - non_sched_spus)
However having this more general structure can be useful for other
functionalities, concentrating per-cbe statistics / data.Signed-off-by: Andre Detsch
Signed-off-by: Arnd Bergmann -
The decr_status in the LSCSA is confusedly used as two meanings:
* SPU decrementer was running
* SPU decrementer was wrapped as a result of adjust
and the code to set decr_status is missing.This patch fixes these problems by using the decr_status argument as a
set of flags. This requires a rebuild of the shipped spu_restore code.Signed-off-by: Masato Noguchi
Signed-off-by: Jeremy Kerr
Signed-off-by: Arnd Bergmann -
This patch exports per-context statistics in spufs as long as spu
statistics in sysfs.It was formed by merging:
"spufs: add spu stats in sysfs" From: Christoph Hellwig
"spufs: add stat file to spufs" From: Christoph Hellwig
"spufs: fix libassist accounting" From: Jeremy Kerr
"spusched: fix spu utilization statistics" From: Luke Browning
And some adjustments by myself, after suggestions on cbe-oss-dev.Having separate patches was making the review process harder
than it should, as we end up integrating spus and ctx statistics
accounting much more than it was on the first implementation.Signed-off-by: Andre Detsch
Signed-off-by: Jeremy Kerr
Signed-off-by: Arnd Bergmann -
The current SPU context saving procedure in SPUFS unexpectedly
restarts MFC when halting decrementer, because MFC_CNTL[Dh] is set
without MFC_CNTL[Sm]. This bug causes, for example, saving broken DMA
queues. Here is a patch to fix the problem.Signed-off-by: Kazunori Asayama
Signed-off-by: Jeremy Kerr
Signed-off-by: Arnd Bergmann -
This patch adds support for investigating spus information after a
kernel crash event, through kdump vmcore file.
Implementation is based on xmon code, but the new functionality was
kept independent from xmon.Signed-off-by: Lucio Jose Herculano Correia
Signed-off-by: Andre Detsch
Signed-off-by: Arnd Bergmann -
The pmi driver got simplified by removing support for multiple devices.
As there is no more than one pmi device per maschine, there is no need to
specify the device for listening and sending messages.This way the caller (cbe_cpufreq) doesn't need to scan the device tree.
When registering the handler on a board without a pmi
interface, pmi.c will just return -ENODEV.The patch that fixed the breakage of cell_defconfig has been
broken out of the earlier version of this patch. So this is
the version that applies cleanly on top of it.Signed-off-by: Christian Krafft
Signed-off-by: Arnd Bergmann
20 Jul, 2007
8 commits
-
Move common stuff from asm-powerpc/of_platform.h to here and
move the common bits from asm-sparc*/of_device.h here as well.Create asm-sparc*/of_platform.h and move appropriate parts of
of_device.h to them.Signed-off-by: Stephen Rothwell
Acked-by: Paul Mackerras
Acked-by: David S. Miller -
This just moves the common stuff from the arch of_device.h files to
linux/of_device.h.Signed-off-by: Stephen Rothwell
Acked-by: Paul Mackerras
Acked-by: David S. Miller -
This consolidates the routines of_find_node_by_path, of_find_node_by_name,
of_find_node_by_type and of_find_compatible_device. Again, the comparison
of strings are done differently by Sparc and PowerPC and also these add
read_locks around the iterations.Signed-off-by: Stephen Rothwell
Acked-by: Paul Mackerras
Acked-by: David S. Miller -
The only change here is that a readlock is taken while the property list
is being traversed on Sparc where it was not taken previously.Also, Sparc uses strcasecmp to compare property names while PowerPC
uses strcmp.Signed-off-by: Stephen Rothwell
Acked-by: Paul Mackerras
Acked-by: David S. Miller -
The only difference here is that Sparc uses strncmp to match compatibility
names while PowerPC uses strncasecmp.Signed-off-by: Stephen Rothwell
Acked-by: Paul Mackerras
Acked-by: David S. Miller -
This creates drivers/of/base.c (depending on CONFIG_OF) and puts
the first trivially common bits from the prom.c files into it.Signed-off-by: Stephen Rothwell
Acked-by: Paul Mackerras
Acked-by: David S. Miller -
This creates linux/of.h and includes asm/prom.h from it.
We also include linux/of.h from asm/prom.h while we transition.
Signed-off-by: Stephen Rothwell
Acked-by: Paul Mackerras
Acked-by: David S. Miller -
Since Ingo's recent scheduler rewrite which was merged as commit
0437e109e1841607f2988891eaa36c531c6aa6ac sched_cacheflush is unused.Signed-off-by: Ralf Baechle
Signed-off-by: Ingo Molnar