blob: 14a7a379fd1fa093557e4b1983b52466145c1c37 [file] [log] [blame]
wdenk0442ed82002-11-03 10:24:00 +00001/*----------------------------------------------------------------------------+
Josh Boyer471573b2009-08-07 13:53:20 -04002| This source code is dual-licensed. You may use it under the terms of the
3| GNU General Public License version 2, or under the license below.
wdenk0442ed82002-11-03 10:24:00 +00004|
Wolfgang Denka1be4762008-05-20 16:00:29 +02005| This source code has been made available to you by IBM on an AS-IS
6| basis. Anyone receiving this source is licensed under IBM
7| copyrights to use it in any way he or she deems fit, including
8| copying it, modifying it, compiling it, and redistributing it either
9| with or without modifications. No license under IBM patents or
10| patent applications is to be implied by the copyright license.
wdenk0442ed82002-11-03 10:24:00 +000011|
Wolfgang Denka1be4762008-05-20 16:00:29 +020012| Any user of this software should understand that IBM cannot provide
13| technical support for this software and will not be responsible for
14| any consequences resulting from the use of this software.
wdenk0442ed82002-11-03 10:24:00 +000015|
Wolfgang Denka1be4762008-05-20 16:00:29 +020016| Any person who transfers this source code or any derivative work
17| must include the IBM copyright notice, this paragraph, and the
18| preceding two paragraphs in the transferred software.
wdenk0442ed82002-11-03 10:24:00 +000019|
Wolfgang Denka1be4762008-05-20 16:00:29 +020020| COPYRIGHT I B M CORPORATION 1999
21| LICENSED MATERIAL - PROGRAM PROPERTY OF I B M
wdenk0442ed82002-11-03 10:24:00 +000022+----------------------------------------------------------------------------*/
23
24#ifndef __PPC405_H__
25#define __PPC405_H__
26
Grant Ericksonb6933412008-05-22 14:44:14 -070027/* Define bits and masks for real-mode storage attribute control registers */
28#define PPC_128MB_SACR_BIT(addr) ((addr) >> 27)
29#define PPC_128MB_SACR_VALUE(addr) PPC_REG_VAL(PPC_128MB_SACR_BIT(addr),1)
30
Stefan Roeseeff3a0a2007-10-31 17:55:58 +010031#ifndef CONFIG_IOP480
Niklaus Giger3c8ef442009-10-04 20:04:22 +020032#define CONFIG_SYS_DCACHE_SIZE (16 << 10) /* For AMCC 405 CPUs */
Stefan Roeseeff3a0a2007-10-31 17:55:58 +010033#else
Niklaus Giger3c8ef442009-10-04 20:04:22 +020034#define CONFIG_SYS_DCACHE_SIZE (2 << 10) /* For PLX IOP480(403)*/
Stefan Roeseeff3a0a2007-10-31 17:55:58 +010035#endif
36
Stefan Roese95ca5fa2010-09-11 09:31:43 +020037/* DCR registers */
38#define PLB0_ACR 0x0087
39
Stefan Roese8cb251a2010-09-12 06:21:37 +020040/* SDR registers */
41#define SDR0_PINSTP 0x0040
Stefan Roese1bca9192007-11-15 14:23:55 +010042
Stefan Roese8cb251a2010-09-12 06:21:37 +020043/* CPR registers */
44#define CPR0_CLKUPD 0x0020
45#define CPR0_PLLC 0x0040
46#define CPR0_PLLD 0x0060
47#define CPR0_CPUD 0x0080
48#define CPR0_PLBD 0x00a0
49#define CPR0_OPBD0 0x00c0
50#define CPR0_PERD 0x00e0
Stefan Roese153b3e22007-10-05 17:10:59 +020051
Grant Ericksonbe156f52008-07-09 16:31:36 -070052/*
Stefan Roese8cb251a2010-09-12 06:21:37 +020053 * DMA
Grant Ericksonbe156f52008-07-09 16:31:36 -070054 */
Stefan Roese8cb251a2010-09-12 06:21:37 +020055#define DMA_DCR_BASE 0x0100
56#define DMACR0 (DMA_DCR_BASE + 0x00) /* DMA channel control reg 0 */
57#define DMACT0 (DMA_DCR_BASE + 0x01) /* DMA count reg 0 */
58#define DMADA0 (DMA_DCR_BASE + 0x02) /* DMA destination address reg 0 */
59#define DMASA0 (DMA_DCR_BASE + 0x03) /* DMA source address reg 0 */
60#define DMASB0 (DMA_DCR_BASE + 0x04) /* DMA sg descriptor addr 0 */
61#define DMACR1 (DMA_DCR_BASE + 0x08) /* DMA channel control reg 1 */
62#define DMACT1 (DMA_DCR_BASE + 0x09) /* DMA count reg 1 */
63#define DMADA1 (DMA_DCR_BASE + 0x0a) /* DMA destination address reg 1 */
64#define DMASA1 (DMA_DCR_BASE + 0x0b) /* DMA source address reg 1 */
65#define DMASB1 (DMA_DCR_BASE + 0x0c) /* DMA sg descriptor addr 1 */
66#define DMACR2 (DMA_DCR_BASE + 0x10) /* DMA channel control reg 2 */
67#define DMACT2 (DMA_DCR_BASE + 0x11) /* DMA count reg 2 */
68#define DMADA2 (DMA_DCR_BASE + 0x12) /* DMA destination address reg 2 */
69#define DMASA2 (DMA_DCR_BASE + 0x13) /* DMA source address reg 2 */
70#define DMASB2 (DMA_DCR_BASE + 0x14) /* DMA sg descriptor addr 2 */
71#define DMACR3 (DMA_DCR_BASE + 0x18) /* DMA channel control reg 3 */
72#define DMACT3 (DMA_DCR_BASE + 0x19) /* DMA count reg 3 */
73#define DMADA3 (DMA_DCR_BASE + 0x1a) /* DMA destination address reg 3 */
74#define DMASA3 (DMA_DCR_BASE + 0x1b) /* DMA source address reg 3 */
75#define DMASB3 (DMA_DCR_BASE + 0x1c) /* DMA sg descriptor addr 3 */
76#define DMASR (DMA_DCR_BASE + 0x20) /* DMA status reg */
77#define DMASGC (DMA_DCR_BASE + 0x23) /* DMA scatter/gather command reg*/
78#define DMAADR (DMA_DCR_BASE + 0x24) /* DMA address decode reg */
Stefan Roese153b3e22007-10-05 17:10:59 +020079
wdenk0442ed82002-11-03 10:24:00 +000080#endif /* __PPC405_H__ */