diff options
| author | Richard Purdie <rpurdie@rpsys.net> | 2005-08-22 15:05:58 +0000 |
|---|---|---|
| committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-08-22 15:05:58 +0000 |
| commit | 47632ce0ea60e766909f004d75e4cf7a266c62c6 (patch) | |
| tree | 48a6d23dce09e1cc819c00165f2fec4feee439c8 /packages/linux | |
| parent | 2dc09e524df860dc15c5a8b3093711c57d62f600 (diff) | |
| parent | b6fab8d87d9b8ff470fb0b99658d807e6afe4b56 (diff) | |
merge of 0bcaa551d84ba78a6e2e40137eb0e4ff36d0b68e
and 3c029d760d1bb441a3632db0b6ea12f2d8a5ad37
Diffstat (limited to 'packages/linux')
41 files changed, 70011 insertions, 8 deletions
diff --git a/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-c7x0 b/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-c7x0 index b993f2ac26..459f46dffd 100644 --- a/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-c7x0 +++ b/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-c7x0 @@ -1075,7 +1075,8 @@ CONFIG_USB_DEVICEFS=y # USB Host Controller Drivers # # CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_SL811_HCD is not set +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m # # USB Device Class drivers diff --git a/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-spitz b/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-spitz index a388797b6e..80d48ddb74 100644 --- a/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-spitz +++ b/packages/linux/linux-openzaurus-2.6.13-rc5-mm1/defconfig-spitz @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.13-rc5-mm1 -# Sun Aug 14 22:04:01 2005 +# Mon Aug 22 10:54:13 2005 # CONFIG_ARM=y CONFIG_MMU=y @@ -256,6 +256,7 @@ CONFIG_IRDA=m # IrDA protocols # CONFIG_IRLAN=m +CONFIG_IRNET=m CONFIG_IRCOMM=m # CONFIG_IRDA_ULTRA is not set @@ -291,6 +292,8 @@ CONFIG_IRCOMM=m # # FIR device drivers # +# CONFIG_USB_IRDA is not set +# CONFIG_SIGMATEL_FIR is not set # CONFIG_NSC_FIR is not set # CONFIG_WINBOND_FIR is not set # CONFIG_SMC_IRCC_FIR is not set @@ -310,10 +313,14 @@ CONFIG_BT_HIDP=m # # Bluetooth device drivers # +# CONFIG_BT_HCIUSB is not set CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_BCSP_TXCRC=y +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIBT3C=m CONFIG_BT_HCIBLUECARD=m @@ -422,6 +429,7 @@ CONFIG_MTD_NAND_SHARPSL=y CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_INITRAMFS_SOURCE="" @@ -452,6 +460,7 @@ CONFIG_BLK_DEV_IDECS=y # CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_IDE_TASK_IOCTL is not set # @@ -466,7 +475,47 @@ CONFIG_IDE_GENERIC=y # # SCSI device support # -# CONFIG_SCSI is not set +CONFIG_SCSI=m +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=m +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set + +# +# SCSI Transport Attributes +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set + +# +# SCSI low-level drivers +# +# CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_DEBUG is not set + +# +# PCMCIA SCSI adapter support +# +# CONFIG_PCMCIA_AHA152X is not set +# CONFIG_PCMCIA_FDOMAIN is not set +# CONFIG_PCMCIA_NINJA_SCSI is not set +# CONFIG_PCMCIA_QLOGIC is not set +# CONFIG_PCMCIA_SYM53C500 is not set # # Multi-device support (RAID and LVM) @@ -554,7 +603,7 @@ CONFIG_NET_PCMCIA=y # CONFIG_PCMCIA_3C589 is not set # CONFIG_PCMCIA_3C574 is not set # CONFIG_PCMCIA_FMVJ18X is not set -# CONFIG_PCMCIA_PCNET is not set +CONFIG_PCMCIA_PCNET=m # CONFIG_PCMCIA_NMCLAN is not set # CONFIG_PCMCIA_SMC91C92 is not set # CONFIG_PCMCIA_XIRC2PS is not set @@ -631,8 +680,11 @@ CONFIG_HW_CONSOLE=y # # Serial drivers -# -# CONFIG_SERIAL_8250 is not set +# +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set # # Non-8250 serial port support @@ -765,12 +817,150 @@ CONFIG_BACKLIGHT_CORGI=y # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y -# CONFIG_USB is not set +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +# CONFIG_USB_DEVICEFS is not set +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# + +# +# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_MTOUCH is not set +# CONFIG_USB_ITMTOUCH is not set +# CONFIG_USB_EGALAX is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB Multimedia devices +# +# CONFIG_USB_DABUSB is not set + +# +# Video4Linux support is needed for USB Multimedia device support +# + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_ZD1201 is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_GOTEMP is not set +# CONFIG_USB_PHIDGETKIT is not set +# CONFIG_USB_PHIDGETSERVO is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_LD is not set + +# +# USB DSL modem support +# # # USB Gadget Support # -# CONFIG_USB_GADGET is not set +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +CONFIG_USB_GADGET_DUMMY_HCD=y +CONFIG_USB_DUMMY_HCD=m +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 # # MMC/SD Card support diff --git a/packages/linux/linux-openzaurus_2.6.13-rc5-mm1.bb b/packages/linux/linux-openzaurus_2.6.13-rc5-mm1.bb index cc9f4dc6d8..62d6350e16 100644 --- a/packages/linux/linux-openzaurus_2.6.13-rc5-mm1.bb +++ b/packages/linux/linux-openzaurus_2.6.13-rc5-mm1.bb @@ -135,6 +135,7 @@ COMPATIBLE_HOST = "arm.*-linux" CMDLINE_CON = "console=ttyS0,115200n8 console=tty1 noinitrd" CMDLINE_ROOT = "root=/dev/mtdblock2 rootfstype=jffs2 " CMDLINE_ROOT_poodle = "root=/dev/mtdblock1 rootfstype=jffs2 " +CMDLINE_ROOT_spitz = "root=/dev/hda1 rootfstype=ext3 " ############################################################## # Configure memory/ramdisk split for collie diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050602/.mtn2git_empty b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050602/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050602/.mtn2git_empty diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050602/1764-1.patch b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050602/1764-1.patch new file mode 100644 index 0000000000..0b660f3521 --- /dev/null +++ b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050602/1764-1.patch @@ -0,0 +1,16 @@ +__arch_strncpy_from_user needs to be exported if you build the framebuffer console driver as a module. + +Cheers, + +Ian. + +--- linux-2.6-bkpxa.orig/arch/arm/kernel/armksyms.c 2004-02-27 10:35:29.000000000 +0000 ++++ linux-2.6-bkpxa/arch/arm/kernel/armksyms.c 2004-02-27 14:55:02.000000000 +0000 +@@ -187,6 +187,7 @@ + EXPORT_SYMBOL(__arch_copy_to_user); + EXPORT_SYMBOL(__arch_clear_user); + EXPORT_SYMBOL(__arch_strnlen_user); ++EXPORT_SYMBOL(__arch_strncpy_from_user); + + /* consistent area handling */ + EXPORT_SYMBOL(consistent_alloc); diff --git a/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050602/CPAR050218.patch b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050602/CPAR050218.patch new file mode 100644 index 0000000000..a0b866219b --- /dev/null +++ b/packages/linux/openzaurus-pxa27x-2.4.20-rmk2-embedix20050602/CPAR050218.patch @@ -0,0 +1,422 @@ +--- 050125/include/asm-arm/proc-armv/ptrace.h Tue Jan 25 00:22:44 2005 ++++ 050218/include/asm-arm/proc-armv/ptrace.h Thu Feb 17 16:13:54 2005 +@@ -40,6 +40,10 @@ + + struct pt_regs { + long uregs[18]; ++#if defined(CONFIG_CPU_PXA27X) ++ long cpar; ++ long mmx[ 16*2 + 6 + 1 ]; ++#endif + }; + + #define ARM_cpsr uregs[16] +--- 050125/include/asm-arm/sigcontext.h Tue Jan 25 00:22:42 2005 ++++ 050218/include/asm-arm/sigcontext.h Thu Feb 17 18:16:28 2005 +@@ -28,6 +28,10 @@ + unsigned long arm_pc; + unsigned long arm_cpsr; + unsigned long fault_address; ++#if defined(CONFIG_CPU_PXA27X) ++ unsigned long arm_cpar; ++ unsigned long arm_mmx[ 16*2 + 6 + 1 ]; ++#endif + }; + + +--- 050125/include/asm-arm/elf.h Tue Jan 25 00:54:49 2005 ++++ 050218/include/asm-arm/elf.h Thu Feb 17 16:19:02 2005 +@@ -1,6 +1,8 @@ + #ifndef __ASMARM_ELF_H + #define __ASMARM_ELF_H + ++#include <linux/config.h> ++ + /* + * ELF register definitions.. + */ +@@ -14,6 +16,7 @@ + + #define EM_ARM 40 + #define EF_ARM_APCS26 0x08 ++#define EF_ARM_SOFT_FLOAT 0x200 + + #define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) + typedef elf_greg_t elf_gregset_t[ELF_NGREG]; +--- 050125/arch/arm/kernel/entry-armv.S Tue Jan 25 00:21:45 2005 ++++ 050218/arch/arm/kernel/entry-armv.S Fri Feb 18 07:29:34 2005 +@@ -271,7 +271,7 @@ + tst \irqstat, #IRQ_MASK_DOORBELLHOST + movne \irqnr, #IRQ_DOORBELLHOST + bne 1001f +- ++ + tst \irqstat, #IRQ_MASK_I2OINPOST + movne \irqnr, #IRQ_I2OINPOST + bne 1001f +@@ -494,12 +494,12 @@ + + #elif defined(CONFIG_ARCH_L7200) + #include <asm/hardware.h> +- ++ + .equ irq_base_addr, IO_BASE_2 + + .macro disable_fiq + .endm +- ++ + .macro get_irqnr_and_base, irqnr, irqstat, base, tmp + mov \irqstat, #irq_base_addr @ Virt addr IRQ regs + add \irqstat, \irqstat, #0x00001000 @ Status reg +@@ -589,7 +589,7 @@ + .endm + + .macro get_irqnr_and_base, irqnr, irqstat, base, tmp +- ++ + /* Read all interrupts pending... */ + ldr \irqnr, =IO_ADDRESS(PLAT_PERIPHERAL_BASE) + OMAHA_INTPND + ldr \irqstat, [\irqnr] /* INTPND */ +@@ -607,7 +607,7 @@ + .endm + + .macro irq_prio_table +- .endm ++ .endm + + #elif defined(CONFIG_ARCH_CLPS711X) + +@@ -654,23 +654,23 @@ + + .macro irq_prio_table + .endm +- ++ + #elif defined (CONFIG_ARCH_CAMELOT) + #include <asm/arch/platform.h> + #undef IRQ_MODE /* same name defined in asm/proc/ptrace.h */ + #include <asm/arch/int_ctrl00.h> +- ++ + .macro disable_fiq + .endm + + .macro get_irqnr_and_base, irqnr, irqstat, base, tmp +- ++ + ldr \irqstat, =INT_ID(IO_ADDRESS(EXC_INT_CTRL00_BASE)) +- ldr \irqnr,[\irqstat] ++ ldr \irqnr,[\irqstat] + cmp \irqnr,#0 + subne \irqnr,\irqnr,#1 + +- ++ + .endm + + .macro irq_prio_table +@@ -910,7 +910,7 @@ + mov pc, r7 @ check, if this is a relevant code + cmp r0, #0 @ check return value + beq 1f @ else let linux do what it has to do +-2: ++2: + #endif + #ifndef CONFIG_KGDB + adrsvc al, r9, 1f @ r9 = normal FP return +@@ -977,6 +977,9 @@ + stmia r5, {r2 - r4} @ Save USR pc, cpsr, old_r0 + stmdb r5, {sp, lr}^ + alignment_trap r7, r7, __temp_abt ++#ifdef CONFIG_CPU_PXA27X ++ save_user_mmx ++#endif + zero_fp + mov r0, r2 @ remove once everyones in sync + #ifdef MULTI_CPU +@@ -1001,6 +1004,9 @@ + stmia r8, {r5 - r7} @ save pc, psr, old_r0 + stmdb r8, {sp, lr}^ + alignment_trap r4, r7, __temp_irq ++#ifdef CONFIG_CPU_PXA27X ++ save_user_mmx ++#endif + zero_fp + get_current_task tsk + #ifdef CONFIG_PREEMPT +@@ -1039,6 +1045,9 @@ + stmia r8, {r5 - r7} @ Save USR pc, cpsr, old_r0 + stmdb r8, {sp, lr}^ @ Save user sp, lr + alignment_trap r4, r7, __temp_und ++#ifdef CONFIG_CPU_PXA27X ++ save_user_mmx ++#endif + zero_fp + tst r6, #T_BIT @ Thumb mode + bne fpundefinstr +@@ -1068,6 +1077,9 @@ + stmia r8, {r5 - r7} @ Save USR pc, cpsr, old_r0 + stmdb r8, {sp, lr}^ @ Save sp_usr lr_usr + alignment_trap r4, r7, __temp_abt ++#ifdef CONFIG_CPU_PXA27X ++ save_user_mmx ++#endif + zero_fp + mov r0, #MODE_SVC + msr cpsr_c, r0 @ Enable interrupts +@@ -1394,7 +1406,7 @@ + stmfd sp!, {r4, r5} + #endif + mrc p15, 0, r2, c3, c0 +- str r2, [sp, #-4]! ++ str r2, [sp, #-4]! + + ldr r2, [r0] + str sp, [r2] +--- 050125/arch/arm/kernel/entry-header.S Tue Jan 25 00:21:45 2005 ++++ 050218/arch/arm/kernel/entry-header.S Thu Feb 17 20:15:24 2005 +@@ -42,9 +42,44 @@ + @ Stack format (ensured by USER_* and SVC_*) + @ + #ifdef CONFIG_CPU_32 +-#define S_FRAME_SIZE 72 +-#define S_OLD_R0 68 +-#define S_PSR 64 ++#ifdef CONFIG_CPU_PXA27X ++ #define S_MMX 80 ++ ++ #define MMX_WR0 (0x00) ++ #define MMX_WR1 (0x08) ++ #define MMX_WR2 (0x10) ++ #define MMX_WR3 (0x18) ++ #define MMX_WR4 (0x20) ++ #define MMX_WR5 (0x28) ++ #define MMX_WR6 (0x30) ++ #define MMX_WR7 (0x38) ++ #define MMX_WR8 (0x40) ++ #define MMX_WR9 (0x48) ++ #define MMX_WR10 (0x50) ++ #define MMX_WR11 (0x58) ++ #define MMX_WR12 (0x60) ++ #define MMX_WR13 (0x68) ++ #define MMX_WR14 (0x70) ++ #define MMX_WR15 (0x78) ++ #define MMX_WCSSF (0x80) ++ #define MMX_WCASF (0x84) ++ #define MMX_WCGR0 (0x88) ++ #define MMX_WCGR1 (0x8C) ++ #define MMX_WCGR2 (0x90) ++ #define MMX_WCGR3 (0x94) ++ ++ #define MMX_SIZE (0x98) ++ ++ #define S_FRAME_SIZE (76+4+MMX_SIZE) ++ ++ #define S_CPAR 72 ++ #define S_OLD_R0 68 ++ #define S_PSR 64 ++#else ++ #define S_FRAME_SIZE 72 ++ #define S_OLD_R0 68 ++ #define S_PSR 64 ++#endif + #else + #define S_FRAME_SIZE 68 + #define S_OLD_R0 64 +@@ -88,6 +123,43 @@ + set_cpsr_c \temp, #MODE_SVC + .endm + ++#ifdef CONFIG_CPU_PXA27X ++ .macro save_user_mmx ++ mrc p15, 0, r0, c15, c1, 0 ++ str r0, [sp, #S_CPAR] @ Save CPAR ++ cmp r0, #3 ++ bne 1f ++ add r0,sp,#S_MMX @ StoreMMX ++ bic r0, r0, #7 ++ wstrw wCSSF, [r0, #MMX_WCSSF] ++ wstrw wCASF, [r0, #MMX_WCASF] ++ wstrw wCGR0, [r0, #MMX_WCGR0] ++ wstrw wCGR1, [r0, #MMX_WCGR1] ++ wstrw wCGR2, [r0, #MMX_WCGR2] ++ wstrw wCGR3, [r0, #MMX_WCGR3] ++ wstrd wR0, [r0, #MMX_WR0] ++ wstrd wR1, [r0, #MMX_WR1] ++ wstrd wR2, [r0, #MMX_WR2] ++ wstrd wR3, [r0, #MMX_WR3] ++ wstrd wR4, [r0, #MMX_WR4] ++ wstrd wR5, [r0, #MMX_WR5] ++ wstrd wR6, [r0, #MMX_WR6] ++ wstrd wR7, [r0, #MMX_WR7] ++ wstrd wR8, [r0, #MMX_WR8] ++ wstrd wR9, [r0, #MMX_WR9] ++ wstrd wR10, [r0, #MMX_WR10] ++ wstrd wR11, [r0, #MMX_WR11] ++ wstrd wR12, [r0, #MMX_WR12] ++ wstrd wR13, [r0, #MMX_WR13] ++ wstrd wR14, [r0, #MMX_WR14] ++ wstrd wR15, [r0, #MMX_WR15] ++1: ++ mov r0, #1 ++ mcr p15, 0, r0, c15, c1, 0 @ CP0 Only. ++ ldr r0, [sp] @ Restore R0 ++ .endm ++#endif ++ + .macro save_user_regs + sub sp, sp, #S_FRAME_SIZE + stmia sp, {r0 - r12} @ Calling r0 - r12 +@@ -97,12 +169,44 @@ + str lr, [sp, #S_PC] @ Save calling PC + str r8, [sp, #S_PSR] @ Save CPSR + str r0, [sp, #S_OLD_R0] @ Save OLD_R0 ++ save_user_mmx + .endm + + /* + * Must be called with IRQs already disabled. + */ + .macro restore_user_regs ++#ifdef CONFIG_CPU_PXA27X ++ ldr r1, [sp, #S_CPAR] ++ mcr p15, 0, r1, c15, c1, 0 ++ cmp r1, #3 ++ bne 2f ++ add r1,sp,#S_MMX @ LoadMMX ++ bic r1, r1, #7 ++ wldrd wR0, [r1, #MMX_WR0] ++ wldrd wR1, [r1, #MMX_WR1] ++ wldrd wR2, [r1, #MMX_WR2] ++ wldrd wR3, [r1, #MMX_WR3] ++ wldrd wR4, [r1, #MMX_WR4] ++ wldrd wR5, [r1, #MMX_WR5] ++ wldrd wR6, [r1, #MMX_WR6] ++ wldrd wR7, [r1, #MMX_WR7] ++ wldrd wR8, [r1, #MMX_WR8] ++ wldrd wR9, [r1, #MMX_WR9] ++ wldrd wR10, [r1, #MMX_WR10] ++ wldrd wR11, [r1, #MMX_WR11] ++ wldrd wR12, [r1, #MMX_WR12] ++ wldrd wR13, [r1, #MMX_WR13] ++ wldrd wR14, [r1, #MMX_WR14] ++ wldrd wR15, [r1, #MMX_WR15] ++ wldrw wCSSF, [r1, #MMX_WCSSF] ++ wldrw wCASF, [r1, #MMX_WCASF] ++ wldrw wCGR0, [r1, #MMX_WCGR0] ++ wldrw wCGR1, [r1, #MMX_WCGR1] ++ wldrw wCGR2, [r1, #MMX_WCGR2] ++ wldrw wCGR3, [r1, #MMX_WCGR3] ++2: ++#endif + ldr r1, [sp, #S_PSR] @ Get calling cpsr + ldr lr, [sp, #S_PC]! @ Get PC + msr spsr, r1 @ save in spsr_svc +@@ -116,6 +220,37 @@ + * Must be called with IRQs already disabled. + */ + .macro fast_restore_user_regs ++#ifdef CONFIG_CPU_PXA27X ++ ldr r1, [sp, #S_OFF + S_CPAR] ++ mcr p15, 0, r1, c15, c1, 0 ++ cmp r1, #3 ++ bne 3f ++ add r1,sp,#S_OFF + S_MMX @ LoadMMX ++ bic r1, r1, #7 ++ wldrd wR0, [r1, #MMX_WR0] ++ wldrd wR1, [r1, #MMX_WR1] ++ wldrd wR2, [r1, #MMX_WR2] ++ wldrd wR3, [r1, #MMX_WR3] ++ wldrd wR4, [r1, #MMX_WR4] ++ wldrd wR5, [r1, #MMX_WR5] ++ wldrd wR6, [r1, #MMX_WR6] ++ wldrd wR7, [r1, #MMX_WR7] ++ wldrd wR8, [r1, #MMX_WR8] ++ wldrd wR9, [r1, #MMX_WR9] ++ wldrd wR10, [r1, #MMX_WR10] ++ wldrd wR11, [r1, #MMX_WR11] ++ wldrd wR12, [r1, #MMX_WR12] ++ wldrd wR13, [r1, #MMX_WR13] ++ wldrd wR14, [r1, #MMX_WR14] ++ wld |
