diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 12:16:56 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 12:16:56 -0400 |
| commit | 5a439c565799cb8d290d71ce375e86be64d43a4b (patch) | |
| tree | b7933dced01add02249af35f5497e77cd11dbfdf /include/asm-xtensa | |
| parent | 94b6da5ab8293b04a300ba35c72eddfa94db8b02 (diff) | |
| parent | 0025427eee4b5c005b4ac7a6489adc773e38611d (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/czankel/xtensa-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/czankel/xtensa-2.6:
xtensa: Add config files for Diamond 232L - Rev B processor variant
xtensa: Fix io regions
xtensa: Add support for the Sonic Ethernet device for the XT2000 board.
xtensa: replace remaining __FUNCTION__ occurrences
xtensa: use newer __SPIN_LOCK_UNLOCKED macro
XTENSA: warn about including <asm/rwsem.h> directly.
Diffstat (limited to 'include/asm-xtensa')
| -rw-r--r-- | include/asm-xtensa/io.h | 8 | ||||
| -rw-r--r-- | include/asm-xtensa/rwsem.h | 4 | ||||
| -rw-r--r-- | include/asm-xtensa/variant-dc232b/core.h | 424 | ||||
| -rw-r--r-- | include/asm-xtensa/variant-dc232b/tie-asm.h | 122 | ||||
| -rw-r--r-- | include/asm-xtensa/variant-dc232b/tie.h | 131 |
5 files changed, 686 insertions, 3 deletions
diff --git a/include/asm-xtensa/io.h b/include/asm-xtensa/io.h index 47c3616ea9a..07b7299dab2 100644 --- a/include/asm-xtensa/io.h +++ b/include/asm-xtensa/io.h | |||
| @@ -18,10 +18,12 @@ | |||
| 18 | 18 | ||
| 19 | #include <linux/types.h> | 19 | #include <linux/types.h> |
| 20 | 20 | ||
| 21 | #define XCHAL_KIO_CACHED_VADDR 0xf0000000 | 21 | #define XCHAL_KIO_CACHED_VADDR 0xe0000000 |
| 22 | #define XCHAL_KIO_BYPASS_VADDR 0xf8000000 | 22 | #define XCHAL_KIO_BYPASS_VADDR 0xf0000000 |
| 23 | #define XCHAL_KIO_PADDR 0xf0000000 | 23 | #define XCHAL_KIO_PADDR 0xf0000000 |
| 24 | #define XCHAL_KIO_SIZE 0x08000000 | 24 | #define XCHAL_KIO_SIZE 0x10000000 |
| 25 | |||
| 26 | #define IOADDR(x) (XCHAL_KIO_BYPASS_VADDR + (x)) | ||
| 25 | 27 | ||
| 26 | /* | 28 | /* |
| 27 | * swap functions to change byte order from little-endian to big-endian and | 29 | * swap functions to change byte order from little-endian to big-endian and |
diff --git a/include/asm-xtensa/rwsem.h b/include/asm-xtensa/rwsem.h index 0aad3a58755..e39edf5c86f 100644 --- a/include/asm-xtensa/rwsem.h +++ b/include/asm-xtensa/rwsem.h | |||
| @@ -13,6 +13,10 @@ | |||
| 13 | #ifndef _XTENSA_RWSEM_H | 13 | #ifndef _XTENSA_RWSEM_H |
| 14 | #define _XTENSA_RWSEM_H | 14 | #define _XTENSA_RWSEM_H |
| 15 | 15 | ||
| 16 | #ifndef _LINUX_RWSEM_H | ||
| 17 | #error "Please don't include <asm/rwsem.h> directly, use <linux/rwsem.h> instead." | ||
| 18 | #endif | ||
| 19 | |||
| 16 | #include <linux/list.h> | 20 | #include <linux/list.h> |
| 17 | #include <linux/spinlock.h> | 21 | #include <linux/spinlock.h> |
| 18 | #include <asm/atomic.h> | 22 | #include <asm/atomic.h> |
diff --git a/include/asm-xtensa/variant-dc232b/core.h b/include/asm-xtensa/variant-dc232b/core.h new file mode 100644 index 00000000000..525bd3d9015 --- /dev/null +++ b/include/asm-xtensa/variant-dc232b/core.h | |||
| @@ -0,0 +1,424 @@ | |||
| 1 | /* | ||
| 2 | * Xtensa processor core configuration information. | ||
| 3 | * | ||
| 4 | * This file is subject to the terms and conditions of the GNU General Public | ||
| 5 | * License. See the file "COPYING" in the main directory of this archive | ||
| 6 | * for more details. | ||
| 7 | * | ||
| 8 | * Copyright (c) 1999-2007 Tensilica Inc. | ||
| 9 | */ | ||
| 10 | |||
| 11 | #ifndef _XTENSA_CORE_CONFIGURATION_H | ||
| 12 | #define _XTENSA_CORE_CONFIGURATION_H | ||
| 13 | |||
| 14 | |||
| 15 | /**************************************************************************** | ||
| 16 | Parameters Useful for Any Code, USER or PRIVILEGED | ||
| 17 | ****************************************************************************/ | ||
| 18 | |||
| 19 | /* | ||
| 20 | * Note: Macros of the form XCHAL_HAVE_*** have a value of 1 if the option is | ||
| 21 | * configured, and a value of 0 otherwise. These macros are always defined. | ||
| 22 | */ | ||
| 23 | |||
| 24 | |||
| 25 | /*---------------------------------------------------------------------- | ||
| 26 | ISA | ||
| 27 | ----------------------------------------------------------------------*/ | ||
| 28 | |||
| 29 | #define XCHAL_HAVE_BE 0 /* big-endian byte ordering */ | ||
| 30 | #define XCHAL_HAVE_WINDOWED 1 /* windowed registers option */ | ||
| 31 | #define XCHAL_NUM_AREGS 32 /* num of physical addr regs */ | ||
| 32 | #define XCHAL_NUM_AREGS_LOG2 5 /* log2(XCHAL_NUM_AREGS) */ | ||
| 33 | #define XCHAL_MAX_INSTRUCTION_SIZE 3 /* max instr bytes (3..8) */ | ||
| 34 | #define XCHAL_HAVE_DEBUG 1 /* debug option */ | ||
| 35 | #define XCHAL_HAVE_DENSITY 1 /* 16-bit instructions */ | ||
| 36 | #define XCHAL_HAVE_LOOPS 1 /* zero-overhead loops */ | ||
| 37 | #define XCHAL_HAVE_NSA 1 /* NSA/NSAU instructions */ | ||
| 38 | #define XCHAL_HAVE_MINMAX 1 /* MIN/MAX instructions */ | ||
| 39 | #define XCHAL_HAVE_SEXT 1 /* SEXT instruction */ | ||
| 40 | #define XCHAL_HAVE_CLAMPS 1 /* CLAMPS instruction */ | ||
| 41 | #define XCHAL_HAVE_MUL16 1 /* MUL16S/MUL16U instructions */ | ||
| 42 | #define XCHAL_HAVE_MUL32 1 /* MULL instruction */ | ||
| 43 | #define XCHAL_HAVE_MUL32_HIGH 0 /* MULUH/MULSH instructions */ | ||
| 44 | #define XCHAL_HAVE_DIV32 1 /* QUOS/QUOU/REMS/REMU instructions */ | ||
| 45 | #define XCHAL_HAVE_L32R 1 /* L32R instruction */ | ||
| 46 | #define XCHAL_HAVE_ABSOLUTE_LITERALS 1 /* non-PC-rel (extended) L32R */ | ||
| 47 | #define XCHAL_HAVE_CONST16 0 /* CONST16 instruction */ | ||
| 48 | #define XCHAL_HAVE_ADDX 1 /* ADDX#/SUBX# instructions */ | ||
| 49 | #define XCHAL_HAVE_WIDE_BRANCHES 0 /* B*.W18 or B*.W15 instr's */ | ||
| 50 | #define XCHAL_HAVE_PREDICTED_BRANCHES 0 /* B[EQ/EQZ/NE/NEZ]T instr's */ | ||
| 51 | #define XCHAL_HAVE_CALL4AND12 1 /* (obsolete option) */ | ||
| 52 | #define XCHAL_HAVE_ABS 1 /* ABS instruction */ | ||
| 53 | /*#define XCHAL_HAVE_POPC 0*/ /* POPC instruction */ | ||
| 54 | /*#define XCHAL_HAVE_CRC 0*/ /* CRC instruction */ | ||
| 55 | #define XCHAL_HAVE_RELEASE_SYNC 1 /* L32AI/S32RI instructions */ | ||
| 56 | #define XCHAL_HAVE_S32C1I 1 /* S32C1I instruction */ | ||
| 57 | #define XCHAL_HAVE_SPECULATION 0 /* speculation */ | ||
| 58 | #define XCHAL_HAVE_FULL_RESET 1 /* all regs/state reset */ | ||
| 59 | #define XCHAL_NUM_CONTEXTS 1 /* */ | ||
| 60 | #define XCHAL_NUM_MISC_REGS 2 /* num of scratch regs (0..4) */ | ||
| 61 | #define XCHAL_HAVE_TAP_MASTER 0 /* JTAG TAP control instr's */ | ||
| 62 | #define XCHAL_HAVE_PRID 1 /* processor ID register */ | ||
| 63 | #define XCHAL_HAVE_THREADPTR 1 /* THREADPTR register */ | ||
| 64 | #define XCHAL_HAVE_BOOLEANS 0 /* boolean registers */ | ||
| 65 | #define XCHAL_HAVE_CP 1 /* CPENABLE reg (coprocessor) */ | ||
| 66 | #define XCHAL_CP_MAXCFG 8 /* max allowed cp id plus one */ | ||
| 67 | #define XCHAL_HAVE_MAC16 1 /* MAC16 package */ | ||
| 68 | #define XCHAL_HAVE_VECTORFPU2005 0 /* vector floating-point pkg */ | ||
| 69 | #define XCHAL_HAVE_FP 0 /* floating point pkg */ | ||
| 70 | #define XCHAL_HAVE_VECTRA1 0 /* Vectra I pkg */ | ||
| 71 | #define XCHAL_HAVE_VECTRALX 0 /* Vectra LX pkg */ | ||
| 72 | #define XCHAL_HAVE_HIFI2 0 /* HiFi2 Audio Engine pkg */ | ||
| 73 | |||
| 74 | |||
| 75 | /*---------------------------------------------------------------------- | ||
| 76 | MISC | ||
| 77 | ----------------------------------------------------------------------*/ | ||
| 78 | |||
| 79 | #define XCHAL_NUM_WRITEBUFFER_ENTRIES 8 /* size of write buffer */ | ||
| 80 | #define XCHAL_INST_FETCH_WIDTH 4 /* instr-fetch width in bytes */ | ||
| 81 | #define XCHAL_DATA_WIDTH 4 /* data width in bytes */ | ||
| 82 | /* In T1050, applies to selected core load and store instructions (see ISA): */ | ||
| 83 | #define XCHAL_UNALIGNED_LOAD_EXCEPTION 1 /* unaligned loads cause exc. */ | ||
| 84 | #define XCHAL_UNALIGNED_STORE_EXCEPTION 1 /* unaligned stores cause exc.*/ | ||
| 85 | |||
| 86 | #define XCHAL_SW_VERSION 701001 /* sw version of this header */ | ||
| 87 | |||
| 88 | #define XCHAL_CORE_ID "dc232b" /* alphanum core name | ||
| 89 | (CoreID) set in the Xtensa | ||
| 90 | Processor Generator */ | ||
| 91 | |||
| 92 | #define XCHAL_CORE_DESCRIPTION "Diamond 232L Standard Core Rev.B (LE)" | ||
| 93 | #define XCHAL_BUILD_UNIQUE_ID 0x0000BEEF /* 22-bit sw build ID */ | ||
| 94 | |||
| 95 | /* | ||
| 96 | * These definitions describe the hardware targeted by this software. | ||
| 97 | */ | ||
| 98 | #define XCHAL_HW_CONFIGID0 0xC56307FE /* ConfigID hi 32 bits*/ | ||
| 99 | #define XCHAL_HW_CONFIGID1 0x0D40BEEF /* ConfigID lo 32 bits*/ | ||
| 100 | #define XCHAL_HW_VERSION_NAME "LX2.1.1" /* full version name */ | ||
| 101 | #define XCHAL_HW_VERSION_MAJOR 2210 /* major ver# of targeted hw */ | ||
| 102 | #define XCHAL_HW_VERSION_MINOR 1 /* minor ver# of targeted hw */ | ||
| 103 | #define XCHAL_HW_VERSION 221001 /* major*100+minor */ | ||
| 104 | #define XCHAL_HW_REL_LX2 1 | ||
| 105 | #define XCHAL_HW_REL_LX2_1 1 | ||
| 106 | #define XCHAL_HW_REL_LX2_1_1 1 | ||
| 107 | #define XCHAL_HW_CONFIGID_RELIABLE 1 | ||
| 108 | /* If software targets a *range* of hardware versions, these are the bounds: */ | ||
| 109 | #define XCHAL_HW_MIN_VERSION_MAJOR 2210 /* major v of earliest tgt hw */ | ||
| 110 | #define XCHAL_HW_MIN_VERSION_MINOR 1 /* minor v of earliest tgt hw */ | ||
| 111 | #define XCHAL_HW_MIN_VERSION 221001 /* earliest targeted hw */ | ||
| 112 | #define XCHAL_HW_MAX_VERSION_MAJOR 2210 /* major v of latest tgt hw */ | ||
| 113 | #define XCHAL_HW_MAX_VERSION_MINOR 1 /* minor v of latest tgt hw */ | ||
| 114 | #define XCHAL_HW_MAX_VERSION 221001 /* latest targeted hw */ | ||
| 115 | |||
| 116 | |||
| 117 | /*---------------------------------------------------------------------- | ||
| 118 | CACHE | ||
| 119 | ----------------------------------------------------------------------*/ | ||
| 120 | |||
| 121 | #define XCHAL_ICACHE_LINESIZE 32 /* I-cache line size in bytes */ | ||
| 122 | #define XCHAL_DCACHE_LINESIZE 32 /* D-cache line size in bytes */ | ||
| 123 | #define XCHAL_ICACHE_LINEWIDTH 5 /* log2(I line size in bytes) */ | ||
| 124 | #define XCHAL_DCACHE_LINEWIDTH 5 /* log2(D line size in bytes) */ | ||
| 125 | |||
| 126 | #define XCHAL_ICACHE_SIZE 16384 /* I-cache size in bytes or 0 */ | ||
| 127 | #define XCHAL_DCACHE_SIZE 16384 /* D-cache size in bytes or 0 */ | ||
| 128 | |||
| 129 | #define XCHAL_DCACHE_IS_WRITEBACK 1 /* writeback feature */ | ||
| 130 | |||
| 131 | |||
| 132 | |||
| 133 | |||
| 134 | /**************************************************************************** | ||
| 135 | Parameters Useful for PRIVILEGED (Supervisory or Non-Virtualized) Code | ||
| 136 | ****************************************************************************/ | ||
| 137 | |||
| 138 | |||
| 139 | #ifndef XTENSA_HAL_NON_PRIVILEGED_ONLY | ||
| 140 | |||
| 141 | /*---------------------------------------------------------------------- | ||
| 142 | CACHE | ||
| 143 | ----------------------------------------------------------------------*/ | ||
| 144 | |||
| 145 | #define XCHAL_HAVE_PIF 1 /* any outbound PIF present */ | ||
