Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
1ee73784
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1ee73784
编写于
6月 10, 2009
作者:
R
Russell King
提交者:
Russell King
6月 10, 2009
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for_rmk' of
git://dev.omapzoom.org/pub/scm/santosh/kernel-omap4-base
into devel
上级
7698fded
b5495610
变更
10
显示空白变更内容
内联
并排
Showing
10 changed file
with
445 addition
and
38 deletion
+445
-38
arch/arm/Kconfig
arch/arm/Kconfig
+4
-4
arch/arm/configs/omap_4430sdp_defconfig
arch/arm/configs/omap_4430sdp_defconfig
+94
-34
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/Makefile
+4
-0
arch/arm/mach-omap2/omap-headsmp.S
arch/arm/mach-omap2/omap-headsmp.S
+46
-0
arch/arm/mach-omap2/omap-smp.c
arch/arm/mach-omap2/omap-smp.c
+178
-0
arch/arm/mach-omap2/timer-gp.c
arch/arm/mach-omap2/timer-gp.c
+4
-0
arch/arm/mach-omap2/timer-mpu.c
arch/arm/mach-omap2/timer-mpu.c
+34
-0
arch/arm/plat-omap/include/mach/entry-macro.S
arch/arm/plat-omap/include/mach/entry-macro.S
+28
-0
arch/arm/plat-omap/include/mach/irqs.h
arch/arm/plat-omap/include/mach/irqs.h
+2
-0
arch/arm/plat-omap/include/mach/smp.h
arch/arm/plat-omap/include/mach/smp.h
+51
-0
未找到文件。
arch/arm/Kconfig
浏览文件 @
1ee73784
...
@@ -846,10 +846,10 @@ source "kernel/time/Kconfig"
...
@@ -846,10 +846,10 @@ source "kernel/time/Kconfig"
config SMP
config SMP
bool "Symmetric Multi-Processing (EXPERIMENTAL)"
bool "Symmetric Multi-Processing (EXPERIMENTAL)"
depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP)
depends on EXPERIMENTAL && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP
||ARCH_OMAP4
)
depends on GENERIC_CLOCKEVENTS
depends on GENERIC_CLOCKEVENTS
select USE_GENERIC_SMP_HELPERS
select USE_GENERIC_SMP_HELPERS
select HAVE_ARM_SCU if
ARCH_REALVIEW
select HAVE_ARM_SCU if
(ARCH_REALVIEW || ARCH_OMAP4)
help
help
This enables support for systems with more than one CPU. If you have
This enables support for systems with more than one CPU. If you have
a system with only one CPU, like most personal computers, say N. If
a system with only one CPU, like most personal computers, say N. If
...
@@ -917,9 +917,9 @@ config HOTPLUG_CPU
...
@@ -917,9 +917,9 @@ config HOTPLUG_CPU
config LOCAL_TIMERS
config LOCAL_TIMERS
bool "Use local timer interrupts"
bool "Use local timer interrupts"
depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || REALVIEW_EB_A9MP)
depends on SMP && (REALVIEW_EB_ARM11MP || MACH_REALVIEW_PB11MP || REALVIEW_EB_A9MP
|| ARCH_OMAP4
)
default y
default y
select HAVE_ARM_TWD if
ARCH_REALVIEW
select HAVE_ARM_TWD if
(ARCH_REALVIEW || ARCH_OMAP4)
help
help
Enable support for local timers on SMP platforms, rather then the
Enable support for local timers on SMP platforms, rather then the
legacy IPI broadcast method. Local timers allows the system
legacy IPI broadcast method. Local timers allows the system
...
...
arch/arm/configs/omap_4430sdp_defconfig
浏览文件 @
1ee73784
#
#
# Automatically generated make config: don't edit
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.
29
# Linux kernel version: 2.6.
30-rc7
#
Fri April 19 19:58:24 2008
9
#
Tue Jun 9 12:36:23 200
9
#
#
CONFIG_ARM=y
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
...
@@ -9,17 +9,13 @@ CONFIG_GENERIC_GPIO=y
...
@@ -9,17 +9,13 @@ CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_MMU=y
CONFIG_MMU=y
# CONFIG_NO_IOPORT is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
...
@@ -30,7 +26,7 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
...
@@ -30,7 +26,7 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
# General setup
# General setup
#
#
CONFIG_EXPERIMENTAL=y
CONFIG_EXPERIMENTAL=y
CONFIG_
BROKEN_ON_SMP
=y
CONFIG_
LOCK_KERNEL
=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_LOCALVERSION_AUTO=y
...
@@ -62,6 +58,9 @@ CONFIG_SYSFS_DEPRECATED_V2=y
...
@@ -62,6 +58,9 @@ CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_NAMESPACES is not set
# CONFIG_NAMESPACES is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_INITRAMFS_SOURCE=""
CONFIG_RD_GZIP=y
# CONFIG_RD_BZIP2 is not set
# CONFIG_RD_LZMA is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_ANON_INODES=y
...
@@ -71,6 +70,7 @@ CONFIG_UID16=y
...
@@ -71,6 +70,7 @@ CONFIG_UID16=y
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_ALL is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
# CONFIG_KALLSYMS_EXTRA_PASS is not set
# CONFIG_STRIP_ASM_SYMS is not set
CONFIG_HOTPLUG=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_BUG=y
...
@@ -84,16 +84,20 @@ CONFIG_EVENTFD=y
...
@@ -84,16 +84,20 @@ CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_AIO=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
CONFIG_COMPAT_BRK=y
CONFIG_COMPAT_BRK=y
# CONFIG_SLAB is not set
# CONFIG_SLAB is not set
# CONFIG_SLUB is not set
CONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_SLOB is not set
# CONFIG_PROFILING is not set
# CONFIG_PROFILING is not set
# CONFIG_MARKERS is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_CLK=y
# CONFIG_SLOW_WORK is not set
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_RT_MUTEXES=y
...
@@ -104,9 +108,9 @@ CONFIG_MODULE_UNLOAD=y
...
@@ -104,9 +108,9 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_MODVERSIONS=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
# CONFIG_BLK_DEV_INTEGRITY is not set
...
@@ -133,12 +137,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
...
@@ -133,12 +137,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_VERSATILE is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_CLPS711X is not set
# CONFIG_ARCH_GEMINI is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_NETX is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_H720X is not set
# CONFIG_ARCH_IMX is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP32X is not set
# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IOP33X is not set
...
@@ -147,14 +152,16 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
...
@@ -147,14 +152,16 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_L7200 is not set
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_LOKI is not set
# CONFIG_ARCH_LOKI is not set
# CONFIG_ARCH_MV78XX0 is not set
# CONFIG_ARCH_MV78XX0 is not set
# CONFIG_ARCH_MXC is not set
# CONFIG_ARCH_ORION5X is not set
# CONFIG_ARCH_ORION5X is not set
# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_KS8695 is not set
# CONFIG_ARCH_NS9XXX is not set
# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PNX4008 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_MSM is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_SA1100 is not set
# CONFIG_ARCH_S3C2410 is not set
# CONFIG_ARCH_S3C2410 is not set
...
@@ -163,8 +170,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
...
@@ -163,8 +170,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_LH7A40X is not set
# CONFIG_ARCH_DAVINCI is not set
# CONFIG_ARCH_DAVINCI is not set
CONFIG_ARCH_OMAP=y
CONFIG_ARCH_OMAP=y
# CONFIG_ARCH_MSM is not set
# CONFIG_ARCH_W90X900 is not set
#
#
# TI OMAP Implementations
# TI OMAP Implementations
...
@@ -178,8 +183,6 @@ CONFIG_ARCH_OMAP4=y
...
@@ -178,8 +183,6 @@ CONFIG_ARCH_OMAP4=y
# OMAP Feature Selections
# OMAP Feature Selections
#
#
# CONFIG_OMAP_RESET_CLOCKS is not set
# CONFIG_OMAP_RESET_CLOCKS is not set
# CONFIG_OMAP_COMPONENT_VERSION is not set
# CONFIG_OMAP_GPIO_SWITCH is not set
# CONFIG_OMAP_MUX is not set
# CONFIG_OMAP_MUX is not set
# CONFIG_OMAP_MCBSP is not set
# CONFIG_OMAP_MCBSP is not set
# CONFIG_OMAP_MBOX_FWK is not set
# CONFIG_OMAP_MBOX_FWK is not set
...
@@ -191,8 +194,6 @@ CONFIG_OMAP_LL_DEBUG_UART1=y
...
@@ -191,8 +194,6 @@ CONFIG_OMAP_LL_DEBUG_UART1=y
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
# CONFIG_OMAP_LL_DEBUG_UART2 is not set
# CONFIG_OMAP_LL_DEBUG_UART3 is not set
# CONFIG_OMAP_LL_DEBUG_UART3 is not set
#
#
# OMAP Board Type
# OMAP Board Type
#
#
...
@@ -224,7 +225,9 @@ CONFIG_CPU_CP15_MMU=y
...
@@ -224,7 +225,9 @@ CONFIG_CPU_CP15_MMU=y
CONFIG_CPU_DCACHE_DISABLE=y
CONFIG_CPU_DCACHE_DISABLE=y
# CONFIG_CPU_BPREDICT_DISABLE is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_HAS_TLS_REG=y
CONFIG_HAS_TLS_REG=y
# CONFIG_OUTER_CACHE is not set
# CONFIG_ARM_ERRATA_430973 is not set
# CONFIG_ARM_ERRATA_458693 is not set
# CONFIG_ARM_ERRATA_460075 is not set
CONFIG_ARM_GIC=y
CONFIG_ARM_GIC=y
#
#
...
@@ -240,17 +243,23 @@ CONFIG_ARM_GIC=y
...
@@ -240,17 +243,23 @@ CONFIG_ARM_GIC=y
# CONFIG_NO_HZ is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set
# CONFIG_HIGH_RES_TIMERS is not set
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
CONFIG_HAVE_ARM_SCU=y
CONFIG_HAVE_ARM_TWD=y
CONFIG_VMSPLIT_3G=y
CONFIG_VMSPLIT_3G=y
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_2G is not set
# CONFIG_VMSPLIT_1G is not set
# CONFIG_VMSPLIT_1G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_NR_CPUS=2
# CONFIG_HOTPLUG_CPU is not set
CONFIG_LOCAL_TIMERS=y
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT is not set
CONFIG_HZ=128
CONFIG_HZ=128
CONFIG_AEABI=y
CONFIG_AEABI=y
# CONFIG_OABI_COMPAT is not set
# CONFIG_OABI_COMPAT is not set
CONFIG_ARCH_FLATMEM_HAS_HOLES=y
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
# CONFIG_HIGHMEM is not set
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_DISCONTIGMEM_MANUAL is not set
...
@@ -263,6 +272,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
...
@@ -263,6 +272,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_ZONE_DMA_FLAG=0
CONFIG_ZONE_DMA_FLAG=0
CONFIG_VIRT_TO_BUS=y
CONFIG_VIRT_TO_BUS=y
# CONFIG_UNEVICTABLE_LRU is not set
# CONFIG_UNEVICTABLE_LRU is not set
CONFIG_HAVE_MLOCK=y
# CONFIG_LEDS is not set
# CONFIG_LEDS is not set
CONFIG_ALIGNMENT_TRAP=y
CONFIG_ALIGNMENT_TRAP=y
...
@@ -288,9 +298,6 @@ CONFIG_CMDLINE="root=/dev/ram0 rw mem=128M console=ttyS0,115200n8 initrd=0x81600
...
@@ -288,9 +298,6 @@ CONFIG_CMDLINE="root=/dev/ram0 rw mem=128M console=ttyS0,115200n8 initrd=0x81600
#
#
# At least one emulation must be selected
# At least one emulation must be selected
#
#
CONFIG_FPE_NWFPE=y
# CONFIG_FPE_NWFPE_XP is not set
# CONFIG_FPE_FASTFPE is not set
CONFIG_VFP=y
CONFIG_VFP=y
CONFIG_VFPv3=y
CONFIG_VFPv3=y
# CONFIG_NEON is not set
# CONFIG_NEON is not set
...
@@ -299,7 +306,6 @@ CONFIG_VFPv3=y
...
@@ -299,7 +306,6 @@ CONFIG_VFPv3=y
# Userspace binary formats
# Userspace binary formats
#
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_ELF=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_HAVE_AOUT=y
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_MISC=y
CONFIG_BINFMT_MISC=y
...
@@ -415,6 +421,7 @@ CONFIG_UNIX98_PTYS=y
...
@@ -415,6 +421,7 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_IPMI_HANDLER is not set
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM=y
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
# CONFIG_R3964 is not set
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TCG_TPM is not set
...
@@ -509,15 +516,11 @@ CONFIG_DUMMY_CONSOLE=y
...
@@ -509,15 +516,11 @@ CONFIG_DUMMY_CONSOLE=y
CONFIG_RTC_LIB=y
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_REGULATOR is not set
# CONFIG_REGULATOR is not set
# CONFIG_UIO is not set
# CONFIG_UIO is not set
# CONFIG_STAGING is not set
# CONFIG_STAGING is not set
#
# CBUS support
#
# CONFIG_CBUS is not set
#
#
# File systems
# File systems
#
#
...
@@ -525,6 +528,7 @@ CONFIG_EXT2_FS=y
...
@@ -525,6 +528,7 @@ CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS=y
# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
# CONFIG_EXT3_FS_XATTR is not set
# CONFIG_EXT3_FS_XATTR is not set
# CONFIG_EXT4_FS is not set
# CONFIG_EXT4_FS is not set
CONFIG_JBD=y
CONFIG_JBD=y
...
@@ -547,6 +551,11 @@ CONFIG_QUOTACTL=y
...
@@ -547,6 +551,11 @@ CONFIG_QUOTACTL=y
# CONFIG_AUTOFS4_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
# CONFIG_FUSE_FS is not set
#
# Caches
#
# CONFIG_FSCACHE is not set
#
#
# CD-ROM/DVD Filesystems
# CD-ROM/DVD Filesystems
#
#
...
@@ -568,6 +577,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
...
@@ -568,6 +577,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
#
#
CONFIG_PROC_FS=y
CONFIG_PROC_FS=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_TMPFS_POSIX_ACL is not set
...
@@ -591,6 +601,7 @@ CONFIG_MISC_FILESYSTEMS=y
...
@@ -591,6 +601,7 @@ CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ROMFS_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_UFS_FS is not set
# CONFIG_NILFS2_FS is not set
#
#
# Partition Types
# Partition Types
...
@@ -666,11 +677,37 @@ CONFIG_MAGIC_SYSRQ=y
...
@@ -666,11 +677,37 @@ CONFIG_MAGIC_SYSRQ=y
# CONFIG_DEBUG_FS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
CONFIG_DETECT_HUNG_TASK=y
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# 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_LOCK_STAT is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_WRITECOUNT is not set
# CONFIG_DEBUG_WRITECOUNT is not set
# CONFIG_DEBUG_MEMORY_INIT is not set
# CONFIG_DEBUG_MEMORY_INIT is not set
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
CONFIG_FRAME_POINTER=y
CONFIG_FRAME_POINTER=y
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_BOOT_PRINTK_DELAY is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
...
@@ -678,8 +715,9 @@ CONFIG_FRAME_POINTER=y
...
@@ -678,8 +715,9 @@ CONFIG_FRAME_POINTER=y
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_
LATENCYTOP
is not set
# CONFIG_
PAGE_POISONING
is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_TRACING_SUPPORT=y
#
#
# Tracers
# Tracers
...
@@ -688,17 +726,21 @@ CONFIG_HAVE_FUNCTION_TRACER=y
...
@@ -688,17 +726,21 @@ CONFIG_HAVE_FUNCTION_TRACER=y
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_IRQSOFF_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_SCHED_TRACER is not set
# CONFIG_CONTEXT_SWITCH_TRACER is not set
# CONFIG_CONTEXT_SWITCH_TRACER is not set
# CONFIG_EVENT_TRACER is not set
# CONFIG_BOOT_TRACER is not set
# CONFIG_BOOT_TRACER is not set
# CONFIG_TRACE_BRANCH_PROFILING is not set
# CONFIG_TRACE_BRANCH_PROFILING is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_STACK_TRACER is not set
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
# CONFIG_KMEMTRACE is not set
# CONFIG_WORKQUEUE_TRACER is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_SAMPLES is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
# CONFIG_KGDB is not set
# CONFIG_ARM_UNWIND is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_USER is not set
# CONFIG_DEBUG_ERRORS is not set
# CONFIG_DEBUG_ERRORS is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_
ICEDCC
is not set
# CONFIG_DEBUG_
LL
is not set
#
#
# Security options
# Security options
...
@@ -712,11 +754,21 @@ CONFIG_CRYPTO=y
...
@@ -712,11 +754,21 @@ CONFIG_CRYPTO=y
#
#
# Crypto core or helper
# Crypto core or helper
#
#
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_AEAD2=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_BLKCIPHER2=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_HASH2=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_PCOMP=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_NULL is not set
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_TEST is not set
...
@@ -785,8 +837,15 @@ CONFIG_CRYPTO_DES=y
...
@@ -785,8 +837,15 @@ CONFIG_CRYPTO_DES=y
# Compression
# Compression
#
#
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_ZLIB is not set
# CONFIG_CRYPTO_LZO is not set
# CONFIG_CRYPTO_LZO is not set
#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set
CONFIG_CRYPTO_HW=y
CONFIG_CRYPTO_HW=y
# CONFIG_BINARY_PRINTF is not set
#
#
# Library routines
# Library routines
...
@@ -800,7 +859,8 @@ CONFIG_CRC_T10DIF=y
...
@@ -800,7 +859,8 @@ CONFIG_CRC_T10DIF=y
CONFIG_CRC32=y
CONFIG_CRC32=y
# CONFIG_CRC7 is not set
# CONFIG_CRC7 is not set
CONFIG_LIBCRC32C=y
CONFIG_LIBCRC32C=y
CONFIG_PLIST=y
CONFIG_ZLIB_INFLATE=y
CONFIG_DECOMPRESS_GZIP=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_HAS_DMA=y
arch/arm/mach-omap2/Makefile
浏览文件 @
1ee73784
...
@@ -14,6 +14,10 @@ obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(prcm-common) $(clock-common)
...
@@ -14,6 +14,10 @@ obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(prcm-common) $(clock-common)
obj-$(CONFIG_OMAP_MCBSP)
+=
mcbsp.o
obj-$(CONFIG_OMAP_MCBSP)
+=
mcbsp.o
# SMP support ONLY available for OMAP4
obj-$(CONFIG_SMP)
+=
omap-smp.o omap-headsmp.o
obj-$(CONFIG_LOCAL_TIMERS)
+=
timer-mpu.o
# Functions loaded to SRAM
# Functions loaded to SRAM
obj-$(CONFIG_ARCH_OMAP2420)
+=
sram242x.o
obj-$(CONFIG_ARCH_OMAP2420)
+=
sram242x.o
obj-$(CONFIG_ARCH_OMAP2430)
+=
sram243x.o
obj-$(CONFIG_ARCH_OMAP2430)
+=
sram243x.o
...
...
arch/arm/mach-omap2/omap-headsmp.S
0 → 100644
浏览文件 @
1ee73784
/*
*
Secondary
CPU
startup
routine
source
file
.
*
*
Copyright
(
C
)
2009
Texas
Instruments
,
Inc
.
*
*
Author
:
*
Santosh
Shilimkar
<
santosh
.
shilimkar
@
ti
.
com
>
*
*
Interface
functions
needed
for
the
SMP
.
This
file
is
based
on
arm
*
realview
smp
platform
.
*
Copyright
(
c
)
2003
ARM
Limited
.
*
*
This
program
is
free
software
,
you
can
redistribute
it
and
/
or
modify
*
it
under
the
terms
of
the
GNU
General
Public
License
version
2
as
*
published
by
the
Free
Software
Foundation
.
*/
#include <linux/linkage.h>
#include <linux/init.h>
/*
Physical
address
needed
since
MMU
not
enabled
yet
on
secondary
core
*/
#define OMAP4_AUX_CORE_BOOT1_PA 0x48281804
__INIT
/*
*
OMAP4
specific
entry
point
for
secondary
CPU
to
jump
from
ROM
*
code
.
This
routine
also
provides
a
holding
flag
into
which
*
secondary
core
is
held
until
we
're ready for it to initialise.
*
The
primary
core
will
update
the
this
flag
using
a
hardware
*
register
AuxCoreBoot1
.
*/
ENTRY
(
omap_secondary_startup
)
mrc
p15
,
0
,
r0
,
c0
,
c0
,
5
and
r0
,
r0
,
#
0x0f
hold
:
ldr
r1
,
=
OMAP4_AUX_CORE_BOOT1_PA
@
read
from
AuxCoreBoot1
ldr
r2
,
[
r1
]
cmp
r2
,
r0
bne
hold
/
*
*
we
've been released from the cpu_release,secondary_stack
*
should
now
contain
the
SVC
stack
for
this
core
*/
b
secondary_startup
arch/arm/mach-omap2/omap-smp.c
0 → 100644
浏览文件 @
1ee73784
/*
* OMAP4 SMP source file. It contains platform specific fucntions
* needed for the linux smp kernel.
*
* Copyright (C) 2009 Texas Instruments, Inc.
*
* Author:
* Santosh Shilimkar <santosh.shilimkar@ti.com>
*
* Platform file needed for the OMAP4 SMP. This file is based on arm
* realview smp platform.
* * Copyright (c) 2002 ARM Limited.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/init.h>
#include <linux/device.h>
#include <linux/jiffies.h>
#include <linux/smp.h>
#include <linux/io.h>
#include <asm/localtimer.h>
#include <asm/smp_scu.h>
#include <mach/hardware.h>
/* Registers used for communicating startup information */
#define OMAP4_AUXCOREBOOT_REG0 (OMAP44XX_VA_WKUPGEN_BASE + 0x800)
#define OMAP4_AUXCOREBOOT_REG1 (OMAP44XX_VA_WKUPGEN_BASE + 0x804)
/* SCU base address */
static
void
__iomem
*
scu_base
=
OMAP44XX_VA_SCU_BASE
;
/*
* Use SCU config register to count number of cores
*/
static
inline
unsigned
int
get_core_count
(
void
)
{
if
(
scu_base
)
return
scu_get_core_count
(
scu_base
);
return
1
;
}
static
DEFINE_SPINLOCK
(
boot_lock
);
void
__cpuinit
platform_secondary_init
(
unsigned
int
cpu
)
{
trace_hardirqs_off
();
/*
* If any interrupts are already enabled for the primary
* core (e.g. timer irq), then they will not have been enabled
* for us: do so
*/
gic_cpu_init
(
0
,
IO_ADDRESS
(
OMAP44XX_GIC_CPU_BASE
));
/*
* Synchronise with the boot thread.
*/
spin_lock
(
&
boot_lock
);
spin_unlock
(
&
boot_lock
);
}
int
__cpuinit
boot_secondary
(
unsigned
int
cpu
,
struct
task_struct
*
idle
)
{
unsigned
long
timeout
;
/*
* Set synchronisation state between this boot processor
* and the secondary one
*/
spin_lock
(
&
boot_lock
);
/*
* Update the AuxCoreBoot1 with boot state for secondary core.
* omap_secondary_startup() routine will hold the secondary core till
* the AuxCoreBoot1 register is updated with cpu state
* A barrier is added to ensure that write buffer is drained
*/
__raw_writel
(
cpu
,
OMAP4_AUXCOREBOOT_REG1
);
smp_wmb
();
timeout
=
jiffies
+
(
1
*
HZ
);
while
(
time_before
(
jiffies
,
timeout
))
;
/*
* Now the secondary core is starting up let it run its
* calibrations, then wait for it to finish
*/
spin_unlock
(
&
boot_lock
);
return
0
;
}
static
void
__init
wakeup_secondary
(
void
)
{
/*
* Write the address of secondary startup routine into the
* AuxCoreBoot0 where ROM code will jump and start executing
* on secondary core once out of WFE
* A barrier is added to ensure that write buffer is drained
*/
__raw_writel
(
virt_to_phys
(
omap_secondary_startup
),
\
OMAP4_AUXCOREBOOT_REG0
);
smp_wmb
();
/*
* Send a 'sev' to wake the secondary core from WFE.
*/
set_event
();
mb
();
}
/*
* Initialise the CPU possible map early - this describes the CPUs
* which may be present or become present in the system.
*/
void
__init
smp_init_cpus
(
void
)
{
unsigned
int
i
,
ncores
=
get_core_count
();
for
(
i
=
0
;
i
<
ncores
;
i
++
)
set_cpu_possible
(
i
,
true
);
}
void
__init
smp_prepare_cpus
(
unsigned
int
max_cpus
)
{
unsigned
int
ncores
=
get_core_count
();
unsigned
int
cpu
=
smp_processor_id
();
int
i
;
/* sanity check */
if
(
ncores
==
0
)
{
printk
(
KERN_ERR
"OMAP4: strange core count of 0? Default to 1
\n
"
);
ncores
=
1
;
}
if
(
ncores
>
NR_CPUS
)
{
printk
(
KERN_WARNING
"OMAP4: no. of cores (%d) greater than configured "
"maximum of %d - clipping
\n
"
,
ncores
,
NR_CPUS
);
ncores
=
NR_CPUS
;
}
smp_store_cpu_info
(
cpu
);
/*
* are we trying to boot more cores than exist?
*/
if
(
max_cpus
>
ncores
)
max_cpus
=
ncores
;
/*
* Initialise the present map, which describes the set of CPUs
* actually populated at the present time.
*/
for
(
i
=
0
;
i
<
max_cpus
;
i
++
)
set_cpu_present
(
i
,
true
);
if
(
max_cpus
>
1
)
{
/*
* Enable the local timer or broadcast device for the
* boot CPU, but only if we have more than one CPU.
*/
percpu_timer_setup
();
/*
* Initialise the SCU and wake up the secondary core using
* wakeup_secondary().
*/
scu_enable
(
scu_base
);
wakeup_secondary
();
}
}
arch/arm/mach-omap2/timer-gp.c
浏览文件 @
1ee73784
...
@@ -38,6 +38,7 @@
...
@@ -38,6 +38,7 @@
#include <asm/mach/time.h>
#include <asm/mach/time.h>
#include <mach/dmtimer.h>
#include <mach/dmtimer.h>
#include <asm/localtimer.h>
/* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
/* MAX_GPTIMER_ID: number of GPTIMERs on the chip */
#define MAX_GPTIMER_ID 12
#define MAX_GPTIMER_ID 12
...
@@ -229,6 +230,9 @@ static void __init omap2_gp_clocksource_init(void)
...
@@ -229,6 +230,9 @@ static void __init omap2_gp_clocksource_init(void)
static
void
__init
omap2_gp_timer_init
(
void
)
static
void
__init
omap2_gp_timer_init
(
void
)
{
{
#ifdef CONFIG_LOCAL_TIMERS
twd_base
=
IO_ADDRESS
(
OMAP44XX_LOCAL_TWD_BASE
);
#endif
omap_dm_timer_init
();
omap_dm_timer_init
();
omap2_gp_clockevent_init
();
omap2_gp_clockevent_init
();
...
...
arch/arm/mach-omap2/timer-mpu.c
0 → 100644
浏览文件 @
1ee73784
/*
* The MPU local timer source file. In OMAP4, both cortex-a9 cores have
* own timer in it's MPU domain. These timers will be driving the
* linux kernel SMP tick framework when active. These timers are not
* part of the wake up domain.
*
* Copyright (C) 2009 Texas Instruments, Inc.
*
* Author:
* Santosh Shilimkar <santosh.shilimkar@ti.com>
*
* This file is based on arm realview smp platform file.
* Copyright (C) 2002 ARM Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/init.h>
#include <linux/smp.h>
#include <linux/clockchips.h>
#include <asm/irq.h>
#include <asm/smp_twd.h>
#include <asm/localtimer.h>
/*
* Setup the local clock events for a CPU.
*/
void
__cpuinit
local_timer_setup
(
struct
clock_event_device
*
evt
)
{
evt
->
irq
=
INT_44XX_LOCALTIMER_IRQ
;
twd_timer_setup
(
evt
);
}
arch/arm/plat-omap/include/mach/entry-macro.S
浏览文件 @
1ee73784
...
@@ -136,6 +136,34 @@
...
@@ -136,6 +136,34 @@
cmpne
\
irqnr
,
\
tmp
cmpne
\
irqnr
,
\
tmp
cmpcs
\
irqnr
,
\
irqnr
cmpcs
\
irqnr
,
\
irqnr
.
endm
.
endm
/
*
We
assume
that
irqstat
(
the
raw
value
of
the
IRQ
acknowledge
*
register
)
is
preserved
from
the
macro
above
.
*
If
there
is
an
IPI
,
we
immediately
signal
end
of
interrupt
*
on
the
controller
,
since
this
requires
the
original
irqstat
*
value
which
we
won
't easily be able to recreate later.
*/
.
macro
test_for_ipi
,
irqnr
,
irqstat
,
base
,
tmp
bic
\
irqnr
,
\
irqstat
,
#
0x1c00
cmp
\
irqnr
,
#
16
it
cc
strcc
\
irqstat
,
[
\
base
,
#
GIC_CPU_EOI
]
it
cs
cmpcs
\
irqnr
,
\
irqnr
.
endm
/
*
As
above
,
this
assumes
that
irqstat
and
base
are
preserved
*/
.
macro
test_for_ltirq
,
irqnr
,
irqstat
,
base
,
tmp
bic
\
irqnr
,
\
irqstat
,
#
0x1c00
mov
\
tmp
,
#
0
cmp
\
irqnr
,
#
29
itt
eq
moveq
\
tmp
,
#
1
streq
\
irqstat
,
[
\
base
,
#
GIC_CPU_EOI
]
cmp
\
tmp
,
#
0
.
endm
#endif
#endif
.
macro
irq_prio_table
.
macro
irq_prio_table
...
...
arch/arm/plat-omap/include/mach/irqs.h
浏览文件 @
1ee73784
...
@@ -427,6 +427,8 @@
...
@@ -427,6 +427,8 @@
#define IRQ_GIC_START 32
#define IRQ_GIC_START 32
#define INT_44XX_LOCALTIMER_IRQ 29
#define INT_44XX_LOCALWDT_IRQ 30
#define INT_44XX_BENCH_MPU_EMUL (3 + IRQ_GIC_START)
#define INT_44XX_BENCH_MPU_EMUL (3 + IRQ_GIC_START)
#define INT_44XX_SSM_ABORT_IRQ (6 + IRQ_GIC_START)
#define INT_44XX_SSM_ABORT_IRQ (6 + IRQ_GIC_START)
...
...
arch/arm/plat-omap/include/mach/smp.h
0 → 100644
浏览文件 @
1ee73784
/*
* OMAP4 machine specific smp.h
*
* Copyright (C) 2009 Texas Instruments, Inc.
*
* Author:
* Santosh Shilimkar <santosh.shilimkar@ti.com>
*
* Interface functions needed for the SMP. This file is based on arm
* realview smp platform.
* Copyright (c) 2003 ARM Limited.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef OMAP_ARCH_SMP_H
#define OMAP_ARCH_SMP_H
#include <asm/hardware/gic.h>
/*
* set_event() is used to wake up secondary core from wfe using sev. ROM
* code puts the second core into wfe(standby).
*
*/
#define set_event() __asm__ __volatile__ ("sev" : : : "memory")
/* Needed for secondary core boot */
extern
void
omap_secondary_startup
(
void
);
/*
* We use Soft IRQ1 as the IPI
*/
static
inline
void
smp_cross_call
(
const
struct
cpumask
*
mask
)
{
gic_raise_softirq
(
mask
,
1
);
}
/*
* Read MPIDR: Multiprocessor affinity register
*/
#define hard_smp_processor_id() \
({ \
unsigned int cpunum; \
__asm__("mrc p15, 0, %0, c0, c0, 5" \
: "=r" (cpunum)); \
cpunum &= 0x0F; \
})
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录