summaryrefslogtreecommitdiff
path: root/packages/linux/linux-omap2-git/beagleboard
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2008-05-07 08:33:03 +0000
committerKoen Kooi <koen@openembedded.org>2008-05-07 08:33:03 +0000
commit5aab5a001c9769866f7086e40dcd45b3f522845c (patch)
tree2f33b5891e972ed15ddbaa603316e97f77d195d1 /packages/linux/linux-omap2-git/beagleboard
parent28ecb3a1fc60732522472c0f12f8c6db2d45f2c5 (diff)
linux omap2 git: add L2 cache enable patch for beagleboard and update defconfig accordingly
Diffstat (limited to 'packages/linux/linux-omap2-git/beagleboard')
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/defconfig109
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/l2-cache.patch182
2 files changed, 220 insertions, 71 deletions
diff --git a/packages/linux/linux-omap2-git/beagleboard/defconfig b/packages/linux/linux-omap2-git/beagleboard/defconfig
index 135e9c48d2..9e2c6d4034 100644
--- a/packages/linux/linux-omap2-git/beagleboard/defconfig
+++ b/packages/linux/linux-omap2-git/beagleboard/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.25-omap1
-# Wed Apr 30 11:44:55 2008
+# Linux kernel version: 2.6.26-rc1-omap1
+# Wed May 7 10:17:18 2008
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -88,12 +88,14 @@ CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
+# CONFIG_HAVE_DMA_ATTRS is not set
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_MODVERSIONS=y
@@ -230,6 +232,10 @@ CONFIG_ARM_THUMB=y
# CONFIG_ARM_THUMBEE is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_LOCKDOWN_TO_64K_L2 is not set
+# CONFIG_CPU_LOCKDOWN_TO_128K_L2 is not set
+CONFIG_CPU_LOCKDOWN_TO_256K_L2=y
+# CONFIG_CPU_L2CACHE_DISABLE is not set
# CONFIG_CPU_BPREDICT_DISABLE is not set
CONFIG_HAS_TLS_REG=y
# CONFIG_OUTER_CACHE is not set
@@ -261,6 +267,7 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
+CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
@@ -288,6 +295,7 @@ CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_STAT_DETAILS=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
@@ -319,7 +327,6 @@ CONFIG_BINFMT_MISC=y
# Power management options
#
CONFIG_PM=y
-# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
CONFIG_PM_SLEEP=y
CONFIG_SUSPEND=y
@@ -499,6 +506,7 @@ CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set
# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
#
# User Modules And Translation Layers
@@ -588,7 +596,8 @@ CONFIG_MISC_DEVICES=y
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_OMAP_STI is not set
# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_HAVE_IDE is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
#
# SCSI device support
@@ -679,6 +688,7 @@ CONFIG_USB_ZD1201=m
# CONFIG_USB_NET_RNDIS_WLAN is not set
# CONFIG_RTL8187 is not set
# CONFIG_P54_COMMON is not set
+# CONFIG_IWLWIFI is not set
# CONFIG_IWLWIFI_LEDS is not set
CONFIG_HOSTAP=m
CONFIG_HOSTAP_FIRMWARE=y
@@ -794,6 +804,7 @@ CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_DEVKMEM=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
@@ -864,10 +875,6 @@ CONFIG_TWL4030_PWRBUTTON=y
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# SPI support
-#
CONFIG_SPI=y
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_MASTER=y
@@ -939,12 +946,41 @@ CONFIG_SSB_POSSIBLE=y
#
# Multimedia devices
#
+
+#
+# Multimedia core support
+#
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2_COMMON=y
CONFIG_VIDEO_ALLOW_V4L1=y
CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_DVB_CORE=m
+CONFIG_VIDEO_MEDIA=y
+
+#
+# Multimedia drivers
+#
+# CONFIG_MEDIA_ATTACH is not set
+CONFIG_MEDIA_TUNER=y
+# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=y
+CONFIG_MEDIA_TUNER_TDA8290=y
+CONFIG_MEDIA_TUNER_TDA9887=y
+CONFIG_MEDIA_TUNER_TEA5761=y
+CONFIG_MEDIA_TUNER_TEA5767=y
+CONFIG_MEDIA_TUNER_MT20XX=y
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=y
+CONFIG_MEDIA_TUNER_XC5000=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_V4L1=y
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEO_IR_I2C=m
+CONFIG_VIDEO_IR=m
+CONFIG_VIDEO_TVEEPROM=m
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
@@ -1022,8 +1058,6 @@ CONFIG_VIDEO_SAA5249=m
# CONFIG_VIDEO_AU0828 is not set
CONFIG_V4L_USB_DRIVERS=y
CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR=y
-CONFIG_VIDEO_PVRUSB2_ONAIR_USB2=y
CONFIG_VIDEO_PVRUSB2_SYSFS=y
# CONFIG_VIDEO_PVRUSB2_DVB is not set
# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
@@ -1048,8 +1082,6 @@ CONFIG_USB_ZR364XX=m
CONFIG_USB_STKWEBCAM=m
# CONFIG_SOC_CAMERA is not set
# CONFIG_RADIO_ADAPTERS is not set
-CONFIG_DVB_CORE=m
-CONFIG_DVB_CORE_ATTACH=y
CONFIG_DVB_CAPTURE_DRIVERS=y
# CONFIG_TTPCI_EEPROM is not set
@@ -1100,14 +1132,17 @@ CONFIG_DVB_CINERGYT2=m
#
# DVB-S (satellite) frontends
#
-CONFIG_DVB_STV0299=m
CONFIG_DVB_CX24110=m
CONFIG_DVB_CX24123=m
-CONFIG_DVB_TDA8083=m
CONFIG_DVB_MT312=m
-CONFIG_DVB_VES1X93=m
CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_TDA8083=m
CONFIG_DVB_TDA10086=m
+CONFIG_DVB_VES1X93=m
+# CONFIG_DVB_TUNER_ITD1000 is not set
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TUA6100=m
#
# DVB-T (terrestrial) frontends
@@ -1145,43 +1180,20 @@ CONFIG_DVB_BCM3510=m
CONFIG_DVB_LGDT330X=m
CONFIG_DVB_S5H1409=m
# CONFIG_DVB_AU8522 is not set
+# CONFIG_DVB_S5H1411 is not set
#
-# Tuners/PLL support
+# Digital terrestrial only tuners/PLL
#
CONFIG_DVB_PLL=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TDA827X=m
-CONFIG_DVB_TDA18271=m
-CONFIG_DVB_TUNER_QT1010=m
-CONFIG_DVB_TUNER_MT2060=m
-CONFIG_DVB_TUNER_MT2266=m
-CONFIG_DVB_TUNER_MT2131=m
CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_XC5000=m
-# CONFIG_DVB_TUNER_ITD1000 is not set
#
-# Miscellaneous devices
+# SEC control devices for DVB-S
#
CONFIG_DVB_LNBP21=m
# CONFIG_DVB_ISL6405 is not set
CONFIG_DVB_ISL6421=m
-CONFIG_DVB_TUA6100=m
-CONFIG_VIDEO_TUNER=m
-# CONFIG_VIDEO_TUNER_CUSTOMIZE is not set
-CONFIG_TUNER_XC2028=m
-CONFIG_TUNER_MT20XX=m
-CONFIG_TUNER_TDA8290=m
-CONFIG_TUNER_TEA5761=m
-CONFIG_TUNER_TEA5767=m
-CONFIG_TUNER_SIMPLE=m
-CONFIG_TUNER_TDA9887=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEO_IR_I2C=m
-CONFIG_VIDEO_IR=m
-CONFIG_VIDEO_TVEEPROM=m
CONFIG_DAB=y
CONFIG_USB_DABUSB=m
@@ -1200,6 +1212,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_SYS_FILLRECT is not set
# CONFIG_FB_SYS_COPYAREA is not set
# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
# CONFIG_FB_SYS_FOPS is not set
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
@@ -1337,18 +1350,21 @@ CONFIG_USB_DEVICEFS=y
CONFIG_USB_DEVICE_CLASS=y
# CONFIG_USB_DYNAMIC_MINORS is not set
CONFIG_USB_SUSPEND=y
-# CONFIG_USB_PERSIST is not set
# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
#
# USB Host Controller Drivers
#
+# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_EHCI_HCD=m
CONFIG_OMAP_EHCI_PHY_MODE=y
# CONFIG_OMAP_EHCI_TLL_MODE is not set
CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
# CONFIG_USB_OHCI_HCD is not set
# CONFIG_USB_SL811_HCD is not set
# CONFIG_USB_R8A66597_HCD is not set
@@ -1391,7 +1407,9 @@ CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
# CONFIG_USB_LIBUSUAL is not set
#
@@ -1437,6 +1455,7 @@ CONFIG_USB_SERIAL=m
# CONFIG_USB_SERIAL_NAVMAN is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_OTI6858 is not set
+# CONFIG_USB_SERIAL_SPCP8X5 is not set
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
@@ -1481,6 +1500,7 @@ CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_NET2280 is not set
# CONFIG_USB_GADGET_PXA2XX is not set
# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_PXA27X is not set
# CONFIG_USB_GADGET_GOKU is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
@@ -1529,6 +1549,7 @@ CONFIG_LEDS_GPIO=m
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
@@ -1754,6 +1775,7 @@ CONFIG_NLS_ISO8859_1=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_WARN_DEPRECATED=y
CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
@@ -1764,6 +1786,7 @@ CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
+# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
@@ -1887,6 +1910,8 @@ CONFIG_CRYPTO_HW=y
# Library routines
#
CONFIG_BITREVERSE=y
+# CONFIG_GENERIC_FIND_FIRST_BIT is not set
+# CONFIG_GENERIC_FIND_NEXT_BIT is not set
CONFIG_CRC_CCITT=y
CONFIG_CRC16=m
CONFIG_CRC_ITU_T=y
diff --git a/packages/linux/linux-omap2-git/beagleboard/l2-cache.patch b/packages/linux/linux-omap2-git/beagleboard/l2-cache.patch
index 7e93c29036..f35252283b 100644
--- a/packages/linux/linux-omap2-git/beagleboard/l2-cache.patch
+++ b/packages/linux/linux-omap2-git/beagleboard/l2-cache.patch
@@ -1,38 +1,162 @@
-diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
-index 15066c2..70f85c1 100644
---- a/arch/arm/mm/Kconfig
-+++ b/arch/arm/mm/Kconfig
-@@ -665,6 +665,12 @@ config CPU_CACHE_ROUND_ROBIN
- Say Y here to use the predictable round-robin cache replacement
- policy. Unless you specifically require this or are unsure, say N.
-
+From: "Syed Mohammed, Khasim" <khasim@ti.com>
+To: Koen Kooi <k.kooi@student.utwente.nl>
+CC: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
+ "Woodruff,
+ Richard" <r-woodruff2@ti.com>
+Date: Wed, 7 May 2008 13:12:13 +0530
+Subject: RE: public git l2 cache off.
+
+The below patch should get you going with L2 Cache enabled on GIT kernel, tested on Beagle board.
+
+Regards,
+Khasim
+
+
+--- my_linux_omap/arch/arm/mm/Kconfig 2008-05-06 16:37:17.000000000 +0530
++++ git/arch/arm/mm/Kconfig 2008-05-07 12:40:05.000000000 +0530
+@@ -659,6 +659,20 @@ config CPU_DCACHE_SIZE
+ If your SoC is configured to have a different size, define the value
+ here with proper conditions.
+
++choice
++ prompt "L2 Cache Size"
++ depends on ARCH_OMAP34XX
++
++config CPU_LOCKDOWN_TO_64K_L2
++ bool "Lock down L2 Cache to 64K"
++
++config CPU_LOCKDOWN_TO_128K_L2
++ bool "Lock down L2 Cache to 128K"
++
++config CPU_LOCKDOWN_TO_256K_L2
++ bool "Lock down L2 Cache to 256K"
++endchoice
++
+ config CPU_DCACHE_WRITETHROUGH
+ bool "Force write through D-cache"
+ depends on (CPU_ARM740T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM940T || CPU_ARM946E || CPU_ARM1020) && !CPU_DCACHE_DISABLE
+@@ -674,6 +688,12 @@ config CPU_CACHE_ROUND_ROBIN
+ Say Y here to use the predictable round-robin cache replacement
+ policy. Unless you specifically require this or are unsure, say N.
+
+config CPU_L2CACHE_DISABLE
-+ bool "Disable level 2 cache"
-+ depends on CPU_V7
-+ help
-+ Say Y here to disable the level 2 cache. If unsure, say N.
++ bool "Disable level 2 cache"
++ depends on CPU_V7
++ help
++ Say Y here to disable the level 2 cache. If unsure, say N.
+
config CPU_BPREDICT_DISABLE
- bool "Disable branch prediction"
- depends on CPU_ARM1020 || CPU_V6 || CPU_XSC3 || CPU_V7
-diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
-index a1d7331..432ddab 100644
---- a/arch/arm/mm/proc-v7.S
-+++ b/arch/arm/mm/proc-v7.S
-@@ -181,6 +181,16 @@ __v7_setup:
- mcr p15, 0, r4, c2, c0, 1 @ load TTB1
+ bool "Disable branch prediction"
+ depends on CPU_ARM1020 || CPU_V6 || CPU_XSC3 || CPU_V7
+
+--- /tmp/proc-v7.S 2008-05-07 10:05:37.949232951 +0200
++++ git/arch/arm/mm/proc-v7.S 2008-05-07 10:13:18.626067909 +0200
+@@ -182,11 +182,72 @@
mov r10, #0x1f @ domains 0, 1 = manager
mcr p15, 0, r10, c3, c0, 0 @ load domain access register
-+#ifndef CONFIG_CPU_L2CACHE_DISABLE
-+ @ L2 cache configuration in the L2 aux control register
-+ mrc p15, 1, r10, c9, c0, 2
-+ bic r10, r10, #(1 << 16) @ L2 outer cache
-+ mcr p15, 1, r10, c9, c0, 2
+ #endif
++#if defined(CONFIG_ARCH_OMAP3)
+ @ L2 cache is enabled in the aux control register
-+ mrc p15, 0, r10, c1, c0, 1
-+ orr r10, r10, #2
-+ mcr p15, 0, r10, c1, c0, 1
++ mrc p15, 0, r0, c1, c0, 1
++ orr r0, r0, #0x11 @ speculative+no-alais protection
++#ifdef CONFIG_CPU_L2CACHE_DISABLE
++ bic r0, r0, #0x2 @ disable L2 Cache.
++#else
++ orr r0, r0, #0x2 @ enaable L2 Cache.
+#endif
- #endif
++
++/* On 3430 ES2.0 ZeBu and silicon, Aux Ctrl Reg can be written outside
++ * Secure mode also
++ */
++ mcr p15, 0, r0, c1, c0, 1
++
++#ifdef CONFIG_ARCH_OMAP34XX
++#ifdef CONFIG_CPU_LOCKDOWN_TO_64K_L2
++ mov r10, #0xfc
++ mcr p15, 1, r10, c9, c0, 0
++#endif
++
++#ifdef CONFIG_CPU_LOCKDOWN_TO_128K_L2
++ mov r10, #0xf0
++ mcr p15, 1, r10, c9, c0, 0
++#endif
++
++#ifdef CONFIG_CPU_LOCKDOWN_TO_256K_L2
++ mov r10, #0x00
++ mcr p15, 1, r10, c9, c0, 0
++#endif
++#endif
++
adr r5, v7_crval
ldmia r5, {r5, r6}
+- mrc p15, 0, r0, c1, c0, 0 @ read control register
+- bic r0, r0, r5 @ clear bits them
+- orr r0, r0, r6 @ set them
++ mrc p15, 0, r0, c1, c0, 0 @ read control register
++ bic r0, r0, r5 @ clear bits them
++ orr r0, r0, r6 @ set them
++ mov pc, lr @ return to head.S:__ret
++
++ /*
++ * TAT N EV F H R
++ * .EFR M.EE .UI. ..A. .RVI Z... B... .CAM
++ * 0xxx x0xx 11x0 01x1 0xxx x000 0111 1xxx < forced typical
++ * r rr rr r rr r r rrr rrrr r < always read only
++ * .000 ..00 ..0. ..0. .011 1... .... .101 < we want
++ */
++ .type v7_crval, #object
++v7_crval:
++ crval clear=0x7322f006, mmuset=0x00003805, ucset=0x00001804
++#else
++
++#ifndef CONFIG_CPU_L2CACHE_DISABLE
++ @ L2 cache configuration in the L2 aux control register
++ mrc p15, 1, r10, c9, c0, 2
++ bic r10, r10, #(1 << 16) @ L2 outer cache
++ mcr p15, 1, r10, c9, c0, 2
++ @ L2 cache is enabled in the aux control register
++ mrc p15, 0, r10, c1, c0, 1
++ orr r10, r10, #2
++ mcr p15, 0, r10, c1, c0, 1
++#endif
++ mrc p15, 0, r0, c1, c0, 0 @ read control register
++ ldr r10, cr1_clear @ get mask for bits to clear
++ bic r0, r0, r10 @ clear bits them
++ ldr r10, cr1_set @ get mask for bits to set
++ orr r0, r0, r10 @ set them
+ mov pc, lr @ return to head.S:__ret
+
+ /*
+@@ -195,9 +256,13 @@
+ * rrrr rrrx xxx0 0101 xxxx xxxx x111 xxxx < forced
+ * 0 110 0011 1.00 .111 1101 < we want
+ */
+- .type v7_crval, #object
+-v7_crval:
+- crval clear=0x0120c302, mmuset=0x00c0387d, ucset=0x00c0187c
++ .type cr1_clear, #object
++ .type cr1_set, #object
++cr1_clear:
++ .word 0x0120c302
++cr1_set:
++ .word 0x00c0387d
++#endif
+
+ __v7_setup_stack:
+ .space 4 * 11 @ 11 registers
+@@ -205,7 +270,6 @@
+ .type v7_processor_functions, #object
+ ENTRY(v7_processor_functions)
+ .word v7_early_abort
+- .word pabort_ifar
+ .word cpu_v7_proc_init
+ .word cpu_v7_proc_fin
+ .word cpu_v7_reset
+@@ -213,6 +277,7 @@
+ .word cpu_v7_dcache_clean_area
+ .word cpu_v7_switch_mm
+ .word cpu_v7_set_pte_ext
++ .word pabort_ifar
+ .size v7_processor_functions, . - v7_processor_functions
+
+ .type cpu_arch_name, #object