diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-13 13:08:43 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-13 13:08:43 -0400 |
commit | 54cebc68c81eacac41a21bdfe99dc889d3882c60 (patch) | |
tree | da1d3872c6ddf208768e784bd1ea09054a81462d /arch/blackfin/mach-bf548/include | |
parent | fffdedef691a0f6fa7ca1fc0a2a508cbb49def69 (diff) | |
parent | 71de1f8a6365ea65346881e526132563d93696d1 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (60 commits)
Blackfin arch: make sure we include the fix for SPORT hysteresis when reprogramming clocks
Blackfin arch: Fix bogus str_ident check in gpio code
Blackfin arch: AD7879 Touchscreen driver
Blackfin arch: introducing bfin_addr_dcachable
Blackfin arch: fix a typo in comments
Blackfin arch: Remove useless head file
Blackfin arch: make sure L2 start and length are always defined (fixes building on BF542)
Blackfin arch: use the Blackfin on-chip ROM to do software reset when possible
Blackfin arch: update anomaly headers to match the latest sheet
Blackfin arch: bfin_reset() is an internal reboot function ... everyone should go through machine_restart()
Blackfin arch: print out error/warning if you are running on the incorrect CPU type
Blackfin arch: remove non-bf54x ifdef logic since this file is only compiled on bf54x parts
Blackfin arch: update board defconfigs
Blackfin arch: Add optional verbose debug
Blackfin arch: emulate a TTY over the EMUDAT/JTAG interface
Blackfin arch: have is_user_addr_valid() check for overflows (like when address is -1)
Blackfin arch: ptrace - fix off-by-one check on end of memory regions
Blackfin arch: Enable framebuffer support for the BF526-EZkit TFT LCD display
Blackfin arch: flash memory map and dm9000 resources updating
Blackfin arch: early prink code still use uart core console functions to parse and set configure option string
...
Diffstat (limited to 'arch/blackfin/mach-bf548/include')
-rw-r--r-- | arch/blackfin/mach-bf548/include/mach/anomaly.h | 93 | ||||
-rw-r--r-- | arch/blackfin/mach-bf548/include/mach/bf548.h | 25 | ||||
-rw-r--r-- | arch/blackfin/mach-bf548/include/mach/mem_map.h | 14 |
3 files changed, 105 insertions, 27 deletions
diff --git a/arch/blackfin/mach-bf548/include/mach/anomaly.h b/arch/blackfin/mach-bf548/include/mach/anomaly.h index 3ad59655881a..816b09278f62 100644 --- a/arch/blackfin/mach-bf548/include/mach/anomaly.h +++ b/arch/blackfin/mach-bf548/include/mach/anomaly.h | |||
@@ -2,18 +2,18 @@ | |||
2 | * File: include/asm-blackfin/mach-bf548/anomaly.h | 2 | * File: include/asm-blackfin/mach-bf548/anomaly.h |
3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ | 3 | * Bugs: Enter bugs at http://blackfin.uclinux.org/ |
4 | * | 4 | * |
5 | * Copyright (C) 2004-2007 Analog Devices Inc. | 5 | * Copyright (C) 2004-2008 Analog Devices Inc. |
6 | * Licensed under the GPL-2 or later. | 6 | * Licensed under the GPL-2 or later. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | /* This file shoule be up to date with: | 9 | /* This file shoule be up to date with: |
10 | * - Revision E, 11/28/2007; ADSP-BF542/BF544/BF547/BF548/BF549 Blackfin Processor Anomaly List | 10 | * - Revision G, 08/07/2008; ADSP-BF542/BF544/BF547/BF548/BF549 Blackfin Processor Anomaly List |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #ifndef _MACH_ANOMALY_H_ | 13 | #ifndef _MACH_ANOMALY_H_ |
14 | #define _MACH_ANOMALY_H_ | 14 | #define _MACH_ANOMALY_H_ |
15 | 15 | ||
16 | /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot 2 Not Supported */ | 16 | /* Multi-Issue Instruction with dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported */ |
17 | #define ANOMALY_05000074 (1) | 17 | #define ANOMALY_05000074 (1) |
18 | /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ | 18 | /* DMA_RUN Bit Is Not Valid after a Peripheral Receive Channel DMA Stops */ |
19 | #define ANOMALY_05000119 (1) | 19 | #define ANOMALY_05000119 (1) |
@@ -36,14 +36,14 @@ | |||
36 | /* TWI Slave Boot Mode Is Not Functional */ | 36 | /* TWI Slave Boot Mode Is Not Functional */ |
37 | #define ANOMALY_05000324 (__SILICON_REVISION__ < 1) | 37 | #define ANOMALY_05000324 (__SILICON_REVISION__ < 1) |
38 | /* External FIFO Boot Mode Is Not Functional */ | 38 | /* External FIFO Boot Mode Is Not Functional */ |
39 | #define ANOMALY_05000325 (__SILICON_REVISION__ < 1) | 39 | #define ANOMALY_05000325 (__SILICON_REVISION__ < 2) |
40 | /* Data Lost When Core and DMA Accesses Are Made to the USB FIFO Simultaneously */ | 40 | /* Data Lost When Core and DMA Accesses Are Made to the USB FIFO Simultaneously */ |
41 | #define ANOMALY_05000327 (__SILICON_REVISION__ < 1) | 41 | #define ANOMALY_05000327 (__SILICON_REVISION__ < 1) |
42 | /* Incorrect Access of OTP_STATUS During otp_write() Function */ | 42 | /* Incorrect Access of OTP_STATUS During otp_write() Function */ |
43 | #define ANOMALY_05000328 (__SILICON_REVISION__ < 1) | 43 | #define ANOMALY_05000328 (__SILICON_REVISION__ < 1) |
44 | /* Synchronous Burst Flash Boot Mode Is Not Functional */ | 44 | /* Synchronous Burst Flash Boot Mode Is Not Functional */ |
45 | #define ANOMALY_05000329 (__SILICON_REVISION__ < 1) | 45 | #define ANOMALY_05000329 (__SILICON_REVISION__ < 1) |
46 | /* Host DMA Boot Mode Is Not Functional */ | 46 | /* Host DMA Boot Modes Are Not Functional */ |
47 | #define ANOMALY_05000330 (__SILICON_REVISION__ < 1) | 47 | #define ANOMALY_05000330 (__SILICON_REVISION__ < 1) |
48 | /* Inadequate Timing Margins on DDR DQS to DQ and DQM Skew */ | 48 | /* Inadequate Timing Margins on DDR DQS to DQ and DQM Skew */ |
49 | #define ANOMALY_05000334 (__SILICON_REVISION__ < 1) | 49 | #define ANOMALY_05000334 (__SILICON_REVISION__ < 1) |
@@ -61,26 +61,102 @@ | |||
61 | #define ANOMALY_05000344 (__SILICON_REVISION__ < 1) | 61 | #define ANOMALY_05000344 (__SILICON_REVISION__ < 1) |
62 | /* USB Calibration Value Is Not Intialized */ | 62 | /* USB Calibration Value Is Not Intialized */ |
63 | #define ANOMALY_05000346 (__SILICON_REVISION__ < 1) | 63 | #define ANOMALY_05000346 (__SILICON_REVISION__ < 1) |
64 | /* Boot ROM Kernel Incorrectly Alters Reset Value of USB Register */ | 64 | /* USB Calibration Value to use */ |
65 | #define ANOMALY_05000346_value 0x5411 | ||
66 | /* Preboot Routine Incorrectly Alters Reset Value of USB Register */ | ||
65 | #define ANOMALY_05000347 (__SILICON_REVISION__ < 1) | 67 | #define ANOMALY_05000347 (__SILICON_REVISION__ < 1) |
66 | /* Data Lost when Core Reads SDH Data FIFO */ | 68 | /* Data Lost when Core Reads SDH Data FIFO */ |
67 | #define ANOMALY_05000349 (__SILICON_REVISION__ < 1) | 69 | #define ANOMALY_05000349 (__SILICON_REVISION__ < 1) |
68 | /* PLL Status Register Is Inaccurate */ | 70 | /* PLL Status Register Is Inaccurate */ |
69 | #define ANOMALY_05000351 (__SILICON_REVISION__ < 1) | 71 | #define ANOMALY_05000351 (__SILICON_REVISION__ < 1) |
72 | /* bfrom_SysControl() Firmware Function Performs Improper System Reset */ | ||
73 | #define ANOMALY_05000353 (__SILICON_REVISION__ < 2) | ||
74 | /* Regulator Programming Blocked when Hibernate Wakeup Source Remains Active */ | ||
75 | #define ANOMALY_05000355 (__SILICON_REVISION__ < 1) | ||
76 | /* System Stalled During A Core Access To AMC While A Core Access To NFC FIFO Is Required */ | ||
77 | #define ANOMALY_05000356 (__SILICON_REVISION__ < 1) | ||
70 | /* Serial Port (SPORT) Multichannel Transmit Failure when Channel 0 Is Disabled */ | 78 | /* Serial Port (SPORT) Multichannel Transmit Failure when Channel 0 Is Disabled */ |
71 | #define ANOMALY_05000357 (1) | 79 | #define ANOMALY_05000357 (1) |
72 | /* External Memory Read Access Hangs Core With PLL Bypass */ | 80 | /* External Memory Read Access Hangs Core With PLL Bypass */ |
73 | #define ANOMALY_05000360 (1) | 81 | #define ANOMALY_05000360 (1) |
74 | /* DMAs that Go Urgent during Tight Core Writes to External Memory Are Blocked */ | 82 | /* DMAs that Go Urgent during Tight Core Writes to External Memory Are Blocked */ |
75 | #define ANOMALY_05000365 (1) | 83 | #define ANOMALY_05000365 (1) |
84 | /* WURESET Bit In SYSCR Register Does Not Properly Indicate Hibernate Wake-Up */ | ||
85 | #define ANOMALY_05000367 (__SILICON_REVISION__ < 1) | ||
76 | /* Addressing Conflict between Boot ROM and Asynchronous Memory */ | 86 | /* Addressing Conflict between Boot ROM and Asynchronous Memory */ |
77 | #define ANOMALY_05000369 (1) | 87 | #define ANOMALY_05000369 (1) |
88 | /* Default PLL MSEL and SSEL Settings Can Cause 400MHz Product To Violate Specifications */ | ||
89 | #define ANOMALY_05000370 (__SILICON_REVISION__ < 1) | ||
78 | /* Possible RETS Register Corruption when Subroutine Is under 5 Cycles in Duration */ | 90 | /* Possible RETS Register Corruption when Subroutine Is under 5 Cycles in Duration */ |
79 | #define ANOMALY_05000371 (1) | 91 | #define ANOMALY_05000371 (__SILICON_REVISION__ < 2) |
92 | /* USB DP/DM Data Pins May Lose State When Entering Hibernate */ | ||
93 | #define ANOMALY_05000372 (__SILICON_REVISION__ < 1) | ||
80 | /* Mobile DDR Operation Not Functional */ | 94 | /* Mobile DDR Operation Not Functional */ |
81 | #define ANOMALY_05000377 (1) | 95 | #define ANOMALY_05000377 (1) |
82 | /* Security/Authentication Speedpath Causes Authentication To Fail To Initiate */ | 96 | /* Security/Authentication Speedpath Causes Authentication To Fail To Initiate */ |
83 | #define ANOMALY_05000378 (1) | 97 | #define ANOMALY_05000378 (__SILICON_REVISION__ < 2) |
98 | /* 16-Bit NAND FLASH Boot Mode Is Not Functional */ | ||
99 | #define ANOMALY_05000379 (1) | ||
100 | /* 8-Bit NAND Flash Boot Mode Not Functional */ | ||
101 | #define ANOMALY_05000382 (__SILICON_REVISION__ < 1) | ||
102 | /* Some ATAPI Modes Are Not Functional */ | ||
103 | #define ANOMALY_05000383 (1) | ||
104 | /* Boot from OTP Memory Not Functional */ | ||
105 | #define ANOMALY_05000385 (__SILICON_REVISION__ < 1) | ||
106 | /* bfrom_SysControl() Firmware Routine Not Functional */ | ||
107 | #define ANOMALY_05000386 (__SILICON_REVISION__ < 1) | ||
108 | /* Programmable Preboot Settings Not Functional */ | ||
109 | #define ANOMALY_05000387 (__SILICON_REVISION__ < 1) | ||
110 | /* CRC32 Checksum Support Not Functional */ | ||
111 | #define ANOMALY_05000388 (__SILICON_REVISION__ < 1) | ||
112 | /* Reset Vector Must Not Be in SDRAM Memory Space */ | ||
113 | #define ANOMALY_05000389 (__SILICON_REVISION__ < 1) | ||
114 | /* Changed Meaning of BCODE Field in SYSCR Register */ | ||
115 | #define ANOMALY_05000390 (__SILICON_REVISION__ < 1) | ||
116 | /* Repeated Boot from Page-Mode or Burst-Mode Flash Memory May Fail */ | ||
117 | #define ANOMALY_05000391 (__SILICON_REVISION__ < 1) | ||
118 | /* pTempCurrent Not Present in ADI_BOOT_DATA Structure */ | ||
119 | #define ANOMALY_05000392 (__SILICON_REVISION__ < 1) | ||
120 | /* Deprecated Value of dTempByteCount in ADI_BOOT_DATA Structure */ | ||
121 | #define ANOMALY_05000393 (__SILICON_REVISION__ < 1) | ||
122 | /* Log Buffer Not Functional */ | ||
123 | #define ANOMALY_05000394 (__SILICON_REVISION__ < 1) | ||
124 | /* Hook Routine Not Functional */ | ||
125 | #define ANOMALY_05000395 (__SILICON_REVISION__ < 1) | ||
126 | /* Header Indirect Bit Not Functional */ | ||
127 | #define ANOMALY_05000396 (__SILICON_REVISION__ < 1) | ||
128 | /* BK_ONES, BK_ZEROS, and BK_DATECODE Constants Not Functional */ | ||
129 | #define ANOMALY_05000397 (__SILICON_REVISION__ < 1) | ||
130 | /* Lockbox SESR Disallows Certain User Interrupts */ | ||
131 | #define ANOMALY_05000404 (__SILICON_REVISION__ < 2) | ||
132 | /* Lockbox SESR Firmware Does Not Save/Restore Full Context */ | ||
133 | #define ANOMALY_05000405 (1) | ||
134 | /* Lockbox SESR Argument Checking Does Not Check L2 Memory Protection Range */ | ||
135 | #define ANOMALY_05000406 (__SILICON_REVISION__ < 2) | ||
136 | /* Lockbox SESR Firmware Arguments Are Not Retained After First Initialization */ | ||
137 | #define ANOMALY_05000407 (__SILICON_REVISION__ < 2) | ||
138 | /* Lockbox Firmware Memory Cleanup Routine Does not Clear Registers */ | ||
139 | #define ANOMALY_05000408 (1) | ||
140 | /* Lockbox firmware leaves MDMA0 channel enabled */ | ||
141 | #define ANOMALY_05000409 (__SILICON_REVISION__ < 2) | ||
142 | /* bfrom_SysControl() Firmware Function Cannot be Used to Enter Power Saving Modes */ | ||
143 | #define ANOMALY_05000411 (__SILICON_REVISION__ < 2) | ||
144 | /* NAND Boot Mode Not Compatible With Some NAND Flash Devices */ | ||
145 | #define ANOMALY_05000413 (__SILICON_REVISION__ < 2) | ||
146 | /* OTP_CHECK_FOR_PREV_WRITE Bit is Not Functional in bfrom_OtpWrite() API */ | ||
147 | #define ANOMALY_05000414 (__SILICON_REVISION__ < 2) | ||
148 | /* Speculative Fetches Can Cause Undesired External FIFO Operations */ | ||
149 | #define ANOMALY_05000416 (1) | ||
150 | /* Multichannel SPORT Channel Misalignment Under Specific Configuration */ | ||
151 | #define ANOMALY_05000425 (1) | ||
152 | /* Speculative Fetches of Indirect-Pointer Instructions Can Cause Spurious Hardware Errors */ | ||
153 | #define ANOMALY_05000426 (1) | ||
154 | /* CORE_EPPI_PRIO bit and SYS_EPPI_PRIO bit in the HMDMA1_CONTROL register are not functional */ | ||
155 | #define ANOMALY_05000427 (__SILICON_REVISION__ < 2) | ||
156 | /* WB_EDGE Bit in NFC_IRQSTAT Incorrectly Behaves as a Buffer Status Bit Instead of an IRQ Status Bit */ | ||
157 | #define ANOMALY_05000429 (__SILICON_REVISION__ < 2) | ||
158 | /* Software System Reset Corrupts PLL_LOCKCNT Register */ | ||
159 | #define ANOMALY_05000430 (__SILICON_REVISION__ >= 2) | ||
84 | 160 | ||
85 | /* Anomalies that don't exist on this proc */ | 161 | /* Anomalies that don't exist on this proc */ |
86 | #define ANOMALY_05000125 (0) | 162 | #define ANOMALY_05000125 (0) |
@@ -93,6 +169,7 @@ | |||
93 | #define ANOMALY_05000263 (0) | 169 | #define ANOMALY_05000263 (0) |
94 | #define ANOMALY_05000266 (0) | 170 | #define ANOMALY_05000266 (0) |
95 | #define ANOMALY_05000273 (0) | 171 | #define ANOMALY_05000273 (0) |
172 | #define ANOMALY_05000307 (0) | ||
96 | #define ANOMALY_05000311 (0) | 173 | #define ANOMALY_05000311 (0) |
97 | #define ANOMALY_05000323 (0) | 174 | #define ANOMALY_05000323 (0) |
98 | #define ANOMALY_05000363 (0) | 175 | #define ANOMALY_05000363 (0) |
diff --git a/arch/blackfin/mach-bf548/include/mach/bf548.h b/arch/blackfin/mach-bf548/include/mach/bf548.h index e748588e8930..49f9b403d458 100644 --- a/arch/blackfin/mach-bf548/include/mach/bf548.h +++ b/arch/blackfin/mach-bf548/include/mach/bf548.h | |||
@@ -30,8 +30,6 @@ | |||
30 | #ifndef __MACH_BF548_H__ | 30 | #ifndef __MACH_BF548_H__ |
31 | #define __MACH_BF548_H__ | 31 | #define __MACH_BF548_H__ |
32 | 32 | ||
33 | #define SUPPORTED_REVID 0 | ||
34 | |||
35 | #define OFFSET_(x) ((x) & 0x0000FFFF) | 33 | #define OFFSET_(x) ((x) & 0x0000FFFF) |
36 | 34 | ||
37 | /*some misc defines*/ | 35 | /*some misc defines*/ |
@@ -108,20 +106,23 @@ | |||
108 | 106 | ||
109 | #if defined(CONFIG_BF542) | 107 | #if defined(CONFIG_BF542) |
110 | # define CPU "BF542" | 108 | # define CPU "BF542" |
111 | # define CPUID 0x027c8000 | 109 | # define CPUID 0x27de |
112 | #elif defined(CONFIG_BF544) | 110 | #elif defined(CONFIG_BF544) |
113 | # define CPU "BF544" | 111 | # define CPU "BF544" |
114 | # define CPUID 0x027c8000 | 112 | # define CPUID 0x27de |
115 | #elif defined(CONFIG_BF547) | 113 | #elif defined(CONFIG_BF547) |
116 | # define CPU "BF547" | 114 | # define CPU "BF547" |
115 | # define CPUID 0x27de | ||
117 | #elif defined(CONFIG_BF548) | 116 | #elif defined(CONFIG_BF548) |
118 | # define CPU "BF548" | 117 | # define CPU "BF548" |
119 | # define CPUID 0x027c6000 | 118 | # define CPUID 0x27de |
120 | #elif defined(CONFIG_BF549) | 119 | #elif defined(CONFIG_BF549) |
121 | # define CPU "BF549" | 120 | # define CPU "BF549" |
122 | #else | 121 | # define CPUID 0x27de |
123 | # define CPU "UNKNOWN" | 122 | #endif |
124 | # define CPUID 0x0 | 123 | |
124 | #ifndef CPU | ||
125 | #error Unknown CPU type - This kernel doesn't seem to be configured properly | ||
125 | #endif | 126 | #endif |
126 | 127 | ||
127 | #endif /* __MACH_BF48_H__ */ | 128 | #endif /* __MACH_BF48_H__ */ |
diff --git a/arch/blackfin/mach-bf548/include/mach/mem_map.h b/arch/blackfin/mach-bf548/include/mach/mem_map.h index f99f47bc3a07..a2228428dc06 100644 --- a/arch/blackfin/mach-bf548/include/mach/mem_map.h +++ b/arch/blackfin/mach-bf548/include/mach/mem_map.h | |||
@@ -94,13 +94,13 @@ | |||
94 | #endif /*CONFIG_BFIN_DCACHE*/ | 94 | #endif /*CONFIG_BFIN_DCACHE*/ |
95 | 95 | ||
96 | /* Level 2 Memory */ | 96 | /* Level 2 Memory */ |
97 | #if !defined(CONFIG_BF542) | 97 | #define L2_START 0xFEB00000 |
98 | # define L2_START 0xFEB00000 | 98 | #if defined(CONFIG_BF542) |
99 | # if defined(CONFIG_BF544) | 99 | # define L2_LENGTH 0 |
100 | # define L2_LENGTH 0x10000 | 100 | #elif defined(CONFIG_BF544) |
101 | # else | 101 | # define L2_LENGTH 0x10000 |
102 | # define L2_LENGTH 0x20000 | 102 | #else |
103 | # endif | 103 | # define L2_LENGTH 0x20000 |
104 | #endif | 104 | #endif |
105 | 105 | ||
106 | /* Scratch Pad Memory */ | 106 | /* Scratch Pad Memory */ |