mirror of https://gitee.com/openkylin/linux.git
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS fixes from Ralf Baechle: "Another round of MIPS fixes for 4.2. Things are looking quite decent at this stage but the recent work on the FPU support took its toll: - fix an incorrect overly restrictive ifdef - select O32 64-bit FP support for O32 binary compatibility - remove workarounds for Sibyte SB1250 Pass1 parts. There are rare fixing the workarounds is not worth the effort. - patch up an outdated and now incorrect comment" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU MIPS: SB1: Remove support for Pass 1 parts. MIPS: Require O32 FP64 support for MIPS64 with O32 compat MIPS: asm-offset.c: Patch up various comments refering to the old filename.
This commit is contained in:
commit
8bff839927
|
@ -1427,6 +1427,7 @@ config CPU_MIPS64_R6
|
|||
select CPU_SUPPORTS_HIGHMEM
|
||||
select CPU_SUPPORTS_MSA
|
||||
select GENERIC_CSUM
|
||||
select MIPS_O32_FP64_SUPPORT if MIPS32_O32
|
||||
help
|
||||
Choose this option to build a kernel for release 6 or later of the
|
||||
MIPS64 architecture. New MIPS processors, starting with the Warrior
|
||||
|
@ -2262,11 +2263,6 @@ config MIPS_CM
|
|||
config MIPS_CPC
|
||||
bool
|
||||
|
||||
config SB1_PASS_1_WORKAROUNDS
|
||||
bool
|
||||
depends on CPU_SB1_PASS_1
|
||||
default y
|
||||
|
||||
config SB1_PASS_2_WORKAROUNDS
|
||||
bool
|
||||
depends on CPU_SB1 && (CPU_SB1_PASS_2_2 || CPU_SB1_PASS_2)
|
||||
|
|
|
@ -181,13 +181,6 @@ cflags-$(CONFIG_CPU_R4000_WORKAROUNDS) += $(call cc-option,-mfix-r4000,)
|
|||
cflags-$(CONFIG_CPU_R4400_WORKAROUNDS) += $(call cc-option,-mfix-r4400,)
|
||||
cflags-$(CONFIG_CPU_DADDI_WORKAROUNDS) += $(call cc-option,-mno-daddi,)
|
||||
|
||||
ifdef CONFIG_CPU_SB1
|
||||
ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
|
||||
KBUILD_AFLAGS_MODULE += -msb1-pass1-workarounds
|
||||
KBUILD_CFLAGS_MODULE += -msb1-pass1-workarounds
|
||||
endif
|
||||
endif
|
||||
|
||||
# For smartmips configurations, there are hundreds of warnings due to ISA overrides
|
||||
# in assembly and header files. smartmips is only supported for MIPS32r1 onwards
|
||||
# and there is no support for 64-bit. Various '.set mips2' or '.set mips3' or
|
||||
|
|
|
@ -74,7 +74,7 @@ static inline int __enable_fpu(enum fpu_mode mode)
|
|||
goto fr_common;
|
||||
|
||||
case FPU_64BIT:
|
||||
#if !(defined(CONFIG_CPU_MIPS32_R2) || defined(CONFIG_CPU_MIPS32_R6) \
|
||||
#if !(defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) \
|
||||
|| defined(CONFIG_64BIT))
|
||||
/* we only have a 32-bit FPU */
|
||||
return SIGFPE;
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
#define R4600_V2_HIT_CACHEOP_WAR 0
|
||||
#define R5432_CP0_INTERRUPT_WAR 0
|
||||
|
||||
#if defined(CONFIG_SB1_PASS_1_WORKAROUNDS) || \
|
||||
defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
|
||||
#if defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
extern int sb1250_m3_workaround_needed(void);
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
/*
|
||||
* Keep this struct definition in sync with the sigcontext fragment
|
||||
* in arch/mips/tools/offset.c
|
||||
* in arch/mips/kernel/asm-offsets.c
|
||||
*/
|
||||
struct sigcontext {
|
||||
unsigned int sc_regmask; /* Unused */
|
||||
|
@ -46,7 +46,7 @@ struct sigcontext {
|
|||
#include <linux/posix_types.h>
|
||||
/*
|
||||
* Keep this struct definition in sync with the sigcontext fragment
|
||||
* in arch/mips/tools/offset.c
|
||||
* in arch/mips/kernel/asm-offsets.c
|
||||
*
|
||||
* Warning: this structure illdefined with sc_badvaddr being just an unsigned
|
||||
* int so it was changed to unsigned long in 2.6.0-test1. This may break
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* offset.c: Calculate pt_regs and task_struct offsets.
|
||||
* asm-offsets.c: Calculate pt_regs and task_struct offsets.
|
||||
*
|
||||
* Copyright (C) 1996 David S. Miller
|
||||
* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Ralf Baechle
|
||||
|
|
|
@ -81,11 +81,6 @@ choice
|
|||
prompt "SiByte SOC Stepping"
|
||||
depends on SIBYTE_SB1xxx_SOC
|
||||
|
||||
config CPU_SB1_PASS_1
|
||||
bool "1250 Pass1"
|
||||
depends on SIBYTE_SB1250
|
||||
select CPU_HAS_PREFETCH
|
||||
|
||||
config CPU_SB1_PASS_2_1250
|
||||
bool "1250 An"
|
||||
depends on SIBYTE_SB1250
|
||||
|
|
|
@ -81,10 +81,7 @@ void check_bus_watcher(void)
|
|||
{
|
||||
u32 status, l2_err, memio_err;
|
||||
|
||||
#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
|
||||
/* Destructive read, clears register and interrupt */
|
||||
status = csr_in32(IOADDR(A_SCD_BUS_ERR_STATUS));
|
||||
#elif defined(CONFIG_SIBYTE_BCM112X) || defined(CONFIG_SIBYTE_SB1250)
|
||||
#if defined(CONFIG_SIBYTE_BCM112X) || defined(CONFIG_SIBYTE_SB1250)
|
||||
/* Use non-destructive register */
|
||||
status = csr_in32(IOADDR(A_SCD_BUS_ERR_STATUS_DEBUG));
|
||||
#elif defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80)
|
||||
|
|
|
@ -202,12 +202,10 @@ void __init sb1250_setup(void)
|
|||
|
||||
switch (war_pass) {
|
||||
case K_SYS_REVISION_BCM1250_PASS1:
|
||||
#ifndef CONFIG_SB1_PASS_1_WORKAROUNDS
|
||||
printk("@@@@ This is a BCM1250 A0-A2 (Pass 1) board, "
|
||||
"and the kernel doesn't have the proper "
|
||||
"workarounds compiled in. @@@@\n");
|
||||
bad_config = 1;
|
||||
#endif
|
||||
break;
|
||||
case K_SYS_REVISION_BCM1250_PASS2:
|
||||
/* Pass 2 - easiest as default for now - so many numbers */
|
||||
|
|
|
@ -1508,16 +1508,7 @@ static void sbmac_channel_start(struct sbmac_softc *s)
|
|||
__raw_writeq(reg, port);
|
||||
port = s->sbm_base + R_MAC_ETHERNET_ADDR;
|
||||
|
||||
#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
|
||||
/*
|
||||
* Pass1 SOCs do not receive packets addressed to the
|
||||
* destination address in the R_MAC_ETHERNET_ADDR register.
|
||||
* Set the value to zero.
|
||||
*/
|
||||
__raw_writeq(0, port);
|
||||
#else
|
||||
__raw_writeq(reg, port);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Set the receive filter for no packets, and write values
|
||||
|
|
Loading…
Reference in New Issue