MIPS: SGI updates
cover MIPS: SGI updates
A stack fix for run_uncached(), a missing prototype and defconfig updates for the SGI machines. Applies on top of "MIPS: SGI fixes" (<[email protected]>).
Patch 1 keeps the stack that run_uncached() gives its callee clear of the registers it saves in its own frame.
Patch 2 declares ip22_eisa_init() in asm/sgi/ip22.h, so that enabling EISA on IP22 does not add a -Wmissing-prototypes warning.
Patches 3 to 5 clean up ip22_defconfig, ip30_defconfig and ip32_defconfig. They enable EISA, HAL2 audio and the Zilog serial console on IP22, the front panel LEDs on IP30 and the audio driver on IP32. Patch 3 also switches ip22_defconfig to the R4x00 CPU type, which most of these machines shipped with.
Imre Kaloz (5):
MIPS: lib/uncached: fix run_uncached()'s stack switch
MIPS: sgi-ip22: Add prototype for ip22_eisa_init() to header
MIPS: ip22_defconfig: correct CPU type, add EISA and refresh config
MIPS: ip30_defconfig: drop add-in drivers, enable the LED driver
MIPS: ip32_defconfig: drop dead options and add-in drivers, add audio
arch/mips/configs/ip22_defconfig | 79 ++++++-------------------------- arch/mips/configs/ip30_defconfig | 13 ++---- arch/mips/configs/ip32_defconfig | 36 ++++----------- arch/mips/include/asm/sgi/ip22.h | 1 + arch/mips/lib/uncached.c | 7 +++ arch/mips/sgi-ip22/ip22-int.c | 2 - 6 files changed, 34 insertions(+), 104 deletions(-)
base-commit: f2633ae2cb94428d310ad359a8d4016712133e90
Signature · 1 line
2.47.3
PATCH 1/5 MIPS: lib/uncached: fix run_uncached()'s stack switch
run_uncached() derives the uncached stack pointer for FUNC from $sp and then spills $16 and $31 into a frame of its own. The compiler may read $sp before the prologue that allocates that frame, in which case FUNC's stack starts at the caller's sp and its frame overlaps the saved registers.
Move the uncached stack pointer down by the two spilled registers.
--- arch/mips/lib/uncached.c | 7 +++++++ 1 file changed, 7 insertions(+)
arch/mips/lib/uncached.c +7 -0
@@ -56,6 +56,13 @@ unsigned long run_uncached(void *func)BUG (); usp = sp; } + +/* +* "sp" may have been read before the prologue allocated the slots +* for $16 and $31 spilled below; keep FUNC's stack clear of them. +*/ + usp -=2 *sizeof (long ); +if (lfunc >= (long )CKSEG0 && lfunc < (long )CKSEG2 ) ufunc =CKSEG1ADDR (lfunc);#ifdef CONFIG_64BIT
Signature · 1 line
2.47.3
PATCH 2/5 MIPS: sgi-ip22: Add prototype for ip22_eisa_init() to header
In reply to Imre KalozThis fixes the following build warning with CONFIG_EISA=y:
arch/mips/sgi-ip22/ip22-eisa.c:95:12: warning: no previous prototype for 'ip22_eisa_init' [-Wmissing-prototypes]
--- arch/mips/include/asm/sgi/ip22.h | 1 + arch/mips/sgi-ip22/ip22-int.c | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-)
arch/mips/include/asm/sgi/ip22.h +1 -0
@@ -79,5 +79,6 @@ extern unsigned short ip22_nvram_read(int reg);extern void ip22_be_interrupt (int irq);extern void ip22_be_init (void )__init ;extern void indy_8254timer_irq (void ); +extern int ip22_eisa_init (void );#endif
arch/mips/sgi-ip22/ip22-int.c +0 -2
@@ -30,8 +30,6 @@ static char lc1msk_to_irqnr[256];static char lc2msk_to_irqnr[256 ];static char lc3msk_to_irqnr[256 ]; -extern int ip22_eisa_init (void ); -static void enable_local0_irq (struct irq_data *d) {/* don't allow mappable interrupt to be enabled from setup_irq,
Signature · 1 line
2.47.3
PATCH 3/5 MIPS: ip22_defconfig: correct CPU type, add EISA and refresh config
In reply to Imre KalozMost machines were sold with R4x00 CPUs so use that as default. Enable EISA, HAL2 and the required Zilog serial.
--- arch/mips/configs/ip22_defconfig | 79 ++++++-------------------------- 1 file changed, 14 insertions(+), 65 deletions(-)
arch/mips/configs/ip22_defconfig +14 -65
@@ -1,7 +1,6 @@ CONFIG_SYSVIPC=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y -CONFIG_PREEMPT_VOLUNTARY=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=14
@@ -9,10 +8,8 @@ CONFIG_NAMESPACES=y CONFIG_USER_NS=y CONFIG_RELAY=y CONFIG_EXPERT=y -# CONFIG_COMPAT_BRK is not set CONFIG_SGI_IP22=y CONFIG_ARC_CONSOLE=y -CONFIG_CPU_R5000=y CONFIG_HZ_1000=y # CONFIG_SUSPEND is not set CONFIG_PM=y
@@ -22,6 +19,7 @@ CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_PARTITION_ADVANCED=y CONFIG_BINFMT_MISC=m +# CONFIG_COMPAT_BRK is not set CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y
@@ -65,15 +63,11 @@ CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_TPROXY=m -CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m -CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -123,31 +117,7 @@ CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_MH=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_RAW=m -CONFIG_PHONET=m CONFIG_NET_SCHED=y -CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_PRIO=m
@@ -156,15 +126,12 @@ CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_INGRESS=m CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=y
@@ -176,6 +143,8 @@ CONFIG_NET_ACT_PEDIT=m CONFIG_NET_ACT_SIMP=m CONFIG_NET_ACT_SKBEDIT=m CONFIG_RFKILL=m +CONFIG_EISA=y +# CONFIG_EISA_NAMES is not set CONFIG_CONNECTOR=m CONFIG_ATA_OVER_ETH=m CONFIG_RAID_ATTRS=m
@@ -197,16 +166,6 @@ CONFIG_MACVLAN=m CONFIG_TUN=m CONFIG_VETH=m CONFIG_SGISEEQ=y -CONFIG_SMC91X=m -CONFIG_MDIO_BITBANG=m -CONFIG_PHYLIB=m -CONFIG_CICADA_PHY=m -CONFIG_DAVICOM_PHY=m -CONFIG_LXT_PHY=m -CONFIG_MARVELL_PHY=m -CONFIG_QSEMI_PHY=m -CONFIG_REALTEK_PHY=m -CONFIG_HOSTAP=m CONFIG_INPUT_MOUSEDEV=m CONFIG_MOUSE_PS2=m # CONFIG_MOUSE_PS2_ALPS is not set
@@ -214,19 +173,19 @@ CONFIG_MOUSE_PS2=m CONFIG_MOUSE_SERIAL=m CONFIG_SERIO_RAW=m CONFIG_VT_HW_CONSOLE_BINDING=y -CONFIG_SERIAL_IP22_ZILOG=m +CONFIG_SERIAL_IP22_ZILOG=y +CONFIG_SERIAL_IP22_ZILOG_CONSOLE=y # CONFIG_HW_RANDOM is not set # CONFIG_HWMON is not set CONFIG_THERMAL=y CONFIG_WATCHDOG=y CONFIG_INDYDOG=m -# CONFIG_VGA_CONSOLE is not set CONFIG_SGI_NEWPORT_CONSOLE=y CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set # CONFIG_LOGO_LINUX_CLUT224 is not set -CONFIG_HIDRAW=y +CONFIG_SOUND=m +CONFIG_SND=m +CONFIG_SND_SGI_HAL2=m CONFIG_RTC_CLASS=y CONFIG_RTC_INTF_DEV_UIE_EMUL=y CONFIG_RTC_DRV_DS1286=y
@@ -250,9 +209,7 @@ CONFIG_VFAT_FS=m CONFIG_PROC_KCORE=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y -CONFIG_EFS_FS=m CONFIG_MINIX_FS=m -CONFIG_OMFS_FS=m CONFIG_UFS_FS=m CONFIG_NFS_FS=m CONFIG_NFS_V3_ACL=y
@@ -299,26 +256,18 @@ CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_NLS_UTF8=m -CONFIG_KEYS=y CONFIG_CRYPTO_CRYPTD=m -CONFIG_CRYPTO_GCM=m -CONFIG_CRYPTO_CTS=m -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_XTS=m -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_XCBC=m -CONFIG_CRYPTO_RMD160=m -CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_LZO=m # CONFIG_CRYPTO_HW is not set CONFIG_DEBUG_MEMORY_INIT=y
Signature · 1 line
2.47.3
PATCH 4/5 MIPS: ip30_defconfig: drop add-in drivers, enable the LED driver
In reply to Imre KalozDrop the Fibre Channel HBA, UIO PCI card, Nozomi, Altera PS/2 and timer I/O random number drivers and OMFS_FS, none of which has a use on an Octane.
LEDS_IP30 was not enabled. It depends on the LED class, so enable NEW_LEDS and LEDS_CLASS along with it.
--- arch/mips/configs/ip30_defconfig | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-)
arch/mips/configs/ip30_defconfig +3 -10
@@ -87,10 +87,7 @@ CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y CONFIG_SCSI_SPI_ATTRS=y -CONFIG_SCSI_FC_ATTRS=y -CONFIG_LIBFC=m CONFIG_SCSI_QLOGIC_1280=y -CONFIG_SCSI_BFA_FC=m CONFIG_SCSI_DH=y CONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m
@@ -119,14 +116,11 @@ CONFIG_INPUT_MATRIXKMAP=y CONFIG_INPUT_EVDEV=y CONFIG_SERIO_SGI_IOC3=y CONFIG_SERIO_RAW=m -CONFIG_SERIO_ALTERA_PS2=m # CONFIG_VT is not set CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_IOC3=y -CONFIG_NOZOMI=m -CONFIG_HW_RANDOM_TIMERIOMEM=m # CONFIG_PTP_1588_CLOCK is not set CONFIG_W1=y CONFIG_W1_MASTER_SGI=y
@@ -134,12 +128,12 @@ CONFIG_W1_SLAVE_DS250X=y # CONFIG_HWMON is not set CONFIG_THERMAL=y CONFIG_SGI_MFD_IOC3=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_IP30=y CONFIG_RTC_CLASS=y CONFIG_RTC_DRV_DS1685_FAMILY=y CONFIG_UIO=y -CONFIG_UIO_AEC=m -CONFIG_UIO_SERCOS3=m -CONFIG_UIO_PCI_GENERIC=m CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y
@@ -159,7 +153,6 @@ CONFIG_PROC_KCORE=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_SQUASHFS=m -CONFIG_OMFS_FS=m CONFIG_NFS_FS=y CONFIG_SECURITYFS=y CONFIG_CRYPTO_CRYPTD=m
Signature · 1 line
2.47.3
PATCH 5/5 MIPS: ip32_defconfig: drop dead options and add-in drivers, add audio
In reply to Imre KalozDrop requests that no longer take effect: symbols whose dependencies are no longer met (the obsolete ciphers need CRYPTO_USER_API_ENABLE_OBSOLETE) and lines savedefconfig omits as defaults. Also drop the Tulip network drivers and SAS/RAID transport classes, which belong to PCI cards.
Enable the O2 audio driver. The file is regenerated with savedefconfig.
--- arch/mips/configs/ip32_defconfig | 36 ++++++++------------------------ 1 file changed, 9 insertions(+), 27 deletions(-)
arch/mips/configs/ip32_defconfig +9 -27
@@ -9,10 +9,9 @@ CONFIG_RELAY=y CONFIG_EXPERT=y CONFIG_PROFILING=y CONFIG_SGI_IP32=y -# CONFIG_SECCOMP is not set -CONFIG_PCI=y CONFIG_MIPS32_O32=y CONFIG_MIPS32_N32=y +# CONFIG_SECCOMP is not set CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_PARTITION_ADVANCED=y
@@ -40,10 +39,10 @@ CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_TUNNEL=m CONFIG_NETWORK_SECMARK=y +CONFIG_PCI=y CONFIG_CONNECTOR=y CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_NBD=m -CONFIG_RAID_ATTRS=y CONFIG_SCSI=y CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SR=y
@@ -51,16 +50,11 @@ CONFIG_CHR_DEV_SG=m CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y -CONFIG_SCSI_SAS_LIBSAS=y CONFIG_SCSI_AIC7XXX=y CONFIG_AIC7XXX_RESET_DELAY_MS=15000 CONFIG_NETDEVICES=y CONFIG_BONDING=m CONFIG_DUMMY=m -CONFIG_NET_TULIP=y -CONFIG_DE2104X=m -CONFIG_TULIP=m -CONFIG_TULIP_MMIO=y CONFIG_SGI_O2MACE_ETH=y CONFIG_INPUT_EVDEV=m CONFIG_SERIO_MACEPS2=y
@@ -72,12 +66,12 @@ CONFIG_HW_RANDOM=y CONFIG_WATCHDOG=y CONFIG_FB=y CONFIG_FB_GBE=y -# CONFIG_VGA_CONSOLE is not set CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set # CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_SOUND=m +CONFIG_SND=m +CONFIG_SND_SGI_O2=m # CONFIG_USB_SUPPORT is not set CONFIG_RTC_CLASS=y # CONFIG_RTC_HCTOSYS is not set
@@ -149,29 +143,17 @@ CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_NLS_UTF8=m -CONFIG_KEYS=y CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_LRW=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_XCBC=y -CONFIG_CRYPTO_MD4=y -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_WP512=y -CONFIG_CRYPTO_ANUBIS=y -CONFIG_CRYPTO_ARC4=y CONFIG_CRYPTO_BLOWFISH=y -CONFIG_CRYPTO_CAMELLIA=y CONFIG_CRYPTO_CAST5=y CONFIG_CRYPTO_CAST6=y CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_KHAZAD=y CONFIG_CRYPTO_SERPENT=y -CONFIG_CRYPTO_TEA=y CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_LRW=y +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_WP512=y +CONFIG_CRYPTO_XCBC=y CONFIG_CRYPTO_DEFLATE=y CONFIG_FONTS=y CONFIG_FONT_8x8=y
Signature · 1 line
2.47.3