aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
Commit message (Collapse)AuthorAgeFilesLines
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6Linus Torvalds2007-10-1399-3034/+7127
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (124 commits) sh: allow building for both r2d boards in same binary. sh: fix r2d board detection sh: Discard .exit.text/.exit.data at runtime. sh: Fix up some section alignments in linker script. sh: Fix SH-4 DMAC CHCR masking. sh: Rip out left-over nommu cond syscall cruft. sh: Make kgdb i-cache flushing less inept. sh: kgdb section mismatches and tidying. sh: cleanup struct irqaction initializers. sh: early_printk tidying. video: pvr2fb: Add TV (RGB) support to Dreamcast PVR driver. sh: Conditionalize gUSA support. sh: Follow gUSA preempt changes in __switch_to(). sh: Tidy up gUSA preempt handling. sh: __copy_user() optimizations for small copies. sh: clkfwk: Support multi-level clock propagation. sh: Fix URAM start address on SH7785. sh: Use boot_cpu_data for CPU probe. sh: Support extended mode TLB on SH-X3. sh: Bump MAX_ACTIVE_REGIONS for SH7785. ...
| * sh: allow building for both r2d boards in same binary.Magnus Damm2007-10-101-8/+1
| | | | | | | | | | | | | | | | | | This patch enables building for both R2D-PLUS and R2D-1 boards. All code is already in place except for the Kconfig limitation. This is useful if you want to run the same binary on both R2D-PLUS and R2D-1 boards. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: fix r2d board detectionMagnus Damm2007-10-101-2/+5
| | | | | | | | | | | | | | | | This patch fixes the R2D-PLUS and R2D-1 board detection code. Tested on two R2D-PLUS and two R2D-1 boards. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Discard .exit.text/.exit.data at runtime.Paul Mundt2007-10-091-0/+5
| | | | | | | | | | | | | | These were previously discarded at link time, though as with MIPS we keep them around until runtime to satisfy .rodata references. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Fix up some section alignments in linker script.Paul Mundt2007-10-091-0/+4
| | | | | | | | | | | | | | | | With the PERCPU() macro introduction .data.cacheline_aligned was inhereting PAGE_SIZE alignment, fix that up for L1_CACHE_BYTES again. Likewise, the initramfs section wants PAGE_SIZE alignment. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Rip out left-over nommu cond syscall cruft.Paul Mundt2007-10-041-18/+0
| | | | | | | | | | | | | | | | | | At some point way back when (2.5 or so) quite a few syscalls hadn't yet been wired up as cond_syscalls(), so we opted to just do direct sys_ni_syscall wrapping in the assembly code instead. That's all been fixed up since then, so we can drop the wrapping. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Make kgdb i-cache flushing less inept.Paul Mundt2007-10-031-4/+4
| | | | | | | | | | | | | | | | | | | | | | kgdb had its own ranged I-cache flushing routine that attempted to duplicate the flush_icache_range() functionality, but managed to do an explicit D-cache writeback & invalidate twice on SH-4. This is a no-op for SH-3, and the flush_icache_range() semantics already do what kgdb was feebly attempting to do already, so just move over to that and kill off the wrapper. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: kgdb section mismatches and tidying.Paul Mundt2007-10-031-42/+3
| | | | | | | | | | | | | | | | | | The kgdb console setup was callable from a left-over deferred initialization path, which in turn depends on __init symbols. Since the deferred initialization was removed some time ago, kill off the rest of those remnants and move kgdb_init() and friends to __init. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: cleanup struct irqaction initializers.Thomas Gleixner2007-10-033-4/+17
| | | | | | | | | | | | Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: early_printk tidying.Paul Mundt2007-10-021-11/+4
| | | | | | | | | | | | | | | | setup_early_printk() can be static, and with that, we can kill off the early initialization variable and move the CON_BOOT check in to the function body. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Conditionalize gUSA support.Paul Mundt2007-09-284-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This conditionalizes gUSA support. gUSA is not supported on SMP configurations, and it's not necessary there anyways due to having other atomicity options (ie, movli.l/movco.l). Anything implementing the LL/SC semantics (all SH-4A CPUs) can switch to userspace atomicity implementations without requiring gUSA. This is left default-enabled on all UP so that glibc doesn't break. Those that know what they are doing can disable this explicitly. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Follow gUSA preempt changes in __switch_to().Paul Mundt2007-09-281-3/+3
| | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Tidy up gUSA preempt handling.Paul Mundt2007-09-281-7/+3
| | | | | | | | | | | | | | | | Currently gUSA toggles hardirqs to disable preemption in the signal handler. Make the preemption toggling explicit, and kill off some CONFIG_PREEMPT ifdefs in the process. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: __copy_user() optimizations for small copies.Stuart Menefy2007-09-281-61/+108
| | | | | | | | | | | | | | | | | | This implements a fast-path for small (less than 12 bytes) copies, with the existing path treated as the slow-path and left as the default behaviour for all other copy sizes. Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: clkfwk: Support multi-level clock propagation.Stuart Menefy2007-09-281-0/+2
| | | | | | | | | | | | | | | | Currently clock propagation only works for one level, but we have some clocks which need to propagate multiple levels, so make this recursive. Signed-off-by: Stuart Menefy <stuart.menefy@st.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Fix URAM start address on SH7785.Paul Mundt2007-09-271-1/+1
| | | | | | | | | | | | | | | | Not all of the SH-X2 URAM blocks are mapped in the same place, SH7785 happens to map it on the opposite end of the address space from SH7722, correct the addresses. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Use boot_cpu_data for CPU probe.Paul Mundt2007-09-274-129/+126
| | | | | | | | | | | | | | | | | | | | This moves off of smp_processor_id() and only sets the probe information for the boot CPU directly. This will be copied out for the secondaries, so there's no reason to do this each time. This also allows for some header tidying. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Support extended mode TLB on SH-X3.Paul Mundt2007-09-271-1/+1
| | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Bump MAX_ACTIVE_REGIONS for SH7785.Paul Mundt2007-09-271-1/+2
| | | | | | | | | | | | | | | | When using URAM in NUMA mode another active region is needed. Bump this up so we don't trigger the region truncation in add_active_range(). Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Fix plat_irq_setup_pins() for SH7785.Paul Mundt2007-09-271-4/+0
| | | | | | | | | | | | | | There was some debug code left in here that caused the pin changes to never be hit. Kill that off, and all is well. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Kill off duplicate NODES_SHIFT.Paul Mundt2007-09-271-5/+0
| | | | | | | | | | | | | | We already set this in arch/sh/mm/Kconfig, don't set a conflicting one in arch/sh/Kconfig too.. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Disable 4kB pages on extended mode TLB.Paul Mundt2007-09-271-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | 4kB pages are unstable on extended mode TLB, it's recommended that TLB compat mode be used when using a 4kB PAGE_SIZE. Set the default for extended mode to 8kB. This should have negligible impact, as other than the extra swap cache entry bits, there's no reason to use the extended mode TLB with 4kB pages. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Disable L2 reporting for present URAM only parts.Paul Mundt2007-09-271-5/+2
| | | | | | | | | | | | | | | | | | The probing logic works for both URAM and L2, with no way to distinguish between the two. Disable the probing for now and let the CPU subtypes that have this in a real L2 configuration explicitly say so. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Define _ebss for uClinux MTD map driver.Paul Mundt2007-09-242-1/+3
| | | | | | | | | | | | | | The uClinux MTD device uses _ebss, add the symbol and corresponding export. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Revert incorrect license string changes.Paul Mundt2007-09-242-2/+2
| | | | | | | | | | | | | | These were right the first time. Either a thinko or building in the wrong tree. Revert this. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Calculate cache aliases on L2 caches.Paul Mundt2007-09-241-0/+15
| | | | | | | | | | | | | | | | Calculate the number of cache aliases on probed L2 caches, and while we're at it, print out the detected statistics at boot time for these also. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: nommu: Kill off dummy page fault ops for SH-3/4.Paul Mundt2007-09-242-67/+0
| | | | | | | | | | | | | | | | We stopped referencing these functions unconditionally when the old entry.S code was refactored, so this is just dead code at present. Kill it off. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Fix alias calculation for non-aliasing cases.Paul Mundt2007-09-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | There was an off-by-1 on the cache alias detection logic on SH-4, which caused n_aliases to always be 1 even when the page size precluded the existence of aliases. With this corrected, 64KB pages happily reports n_aliases == 0, and hits the appropriate fast paths in the flushing routines. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Initial SH-X3 SMP support.Paul Mundt2007-09-214-208/+375
| | | | | | | | | | | | | | | | | | | | | | This adds basic support for SH-X3 SMP (4 CPUs). More IPI and cache debugging is necessary, mostly interfacing the d-cache coherency and the I-cache broadcast invalidates. Only for testing at present! Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Plug plat_smp_setup() in to generic setup path.Paul Mundt2007-09-211-0/+5
| | | | | | | | | | | | | | Now that the SMP stubs are in place, call in to the setup code to be defined by the platform. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Hook up the SH-X3 SMP intc register groups.Magnus Damm2007-09-211-1/+1
| | | | | | | | | | Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Bring SMP support back from the dead.Paul Mundt2007-09-214-88/+118
| | | | | | | | | | | | | | | | | | | | | | There was a very preliminary bunch of SMP code scattered around for the SH7604 microcontrollers from way back when, and it has mostly suffered bitrot since then. With the tree already having been slowly getting prepped for SMP, this plugs in most of the remaining platform-independent bits. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: intc - initial SMP support.Magnus Damm2007-09-211-21/+57
| | | | | | | | | | | | | | | | | | | | | | | | This implements initial support for the SMP INTC (particularly INTC2) controllers. These are largely implemented as conventional blocks, with register sets grouped together at fixed strides relative to the CPU id. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Add SMP tlbflush variants.Paul Mundt2007-09-211-0/+140
| | | | | | | | | | | | | | | | This adds the TLB flushing routines for SMP systems, based on the MIPS implementation, with some additional SH-specific flush routines. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Avoid smp_processor_id() in cache desc paths.Paul Mundt2007-09-211-31/+31
| | | | | | | | | | | | | | | | | | current_cpu_data uses smp_processor_id() in order to find the corresponding cpu_data. As the cache descs are all currently identical, just have this look at probed results from the boot CPU. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Kill off special boot_cpu_data.Paul Mundt2007-09-212-2/+7
| | | | | | | | | | | | | | | | This consolidates the cpu_data definitions and gets rid of the special boot_cpu_data. It's made a wrapper to the boot CPU, in order to keep the existing in-tree users happy. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Make cpufreq driver less noisy on SMP.Paul Mundt2007-09-211-2/+1
| | | | | | | | | | | | | | The cpufreq driver banner is currently printed for each CPU, move it down so it's not as noisy and it's only printed once. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Enable maple by default for the Dreamcast.Paul Mundt2007-09-211-124/+31
| | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Add maple bus support for the SEGA Dreamcast.Adrian McMenamin2007-09-211-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Maple bus is SEGA's proprietary serial bus for peripherals (keyboard, mouse, controller etc). The bus is capable of some (limited) hotplugging and operates at up to 2 M/bits. Drivers of one sort or another existed/exist for 2.4 and a rudimentary port, which didn't support the 2.6 device driver model was also in existence. This driver - for the bus logic itself and for the keyboard (other drivers will follow) are based on the code and concepts of those old drivers but have lots of completely rewritten parts. I have the maple bus code as a built in now as that seems the sane and rational way to handle something like that - you either want the bus or you don't. Signed-off-by: Adrian McMenamin <adrian@mcmen.demon.co.uk> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Magic Panel MTD mapping update.Markus Brunner2007-09-212-6/+90
| | | | | | | | | | | | | | | | | | | | This update moves the flash mapping for the Magic Panel into the board setup. It also removes references to the old MTD mapping option in the defconfig. Signed-off by: Markus Brunner <super.firetwister@gmail.com> Signed-off by: Mark Jonas <toertel@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: rts7751r2d: Fix up trivial build failure.Paul Mundt2007-09-211-2/+2
| | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: rts7751r2d cf_ide reworkAoi Shinkai2007-09-211-12/+33
| | | | | | | | | | | | | | Support CF IDE on R2D-1 boards. Signed-off-by: Aoi Shinkai <shinkoi2005@gmail.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Fix up extended mode TLB for SH-X2+ cores.Paul Mundt2007-09-211-17/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The extended mode TLB requires both 64-bit PTEs and a 64-bit pgprot, correspondingly, the PGD also has to be 64-bits, so fix that up. The kernel and user permission bits really are decoupled in early cuts of the silicon, which means that we also have to set corresponding kernel permissions on user pages or we end up with user pages that the kernel simply can't touch (!). Finally, with those things corrected, really enable MMUCR.ME and correct the PTEA value (this simply needs to be the upper 32-bits of the PTE, with the size and protection bit encoding). Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Wire up URAM node on SH7785.Paul Mundt2007-09-212-0/+10
| | | | | | | | | | | | Add SH7785 URAM as node 1, follows the SH-X3 change. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: se7206: update defconfig.Paul Mundt2007-09-211-131/+92
| | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: se7206: Handle non-SuperIO I/O ports.Paul Mundt2007-09-211-0/+2
| | | | | | | | | | | | | | | | | | This fixes up the port calculation logic for non-SuperIO accesses, before these were always matching the MRSHPC base, now just make sure the original port is handed back if it's not in the I/O port range. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: r7780rp: irq-r7780rp needs linux/io.h.Paul Mundt2007-09-211-0/+1
| | | | | | | | | | | | Trivial build fix. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: hp6xx: Trivial build fixes for INTC changes.Paul Mundt2007-09-211-1/+1
| | | | | | | | | | | | Get the IRL->IRQ stuff building. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: se7206: heartbeat needs 32-bit writes.Paul Mundt2007-09-211-0/+1
| | | | | | | | | | | | | | | | Most boards use 8 or 16-bit access for the LED bank, se7206 needs 32. There's only 8 individual LEDs however, each with a 'special' value in terms of logical ordering. Go FPGA, go! Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: se7206: Make the I/O port routines less stupid.Paul Mundt2007-09-212-33/+4
| | | | | | | | | | | | | | The port routines were logically inverted, and the MRSHPC range had no upper bound, causing 8 and 16-bit port I/O to get mangled. Signed-off-by: Paul Mundt <lethal@linux-sh.org>