summaryrefslogtreecommitdiff
path: root/arch/sh
AgeCommit message (Collapse)Author
2007-09-21sh: intc - remove redundant irq code for sh03, snapgear and titanMagnus Damm
This patch removes redundant board specific interrupt code for boards using sh775x processors and 4 IRQ lines in "Individual Interrupt Mode" aka IRLM. Three boards are affected: sh03, snapgear and titan. The right way to do this is to use cpu specific code provided by intc. A nice side effect is that sh03 now compiles, board not BROKEN any more. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21rtc: rtc-sh: Support 4-digit year on SH7705/SH7710/SH7712.Paul Mundt
All SH-4 parts have a 4-digit year, while the SH-3 parts typically only use a 2-digit one. The SH7705, SH7710, and SH7712 SH-3 parts however opted to extend it to 4-digit and still look and act like an SH-3 RTC in all other ways. This adds a capability flag (RTC_CAP_4_DIGIT_YEAR) that these corner-case CPU subtypes can set in their platform data and cleans up some of the ifdef mess in the driver as a result. Reported-by: Markus Brunner <super.firetwister@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: Initial multiple-node support for SH-X3.Paul Mundt
Wire up CPU#0 URAM as node 1 on SH-X3. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: intc - add support for x3Magnus Damm
This patch converts the cpu specific interrupt setup code for x3 from intc2 to intc. New vectors are also added to match the preliminary information. Use plat_irq_setup_pins() to select between IRQ and IRL mode for IRQ0-3. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: intc - fix IRQ4 and IRQ5 typo on sh3Magnus Damm
The intc tables for sh3 currently contain a typo where the bit fields in IPRD are mixed up for IRQ4 and IRQ5. This patch makes sure the correct bit fields are used - all according to the datasheets. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: Fix cache disabling build failures on nommu.Paul Mundt
The cache disabling stuff screwed up some of the sh4 nommu builds, fix it up again. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: simplify se7780 IRQ codeMagnus Damm
The new intc code handles IRQ3 and IRQ7 in the cpu specific code already, so there is no reason to duplicate that here. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: intc - add support for SH7760Magnus Damm
This patch converts the cpu specific interrupt setup code for sh7760 from ipr + intc2 to intc. New vectors are also added to match the information provided by the datasheet. Vectors for IRQ4-IRQ7 are enabled by default. Use plat_irq_setup_pins() if pins IRL0-3 should be used in IRLM mode. The patch also adds the SIM block to the serial port platform data. Version two of this patch fixes MMCIF problems reported by Manuel Lauss. Signed-off-by: Magnus Damm <damm@igel.co.jp> Acked-by: Manuel Lauss <mano@roarinelk.homelinux.net> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: intc - add support for SH7785Magnus Damm
This patch converts the cpu specific interrupt setup code for sh7785 from intc2 to intc. New vectors are also added to match the information provided by the datasheet. No IRQ/IRL pin vectors are enabled by default. Use plat_irq_setup_pins() to select between IRL and IRQ mode. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: Support explicit L1 cache disabling.Paul Mundt
This reworks the cache mode configuration in Kconfig, and allows for explicit selection of write-back/write-through/off configurations. All of the cache flushing routines are optimized away for the off case. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: intc - avoid SH7710 specific vector on SH7712Magnus Damm
This patch makes sure that the sh7710 specific ipsec vector is missing if building for a sh7712. All according to the datasheet. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: intc - add missing vectors for SH7707Magnus Damm
This patch adds a few missing vectors for sh7707. The only interrupt controller differences between sh7707 and sh7709 seem to be added vectors for one LCD controller and two PCMCIA slots. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: intc - add support for SH7706, SH7707, SH7708, SH7709Magnus Damm
This patch unifies the cpu specific interrupt setup code for sh7706, sh7707, sh7708 and sh7709 and moves the code into a new file called setup-sh770x.c. It makes sense to share the setup code between these processors because most hardware blocks are identical from a software point of view. With this patch the sh770x processors now have a complete set of vectors that match with the information provided by the data sheets. This is a big improvement for sh7708. Vectors for IRQ4 and IRQ5 are enabled by default. Use plat_irq_setup_pins() if pins IRQ0-3 should be used in IRQ mode. This patch also unifies the platform device setup code which means that the rtc driver now has platform data for all sh770x processors. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: intc - add support for SH7710Magnus Damm
This patch converts the cpu specific interrupt setup code for sh7710 from ipr to intc. While at it new vectors are added to match the information provided by the datasheet. Version two simplifies the Kconfig part. Vectors for IRQ4 and IRQ5 are enabled by default. Use plat_irq_setup_pins() if pins IRQ0-3 should be used in IRQ mode. This patch also adds sh7710 specific platform data for the rtc driver. The base address of SCIF1 is adjusted to match the datasheet. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-09-21sh: intc - add support for SH7705Magnus Damm
This patch converts the cpu specific interrupt setup code for sh7705 from ipr to intc. While at it new vectors are added to match the information provided by the datasheet. Vectors for IRQ4 and IRQ5 are enabled by default. Use plat_irq_setup_pins() if pins IRQ0-3 should be used in IRQ mode. This patch also adds sh7705 specific platform data for the rtc driver. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-22sh: missing symbol fix for sh4-202Magnus Damm
This patch adds a plat_irq_setup() symbol for sh4-202. Without this fix it is impossible to build a working kernel using the microdev_defconfig. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-21sh: Fix DSP opcode regression for SH3-DSP parts.Paul Mundt
Older versions of binutils do not support -Wa,-isa= tuning, which is something we rely on for enabling DSP opcode support on the newer parts. SH3-DSP parts can still be handled with -Wa,-dsp even if the newer parts require the newer versions of binutils for supporting the new opcodes. This was broken in -rc1 when the SH4AL-DSP support was being reworked, and is needed to get SH3-DSP working with older toolchains again. Reported-by: Markus Brunner <super.firetwister@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-17sh: remove extraneous ; on scif_sercon_putc wait loopAndy Whitcroft
It seems we have gained an extraneous trailing ';' on one of the wait loops in scif_sercon_putc(). Although this is completely benign as the apparent payload is also the empty statement, it invites error in the future. Clean it up now. Signed-off-by: Andy Whitcroft <apw@shadowen.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-07sh: panic on machvec section misalignment.Paul Mundt
Now that __initmv references the machvec section unconditionally there have been cases where folks have been mistakenly flagging non-machvec structures with the machvec section attribute (presumably to shut up modpost). This leads to obscure breakage in earlyprintk amongst other places and is rather non-obvious. Add a simple sanity check to try and catch __initmv misuse and panic early. Reported-by: Markus Brunner <super.firetwister@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-04sh: Fix PTRACE_PEEKTEXT/PEEKDATA fallout from generic_ptrace_peekdata().Paul Mundt
When generic_ptrace_peekdata() was merged, the break for these cases ended up getting dropped, which lead to each PEEKTEXT/PEEKDATA op leaking in to PEEKUSR and get_user_pages() always -EFAULTing. Add the break back in. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-03sh: fix defconfigs for sh7751r boardsMagnus Damm
This patch fixes up the defconfig for various sh7751r based boards by updating them to the single cpu subtype CONFIG_CPU_SUBTYPE_SH7751R. The following sh4 boards are updated: hs7751rvoip, landisk, lboxre2, systemh, titan. The current defconfigs with two subtypes defined trigger a configuration bug which result in kernel configurations with missing board support code. We end up with kernels without board code and with generic machvec only. So we need this patch to make sure the board code gets compiled in. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-03sh: fix cf support on r2d boardsMagnus Damm
This patch makes sure cf support is enabled on R2D-PLUS but disabled on R2D-1. Without this fix R2D-1 boards hang on bootup. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-03sh: update r2d defconfigMagnus Damm
- Disable CONFIG_SH_DMA to avoid boot up freeze on R2D-1 - Disable CONFIG_SH_STANDARD_BIOS to support R2D-PLUS boot loaders Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-03sh: update snapgear defconfig.David McCullough
Updated the snapgear defconfig to get a booting kernel. Signed-off-by: David McCullough <david_mccullough@au.securecomputing.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-01sh: Fix SH-X3 FPU exception handling.Paul Mundt
SH-X3 has the FPU exceptions on different vectors completely, patch in do_fpu_state_restore() to the proper vectors. Results in a much happier userspace. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-01sh: Fix pgd mismatch from cached TTB in unhandled fault.Paul Mundt
When reading the cached TTB value and extracting the pgd, we accidentally applied a __va() to it and bumped it off in to bogus space which ended up causing multiple faults in the error path. Fix it up so unhandled faults don't do strange and highly unorthodox things when oopsing. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-01sh: Don't include fault-nommu on SH-2/SH-2A.Paul Mundt
fault-nommu defines the page fault handler stubs for SH-3/4 parts, but is not needed on SH-2/SH-2A now that the entry code has been logically separated. Add it in for SH-3 and SH-4 explicitly. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-01sh: Fix irqflags tracing for SH-3/4 nommu.Paul Mundt
We were missing the trace_hardirqs_on() instrumentation in the nommu case, resync with the MMU version of the page fault handler to have this behaving consistently. Also explicitly re-enable IRQs now that the assembly code isn't doing it for us any more. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-08-01sh: Fix lockdep debugging oops on SH-3/4.Paul Mundt
In the SH-3/4 TLB access violation path we were enabling IRQs before the call in to trace_hardirqs_on(), which ended up triggering: if (DEBUG_LOCKS_WARN_ON(!irqs_disabled())) return; in kernel/lockdep.c:2031. Fix this up by removing the early re-enable, we were already re-enabling IRQs post-trace_hardirqs_on() already, so the semantics are now as was initially intended. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-31sh: Fix fs.h removal from mm.h regressions.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-26sh: fix get_wchan() for SH kernels without framepointersDavid McCullough
Do not follow the frame pointers (/proc/X/task/1/stat) unless we were compiled with them. Signed-off-by: David McCullough <david_mccullough@au.securecomputing.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-26sh: arch/sh/boot - fix shell usageDavid McCullough
Fix the shell call to explicitly use bash, since they are bash specific and not all systems have bash as the default. Signed-off-by: David McCullough <david_mccullough@au.securecomputing.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-26sh: remove support for sh7300 and solution engine 7300Magnus Damm
This patch removes old dead code: - kill off sh7300 cpu support - get rid of broken solution engine 7300 board support Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-26sh: Kill off virt_to_bus()/bus_to_virt().Paul Mundt
Wire up ARCH_NO_VIRT_TO_BUS, and kill off the remaining users. The dma-mapping code really wanted virt_to_phys()/phys_to_virt() anyways, there are no inherently special bus addresses. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-26sh: Restrict DSP support to specific CPUs.Paul Mundt
Not all CPUs support the DSP, and this leads to problems when mixing and matching CPU types and DSP opcodes. Fix this up by only allowing CONFIG_SH_DSP to be enabled for the CPUs that explicitly have such a block. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-26sh: Silence sq compile warning on sh4 nommu.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-26sh: Kill the rest of the SE73180 cruft.Paul Mundt
There was a stray header, and the mach-type removal was also missed. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-25sh: remove support for sh73180 and solution engine 73180Magnus Damm
This patch removes old dead code: - kill off sh73180 cpu support - get rid of broken solution engine 73180 board support Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-25sh: remove old broken pint codeMagnus Damm
The code in arch/sh/kernel/cpu/irq/pint.c doesn't compile, so let's get rid of it to make space for a future pint implementation on top of intc. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-25sh: Reclaim beginning of P3 space for vmalloc area.Paul Mundt
The first 1MB of P3 space was reserved and used for page colouring, as we've reworked that to use fixmaps, we can reclaim the space and hand it back to VMALLOC_START. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-24sh: Fix Dreamcast DMA issues.Adrian McMenamin
The current SH DMA API is somewhat broken, not correctly matching virtual channel to the correct SH DMAC. This wasn't noticeable when using g2 DMA for the sound driver - one channel 0 is as good as any other! - but caused the pvr2 driver to fail. This patch fixes the pvr2 problem and consequently fixes the sound driver to ensure it continues to function. Signed-off by: Adrian McMenamin <adrian@mcmen.demon.co.uk> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-24sh: Add kmap_coherent()/kunmap_coherent() interface for SH-4.Paul Mundt
This wires up kmap_coherent() and kunmap_coherent() on SH-4, and moves away from the p3map_mutex and reserved P3 space, opting to use fixmaps for colouring instead. The copy_user_page()/clear_user_page() implementations are moved to this, which fixes the nasty blowups with spinlock debugging as a result of having some of these calls nested under the page table lock. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-21clockevents: fix resume logicThomas Gleixner
We need to make sure, that the clockevent devices are resumed, before the tick is resumed. The current resume logic does not guarantee this. Add CLOCK_EVT_MODE_RESUME and call the set mode functions of the clock event devices before resuming the tick / oneshot functionality. Fixup the existing users. Thanks to Nigel Cunningham for tracking down a long standing thinko, which affected the jinxed VAIO. [akpm@linux-foundation.org: xen build fix] Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: john stultz <johnstul@us.ibm.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-20sh: intc - add support for SH7750 and its variantsMagnus Damm
This patch converts the cpu specific 7750 setup code to use the new intc controller. Many new vectors are added and multiple processor variants including 7091, 7750, 7750s, 7750r, 7751 and 7751r should all have the correct vectors hooked up. IRLM interrupts can be enabled using ipr_irq_enable_irlm() which now is marked as __init. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-20sh: Move entry point code to .text.head.Paul Mundt
Follow Al Viro's m68k change from l-k: i.e. tell modpost that entry point code (that has to be outside of .init.text for external reasons) is OK to refer to .init.* Shuts up some section mismatch warnings from modpost. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-20sh: heartbeat: Shut up resource size warning.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-20sh: update r2d defconfig and fix SH7751R pci compliationMagnus Damm
This patch updates the r2d board support in a few ways: - CPU_SUBTYPE_SH7751R is selected in the defconfig to play well with the r2d board Kconfig entry. Without this the defconfig results in no board enabled. - Enable EARLY_PRINTK. - Enable SH_STANDARD_BIOS - this works well for early printk on the r2d board. - Add "earlyprink=bios" to the cmdline for early serial port output by default. - CONFIG_SUBTYPE_SH7751R support is added to the sh-specific pci makefile. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-20sh: Many symbol exports for nommu allmodconfig.Paul Mundt
allmodconfig generates a lot of interesting code, a lot of the generated symbols we've never exported before, so this fixes those up. Verified with both GCC3 and GCC4 toolchains. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-20sh: zero terminate 8250 platform data for r2d boardMagnus Damm
struct plat_serial8250_port should contain a terminating zero entry Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2007-07-20sh: cpufreq: Fix up the build for SH-2.Paul Mundt
Signed-off-by: Paul Mundt <lethal@linux-sh.org>