sh: Initial SH-X3 SMP support.
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>
This commit is contained in:
		
							parent
							
								
									0016a126ac
								
							
						
					
					
						commit
						1a442fe02d
					
				| @ -1,7 +1,7 @@ | ||||
| # | ||||
| # Automatically generated make config: don't edit | ||||
| # Linux kernel version: 2.6.22-rc4 | ||||
| # Wed Jun 20 14:09:27 2007 | ||||
| # Linux kernel version: 2.6.23-rc7 | ||||
| # Fri Sep 21 19:07:30 2007 | ||||
| # | ||||
| CONFIG_SUPERH=y | ||||
| CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||||
| @ -13,32 +13,33 @@ CONFIG_GENERIC_IRQ_PROBE=y | ||||
| CONFIG_GENERIC_CALIBRATE_DELAY=y | ||||
| CONFIG_GENERIC_TIME=y | ||||
| CONFIG_GENERIC_CLOCKEVENTS=y | ||||
| CONFIG_SYS_SUPPORTS_SMP=y | ||||
| CONFIG_SYS_SUPPORTS_NUMA=y | ||||
| CONFIG_STACKTRACE_SUPPORT=y | ||||
| CONFIG_LOCKDEP_SUPPORT=y | ||||
| # CONFIG_ARCH_HAS_ILOG2_U32 is not set | ||||
| # CONFIG_ARCH_HAS_ILOG2_U64 is not set | ||||
| CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||||
| CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||||
| 
 | ||||
| # | ||||
| # Code maturity level options | ||||
| # General setup | ||||
| # | ||||
| CONFIG_EXPERIMENTAL=y | ||||
| CONFIG_BROKEN_ON_SMP=y | ||||
| CONFIG_LOCK_KERNEL=y | ||||
| CONFIG_INIT_ENV_ARG_LIMIT=32 | ||||
| 
 | ||||
| # | ||||
| # General setup | ||||
| # | ||||
| CONFIG_LOCALVERSION="" | ||||
| CONFIG_LOCALVERSION_AUTO=y | ||||
| CONFIG_SWAP=y | ||||
| CONFIG_SYSVIPC=y | ||||
| # CONFIG_IPC_NS is not set | ||||
| CONFIG_SYSVIPC_SYSCTL=y | ||||
| # CONFIG_POSIX_MQUEUE is not set | ||||
| CONFIG_BSD_PROCESS_ACCT=y | ||||
| # CONFIG_BSD_PROCESS_ACCT_V3 is not set | ||||
| # CONFIG_UTS_NS is not set | ||||
| # CONFIG_TASKSTATS is not set | ||||
| # CONFIG_USER_NS is not set | ||||
| # CONFIG_AUDIT is not set | ||||
| CONFIG_IKCONFIG=y | ||||
| CONFIG_IKCONFIG_PROC=y | ||||
| CONFIG_LOG_BUF_SHIFT=14 | ||||
| @ -63,34 +64,26 @@ CONFIG_FUTEX=y | ||||
| CONFIG_ANON_INODES=y | ||||
| CONFIG_EPOLL=y | ||||
| CONFIG_SIGNALFD=y | ||||
| CONFIG_TIMERFD=y | ||||
| CONFIG_EVENTFD=y | ||||
| CONFIG_SHMEM=y | ||||
| CONFIG_VM_EVENT_COUNTERS=y | ||||
| CONFIG_SLAB=y | ||||
| # CONFIG_SLAB is not set | ||||
| # CONFIG_SLUB is not set | ||||
| # CONFIG_SLOB is not set | ||||
| CONFIG_SLOB=y | ||||
| CONFIG_RT_MUTEXES=y | ||||
| # CONFIG_TINY_SHMEM is not set | ||||
| CONFIG_BASE_SMALL=0 | ||||
| 
 | ||||
| # | ||||
| # Loadable module support | ||||
| # | ||||
| CONFIG_MODULES=y | ||||
| CONFIG_MODULE_UNLOAD=y | ||||
| # CONFIG_MODULE_FORCE_UNLOAD is not set | ||||
| # CONFIG_MODVERSIONS is not set | ||||
| # CONFIG_MODULE_SRCVERSION_ALL is not set | ||||
| CONFIG_KMOD=y | ||||
| 
 | ||||
| # | ||||
| # Block layer | ||||
| # | ||||
| CONFIG_BLOCK=y | ||||
| # CONFIG_LBD is not set | ||||
| # CONFIG_BLK_DEV_IO_TRACE is not set | ||||
| # CONFIG_LSF is not set | ||||
| # CONFIG_BLK_DEV_BSG is not set | ||||
| 
 | ||||
| # | ||||
| # IO Schedulers | ||||
| @ -113,7 +106,6 @@ CONFIG_CPU_SH4A=y | ||||
| CONFIG_CPU_SHX3=y | ||||
| # CONFIG_CPU_SUBTYPE_SH7619 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7206 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7300 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7705 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7706 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7707 is not set | ||||
| @ -121,6 +113,7 @@ CONFIG_CPU_SHX3=y | ||||
| # CONFIG_CPU_SUBTYPE_SH7709 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7710 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7712 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7720 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7750 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7091 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7750R is not set | ||||
| @ -135,7 +128,6 @@ CONFIG_CPU_SHX3=y | ||||
| # CONFIG_CPU_SUBTYPE_SH7780 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7785 is not set | ||||
| CONFIG_CPU_SUBTYPE_SHX3=y | ||||
| # CONFIG_CPU_SUBTYPE_SH73180 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7343 is not set | ||||
| # CONFIG_CPU_SUBTYPE_SH7722 is not set | ||||
| 
 | ||||
| @ -148,12 +140,15 @@ CONFIG_PAGE_OFFSET=0x80000000 | ||||
| CONFIG_MEMORY_START=0x0c000000 | ||||
| CONFIG_MEMORY_SIZE=0x04000000 | ||||
| CONFIG_VSYSCALL=y | ||||
| # CONFIG_NUMA is not set | ||||
| CONFIG_ARCH_FLATMEM_ENABLE=y | ||||
| CONFIG_ARCH_SPARSEMEM_ENABLE=y | ||||
| CONFIG_ARCH_SPARSEMEM_DEFAULT=y | ||||
| CONFIG_MAX_ACTIVE_REGIONS=1 | ||||
| CONFIG_MAX_ACTIVE_REGIONS=6 | ||||
| CONFIG_ARCH_POPULATES_NODE_MAP=y | ||||
| CONFIG_ARCH_SELECT_MEMORY_MODEL=y | ||||
| CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||||
| CONFIG_ARCH_MEMORY_PROBE=y | ||||
| CONFIG_PAGE_SIZE_4KB=y | ||||
| # CONFIG_PAGE_SIZE_8KB is not set | ||||
| # CONFIG_PAGE_SIZE_64KB is not set | ||||
| @ -163,12 +158,14 @@ CONFIG_HUGETLB_PAGE_SIZE_64K=y | ||||
| # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set | ||||
| # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set | ||||
| CONFIG_SELECT_MEMORY_MODEL=y | ||||
| CONFIG_FLATMEM_MANUAL=y | ||||
| # CONFIG_FLATMEM_MANUAL is not set | ||||
| # CONFIG_DISCONTIGMEM_MANUAL is not set | ||||
| # CONFIG_SPARSEMEM_MANUAL is not set | ||||
| CONFIG_FLATMEM=y | ||||
| CONFIG_FLAT_NODE_MEM_MAP=y | ||||
| CONFIG_SPARSEMEM_MANUAL=y | ||||
| CONFIG_SPARSEMEM=y | ||||
| CONFIG_HAVE_MEMORY_PRESENT=y | ||||
| CONFIG_SPARSEMEM_STATIC=y | ||||
| CONFIG_MEMORY_HOTPLUG=y | ||||
| CONFIG_MEMORY_HOTPLUG_SPARSE=y | ||||
| CONFIG_SPLIT_PTLOCK_CPUS=4 | ||||
| # CONFIG_RESOURCES_64BIT is not set | ||||
| CONFIG_ZONE_DMA_FLAG=0 | ||||
| @ -178,24 +175,25 @@ CONFIG_NR_QUICK=2 | ||||
| # Cache configuration | ||||
| # | ||||
| # CONFIG_SH_DIRECT_MAPPED is not set | ||||
| # CONFIG_SH_WRITETHROUGH is not set | ||||
| # CONFIG_CACHE_WRITEBACK is not set | ||||
| # CONFIG_CACHE_WRITETHROUGH is not set | ||||
| CONFIG_CACHE_OFF=y | ||||
| 
 | ||||
| # | ||||
| # Processor features | ||||
| # | ||||
| CONFIG_CPU_LITTLE_ENDIAN=y | ||||
| # CONFIG_CPU_BIG_ENDIAN is not set | ||||
| # CONFIG_SH_FPU is not set | ||||
| # CONFIG_SH_FPU_EMU is not set | ||||
| CONFIG_SH_DSP=y | ||||
| CONFIG_SH_FPU=y | ||||
| CONFIG_SH_STORE_QUEUES=y | ||||
| CONFIG_CPU_HAS_INTEVT=y | ||||
| CONFIG_CPU_HAS_INTC2_IRQ=y | ||||
| CONFIG_CPU_HAS_SR_RB=y | ||||
| CONFIG_CPU_HAS_FPU=y | ||||
| 
 | ||||
| # | ||||
| # Board support | ||||
| # | ||||
| CONFIG_SH_X3PROTO=y | ||||
| 
 | ||||
| # | ||||
| # Timer and clock configuration | ||||
| @ -204,13 +202,25 @@ CONFIG_SH_TMU=y | ||||
| CONFIG_SH_TIMER_IRQ=16 | ||||
| CONFIG_SH_PCLK_FREQ=50000000 | ||||
| CONFIG_TICK_ONESHOT=y | ||||
| CONFIG_NO_HZ=y | ||||
| # CONFIG_NO_HZ is not set | ||||
| CONFIG_HIGH_RES_TIMERS=y | ||||
| 
 | ||||
| # | ||||
| # CPU Frequency scaling | ||||
| # | ||||
| # CONFIG_CPU_FREQ is not set | ||||
| CONFIG_CPU_FREQ=y | ||||
| CONFIG_CPU_FREQ_TABLE=y | ||||
| # CONFIG_CPU_FREQ_DEBUG is not set | ||||
| CONFIG_CPU_FREQ_STAT=y | ||||
| # CONFIG_CPU_FREQ_STAT_DETAILS is not set | ||||
| CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y | ||||
| # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||||
| CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||||
| CONFIG_CPU_FREQ_GOV_POWERSAVE=m | ||||
| CONFIG_CPU_FREQ_GOV_USERSPACE=m | ||||
| CONFIG_CPU_FREQ_GOV_ONDEMAND=m | ||||
| CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m | ||||
| CONFIG_SH_CPU_FREQ=y | ||||
| 
 | ||||
| # | ||||
| # DMA support | ||||
| @ -237,6 +247,7 @@ CONFIG_HZ_250=y | ||||
| CONFIG_HZ=250 | ||||
| CONFIG_KEXEC=y | ||||
| # CONFIG_CRASH_DUMP is not set | ||||
| # CONFIG_SMP is not set | ||||
| # CONFIG_PREEMPT_NONE is not set | ||||
| # CONFIG_PREEMPT_VOLUNTARY is not set | ||||
| CONFIG_PREEMPT=y | ||||
| @ -249,7 +260,7 @@ CONFIG_ZERO_PAGE_OFFSET=0x00001000 | ||||
| CONFIG_BOOT_LINK_OFFSET=0x00800000 | ||||
| # CONFIG_UBC_WAKEUP is not set | ||||
| CONFIG_CMDLINE_BOOL=y | ||||
| CONFIG_CMDLINE="console=ttySC0,115200 ip=192.168.1.2:::255.255.255.0 root=/dev/nfs nfsroot=192.168.1.1:/exports/devel/rfs/mobiler noaliencache earlyprintk=bios ignore_loglevel" | ||||
| CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=bios ignore_loglevel" | ||||
| 
 | ||||
| # | ||||
| # Bus options | ||||
| @ -265,12 +276,106 @@ CONFIG_CMDLINE="console=ttySC0,115200 ip=192.168.1.2:::255.255.255.0 root=/dev/n | ||||
| # Executable file formats | ||||
| # | ||||
| CONFIG_BINFMT_ELF=y | ||||
| # CONFIG_BINFMT_MISC is not set | ||||
| CONFIG_BINFMT_MISC=y | ||||
| 
 | ||||
| # | ||||
| # Networking | ||||
| # | ||||
| # CONFIG_NET is not set | ||||
| CONFIG_NET=y | ||||
| 
 | ||||
| # | ||||
| # Networking options | ||||
| # | ||||
| # CONFIG_PACKET is not set | ||||
| # CONFIG_UNIX is not set | ||||
| CONFIG_XFRM=y | ||||
| # CONFIG_XFRM_USER is not set | ||||
| # CONFIG_XFRM_SUB_POLICY is not set | ||||
| # CONFIG_XFRM_MIGRATE is not set | ||||
| # CONFIG_NET_KEY is not set | ||||
| CONFIG_INET=y | ||||
| # CONFIG_IP_MULTICAST is not set | ||||
| # CONFIG_IP_ADVANCED_ROUTER is not set | ||||
| CONFIG_IP_FIB_HASH=y | ||||
| CONFIG_IP_PNP=y | ||||
| CONFIG_IP_PNP_DHCP=y | ||||
| # CONFIG_IP_PNP_BOOTP is not set | ||||
| # CONFIG_IP_PNP_RARP is not set | ||||
| # CONFIG_NET_IPIP is not set | ||||
| # CONFIG_NET_IPGRE is not set | ||||
| # CONFIG_ARPD is not set | ||||
| # CONFIG_SYN_COOKIES is not set | ||||
| # CONFIG_INET_AH is not set | ||||
| # CONFIG_INET_ESP is not set | ||||
| # CONFIG_INET_IPCOMP is not set | ||||
| # CONFIG_INET_XFRM_TUNNEL is not set | ||||
| CONFIG_INET_TUNNEL=m | ||||
| CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||||
| CONFIG_INET_XFRM_MODE_TUNNEL=y | ||||
| CONFIG_INET_XFRM_MODE_BEET=y | ||||
| CONFIG_INET_DIAG=y | ||||
| CONFIG_INET_TCP_DIAG=y | ||||
| # CONFIG_TCP_CONG_ADVANCED is not set | ||||
| CONFIG_TCP_CONG_CUBIC=y | ||||
| CONFIG_DEFAULT_TCP_CONG="cubic" | ||||
| # CONFIG_TCP_MD5SIG is not set | ||||
| CONFIG_IPV6=m | ||||
| # CONFIG_IPV6_PRIVACY is not set | ||||
| # CONFIG_IPV6_ROUTER_PREF is not set | ||||
| # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||||
| # CONFIG_INET6_AH is not set | ||||
| # CONFIG_INET6_ESP is not set | ||||
| # CONFIG_INET6_IPCOMP is not set | ||||
| # CONFIG_IPV6_MIP6 is not set | ||||
| # CONFIG_INET6_XFRM_TUNNEL is not set | ||||
| # CONFIG_INET6_TUNNEL is not set | ||||
| CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||||
| CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||||
| CONFIG_INET6_XFRM_MODE_BEET=m | ||||
| # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||||
| CONFIG_IPV6_SIT=m | ||||
| # CONFIG_IPV6_TUNNEL is not set | ||||
| # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||||
| # CONFIG_NETWORK_SECMARK is not set | ||||
| # CONFIG_NETFILTER is not set | ||||
| # CONFIG_IP_DCCP is not set | ||||
| # CONFIG_IP_SCTP is not set | ||||
| # CONFIG_TIPC is not set | ||||
| # CONFIG_ATM is not set | ||||
| # CONFIG_BRIDGE is not set | ||||
| # CONFIG_VLAN_8021Q is not set | ||||
| # CONFIG_DECNET is not set | ||||
| # CONFIG_LLC2 is not set | ||||
| # CONFIG_IPX is not set | ||||
| # CONFIG_ATALK is not set | ||||
| # CONFIG_X25 is not set | ||||
| # CONFIG_LAPB is not set | ||||
| # CONFIG_ECONET is not set | ||||
| # CONFIG_WAN_ROUTER is not set | ||||
| 
 | ||||
| # | ||||
| # QoS and/or fair queueing | ||||
| # | ||||
| # CONFIG_NET_SCHED is not set | ||||
| 
 | ||||
| # | ||||
| # Network testing | ||||
| # | ||||
| # CONFIG_NET_PKTGEN is not set | ||||
| # CONFIG_HAMRADIO is not set | ||||
| # CONFIG_IRDA is not set | ||||
| # CONFIG_BT is not set | ||||
| # CONFIG_AF_RXRPC is not set | ||||
| 
 | ||||
| # | ||||
| # Wireless | ||||
| # | ||||
| # CONFIG_CFG80211 is not set | ||||
| # CONFIG_WIRELESS_EXT is not set | ||||
| # CONFIG_MAC80211 is not set | ||||
| # CONFIG_IEEE80211 is not set | ||||
| # CONFIG_RFKILL is not set | ||||
| # CONFIG_NET_9P is not set | ||||
| 
 | ||||
| # | ||||
| # Device Drivers | ||||
| @ -285,37 +390,21 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | ||||
| # CONFIG_DEBUG_DRIVER is not set | ||||
| # CONFIG_DEBUG_DEVRES is not set | ||||
| # CONFIG_SYS_HYPERVISOR is not set | ||||
| 
 | ||||
| # | ||||
| # Connector - unified userspace <-> kernelspace linker | ||||
| # | ||||
| # CONFIG_CONNECTOR is not set | ||||
| # CONFIG_MTD is not set | ||||
| 
 | ||||
| # | ||||
| # Parallel port support | ||||
| # | ||||
| # CONFIG_PARPORT is not set | ||||
| 
 | ||||
| # | ||||
| # Plug and Play support | ||||
| # | ||||
| # CONFIG_PNPACPI is not set | ||||
| 
 | ||||
| # | ||||
| # Block devices | ||||
| # | ||||
| CONFIG_BLK_DEV=y | ||||
| # CONFIG_BLK_DEV_COW_COMMON is not set | ||||
| # CONFIG_BLK_DEV_LOOP is not set | ||||
| # CONFIG_BLK_DEV_NBD is not set | ||||
| CONFIG_BLK_DEV_RAM=y | ||||
| CONFIG_BLK_DEV_RAM_COUNT=16 | ||||
| CONFIG_BLK_DEV_RAM_SIZE=4096 | ||||
| CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||||
| # CONFIG_CDROM_PKTCDVD is not set | ||||
| 
 | ||||
| # | ||||
| # Misc devices | ||||
| # | ||||
| # CONFIG_BLINK is not set | ||||
| # CONFIG_ATA_OVER_ETH is not set | ||||
| CONFIG_MISC_DEVICES=y | ||||
| # CONFIG_EEPROM_93CX6 is not set | ||||
| # CONFIG_IDE is not set | ||||
| 
 | ||||
| # | ||||
| @ -323,6 +412,7 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | ||||
| # | ||||
| # CONFIG_RAID_ATTRS is not set | ||||
| CONFIG_SCSI=y | ||||
| CONFIG_SCSI_DMA=y | ||||
| # CONFIG_SCSI_TGT is not set | ||||
| # CONFIG_SCSI_NETLINK is not set | ||||
| CONFIG_SCSI_PROC_FS=y | ||||
| @ -351,73 +441,54 @@ CONFIG_SCSI_WAIT_SCAN=m | ||||
| # | ||||
| # CONFIG_SCSI_SPI_ATTRS is not set | ||||
| # CONFIG_SCSI_FC_ATTRS is not set | ||||
| # CONFIG_SCSI_SAS_ATTRS is not set | ||||
| # CONFIG_SCSI_ISCSI_ATTRS is not set | ||||
| # CONFIG_SCSI_SAS_LIBSAS is not set | ||||
| 
 | ||||
| # | ||||
| # SCSI low-level drivers | ||||
| # | ||||
| CONFIG_SCSI_LOWLEVEL=y | ||||
| # CONFIG_ISCSI_TCP is not set | ||||
| # CONFIG_SCSI_DEBUG is not set | ||||
| CONFIG_ATA=y | ||||
| # CONFIG_ATA_NONSTANDARD is not set | ||||
| CONFIG_PATA_PLATFORM=y | ||||
| 
 | ||||
| # | ||||
| # Multi-device support (RAID and LVM) | ||||
| # | ||||
| # CONFIG_MD is not set | ||||
| CONFIG_NETDEVICES=y | ||||
| # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||||
| # CONFIG_DUMMY is not set | ||||
| # CONFIG_BONDING is not set | ||||
| # CONFIG_MACVLAN is not set | ||||
| # CONFIG_EQUALIZER is not set | ||||
| # CONFIG_TUN is not set | ||||
| # CONFIG_PHYLIB is not set | ||||
| CONFIG_NET_ETHERNET=y | ||||
| CONFIG_MII=y | ||||
| # CONFIG_STNIC is not set | ||||
| CONFIG_SMC91X=y | ||||
| # CONFIG_NETDEV_1000 is not set | ||||
| # CONFIG_NETDEV_10000 is not set | ||||
| 
 | ||||
| # | ||||
| # ISDN subsystem | ||||
| # | ||||
| 
 | ||||
| # | ||||
| # Telephony Support | ||||
| # Wireless LAN | ||||
| # | ||||
| # CONFIG_WLAN_PRE80211 is not set | ||||
| # CONFIG_WLAN_80211 is not set | ||||
| # CONFIG_WAN is not set | ||||
| # CONFIG_PPP is not set | ||||
| # CONFIG_SLIP is not set | ||||
| # CONFIG_SHAPER is not set | ||||
| # CONFIG_NETCONSOLE is not set | ||||
| # CONFIG_NETPOLL is not set | ||||
| # CONFIG_NET_POLL_CONTROLLER is not set | ||||
| # CONFIG_ISDN is not set | ||||
| # CONFIG_PHONE is not set | ||||
| 
 | ||||
| # | ||||
| # Input device support | ||||
| # | ||||
| CONFIG_INPUT=y | ||||
| # CONFIG_INPUT_FF_MEMLESS is not set | ||||
| 
 | ||||
| # | ||||
| # Userland interfaces | ||||
| # | ||||
| CONFIG_INPUT_MOUSEDEV=y | ||||
| # CONFIG_INPUT_MOUSEDEV_PSAUX is not set | ||||
| CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||||
| CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||||
| # CONFIG_INPUT_JOYDEV is not set | ||||
| # CONFIG_INPUT_TSDEV is not set | ||||
| # CONFIG_INPUT_EVDEV is not set | ||||
| # CONFIG_INPUT_EVBUG is not set | ||||
| 
 | ||||
| # | ||||
| # Input Device Drivers | ||||
| # | ||||
| CONFIG_INPUT_KEYBOARD=y | ||||
| CONFIG_KEYBOARD_ATKBD=y | ||||
| # CONFIG_KEYBOARD_SUNKBD is not set | ||||
| # CONFIG_KEYBOARD_LKKBD is not set | ||||
| # CONFIG_KEYBOARD_XTKBD is not set | ||||
| # CONFIG_KEYBOARD_NEWTON is not set | ||||
| # CONFIG_KEYBOARD_STOWAWAY is not set | ||||
| # CONFIG_INPUT_MOUSE is not set | ||||
| # CONFIG_INPUT_JOYSTICK is not set | ||||
| # CONFIG_INPUT_TABLET is not set | ||||
| # CONFIG_INPUT_TOUCHSCREEN is not set | ||||
| # CONFIG_INPUT_MISC is not set | ||||
| # CONFIG_INPUT is not set | ||||
| 
 | ||||
| # | ||||
| # Hardware I/O ports | ||||
| # | ||||
| CONFIG_SERIO=y | ||||
| # CONFIG_SERIO_I8042 is not set | ||||
| # CONFIG_SERIO_SERPORT is not set | ||||
| CONFIG_SERIO_LIBPS2=y | ||||
| # CONFIG_SERIO_RAW is not set | ||||
| # CONFIG_SERIO is not set | ||||
| # CONFIG_GAMEPORT is not set | ||||
| 
 | ||||
| # | ||||
| @ -442,19 +513,18 @@ CONFIG_SERIAL_CORE_CONSOLE=y | ||||
| CONFIG_UNIX98_PTYS=y | ||||
| CONFIG_LEGACY_PTYS=y | ||||
| CONFIG_LEGACY_PTY_COUNT=256 | ||||
| # CONFIG_IPMI_HANDLER is not set | ||||
| CONFIG_WATCHDOG=y | ||||
| # CONFIG_WATCHDOG_NOWAYOUT is not set | ||||
| 
 | ||||
| # | ||||
| # IPMI | ||||
| # Watchdog Device Drivers | ||||
| # | ||||
| # CONFIG_IPMI_HANDLER is not set | ||||
| # CONFIG_WATCHDOG is not set | ||||
| CONFIG_HW_RANDOM=y | ||||
| # CONFIG_SOFT_WATCHDOG is not set | ||||
| # CONFIG_SH_WDT is not set | ||||
| # CONFIG_HW_RANDOM is not set | ||||
| # CONFIG_R3964 is not set | ||||
| # CONFIG_RAW_DRIVER is not set | ||||
| 
 | ||||
| # | ||||
| # TPM devices | ||||
| # | ||||
| # CONFIG_TCG_TPM is not set | ||||
| # CONFIG_I2C is not set | ||||
| 
 | ||||
| @ -463,11 +533,8 @@ CONFIG_HW_RANDOM=y | ||||
| # | ||||
| # CONFIG_SPI is not set | ||||
| # CONFIG_SPI_MASTER is not set | ||||
| 
 | ||||
| # | ||||
| # Dallas's 1-wire bus | ||||
| # | ||||
| # CONFIG_W1 is not set | ||||
| # CONFIG_POWER_SUPPLY is not set | ||||
| # CONFIG_HWMON is not set | ||||
| 
 | ||||
| # | ||||
| @ -479,6 +546,7 @@ CONFIG_HW_RANDOM=y | ||||
| # Multimedia devices | ||||
| # | ||||
| # CONFIG_VIDEO_DEV is not set | ||||
| # CONFIG_DVB_CORE is not set | ||||
| # CONFIG_DAB is not set | ||||
| 
 | ||||
| # | ||||
| @ -491,24 +559,18 @@ CONFIG_HW_RANDOM=y | ||||
| # | ||||
| # CONFIG_DISPLAY_SUPPORT is not set | ||||
| # CONFIG_VGASTATE is not set | ||||
| CONFIG_VIDEO_OUTPUT_CONTROL=m | ||||
| # CONFIG_FB is not set | ||||
| 
 | ||||
| # | ||||
| # Sound | ||||
| # | ||||
| # CONFIG_SOUND is not set | ||||
| 
 | ||||
| # | ||||
| # HID Devices | ||||
| # | ||||
| # CONFIG_HID is not set | ||||
| 
 | ||||
| # | ||||
| # USB support | ||||
| # | ||||
| # CONFIG_USB_ARCH_HAS_HCD is not set | ||||
| CONFIG_USB_SUPPORT=y | ||||
| CONFIG_USB_ARCH_HAS_HCD=y | ||||
| # CONFIG_USB_ARCH_HAS_OHCI is not set | ||||
| # CONFIG_USB_ARCH_HAS_EHCI is not set | ||||
| # CONFIG_USB is not set | ||||
| 
 | ||||
| # | ||||
| # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||||
| @ -517,68 +579,32 @@ CONFIG_HW_RANDOM=y | ||||
| # | ||||
| # USB Gadget Support | ||||
| # | ||||
| # CONFIG_USB_GADGET is not set | ||||
| CONFIG_USB_GADGET=y | ||||
| # CONFIG_USB_GADGET_DEBUG is not set | ||||
| # CONFIG_USB_GADGET_DEBUG_FILES is not set | ||||
| CONFIG_USB_GADGET_SELECTED=y | ||||
| # CONFIG_USB_GADGET_AMD5536UDC is not set | ||||
| # CONFIG_USB_GADGET_FSL_USB2 is not set | ||||
| # CONFIG_USB_GADGET_NET2280 is not set | ||||
| # CONFIG_USB_GADGET_PXA2XX is not set | ||||
| CONFIG_USB_GADGET_M66592=y | ||||
| CONFIG_USB_M66592=y | ||||
| # CONFIG_USB_GADGET_GOKU is not set | ||||
| # CONFIG_USB_GADGET_LH7A40X is not set | ||||
| # CONFIG_USB_GADGET_OMAP is not set | ||||
| # CONFIG_USB_GADGET_S3C2410 is not set | ||||
| # CONFIG_USB_GADGET_AT91 is not set | ||||
| # CONFIG_USB_GADGET_DUMMY_HCD is not set | ||||
| CONFIG_USB_GADGET_DUALSPEED=y | ||||
| # CONFIG_USB_ZERO is not set | ||||
| # CONFIG_USB_ETH is not set | ||||
| # CONFIG_USB_GADGETFS is not set | ||||
| # CONFIG_USB_FILE_STORAGE is not set | ||||
| # CONFIG_USB_G_SERIAL is not set | ||||
| # CONFIG_USB_MIDI_GADGET is not set | ||||
| # CONFIG_MMC is not set | ||||
| 
 | ||||
| # | ||||
| # LED devices | ||||
| # | ||||
| # CONFIG_NEW_LEDS is not set | ||||
| 
 | ||||
| # | ||||
| # LED drivers | ||||
| # | ||||
| 
 | ||||
| # | ||||
| # LED Triggers | ||||
| # | ||||
| 
 | ||||
| # | ||||
| # InfiniBand support | ||||
| # | ||||
| 
 | ||||
| # | ||||
| # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||||
| # | ||||
| 
 | ||||
| # | ||||
| # Real Time Clock | ||||
| # | ||||
| CONFIG_RTC_LIB=y | ||||
| CONFIG_RTC_CLASS=y | ||||
| CONFIG_RTC_HCTOSYS=y | ||||
| CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||||
| # CONFIG_RTC_DEBUG is not set | ||||
| 
 | ||||
| # | ||||
| # RTC interfaces | ||||
| # | ||||
| CONFIG_RTC_INTF_SYSFS=y | ||||
| CONFIG_RTC_INTF_PROC=y | ||||
| CONFIG_RTC_INTF_DEV=y | ||||
| # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||||
| # CONFIG_RTC_DRV_TEST is not set | ||||
| 
 | ||||
| # | ||||
| # I2C RTC drivers | ||||
| # | ||||
| 
 | ||||
| # | ||||
| # SPI RTC drivers | ||||
| # | ||||
| 
 | ||||
| # | ||||
| # Platform RTC drivers | ||||
| # | ||||
| # CONFIG_RTC_DRV_DS1553 is not set | ||||
| # CONFIG_RTC_DRV_DS1742 is not set | ||||
| # CONFIG_RTC_DRV_M48T86 is not set | ||||
| # CONFIG_RTC_DRV_V3020 is not set | ||||
| 
 | ||||
| # | ||||
| # on-CPU RTC drivers | ||||
| # | ||||
| CONFIG_RTC_DRV_SH=y | ||||
| # CONFIG_RTC_CLASS is not set | ||||
| 
 | ||||
| # | ||||
| # DMA Engine support | ||||
| @ -593,6 +619,11 @@ CONFIG_RTC_DRV_SH=y | ||||
| # DMA Devices | ||||
| # | ||||
| 
 | ||||
| # | ||||
| # Userspace I/O | ||||
| # | ||||
| CONFIG_UIO=m | ||||
| 
 | ||||
| # | ||||
| # File systems | ||||
| # | ||||
| @ -612,6 +643,7 @@ CONFIG_FS_MBCACHE=y | ||||
| # CONFIG_FS_POSIX_ACL is not set | ||||
| # CONFIG_XFS_FS is not set | ||||
| # CONFIG_GFS2_FS is not set | ||||
| # CONFIG_OCFS2_FS is not set | ||||
| # CONFIG_MINIX_FS is not set | ||||
| # CONFIG_ROMFS_FS is not set | ||||
| CONFIG_INOTIFY=y | ||||
| @ -666,6 +698,17 @@ CONFIG_RAMFS=y | ||||
| # CONFIG_SYSV_FS is not set | ||||
| # CONFIG_UFS_FS is not set | ||||
| 
 | ||||
| # | ||||
| # Network File Systems | ||||
| # | ||||
| # CONFIG_NFS_FS is not set | ||||
| # CONFIG_NFSD is not set | ||||
| # CONFIG_SMB_FS is not set | ||||
| # CONFIG_CIFS is not set | ||||
| # CONFIG_NCP_FS is not set | ||||
| # CONFIG_CODA_FS is not set | ||||
| # CONFIG_AFS_FS is not set | ||||
| 
 | ||||
| # | ||||
| # Partition Types | ||||
| # | ||||
| @ -677,6 +720,11 @@ CONFIG_MSDOS_PARTITION=y | ||||
| # | ||||
| # CONFIG_NLS is not set | ||||
| 
 | ||||
| # | ||||
| # Distributed Lock Manager | ||||
| # | ||||
| # CONFIG_DLM is not set | ||||
| 
 | ||||
| # | ||||
| # Profiling support | ||||
| # | ||||
| @ -687,31 +735,28 @@ CONFIG_PROFILING=y | ||||
| # Kernel hacking | ||||
| # | ||||
| CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||||
| CONFIG_PRINTK_TIME=y | ||||
| # CONFIG_PRINTK_TIME is not set | ||||
| # CONFIG_ENABLE_MUST_CHECK is not set | ||||
| CONFIG_MAGIC_SYSRQ=y | ||||
| # CONFIG_UNUSED_SYMBOLS is not set | ||||
| CONFIG_DEBUG_FS=y | ||||
| # CONFIG_HEADERS_CHECK is not set | ||||
| CONFIG_DEBUG_KERNEL=y | ||||
| # CONFIG_DEBUG_SHIRQ is not set | ||||
| CONFIG_DEBUG_SHIRQ=y | ||||
| CONFIG_DETECT_SOFTLOCKUP=y | ||||
| CONFIG_SCHED_DEBUG=y | ||||
| # CONFIG_SCHEDSTATS is not set | ||||
| # CONFIG_TIMER_STATS is not set | ||||
| CONFIG_DEBUG_SLAB=y | ||||
| CONFIG_DEBUG_SLAB_LEAK=y | ||||
| CONFIG_DEBUG_PREEMPT=y | ||||
| # CONFIG_DEBUG_RT_MUTEXES is not set | ||||
| # CONFIG_RT_MUTEX_TESTER is not set | ||||
| CONFIG_DEBUG_SPINLOCK=y | ||||
| CONFIG_DEBUG_MUTEXES=y | ||||
| CONFIG_DEBUG_LOCK_ALLOC=y | ||||
| # CONFIG_DEBUG_SPINLOCK is not set | ||||
| # CONFIG_DEBUG_MUTEXES is not set | ||||
| # CONFIG_DEBUG_LOCK_ALLOC is not set | ||||
| # CONFIG_PROVE_LOCKING is not set | ||||
| CONFIG_LOCKDEP=y | ||||
| CONFIG_DEBUG_LOCKDEP=y | ||||
| # CONFIG_LOCK_STAT is not set | ||||
| # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||||
| # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||||
| CONFIG_STACKTRACE=y | ||||
| # CONFIG_DEBUG_KOBJECT is not set | ||||
| CONFIG_DEBUG_BUGVERBOSE=y | ||||
| # CONFIG_DEBUG_INFO is not set | ||||
| @ -735,10 +780,6 @@ CONFIG_DEBUG_STACK_USAGE=y | ||||
| # | ||||
| # CONFIG_KEYS is not set | ||||
| # CONFIG_SECURITY is not set | ||||
| 
 | ||||
| # | ||||
| # Cryptographic options | ||||
| # | ||||
| # CONFIG_CRYPTO is not set | ||||
| 
 | ||||
| # | ||||
| @ -749,6 +790,7 @@ CONFIG_BITREVERSE=y | ||||
| # CONFIG_CRC16 is not set | ||||
| # CONFIG_CRC_ITU_T is not set | ||||
| CONFIG_CRC32=y | ||||
| # CONFIG_CRC7 is not set | ||||
| # CONFIG_LIBCRC32C is not set | ||||
| CONFIG_PLIST=y | ||||
| CONFIG_HAS_IOMEM=y | ||||
|  | ||||
| @ -10,6 +10,9 @@ obj-$(CONFIG_CPU_SUBTYPE_SH7343)	+= setup-sh7343.o | ||||
| obj-$(CONFIG_CPU_SUBTYPE_SH7722)	+= setup-sh7722.o | ||||
| obj-$(CONFIG_CPU_SUBTYPE_SHX3)		+= setup-shx3.o | ||||
| 
 | ||||
| # SMP setup
 | ||||
| smp-$(CONFIG_CPU_SUBTYPE_SHX3)		:= smp-shx3.o | ||||
| 
 | ||||
| # Primary on-chip clocks (common)
 | ||||
| clock-$(CONFIG_CPU_SUBTYPE_SH7770)	:= clock-sh7770.o | ||||
| clock-$(CONFIG_CPU_SUBTYPE_SH7780)	:= clock-sh7780.o | ||||
| @ -18,4 +21,5 @@ clock-$(CONFIG_CPU_SUBTYPE_SH7343)	:= clock-sh7343.o | ||||
| clock-$(CONFIG_CPU_SUBTYPE_SH7722)	:= clock-sh7722.o | ||||
| clock-$(CONFIG_CPU_SUBTYPE_SHX3)	:= clock-shx3.o | ||||
| 
 | ||||
| obj-y	+= $(clock-y) | ||||
| obj-y			+= $(clock-y) | ||||
| obj-$(CONFIG_SMP)	+= $(smp-y) | ||||
|  | ||||
							
								
								
									
										120
									
								
								arch/sh/kernel/cpu/sh4a/smp-shx3.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								arch/sh/kernel/cpu/sh4a/smp-shx3.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,120 @@ | ||||
| /*
 | ||||
|  * SH-X3 SMP | ||||
|  * | ||||
|  *  Copyright (C) 2007  Paul Mundt | ||||
|  *  Copyright (C) 2007  Magnus Damm | ||||
|  * | ||||
|  * This file is subject to the terms and conditions of the GNU General Public | ||||
|  * License.  See the file "COPYING" in the main directory of this archive | ||||
|  * for more details. | ||||
|  */ | ||||
| #include <linux/init.h> | ||||
| #include <linux/cpumask.h> | ||||
| #include <linux/smp.h> | ||||
| #include <linux/interrupt.h> | ||||
| #include <linux/io.h> | ||||
| 
 | ||||
| void __init plat_smp_setup(void) | ||||
| { | ||||
| 	unsigned int cpu = 0; | ||||
| 	int i, num; | ||||
| 
 | ||||
| 	cpus_clear(cpu_possible_map); | ||||
| 	cpu_set(cpu, cpu_possible_map); | ||||
| 
 | ||||
| 	__cpu_number_map[0] = 0; | ||||
| 	__cpu_logical_map[0] = 0; | ||||
| 
 | ||||
| 	/*
 | ||||
| 	 * Do this stupidly for now.. we don't have an easy way to probe | ||||
| 	 * for the total number of cores. | ||||
| 	 */ | ||||
| 	for (i = 1, num = 0; i < NR_CPUS; i++) { | ||||
| 		cpu_set(i, cpu_possible_map); | ||||
| 		__cpu_number_map[i] = ++num; | ||||
| 		__cpu_logical_map[num] = i; | ||||
| 	} | ||||
| 
 | ||||
|         printk(KERN_INFO "Detected %i available secondary CPU(s)\n", num); | ||||
| } | ||||
| 
 | ||||
| void __init plat_prepare_cpus(unsigned int max_cpus) | ||||
| { | ||||
| } | ||||
| 
 | ||||
| #define STBCR_REG(phys_id) (0xfe400004 | (phys_id << 12)) | ||||
| #define RESET_REG(phys_id) (0xfe400008 | (phys_id << 12)) | ||||
| 
 | ||||
| #define STBCR_MSTP	0x00000001 | ||||
| #define STBCR_RESET	0x00000002 | ||||
| #define STBCR_LTSLP	0x80000000 | ||||
| 
 | ||||
| #define STBCR_AP_VAL	(STBCR_RESET | STBCR_LTSLP) | ||||
| 
 | ||||
| void plat_start_cpu(unsigned int cpu, unsigned long entry_point) | ||||
| { | ||||
| 	ctrl_outl(entry_point, RESET_REG(cpu)); | ||||
| 
 | ||||
| 	if (!(ctrl_inl(STBCR_REG(cpu)) & STBCR_MSTP)) | ||||
| 		ctrl_outl(STBCR_MSTP, STBCR_REG(cpu)); | ||||
| 
 | ||||
| 	while (!(ctrl_inl(STBCR_REG(cpu)) & STBCR_MSTP)) | ||||
| 		; | ||||
| 
 | ||||
| 	/* Start up secondary processor by sending a reset */ | ||||
| 	ctrl_outl(STBCR_AP_VAL, STBCR_REG(cpu)); | ||||
| } | ||||
| 
 | ||||
| int plat_smp_processor_id(void) | ||||
| { | ||||
| 	return ctrl_inl(0xff000048); /* CPIDR */ | ||||
| } | ||||
| 
 | ||||
| void plat_send_ipi(unsigned int cpu, unsigned int message) | ||||
| { | ||||
| 	unsigned long addr = 0xfe410070 + (cpu * 4); | ||||
| 
 | ||||
| 	BUG_ON(cpu >= 4); | ||||
| 	BUG_ON(message >= SMP_MSG_NR); | ||||
| 
 | ||||
| 	ctrl_outl(1 << (message << 2), addr); /* C0INTICI..CnINTICI */ | ||||
| } | ||||
| 
 | ||||
| struct ipi_data { | ||||
| 	void (*handler)(void *); | ||||
| 	void *arg; | ||||
| 	unsigned int message; | ||||
| }; | ||||
| 
 | ||||
| static irqreturn_t ipi_interrupt_handler(int irq, void *arg) | ||||
| { | ||||
| 	struct ipi_data *id = arg; | ||||
| 	unsigned int cpu = hard_smp_processor_id(); | ||||
| 	unsigned int offs = 4 * cpu; | ||||
| 	unsigned int x; | ||||
| 
 | ||||
| 	x = ctrl_inl(0xfe410070 + offs); /* C0INITICI..CnINTICI */ | ||||
| 	x &= (1 << (id->message << 2)); | ||||
| 	ctrl_outl(x, 0xfe410080 + offs); /* C0INTICICLR..CnINTICICLR */ | ||||
| 
 | ||||
| 	id->handler(id->arg); | ||||
| 
 | ||||
| 	return IRQ_HANDLED; | ||||
| } | ||||
| 
 | ||||
| static struct ipi_data ipi_handlers[SMP_MSG_NR]; | ||||
| 
 | ||||
| int plat_register_ipi_handler(unsigned int message, | ||||
| 			      void (*handler)(void *), void *arg) | ||||
| { | ||||
| 	struct ipi_data *id = &ipi_handlers[message]; | ||||
| 
 | ||||
| 	BUG_ON(SMP_MSG_NR >= 8); | ||||
| 	BUG_ON(message >= SMP_MSG_NR); | ||||
| 
 | ||||
| 	id->handler = handler; | ||||
| 	id->arg = arg; | ||||
| 	id->message = message; | ||||
| 
 | ||||
| 	return request_irq(104 + message, ipi_interrupt_handler, 0, "IPI", id); | ||||
| } | ||||
| @ -190,6 +190,7 @@ config CPU_SUBTYPE_SHX3 | ||||
| 	select CPU_SHX3 | ||||
| 	select ARCH_SPARSEMEM_ENABLE | ||||
| 	select SYS_SUPPORTS_NUMA | ||||
| 	select SYS_SUPPORTS_SMP | ||||
| 
 | ||||
| # SH4AL-DSP Processor Support | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user