blob: 5c5e33dec5f180e464184b24a7f7978db39e5cbd [file] [log] [blame]
Bryan Wu1394f032007-05-06 14:50:22 -07001/*
Mike Frysinger287050f2007-07-24 15:23:20 +08002 * File: include/asm-blackfin/mach-bf537/anomaly.h
3 * Bugs: Enter bugs at http://blackfin.uclinux.org/
Bryan Wu1394f032007-05-06 14:50:22 -07004 *
Mike Frysinger287050f2007-07-24 15:23:20 +08005 * Copyright (C) 2004-2007 Analog Devices Inc.
6 * Licensed under the GPL-2 or later.
Bryan Wu1394f032007-05-06 14:50:22 -07007 */
8
9/* This file shoule be up to date with:
10 * - Revision J, June 1, 2006; ADSP-BF537 Blackfin Processor Anomaly List
11 * - Revision I, June 1, 2006; ADSP-BF536 Blackfin Processor Anomaly List
12 * - Revision J, June 1, 2006; ADSP-BF534 Blackfin Processor Anomaly List
13 */
14
15#ifndef _MACH_ANOMALY_H_
16#define _MACH_ANOMALY_H_
17
18/* We do not support 0.1 silicon - sorry */
19#if (defined(CONFIG_BF_REV_0_1))
20#error Kernel will not work on BF537/6/4 Version 0.1
21#endif
22
23#if (defined(CONFIG_BF_REV_0_3) || defined(CONFIG_BF_REV_0_2))
24#define ANOMALY_05000074 /* A multi issue instruction with dsp32shiftimm in
Mike Frysinger287050f2007-07-24 15:23:20 +080025 * slot1 and store of a P register in slot 2 is not
26 * supported */
Bryan Wu1394f032007-05-06 14:50:22 -070027#define ANOMALY_05000119 /* DMA_RUN bit is not valid after a Peripheral Receive
Mike Frysinger287050f2007-07-24 15:23:20 +080028 * Channel DMA stops */
Bryan Wu1394f032007-05-06 14:50:22 -070029#define ANOMALY_05000122 /* Rx.H can not be used to access 16-bit System MMR
Mike Frysinger287050f2007-07-24 15:23:20 +080030 * registers. */
Bryan Wu1394f032007-05-06 14:50:22 -070031#define ANOMALY_05000166 /* PPI Data Lengths Between 8 and 16 do not zero out
Mike Frysinger287050f2007-07-24 15:23:20 +080032 * upper bits*/
Bryan Wu1394f032007-05-06 14:50:22 -070033#define ANOMALY_05000180 /* PPI_DELAY not functional in PPI modes with 0 frame
Mike Frysinger287050f2007-07-24 15:23:20 +080034 * syncs */
Bryan Wu1394f032007-05-06 14:50:22 -070035#if (defined(CONFIG_BF537) || defined(CONFIG_BF536))
36#define ANOMALY_05000247 /* CLKIN Buffer Output Enable Reset Behavior Is
Mike Frysinger287050f2007-07-24 15:23:20 +080037 * Changed */
Bryan Wu1394f032007-05-06 14:50:22 -070038#endif
39#define ANOMALY_05000265 /* Sensitivity to noise with slow input edge rates on
Mike Frysinger287050f2007-07-24 15:23:20 +080040 * SPORT external receive and transmit clocks. */
Bryan Wu1394f032007-05-06 14:50:22 -070041#define ANOMALY_05000272 /* Certain data cache write through modes fail for
Mike Frysinger287050f2007-07-24 15:23:20 +080042 * VDDint <=0.9V */
Bryan Wu1394f032007-05-06 14:50:22 -070043#define ANOMALY_05000273 /* Writes to Synchronous SDRAM memory may be lost */
44#define ANOMALY_05000277 /* Writes to a flag data register one SCLK cycle after
Mike Frysinger287050f2007-07-24 15:23:20 +080045 * an edge is detected may clear interrupt */
Bryan Wu1394f032007-05-06 14:50:22 -070046#define ANOMALY_05000281 /* False Hardware Error Exception when ISR context is
Mike Frysinger287050f2007-07-24 15:23:20 +080047 * not restored */
Bryan Wu1394f032007-05-06 14:50:22 -070048#define ANOMALY_05000282 /* Memory DMA corruption with 32-bit data and traffic
Mike Frysinger287050f2007-07-24 15:23:20 +080049 * control */
Bryan Wu1394f032007-05-06 14:50:22 -070050#define ANOMALY_05000283 /* A system MMR write is stalled indefinitely when
Mike Frysinger287050f2007-07-24 15:23:20 +080051 * killed in a particular stage*/
Robin Getz4bf3f3c2007-06-21 11:34:16 +080052#define ANOMALY_05000310 /* False hardware errors caused by fetches at the
53 * boundary of reserved memory */
Bryan Wu1394f032007-05-06 14:50:22 -070054#define ANOMALY_05000312 /* Errors when SSYNC, CSYNC, or loads to LT, LB and LC
Mike Frysinger287050f2007-07-24 15:23:20 +080055 * registers are interrupted */
Robin Getz4bf3f3c2007-06-21 11:34:16 +080056#define ANOMALY_05000313 /* PPI is level sensitive on first transfer */
57#define ANOMALY_05000322 /* EMAC RMII mode at 10-Base-T speed: RX frames not
58 * received properly */
Bryan Wu1394f032007-05-06 14:50:22 -070059#endif
60
61#if defined(CONFIG_BF_REV_0_2)
62#define ANOMALY_05000244 /* With instruction cache enabled, a CSYNC or SSYNC or
Mike Frysinger287050f2007-07-24 15:23:20 +080063 * IDLE around a Change of Control causes
64 * unpredictable results */
Bryan Wu1394f032007-05-06 14:50:22 -070065#define ANOMALY_05000250 /* Incorrect Bit-Shift of Data Word in Multichannel
Mike Frysinger287050f2007-07-24 15:23:20 +080066 * (TDM) */
Bryan Wu1394f032007-05-06 14:50:22 -070067#if (defined(CONFIG_BF537) || defined(CONFIG_BF536))
68#define ANOMALY_05000252 /* EMAC Tx DMA error after an early frame abort */
69#endif
70#define ANOMALY_05000253 /* Maximum external clock speed for Timers */
71#define ANOMALY_05000255 /* Entering Hibernate Mode with RTC Seconds event
Mike Frysinger287050f2007-07-24 15:23:20 +080072 * interrupt not functional */
Bryan Wu1394f032007-05-06 14:50:22 -070073#if (defined(CONFIG_BF537) || defined(CONFIG_BF536))
74#define ANOMALY_05000256 /* EMAC MDIO input latched on wrong MDC edge */
75#endif
76#define ANOMALY_05000257 /* An interrupt or exception during short Hardware
Mike Frysinger287050f2007-07-24 15:23:20 +080077 * loops may cause the instruction fetch unit to
78 * malfunction */
Bryan Wu1394f032007-05-06 14:50:22 -070079#define ANOMALY_05000258 /* Instruction Cache is corrupted when bit 9 and 12 of
Mike Frysinger287050f2007-07-24 15:23:20 +080080 * the ICPLB Data registers differ */
Bryan Wu1394f032007-05-06 14:50:22 -070081#define ANOMALY_05000260 /* ICPLB_STATUS MMR register may be corrupted */
82#define ANOMALY_05000261 /* DCPLB_FAULT_ADDR MMR register may be corrupted */
83#define ANOMALY_05000262 /* Stores to data cache may be lost */
84#define ANOMALY_05000263 /* Hardware loop corrupted when taking an ICPLB exception */
85#define ANOMALY_05000264 /* A Sync instruction (CSYNC, SSYNC) or an IDLE
Mike Frysinger287050f2007-07-24 15:23:20 +080086 * instruction will cause an infinite stall in the
87 * second to last instruction in a hardware loop */
Bryan Wu1394f032007-05-06 14:50:22 -070088#define ANOMALY_05000268 /* Memory DMA error when peripheral DMA is running
Mike Frysinger287050f2007-07-24 15:23:20 +080089 * and non-zero DEB_TRAFFIC_PERIOD value */
Bryan Wu1394f032007-05-06 14:50:22 -070090#define ANOMALY_05000270 /* High I/O activity causes the output voltage of the
Mike Frysinger287050f2007-07-24 15:23:20 +080091 * internal voltage regulator (VDDint) to decrease */
Bryan Wu1394f032007-05-06 14:50:22 -070092#define ANOMALY_05000277 /* Writes to a flag data register one SCLK cycle after
Mike Frysinger287050f2007-07-24 15:23:20 +080093 * an edge is detected may clear interrupt */
Bryan Wu1394f032007-05-06 14:50:22 -070094#define ANOMALY_05000278 /* Disabling Peripherals with DMA running may cause
Mike Frysinger287050f2007-07-24 15:23:20 +080095 * DMA system instability */
Bryan Wu1394f032007-05-06 14:50:22 -070096#define ANOMALY_05000280 /* SPI Master boot mode does not work well with
Mike Frysinger287050f2007-07-24 15:23:20 +080097 * Atmel Dataflash devices */
Robin Getz4bf3f3c2007-06-21 11:34:16 +080098#define ANOMALY_05000281 /* False Hardware Error Exception when ISR context
99 * is not restored */
100#define ANOMALY_05000282 /* Memory DMA corruption with 32-bit data and traffic
101 * control */
102#define ANOMALY_05000283 /* System MMR Write Is Stalled Indefinitely When
103 * Killed in a Particular Stage */
104#define ANOMALY_05000285 /* New Feature: EMAC TX DMA Word Alignment
105 * (Not Available On Older Silicon) */
106#define ANOMALY_05000288 /* SPORTs may receive bad data if FIFOs fill up */
107#define ANOMALY_05000315 /* Killed System MMR Write Completes Erroneously
108 * On Next System MMR Access */
109#define ANOMALY_05000316 /* EMAC RMII mode: collisions occur in Full Duplex
110 * mode */
111#define ANOMALY_05000321 /* EMAC RMII mode: TX frames in half duplex fail with
112 * status No Carrier */
Mike Frysinger287050f2007-07-24 15:23:20 +0800113#endif /* CONFIG_BF_REV_0_2 */
Bryan Wu1394f032007-05-06 14:50:22 -0700114
115#endif /* _MACH_ANOMALY_H_ */