You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
powerpc: Remove platforms/wsp and associated pieces
__attribute__ ((unused)) WSP is the last user of CONFIG_PPC_A2, so we remove that as well. Although CONFIG_PPC_ICSWX still exists, it's no longer selectable for any Book3E platform, so we can remove the code in mmu-book3e.h that depended on it. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
committed by
Benjamin Herrenschmidt
parent
94314290ed
commit
fb5a515704
@@ -235,11 +235,6 @@ config PPC_EARLY_DEBUG_USBGECKO
|
||||
Select this to enable early debugging for Nintendo GameCube/Wii
|
||||
consoles via an external USB Gecko adapter.
|
||||
|
||||
config PPC_EARLY_DEBUG_WSP
|
||||
bool "Early debugging via WSP's internal UART"
|
||||
depends on PPC_WSP
|
||||
select PPC_UDBG_16550
|
||||
|
||||
config PPC_EARLY_DEBUG_PS3GELIC
|
||||
bool "Early debugging through the PS3 Ethernet port"
|
||||
depends on PPC_PS3
|
||||
|
||||
@@ -1,307 +0,0 @@
|
||||
CONFIG_PPC64=y
|
||||
CONFIG_PPC_BOOK3E_64=y
|
||||
# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=256
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_BSD_PROCESS_ACCT=y
|
||||
CONFIG_TASKSTATS=y
|
||||
CONFIG_TASK_DELAY_ACCT=y
|
||||
CONFIG_TASK_XACCT=y
|
||||
CONFIG_TASK_IO_ACCOUNTING=y
|
||||
CONFIG_AUDIT=y
|
||||
CONFIG_AUDITSYSCALL=y
|
||||
CONFIG_IKCONFIG=y
|
||||
CONFIG_IKCONFIG_PROC=y
|
||||
CONFIG_LOG_BUF_SHIFT=19
|
||||
CONFIG_CGROUPS=y
|
||||
CONFIG_CGROUP_DEVICE=y
|
||||
CONFIG_CPUSETS=y
|
||||
CONFIG_CGROUP_CPUACCT=y
|
||||
CONFIG_RESOURCE_COUNTERS=y
|
||||
CONFIG_CGROUP_MEMCG=y
|
||||
CONFIG_CGROUP_MEMCG_SWAP=y
|
||||
CONFIG_NAMESPACES=y
|
||||
CONFIG_RELAY=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_BZIP2=y
|
||||
CONFIG_RD_LZMA=y
|
||||
CONFIG_INITRAMFS_COMPRESSION_GZIP=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_PROFILING=y
|
||||
CONFIG_OPROFILE=y
|
||||
CONFIG_KPROBES=y
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_FORCE_LOAD=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
CONFIG_MODVERSIONS=y
|
||||
CONFIG_MODULE_SRCVERSION_ALL=y
|
||||
CONFIG_SCOM_DEBUGFS=y
|
||||
CONFIG_PPC_A2_DD2=y
|
||||
CONFIG_KVM_GUEST=y
|
||||
CONFIG_NO_HZ=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_HZ_100=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
CONFIG_BINFMT_MISC=y
|
||||
CONFIG_NUMA=y
|
||||
# CONFIG_MIGRATION is not set
|
||||
CONFIG_PPC_64K_PAGES=y
|
||||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
CONFIG_CMDLINE=""
|
||||
# CONFIG_SECCOMP is not set
|
||||
CONFIG_PCIEPORTBUS=y
|
||||
# CONFIG_PCIEASPM is not set
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_XFRM_USER=m
|
||||
CONFIG_XFRM_SUB_POLICY=y
|
||||
CONFIG_XFRM_STATISTICS=y
|
||||
CONFIG_NET_KEY=m
|
||||
CONFIG_NET_KEY_MIGRATE=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
CONFIG_IP_ROUTE_MULTIPATH=y
|
||||
CONFIG_IP_ROUTE_VERBOSE=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_NET_IPIP=y
|
||||
CONFIG_IP_MROUTE=y
|
||||
CONFIG_IP_PIMSM_V1=y
|
||||
CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_IPV6=y
|
||||
CONFIG_IPV6_PRIVACY=y
|
||||
CONFIG_IPV6_ROUTER_PREF=y
|
||||
CONFIG_IPV6_ROUTE_INFO=y
|
||||
CONFIG_IPV6_OPTIMISTIC_DAD=y
|
||||
CONFIG_INET6_AH=y
|
||||
CONFIG_INET6_ESP=y
|
||||
CONFIG_INET6_IPCOMP=y
|
||||
CONFIG_IPV6_MIP6=y
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=y
|
||||
CONFIG_IPV6_TUNNEL=y
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
CONFIG_IPV6_SUBTREES=y
|
||||
CONFIG_IPV6_MROUTE=y
|
||||
CONFIG_IPV6_PIMSM_V2=y
|
||||
CONFIG_NETFILTER=y
|
||||
CONFIG_NF_CONNTRACK=m
|
||||
CONFIG_NF_CONNTRACK_EVENTS=y
|
||||
CONFIG_NF_CT_PROTO_UDPLITE=m
|
||||
CONFIG_NF_CONNTRACK_FTP=m
|
||||
CONFIG_NF_CONNTRACK_IRC=m
|
||||
CONFIG_NF_CONNTRACK_TFTP=m
|
||||
CONFIG_NF_CT_NETLINK=m
|
||||
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
|
||||
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
|
||||
CONFIG_NETFILTER_XT_TARGET_MARK=m
|
||||
CONFIG_NETFILTER_XT_TARGET_NFLOG=m
|
||||
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
|
||||
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
|
||||
CONFIG_NETFILTER_XT_MATCH_COMMENT=m
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
|
||||
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
|
||||
CONFIG_NETFILTER_XT_MATCH_DCCP=m
|
||||
CONFIG_NETFILTER_XT_MATCH_DSCP=m
|
||||
CONFIG_NETFILTER_XT_MATCH_ESP=m
|
||||
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
|
||||
CONFIG_NETFILTER_XT_MATCH_HELPER=m
|
||||
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
|
||||
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
|
||||
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
|
||||
CONFIG_NETFILTER_XT_MATCH_MAC=m
|
||||
CONFIG_NETFILTER_XT_MATCH_MARK=m
|
||||
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
|
||||
CONFIG_NETFILTER_XT_MATCH_OWNER=m
|
||||
CONFIG_NETFILTER_XT_MATCH_POLICY=m
|
||||
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
|
||||
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
|
||||
CONFIG_NETFILTER_XT_MATCH_RATEEST=m
|
||||
CONFIG_NETFILTER_XT_MATCH_REALM=m
|
||||
CONFIG_NETFILTER_XT_MATCH_RECENT=m
|
||||
CONFIG_NETFILTER_XT_MATCH_SCTP=m
|
||||
CONFIG_NETFILTER_XT_MATCH_STATE=m
|
||||
CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
|
||||
CONFIG_NETFILTER_XT_MATCH_STRING=m
|
||||
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
|
||||
CONFIG_NETFILTER_XT_MATCH_TIME=m
|
||||
CONFIG_NETFILTER_XT_MATCH_U32=m
|
||||
CONFIG_NF_CONNTRACK_IPV4=m
|
||||
CONFIG_IP_NF_QUEUE=m
|
||||
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_TARGET_LOG=m
|
||||
CONFIG_IP_NF_TARGET_ULOG=m
|
||||
CONFIG_NF_NAT=m
|
||||
CONFIG_IP_NF_TARGET_MASQUERADE=m
|
||||
CONFIG_IP_NF_TARGET_NETMAP=m
|
||||
CONFIG_IP_NF_TARGET_REDIRECT=m
|
||||
CONFIG_NET_TCPPROBE=y
|
||||
# CONFIG_WIRELESS is not set
|
||||
CONFIG_NET_9P=y
|
||||
CONFIG_NET_9P_DEBUG=y
|
||||
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_CHAR=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_ADV_OPTIONS=y
|
||||
CONFIG_MTD_CFI_LE_BYTE_SWAP=y
|
||||
CONFIG_MTD_CFI_INTELEXT=y
|
||||
CONFIG_MTD_CFI_AMDSTD=y
|
||||
CONFIG_MTD_CFI_STAA=y
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=y
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=65536
|
||||
CONFIG_CDROM_PKTCDVD=y
|
||||
CONFIG_MISC_DEVICES=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_BLK_DEV_SR=y
|
||||
CONFIG_BLK_DEV_SR_VENDOR=y
|
||||
CONFIG_CHR_DEV_SG=y
|
||||
CONFIG_SCSI_MULTI_LUN=y
|
||||
CONFIG_SCSI_CONSTANTS=y
|
||||
CONFIG_SCSI_SPI_ATTRS=y
|
||||
CONFIG_SCSI_FC_ATTRS=y
|
||||
CONFIG_SCSI_ISCSI_ATTRS=m
|
||||
CONFIG_SCSI_SAS_ATTRS=m
|
||||
CONFIG_SCSI_SRP_ATTRS=y
|
||||
CONFIG_ATA=y
|
||||
CONFIG_SATA_AHCI=y
|
||||
CONFIG_SATA_SIL24=y
|
||||
CONFIG_SATA_MV=y
|
||||
CONFIG_SATA_SIL=y
|
||||
CONFIG_PATA_CMD64X=y
|
||||
CONFIG_PATA_MARVELL=y
|
||||
CONFIG_PATA_SIL680=y
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_MD=y
|
||||
CONFIG_MD_LINEAR=y
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
CONFIG_DM_CRYPT=y
|
||||
CONFIG_DM_SNAPSHOT=y
|
||||
CONFIG_DM_MIRROR=y
|
||||
CONFIG_DM_ZERO=y
|
||||
CONFIG_DM_UEVENT=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_TUN=y
|
||||
CONFIG_E1000E=y
|
||||
CONFIG_TIGON3=y
|
||||
# CONFIG_WLAN is not set
|
||||
# CONFIG_INPUT is not set
|
||||
# CONFIG_SERIO is not set
|
||||
# CONFIG_VT is not set
|
||||
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_RAW_DRIVER=y
|
||||
CONFIG_MAX_RAW_DEVS=1024
|
||||
# CONFIG_HWMON is not set
|
||||
# CONFIG_VGA_ARB is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_EDAC=y
|
||||
CONFIG_EDAC_MM_EDAC=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_DS1511=y
|
||||
CONFIG_RTC_DRV_DS1553=y
|
||||
CONFIG_EXT2_FS=y
|
||||
CONFIG_EXT2_FS_XATTR=y
|
||||
CONFIG_EXT2_FS_POSIX_ACL=y
|
||||
CONFIG_EXT2_FS_SECURITY=y
|
||||
CONFIG_EXT2_FS_XIP=y
|
||||
CONFIG_EXT3_FS=y
|
||||
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
|
||||
CONFIG_EXT3_FS_POSIX_ACL=y
|
||||
CONFIG_EXT3_FS_SECURITY=y
|
||||
CONFIG_EXT4_FS=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
CONFIG_FUSE_FS=y
|
||||
CONFIG_ISO9660_FS=y
|
||||
CONFIG_JOLIET=y
|
||||
CONFIG_ZISOFS=y
|
||||
CONFIG_UDF_FS=m
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
CONFIG_CONFIGFS_FS=m
|
||||
CONFIG_CRAMFS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
CONFIG_NFS_V3_ACL=y
|
||||
CONFIG_NFS_V4=y
|
||||
CONFIG_NFS_V4_1=y
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_CIFS=y
|
||||
CONFIG_CIFS_WEAK_PW_HASH=y
|
||||
CONFIG_CIFS_XATTR=y
|
||||
CONFIG_CIFS_POSIX=y
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ASCII=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_CRC_T10DIF=y
|
||||
CONFIG_LIBCRC32C=m
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_STRIP_ASM_SYMS=y
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_FTRACE_SYSCALLS=y
|
||||
CONFIG_PPC_EMULATED_STATS=y
|
||||
CONFIG_XMON=y
|
||||
CONFIG_XMON_DEFAULT=y
|
||||
CONFIG_IRQ_DOMAIN_DEBUG=y
|
||||
CONFIG_PPC_EARLY_DEBUG=y
|
||||
CONFIG_KEYS_DEBUG_PROC_KEYS=y
|
||||
CONFIG_CRYPTO_NULL=m
|
||||
CONFIG_CRYPTO_TEST=m
|
||||
CONFIG_CRYPTO_CCM=m
|
||||
CONFIG_CRYPTO_GCM=m
|
||||
CONFIG_CRYPTO_PCBC=m
|
||||
CONFIG_CRYPTO_MICHAEL_MIC=m
|
||||
CONFIG_CRYPTO_SHA256=m
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_TGR192=m
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
CONFIG_CRYPTO_AES=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
CONFIG_CRYPTO_BLOWFISH=m
|
||||
CONFIG_CRYPTO_CAST5=m
|
||||
CONFIG_CRYPTO_CAST6=m
|
||||
CONFIG_CRYPTO_KHAZAD=m
|
||||
CONFIG_CRYPTO_SALSA20=m
|
||||
CONFIG_CRYPTO_SERPENT=m
|
||||
CONFIG_CRYPTO_TEA=m
|
||||
CONFIG_CRYPTO_TWOFISH=m
|
||||
CONFIG_CRYPTO_LZO=m
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
@@ -223,10 +223,6 @@ typedef struct {
|
||||
unsigned int id;
|
||||
unsigned int active;
|
||||
unsigned long vdso_base;
|
||||
#ifdef CONFIG_PPC_ICSWX
|
||||
struct spinlock *cop_lockp; /* guard cop related stuff */
|
||||
unsigned long acop; /* mask of enabled coprocessor types */
|
||||
#endif /* CONFIG_PPC_ICSWX */
|
||||
#ifdef CONFIG_PPC_MM_SLICES
|
||||
u64 low_slices_psize; /* SLB page size encodings */
|
||||
u64 high_slices_psize; /* 4 bits per slice for now */
|
||||
|
||||
@@ -110,15 +110,6 @@
|
||||
#define TLB1_UR ASM_CONST(0x0000000000000002)
|
||||
#define TLB1_SR ASM_CONST(0x0000000000000001)
|
||||
|
||||
#ifdef CONFIG_PPC_EARLY_DEBUG_WSP
|
||||
#define WSP_UART_PHYS 0xffc000c000
|
||||
/* This needs to be careful chosen to hit a !0 congruence class
|
||||
* in the TLB since we bolt it in way 3, which is already occupied
|
||||
* by our linear mapping primary bolted entry in CC 0.
|
||||
*/
|
||||
#define WSP_UART_VIRT 0xf000000000001000
|
||||
#endif
|
||||
|
||||
/* A2 erativax attributes definitions */
|
||||
#define ERATIVAX_RS_IS_ALL 0x000
|
||||
#define ERATIVAX_RS_IS_TID 0x040
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* Copyright 2011 Michael Ellerman, IBM Corp.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#ifndef __ASM_POWERPC_WSP_H
|
||||
#define __ASM_POWERPC_WSP_H
|
||||
|
||||
extern int wsp_get_chip_id(struct device_node *dn);
|
||||
|
||||
#endif /* __ASM_POWERPC_WSP_H */
|
||||
@@ -43,7 +43,6 @@ obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_power.o
|
||||
obj-$(CONFIG_PPC_BOOK3S_64) += mce.o mce_power.o
|
||||
obj64-$(CONFIG_RELOCATABLE) += reloc_64.o
|
||||
obj-$(CONFIG_PPC_BOOK3E_64) += exceptions-64e.o idle_book3e.o
|
||||
obj-$(CONFIG_PPC_A2) += cpu_setup_a2.o
|
||||
obj-$(CONFIG_PPC64) += vdso64/
|
||||
obj-$(CONFIG_ALTIVEC) += vecemu.o
|
||||
obj-$(CONFIG_PPC_970_NAP) += idle_power4.o
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
/*
|
||||
* A2 specific assembly support code
|
||||
*
|
||||
* Copyright 2009 Ben Herrenschmidt, IBM Corp.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/ppc_asm.h>
|
||||
#include <asm/ppc-opcode.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/reg_a2.h>
|
||||
#include <asm/reg.h>
|
||||
#include <asm/thread_info.h>
|
||||
|
||||
/*
|
||||
* Disable thdid and class fields in ERATs to bump PID to full 14 bits capacity.
|
||||
* This also prevents external LPID accesses but that isn't a problem when not a
|
||||
* guest. Under PV, this setting will be ignored and MMUCR will return the right
|
||||
* number of PID bits we can use.
|
||||
*/
|
||||
#define MMUCR1_EXTEND_PID \
|
||||
(MMUCR1_ICTID | MMUCR1_ITTID | MMUCR1_DCTID | \
|
||||
MMUCR1_DTTID | MMUCR1_DCCD)
|
||||
|
||||
/*
|
||||
* Use extended PIDs if enabled.
|
||||
* Don't clear the ERATs on context sync events and enable I & D LRU.
|
||||
* Enable ERAT back invalidate when tlbwe overwrites an entry.
|
||||
*/
|
||||
#define INITIAL_MMUCR1 \
|
||||
(MMUCR1_EXTEND_PID | MMUCR1_CSINV_NEVER | MMUCR1_IRRE | \
|
||||
MMUCR1_DRRE | MMUCR1_TLBWE_BINV)
|
||||
|
||||
_GLOBAL(__setup_cpu_a2)
|
||||
/* Some of these are actually thread local and some are
|
||||
* core local but doing it always won't hurt
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_PPC_ICSWX
|
||||
/* Make sure ACOP starts out as zero */
|
||||
li r3,0
|
||||
mtspr SPRN_ACOP,r3
|
||||
|
||||
/* Skip the following if we are in Guest mode */
|
||||
mfmsr r3
|
||||
andis. r0,r3,MSR_GS@h
|
||||
bne _icswx_skip_guest
|
||||
|
||||
/* Enable icswx instruction */
|
||||
mfspr r3,SPRN_A2_CCR2
|
||||
ori r3,r3,A2_CCR2_ENABLE_ICSWX
|
||||
mtspr SPRN_A2_CCR2,r3
|
||||
|
||||
/* Unmask all CTs in HACOP */
|
||||
li r3,-1
|
||||
mtspr SPRN_HACOP,r3
|
||||
_icswx_skip_guest:
|
||||
#endif /* CONFIG_PPC_ICSWX */
|
||||
|
||||
/* Enable doorbell */
|
||||
mfspr r3,SPRN_A2_CCR2
|
||||
oris r3,r3,A2_CCR2_ENABLE_PC@h
|
||||
mtspr SPRN_A2_CCR2,r3
|
||||
isync
|
||||
|
||||
/* Setup CCR0 to disable power saving for now as it's busted
|
||||
* in the current implementations. Setup CCR1 to wake on
|
||||
* interrupts normally (we write the default value but who
|
||||
* knows what FW may have clobbered...)
|
||||
*/
|
||||
li r3,0
|
||||
mtspr SPRN_A2_CCR0, r3
|
||||
LOAD_REG_IMMEDIATE(r3,0x0f0f0f0f)
|
||||
mtspr SPRN_A2_CCR1, r3
|
||||
|
||||
/* Initialise MMUCR1 */
|
||||
lis r3,INITIAL_MMUCR1@h
|
||||
ori r3,r3,INITIAL_MMUCR1@l
|
||||
mtspr SPRN_MMUCR1,r3
|
||||
|
||||
/* Set MMUCR2 to enable 4K, 64K, 1M, 16M and 1G pages */
|
||||
LOAD_REG_IMMEDIATE(r3, 0x000a7531)
|
||||
mtspr SPRN_MMUCR2,r3
|
||||
|
||||
/* Set MMUCR3 to write all thids bit to the TLB */
|
||||
LOAD_REG_IMMEDIATE(r3, 0x0000000f)
|
||||
mtspr SPRN_MMUCR3,r3
|
||||
|
||||
/* Don't do ERAT stuff if running guest mode */
|
||||
mfmsr r3
|
||||
andis. r0,r3,MSR_GS@h
|
||||
bne 1f
|
||||
|
||||
/* Now set the I-ERAT watermark to 15 */
|
||||
lis r4,(MMUCR0_TLBSEL_I|MMUCR0_ECL)@h
|
||||
mtspr SPRN_MMUCR0, r4
|
||||
li r4,A2_IERAT_SIZE-1
|
||||
PPC_ERATWE(R4,R4,3)
|
||||
|
||||
/* Now set the D-ERAT watermark to 31 */
|
||||
lis r4,(MMUCR0_TLBSEL_D|MMUCR0_ECL)@h
|
||||
mtspr SPRN_MMUCR0, r4
|
||||
li r4,A2_DERAT_SIZE-1
|
||||
PPC_ERATWE(R4,R4,3)
|
||||
|
||||
/* And invalidate the beast just in case. That won't get rid of
|
||||
* a bolted entry though it will be in LRU and so will go away eventually
|
||||
* but let's not bother for now
|
||||
*/
|
||||
PPC_ERATILX(0,0,R0)
|
||||
1:
|
||||
blr
|
||||
|
||||
_GLOBAL(__restore_cpu_a2)
|
||||
b __setup_cpu_a2
|
||||
@@ -2149,44 +2149,6 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
||||
}
|
||||
#endif /* CONFIG_PPC32 */
|
||||
#endif /* CONFIG_E500 */
|
||||
|
||||
#ifdef CONFIG_PPC_A2
|
||||
{ /* Standard A2 (>= DD2) + FPU core */
|
||||
.pvr_mask = 0xffff0000,
|
||||
.pvr_value = 0x00480000,
|
||||
.cpu_name = "A2 (>= DD2)",
|
||||
.cpu_features = CPU_FTRS_A2,
|
||||
.cpu_user_features = COMMON_USER_PPC64,
|
||||
.mmu_features = MMU_FTRS_A2,
|
||||
.icache_bsize = 64,
|
||||
.dcache_bsize = 64,
|
||||
.num_pmcs = 0,
|
||||
.cpu_setup = __setup_cpu_a2,
|
||||
.cpu_restore = __restore_cpu_a2,
|
||||
.machine_check = machine_check_generic,
|
||||
.platform = "ppca2",
|
||||
},
|
||||
{ /* This is a default entry to get going, to be replaced by
|
||||
* a real one at some stage
|
||||
*/
|
||||
#define CPU_FTRS_BASE_BOOK3E (CPU_FTR_USE_TB | \
|
||||
CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_SMT | \
|
||||
CPU_FTR_NODSISRALIGN | CPU_FTR_NOEXECUTE)
|
||||
.pvr_mask = 0x00000000,
|
||||
.pvr_value = 0x00000000,
|
||||
.cpu_name = "Book3E",
|
||||
.cpu_features = CPU_FTRS_BASE_BOOK3E,
|
||||
.cpu_user_features = COMMON_USER_PPC64,
|
||||
.mmu_features = MMU_FTR_TYPE_3E | MMU_FTR_USE_TLBILX |
|
||||
MMU_FTR_USE_TLBIVAX_BCAST |
|
||||
MMU_FTR_LOCK_BCAST_INVAL,
|
||||
.icache_bsize = 64,
|
||||
.dcache_bsize = 64,
|
||||
.num_pmcs = 0,
|
||||
.machine_check = machine_check_generic,
|
||||
.platform = "power6",
|
||||
},
|
||||
#endif /* CONFIG_PPC_A2 */
|
||||
};
|
||||
|
||||
static struct cpu_spec the_cpu_spec;
|
||||
|
||||
@@ -1467,22 +1467,6 @@ a2_tlbinit_after_linear_map:
|
||||
.globl a2_tlbinit_after_iprot_flush
|
||||
a2_tlbinit_after_iprot_flush:
|
||||
|
||||
#ifdef CONFIG_PPC_EARLY_DEBUG_WSP
|
||||
/* Now establish early debug mappings if applicable */
|
||||
/* Restore the MAS0 we used for linear mapping load */
|
||||
mtspr SPRN_MAS0,r11
|
||||
|
||||
lis r3,(MAS1_VALID | MAS1_IPROT)@h
|
||||
ori r3,r3,(BOOK3E_PAGESZ_4K << MAS1_TSIZE_SHIFT)
|
||||
mtspr SPRN_MAS1,r3
|
||||
LOAD_REG_IMMEDIATE(r3, WSP_UART_VIRT | MAS2_I | MAS2_G)
|
||||
mtspr SPRN_MAS2,r3
|
||||
LOAD_REG_IMMEDIATE(r3, WSP_UART_PHYS | MAS3_SR | MAS3_SW)
|
||||
mtspr SPRN_MAS7_MAS3,r3
|
||||
/* re-use the MAS8 value from the linear mapping */
|
||||
tlbwe
|
||||
#endif /* CONFIG_PPC_EARLY_DEBUG_WSP */
|
||||
|
||||
PPC_TLBILX(0,0,R0)
|
||||
sync
|
||||
isync
|
||||
|
||||
@@ -62,8 +62,6 @@ void __init udbg_early_init(void)
|
||||
udbg_init_cpm();
|
||||
#elif defined(CONFIG_PPC_EARLY_DEBUG_USBGECKO)
|
||||
udbg_init_usbgecko();
|
||||
#elif defined(CONFIG_PPC_EARLY_DEBUG_WSP)
|
||||
udbg_init_wsp();
|
||||
#elif defined(CONFIG_PPC_EARLY_DEBUG_MEMCONS)
|
||||
/* In memory console */
|
||||
udbg_init_memcons();
|
||||
|
||||
@@ -296,14 +296,3 @@ void __init udbg_init_40x_realmode(void)
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PPC_EARLY_DEBUG_40x */
|
||||
|
||||
|
||||
#ifdef CONFIG_PPC_EARLY_DEBUG_WSP
|
||||
|
||||
void __init udbg_init_wsp(void)
|
||||
{
|
||||
udbg_uart_init_mmio((void *)WSP_UART_VIRT, 1);
|
||||
udbg_uart_setup(57600, 50000000);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PPC_EARLY_DEBUG_WSP */
|
||||
|
||||
@@ -19,7 +19,6 @@ source "arch/powerpc/platforms/embedded6xx/Kconfig"
|
||||
source "arch/powerpc/platforms/44x/Kconfig"
|
||||
source "arch/powerpc/platforms/40x/Kconfig"
|
||||
source "arch/powerpc/platforms/amigaone/Kconfig"
|
||||
source "arch/powerpc/platforms/wsp/Kconfig"
|
||||
|
||||
config KVM_GUEST
|
||||
bool "KVM Guest support"
|
||||
|
||||
@@ -148,10 +148,6 @@ config POWER4
|
||||
depends on PPC64 && PPC_BOOK3S
|
||||
def_bool y
|
||||
|
||||
config PPC_A2
|
||||
bool
|
||||
depends on PPC_BOOK3E_64
|
||||
|
||||
config TUNE_CELL
|
||||
bool "Optimize for Cell Broadband Engine"
|
||||
depends on PPC64 && PPC_BOOK3S
|
||||
@@ -280,7 +276,7 @@ config VSX
|
||||
|
||||
config PPC_ICSWX
|
||||
bool "Support for PowerPC icswx coprocessor instruction"
|
||||
depends on POWER4 || PPC_A2
|
||||
depends on POWER4
|
||||
default n
|
||||
---help---
|
||||
|
||||
|
||||
@@ -22,4 +22,3 @@ obj-$(CONFIG_PPC_CELL) += cell/
|
||||
obj-$(CONFIG_PPC_PS3) += ps3/
|
||||
obj-$(CONFIG_EMBEDDED6xx) += embedded6xx/
|
||||
obj-$(CONFIG_AMIGAONE) += amigaone/
|
||||
obj-$(CONFIG_PPC_WSP) += wsp/
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
config PPC_WSP
|
||||
bool
|
||||
select PPC_A2
|
||||
select GENERIC_TBSYNC
|
||||
select PPC_ICSWX
|
||||
select PPC_SCOM
|
||||
select PPC_XICS
|
||||
select PPC_ICP_NATIVE
|
||||
select PCI
|
||||
select PPC_IO_WORKAROUNDS if PCI
|
||||
select PPC_INDIRECT_PIO if PCI
|
||||
default n
|
||||
|
||||
menu "WSP platform selection"
|
||||
depends on PPC_BOOK3E_64
|
||||
|
||||
config PPC_PSR2
|
||||
bool "PowerEN System Reference Platform 2"
|
||||
select EPAPR_BOOT
|
||||
select PPC_WSP
|
||||
default y
|
||||
|
||||
config PPC_CHROMA
|
||||
bool "PowerEN PCIe Chroma Card"
|
||||
select EPAPR_BOOT
|
||||
select PPC_WSP
|
||||
select OF_DYNAMIC
|
||||
default y
|
||||
|
||||
endmenu
|
||||
@@ -1,10 +0,0 @@
|
||||
ccflags-y += $(NO_MINIMAL_TOC)
|
||||
|
||||
obj-y += setup.o ics.o wsp.o
|
||||
obj-$(CONFIG_PPC_PSR2) += psr2.o
|
||||
obj-$(CONFIG_PPC_CHROMA) += chroma.o h8.o
|
||||
obj-$(CONFIG_PPC_WSP) += opb_pic.o
|
||||
obj-$(CONFIG_PPC_WSP) += scom_wsp.o
|
||||
obj-$(CONFIG_SMP) += smp.o scom_smp.o
|
||||
obj-$(CONFIG_PCI) += wsp_pci.o
|
||||
obj-$(CONFIG_PCI_MSI) += msi.o
|
||||
@@ -1,56 +0,0 @@
|
||||
/*
|
||||
* Copyright 2008-2011, IBM Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/delay.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/of_fdt.h>
|
||||
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/udbg.h>
|
||||
|
||||
#include "ics.h"
|
||||
#include "wsp.h"
|
||||
|
||||
void __init chroma_setup_arch(void)
|
||||
{
|
||||
wsp_setup_arch();
|
||||
wsp_setup_h8();
|
||||
|
||||
}
|
||||
|
||||
static int __init chroma_probe(void)
|
||||
{
|
||||
unsigned long root = of_get_flat_dt_root();
|
||||
|
||||
if (!of_flat_dt_is_compatible(root, "ibm,wsp-chroma"))
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
define_machine(chroma_md) {
|
||||
.name = "Chroma PCIe",
|
||||
.probe = chroma_probe,
|
||||
.setup_arch = chroma_setup_arch,
|
||||
.restart = wsp_h8_restart,
|
||||
.power_off = wsp_h8_power_off,
|
||||
.halt = wsp_halt,
|
||||
.calibrate_decr = generic_calibrate_decr,
|
||||
.init_IRQ = wsp_setup_irq,
|
||||
.progress = udbg_progress,
|
||||
.power_save = book3e_idle,
|
||||
};
|
||||
|
||||
machine_arch_initcall(chroma_md, wsp_probe_devices);
|
||||
@@ -1,135 +0,0 @@
|
||||
/*
|
||||
* Copyright 2008-2011, IBM Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/of_address.h>
|
||||
|
||||
#include "wsp.h"
|
||||
|
||||
/*
|
||||
* The UART connection to the H8 is over ttyS1 which is just a 16550.
|
||||
* We assume that FW has it setup right and no one messes with it.
|
||||
*/
|
||||
|
||||
|
||||
static u8 __iomem *h8;
|
||||
|
||||
#define RBR 0 /* Receiver Buffer Register */
|
||||
#define THR 0 /* Transmitter Holding Register */
|
||||
#define LSR 5 /* Line Status Register */
|
||||
#define LSR_DR 0x01 /* LSR value for Data-Ready */
|
||||
#define LSR_THRE 0x20 /* LSR value for Transmitter-Holding-Register-Empty */
|
||||
static void wsp_h8_putc(int c)
|
||||
{
|
||||
u8 lsr;
|
||||
|
||||
do {
|
||||
lsr = readb(h8 + LSR);
|
||||
} while ((lsr & LSR_THRE) != LSR_THRE);
|
||||
writeb(c, h8 + THR);
|
||||
}
|
||||
|
||||
static int wsp_h8_getc(void)
|
||||
{
|
||||
u8 lsr;
|
||||
|
||||
do {
|
||||
lsr = readb(h8 + LSR);
|
||||
} while ((lsr & LSR_DR) != LSR_DR);
|
||||
|
||||
return readb(h8 + RBR);
|
||||
}
|
||||
|
||||
static void wsp_h8_puts(const char *s, int sz)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < sz; i++) {
|
||||
wsp_h8_putc(s[i]);
|
||||
|
||||
/* no flow control so wait for echo */
|
||||
wsp_h8_getc();
|
||||
}
|
||||
wsp_h8_putc('\r');
|
||||
wsp_h8_putc('\n');
|
||||
}
|
||||
|
||||
static void wsp_h8_terminal_cmd(const char *cmd, int sz)
|
||||
{
|
||||
hard_irq_disable();
|
||||
wsp_h8_puts(cmd, sz);
|
||||
/* should never return, but just in case */
|
||||
for (;;)
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
void wsp_h8_restart(char *cmd)
|
||||
{
|
||||
static const char restart[] = "warm-reset";
|
||||
|
||||
(void)cmd;
|
||||
wsp_h8_terminal_cmd(restart, sizeof(restart) - 1);
|
||||
}
|
||||
|
||||
void wsp_h8_power_off(void)
|
||||
{
|
||||
static const char off[] = "power-off";
|
||||
|
||||
wsp_h8_terminal_cmd(off, sizeof(off) - 1);
|
||||
}
|
||||
|
||||
static void __iomem *wsp_h8_getaddr(void)
|
||||
{
|
||||
struct device_node *aliases;
|
||||
struct device_node *uart;
|
||||
struct property *path;
|
||||
void __iomem *va = NULL;
|
||||
|
||||
/*
|
||||
* there is nothing in the devtree to tell us which is mapped
|
||||
* to the H8, but se know it is the second serial port.
|
||||
*/
|
||||
|
||||
aliases = of_find_node_by_path("/aliases");
|
||||
if (aliases == NULL)
|
||||
return NULL;
|
||||
|
||||
path = of_find_property(aliases, "serial1", NULL);
|
||||
if (path == NULL)
|
||||
goto out;
|
||||
|
||||
uart = of_find_node_by_path(path->value);
|
||||
if (uart == NULL)
|
||||
goto out;
|
||||
|
||||
va = of_iomap(uart, 0);
|
||||
|
||||
/* remove it so no one messes with it */
|
||||
of_detach_node(uart);
|
||||
of_node_put(uart);
|
||||
|
||||
out:
|
||||
of_node_put(aliases);
|
||||
|
||||
return va;
|
||||
}
|
||||
|
||||
void __init wsp_setup_h8(void)
|
||||
{
|
||||
h8 = wsp_h8_getaddr();
|
||||
|
||||
/* Devtree change? lets hard map it anyway */
|
||||
if (h8 == NULL) {
|
||||
pr_warn("UART to H8 could not be found");
|
||||
h8 = ioremap(0xffc0008000ULL, 0x100);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* Copyright 2009 IBM Corporation.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __ICS_H
|
||||
#define __ICS_H
|
||||
|
||||
#define XIVE_ADDR_MASK 0x7FFULL
|
||||
|
||||
extern void wsp_init_irq(void);
|
||||
|
||||
extern int wsp_ics_alloc_irq(struct device_node *dn, int num);
|
||||
extern void wsp_ics_free_irq(struct device_node *dn, unsigned int irq);
|
||||
|
||||
#ifdef CONFIG_PCI_MSI
|
||||
extern void wsp_ics_set_msi_chip(unsigned int irq);
|
||||
extern void wsp_ics_set_std_chip(unsigned int irq);
|
||||
#endif /* CONFIG_PCI_MSI */
|
||||
|
||||
#endif /* __ICS_H */
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user