Commit Graph

271 Commits

Author SHA1 Message Date
Ralf Baechle e01402b115 More AP / SP bits for the 34K, the Malta bits and things. Still wants
a little polishing.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:53 +01:00
Ralf Baechle 7e35952baa Move Origin crapola into a machine-specific header file.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:52 +01:00
Ralf Baechle a0c3a5b5a8 Prevent gcc from optimizing a few functions away completly.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:52 +01:00
Ralf Baechle 8f40611d2b Detect the MIPS R2 vectored interrupt, external interrupt controller
options and the precense of the MT ASE.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:51 +01:00
Ralf Baechle 55d04dff0f New kernel option nowait allows disabling the use of the wait instruction.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:48 +01:00
Ralf Baechle 569f75bd02 Use an irq_enable_hazard hazard barrier in unmask_mips_irq. This
hasn't been an actual bug, so it's more a change to be 100% compliant
with the requirements of the architecture spec.  Similar fix to
mask_mips_irq where there was a slightly less theoretical chance of
getting hit.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:48 +01:00
Ralf Baechle 7db36c858c Add inotify syscalls for MIPS.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:47 +01:00
Ralf Baechle ec74e361f1 Mark a few variables __read_mostly.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:46 +01:00
Ralf Baechle cc61c1fede MIPS R2 instruction hazard handling.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:46 +01:00
Ralf Baechle bbc7f22f6d Detect the 34K.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:45 +01:00
Ralf Baechle 079ef8bb80 Generate code for MIPS32 / MIPS64 Release 2 if configured for one of
these architectures.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:45 +01:00
Ralf Baechle 1e5f1caa5d MIPS 32/64 R2 config option.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:44 +01:00
Ralf Baechle e5de3b4687 In pcibios_enable_resources go back to handling all PCI_NUM_RESOURCES
resources.  We tried previous but ran into problems ...

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:43 +01:00
Ralf Baechle e80de8503c Use Kconfig.preempt.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:42 +01:00
Ralf Baechle 60080265a1 Define kmap_atomic_pfn() for MIPS.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:42 +01:00
Ralf Baechle 129bc8f78b Setup_frame is now returning a success value.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:41 +01:00
Ralf Baechle b490ff4270 Temporary hack for Qemu and MIPSsim until they get a proper ELF loader.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:41 +01:00
Ralf Baechle 3ef33e68c1 Date: Fri Jul 8 20:10:17 2005 +0000
Those literals are long.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:40 +01:00
Thiemo Seufer 4552074577 IP30 Identification.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Thiemo Seufer <ths@networkno.de>
2005-10-29 19:31:39 +01:00
Thiemo Seufer 85f14bf2cb ... and it isn't a canonicalized triplet but just the n-plet used to
configure gcc.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Thiemo Seufer <ths@networkno.de>
2005-10-29 19:31:38 +01:00
Thiemo Seufer 73f74e23a6 Grep deesn't like shell-style matching...
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Thiemo Seufer <ths@networkno.de>
2005-10-29 19:31:37 +01:00
Thiemo Seufer f425a6dce5 Hack to make compiles for the other endianness easier.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Thiemo Seufer <ths@networkno.de>
2005-10-29 19:31:37 +01:00
Ralf Baechle 6e760c8dae Rename CONFIG_CPU_MIPS{32,64} to CONFIG_CPU_MIPS{32|64}_R1.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:37 +01:00
Ralf Baechle ca4973dd55 Don't redeclare ll_local_timer_interrupt.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:36 +01:00
Thiemo Seufer 50bd2c72ca Brian Murphy says:
this fixes Lasat pci to work with multi-function devices by assigning
    the correct values based on pin number (instead of ignoring them).

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Thiemo Seufer <ths@networkno.de>
2005-10-29 19:31:36 +01:00
Thiemo Seufer ec125c129e Code cleanup, thanks Brian Murphy.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Thiemo Seufer <ths@networkno.de>
2005-10-29 19:31:35 +01:00
Maciej W. Rozycki a5fc9c0bbe Use physical addresses at the interface level, letting drivers remap
them as appropriate.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:35 +01:00
Maciej W. Rozycki 2c93e12cfe Avoid tlbw* hazards for the R4600/R4700/R5000.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:34 +01:00
Maciej W. Rozycki c3455b0efc Inline ioremap() calls for constant addresses that map to KSEG1.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:34 +01:00
Ralf Baechle c134a5ecdb Avoid defining variables in the middle of a block which breaks older
compilers.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:33 +01:00
Maciej W. Rozycki 4c0a2d4275 Fix the diagnostic dump for the XTLB refill handler.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:32 +01:00
Maciej W. Rozycki 41986a6e7e Fix a diagnostic message.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:32 +01:00
Ralf Baechle 362b1d546d Conversion to plat_setup() for TX4927 also.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:32 +01:00
Ralf Baechle 01d42abdf3 Using get_nasid() to find the console node will blow up nicely if
called on a another node than the console node, so use the master_nasid
instead and in the unlikely case that one isn't initialized yet, fall
back to get_nasid().

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:31 +01:00
Maciej W. Rozycki c4559f67b7 Always use ".set mips3" rather than select between "mips2" or "mips3"
for assembling ll/sc sequences to avoid problems with 64-bit
configurations.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:31 +01:00
Maciej W. Rozycki 69c75fb458 Actual handlers for bus errors for Pmax and 3min.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

diff --git a/arch/mips/dec/kn01-berr.c b/arch/mips/dec/kn01-berr.c
new file mode 100644
2005-10-29 19:31:30 +01:00
Maciej W. Rozycki 64dac503e8 System-specific handling of bus errors for DECstation variations
supporting parity errors only for memory (Pmax/3min/Maxine).
Fixes for resources decoded by the KN04/KN05 MB ASIC.  Additional
clean-ups for the ECC handler.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:30 +01:00
Maciej W. Rozycki 3b2396d972 Use correct names for bits in the R3k cp0.status register.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:29 +01:00
Maciej W. Rozycki c6ad7b7d3c Use macros for the RM7k cp0.config bits instead of magic numbers.
Minor clean-ups.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:28 +01:00
Maciej W. Rozycki 8a185d14b6 Fix types for firmware arguments. Don't define unneeded messages.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:27 +01:00
Maciej W. Rozycki 260c96738c Mark __die() "noreturn" for real.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:26 +01:00
Maciej W. Rozycki 3bd4c902da Deal with the bloody KSEG vs CKSEG horror...
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:23 +01:00
Maciej W. Rozycki 902d21d531 There is NO port I/O space on the DECstation. Minor clean-ups.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:23 +01:00
Ralf Baechle 02416dcf5a Redo RM9000 workaround which along with other DSP ASE changes was
causing some headache for debuggers knowing about signal frames.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:23 +01:00
Maciej W. Rozycki aac8aa7717 Enable a suitable ISA for the assembler around ll/sc so that code
builds even for processors that don't support the instructions.
Plus minor formatting fixes.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:22 +01:00
Maciej W. Rozycki fded2e508a Optimize R3k TLB Load/Store/Modified handlers, by scheduling
delay slots properly and avoiding an unnecessary jump to a jump.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:22 +01:00
Maciej W. Rozycki d925c262dd Fill R3k load delay slots properly.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:21 +01:00
Maciej W. Rozycki 9678e28b1a Only dump instructions actually emitted.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:21 +01:00
Maciej W. Rozycki 68e4a86c80 This interrupt is *always* handled -- MIPS_BE_DISCARD just means
no further action wanted.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:20 +01:00
Maciej W. Rozycki d5b6f1db5d For MIPS32/MIPS64 cp0.config.mt == 1 implies a standard (R4k-style)
TLB, so no need to set it separately for each implementation.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:19 +01:00
Steven J. Hill 81731f7997 The DbAu1500 board also support big endian. Gee, imagine that.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:18 +01:00
Ralf Baechle e50c0a8fa6 Support the MIPS32 / MIPS64 DSP ASE.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:17 +01:00
Ralf Baechle 10f650db1b 64-bit fixes for Alchemy code ;)
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:17 +01:00
Ralf Baechle 149f60b30c When building for Atlas, Malta or SEAD convert the kernel to srecs by
default.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:16 +01:00
Ralf Baechle f8280c8d3d Fix tasteless #ifdef mess in audit_arch(), minor cleanups.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:16 +01:00
Ralf Baechle 4a99d1e25b Now that a struct is the only member left in struct
mips_fpu_emulator_stats cleanup that unnecessary nesting of structs.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:14 +01:00
Ralf Baechle baee502ce2 Get rid of the eir struct mips_fpu_emulator_private member. It's
never initialized been initialized anywhere, just saved to and
restored from signal frames so nonsense anyway.  As neat side effect
of being shared between all processors it was also abusable as a
nice covert channel between processes.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:14 +01:00
Ralf Baechle 1d74f6bc85 __compute_return_epc() uses CFC1 instruction which might result in a
coprocessor unusable exception since the process can lose its fpu
context by preemption.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:13 +01:00
Maciej W. Rozycki d547c5cc21 sys_nfsservctl() needs translation.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:13 +01:00
Ralf Baechle b382fe8483 No point in checking cpu_has_tlb before we've computed the CPU options.
So for now we just unconditionally set the option - Linux wouldn't
work without a TLB anyway.
    
Setting MIPS_CPU_4KTLB was missing for Alchemy and Sandcraft, add that
back.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:13 +01:00
Ralf Baechle 4194318c39 Cleanup decoding of MIPSxx config registers.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:12 +01:00
Ralf Baechle cd21dfcfbb Fix preemption and SMP problems in the FP emulator code.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:12 +01:00
Thiemo Seufer 63b2d2f4d2 Handle _PAGE_DIRTY correctly for CONFIG_64BIT_PHYS_ADDR on 32bit CPUs.
Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:11 +01:00
Thiemo Seufer ba5187dbb4 Better interface to run uncached cache setup code.
Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:11 +01:00
Thiemo Seufer cce812c99c Ustat needs a wrapper on n32.
Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:08 +01:00
Ralf Baechle 93b25d0621 Useless includes of everything, the kitchen sink and version.h ...
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:07 +01:00
Ralf Baechle 1342f7e6c5 Arrested for multiple offences of header file inclusion.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:07 +01:00
Ralf Baechle 1fcf1cc742 We pass a kernel pointer to do_sigaltstack in sys32_sigaltstack, so
we need to do the set_fs(KERNEL_DS) thing around this call.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:06 +01:00
Ralf Baechle 3c37026d43 NPTL, round one.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:06 +01:00
Ralf Baechle f03da6e28e Fix BogoMIPS display on UP and some minor cosmetical things.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:05 +01:00
Thiemo Seufer 589391a0fe fcntl64 needs to be wrapped for n32.
Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:04 +01:00
Ralf Baechle 05b8042ac6 Fix one more case of computing the return EPC after the registers have
already been modified.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:04 +01:00
Ralf Baechle 6dd0468852 When simulating ll/sc compute the return EPC before modifying the
registers.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:04 +01:00
Ralf Baechle 2b07bd0235 Detect the 4KEcR2 and for now detect handle it like the 4KEc.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:03 +01:00
Pete Popov fe359bf584 Fixed buglet with previous patch that broke non au1x builds.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:02 +01:00
Pete Popov 494900af68 Remove CONFIG_PM dependency from au1x wait in cpu_probe.
Additional work necessary to completely remove that config option.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:02 +01:00
Pete Popov 3b495f2bb7 Au1100 FB driver uplift for 2.6.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Antonino Daplas <adaplas@pol.net>
2005-10-29 19:31:01 +01:00
Thiemo Seufer 172546bf60 Fix race conditions for read_c0_entryhi. Remove broken ASID masks in
tlb-sb1.c. Make tlb-r4k.c and tlb-sb1.c more similiar and more efficient.

Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:01 +01:00
Maciej W. Rozycki 202d0388e7 Remove useless casts. Fix formatting.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:00 +01:00
Thiemo Seufer 1b3a6e975c Fix 64bit SMP TLB handler and stack frame handling, optimize 32bit SMP
TLB handlers a bit, match definitions in pgtable-{32,64}.h better.

Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:31:00 +01:00
Ralf Baechle 4f12bfe5a4 HUB interrupts are allocated per node, not per slice. Make manipulation
of the interrupt mask register atomic by disabling interrupts.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:59 +01:00
Ralf Baechle 6cbe063159 R4300 delay slot.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:59 +01:00
Ralf Baechle 209ac8ddb1 Use compat_sigval_t in struct compat_siginfo.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:58 +01:00
Ralf Baechle 127c6f6623 SECCOMP for MIPS.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:58 +01:00
Ralf Baechle 53de0d471f Reformat; cosmetic cleanups.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:57 +01:00
Ralf Baechle 1592dac241 Reformatting, remove debugging code.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:57 +01:00
Ralf Baechle b4dbf95e30 Get rid of the the remains of 2.4-style ramdisk support.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:57 +01:00
Ralf Baechle 71e0e556db Multithreaded core dumps.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:56 +01:00
Pete Popov a3701ca487 When CONFIG_PM is enabled, it uses the TOY_MATCH2 interrupt as the system
timer tick. Prior to this patch, if IDE IRQ probing occured, then the
TOY_MATCH2 interrupt would be permanently disabled, and no system timer
tick occurs. This patch corrects this situation by correctly registering
the TOY_MATCH2 interrupt so that IDE IRQ probing doesn't have adverse
side effects.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:56 +01:00
Thiemo Seufer 90a67b5909 sys_futex has 6 arguments.
Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:55 +01:00
Ralf Baechle 9ff77c469e Export shm_align_mask and flush_data_cache_page.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:54 +01:00
Ralf Baechle 07b4ebd372 Put salone.o back into arclib. It's a lib so doesn't harm if unused atm.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:54 +01:00
Ralf Baechle 77c728c224 Gcc 4.0 fixes.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:53 +01:00
Ralf Baechle 5eaf7a21be Use new txx9 serial driver.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:52 +01:00
Ralf Baechle cdaed73afb Fix preemption bug.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:51 +01:00
Pete Popov ebc7f12fbc Int controller fixes.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:51 +01:00
Ralf Baechle fe00f943e0 Sparseify MIPS.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:50 +01:00
Ralf Baechle 14f18b7f7e On 24K we did always disable cache parity protection - obviously not
the greatest thing to do.  Try to enable parity protection, check if
we actually succeeded and print a message about the outcome of this.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:49 +01:00
Ralf Baechle 0f04afb595 ISOify.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:48 +01:00
Pete Popov 2d32ffa44a Moved irq_tab_alchemy to the board specific irqmap.c files.
Cleaned up a to of warnings in dbdma.c.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2005-10-29 19:30:48 +01:00