amcc460ex.h revision 1.2 1 1.2 rkujawa /* $NetBSD: amcc460ex.h,v 1.2 2026/06/17 15:08:54 rkujawa Exp $ */
2 1.1 rkujawa
3 1.1 rkujawa /*
4 1.1 rkujawa * Copyright (c) 2012, 2014, 2024, 2026 The NetBSD Foundation, Inc.
5 1.1 rkujawa * All rights reserved.
6 1.1 rkujawa *
7 1.1 rkujawa * This code is derived from software contributed to The NetBSD Foundation
8 1.1 rkujawa * by Radoslaw Kujawa.
9 1.1 rkujawa *
10 1.1 rkujawa * Redistribution and use in source and binary forms, with or without
11 1.1 rkujawa * modification, are permitted provided that the following conditions
12 1.1 rkujawa * are met:
13 1.1 rkujawa * 1. Redistributions of source code must retain the above copyright
14 1.1 rkujawa * notice, this list of conditions and the following disclaimer.
15 1.1 rkujawa * 2. Redistributions in binary form must reproduce the above copyright
16 1.1 rkujawa * notice, this list of conditions and the following disclaimer in the
17 1.1 rkujawa * documentation and/or other materials provided with the distribution.
18 1.1 rkujawa *
19 1.1 rkujawa * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 1.1 rkujawa * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 1.1 rkujawa * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 1.1 rkujawa * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 1.1 rkujawa * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 1.1 rkujawa * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 1.1 rkujawa * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 1.1 rkujawa * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 1.1 rkujawa * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 1.1 rkujawa * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 1.1 rkujawa */
30 1.1 rkujawa
31 1.1 rkujawa /*
32 1.1 rkujawa * AMCC/AppliedMicro 460EX system-on-chip
33 1.1 rkujawa */
34 1.1 rkujawa
35 1.1 rkujawa #ifndef _IBM4XX_AMCC460EX_H_
36 1.1 rkujawa #define _IBM4XX_AMCC460EX_H_
37 1.1 rkujawa
38 1.1 rkujawa /* Upper 4 bits (ERPN) of the physical address of the I/O region */
39 1.1 rkujawa #define AMCC460EX_OPB_PA_HIGH 0x4
40 1.1 rkujawa
41 1.1 rkujawa #define AMCC460EX_OPB_BASE 0xef600000
42 1.1 rkujawa
43 1.1 rkujawa #define AMCC460EX_UART0_BASE 0xef600300
44 1.1 rkujawa #define AMCC460EX_UART1_BASE 0xef600400
45 1.1 rkujawa #define AMCC460EX_UART2_BASE 0xef600500
46 1.1 rkujawa #define AMCC460EX_UART3_BASE 0xef600600
47 1.1 rkujawa #define AMCC460EX_IIC0_BASE 0xef600700
48 1.1 rkujawa #define AMCC460EX_IIC1_BASE 0xef600800
49 1.1 rkujawa #define AMCC460EX_GPIO0_BASE 0xef600b00
50 1.1 rkujawa #define AMCC460EX_ZMII0_BASE 0xef600d00
51 1.1 rkujawa #define AMCC460EX_EMAC0_BASE 0xef600e00
52 1.1 rkujawa #define AMCC460EX_EMAC1_BASE 0xef600f00
53 1.1 rkujawa #define AMCC460EX_TAH0_BASE 0xef601350
54 1.1 rkujawa #define AMCC460EX_TAH1_BASE 0xef601450
55 1.1 rkujawa #define AMCC460EX_RGMII0_BASE 0xef601500
56 1.1 rkujawa
57 1.1 rkujawa /* UARTs get freq from external 11.0592 MHz osc */
58 1.1 rkujawa #define AMCC460EX_COM_FREQ 11059200
59 1.1 rkujawa
60 1.1 rkujawa /*
61 1.1 rkujawa * PLB-PCIX host bridge.
62 1.1 rkujawa */
63 1.1 rkujawa #define AMCC460EX_PCIX0_CFG_PLBA 0x0ec00000 /* ERPN 0xc */
64 1.1 rkujawa #define AMCC460EX_PCIX0_REGS_PLBA 0x0ec80000 /* ERPN 0xc */
65 1.1 rkujawa #define AMCC460EX_PCIX0_CFG_PA_HIGH 0xc
66 1.1 rkujawa #define AMCC460EX_PCIX0_IO_PLBA 0x08000000 /* ERPN 0xc */
67 1.1 rkujawa #define AMCC460EX_PCIX0_IO_PA_HIGH 0xc
68 1.1 rkujawa #define AMCC460EX_PCIX0_MEM_BASE 0x80000000 /* ERPN 0xd */
69 1.1 rkujawa #define AMCC460EX_PCIX0_MEM_PLBA_H 0xd
70 1.1 rkujawa /* How much of the (128MB) outbound memory window has pinned mappings */
71 1.1 rkujawa #define AMCC460EX_PCIX0_MEM_SIZE 0x05000000 /* 80MB */
72 1.1 rkujawa
73 1.1 rkujawa /*
74 1.2 rkujawa * Second outbound memory window (POM1)
75 1.2 rkujawa */
76 1.2 rkujawa #define AMCC460EX_PCIX0_PMEM_BASE 0x88000000 /* ERPN 0xd */
77 1.2 rkujawa #define AMCC460EX_PCIX0_PMEM_PLBA_H 0xd
78 1.2 rkujawa #define AMCC460EX_PCIX0_PMEM_SIZE 0x10000000 /* 256MB POM1/extent */
79 1.2 rkujawa /* How much of the prefetchable window gets pinned into kernel VA */
80 1.2 rkujawa #define AMCC460EX_PCIX0_PMEM_MAP 0x04000000 /* 64MB */
81 1.2 rkujawa
82 1.2 rkujawa /*
83 1.1 rkujawa * PCI Express root complexes (PCIE0/PCIE1).
84 1.1 rkujawa */
85 1.1 rkujawa #define AMCC460EX_PCIE0_DCR_BASE 0x100 /* PEGPL register block */
86 1.1 rkujawa #define AMCC460EX_PCIE1_DCR_BASE 0x120
87 1.1 rkujawa
88 1.1 rkujawa #define AMCC460EX_PCIE_CFG_PA_HIGH 0xd /* ERPN of config windows */
89 1.1 rkujawa #define AMCC460EX_PCIE0_CFG_PLBA 0x30000000
90 1.1 rkujawa #define AMCC460EX_PCIE1_CFG_PLBA 0x38000000
91 1.1 rkujawa #define AMCC460EX_PCIE_CFG_SIZE 0x01000000 /* buses 0-15 */
92 1.1 rkujawa
93 1.1 rkujawa #define AMCC460EX_PCIE_MEM_PA_HIGH 0xe /* ERPN of memory windows */
94 1.1 rkujawa #define AMCC460EX_PCIE0_MEM_PLBA 0x10000000
95 1.1 rkujawa #define AMCC460EX_PCIE1_MEM_PLBA 0x90000000
96 1.1 rkujawa #define AMCC460EX_PCIE_MEM_BASE 0xa0000000 /* PCI-side base */
97 1.1 rkujawa #define AMCC460EX_PCIE_MEM_SIZE 0x01000000
98 1.1 rkujawa
99 1.1 rkujawa /* INTA-INTD, flat irq numbers (UIC3 bits 12-15 and 16-19) */
100 1.1 rkujawa #define AMCC460EX_PCIE0_INTA_IRQ 108
101 1.1 rkujawa #define AMCC460EX_PCIE1_INTA_IRQ 112
102 1.1 rkujawa
103 1.1 rkujawa /*
104 1.1 rkujawa * AHB peripherals (USB).
105 1.1 rkujawa */
106 1.1 rkujawa #define AMCC460EX_AHB_PA_HIGH 0x4 /* ERPN */
107 1.1 rkujawa #define AMCC460EX_AHB_BASE 0xbf000000
108 1.1 rkujawa #define AMCC460EX_AHB_SIZE 0x01000000
109 1.1 rkujawa
110 1.1 rkujawa #define AMCC460EX_USB_OTG_BASE 0xbff80000 /* DWC OTG, 256KB */
111 1.1 rkujawa #define AMCC460EX_USB_OTG_SIZE 0x00040000
112 1.1 rkujawa #define AMCC460EX_USB_OHCI_BASE 0xbffd0000
113 1.1 rkujawa #define AMCC460EX_USB_OHCI_SIZE 0x00000400
114 1.1 rkujawa #define AMCC460EX_USB_EHCI_BASE 0xbffd0400
115 1.1 rkujawa #define AMCC460EX_USB_EHCI_SIZE 0x00000400
116 1.1 rkujawa
117 1.1 rkujawa /*
118 1.1 rkujawa * On-chip SATA, the lousy DWC SATA-II core
119 1.1 rkujawa */
120 1.1 rkujawa #define AMCC460EX_SATA_DMA_BASE 0xbffd0800
121 1.1 rkujawa #define AMCC460EX_SATA_DMA_SIZE 0x00000400
122 1.1 rkujawa #define AMCC460EX_SATA_BASE 0xbffd1000
123 1.1 rkujawa #define AMCC460EX_SATA_SIZE 0x00000800
124 1.1 rkujawa
125 1.1 rkujawa /*
126 1.1 rkujawa * Per-port PCIe SDR registers
127 1.1 rkujawa */
128 1.1 rkujawa #define AMCC460EX_PESDR0_LOOP 0x303
129 1.1 rkujawa #define AMCC460EX_PESDR0_RCSSET 0x304
130 1.1 rkujawa #define AMCC460EX_PESDR0_RCSSTS 0x305
131 1.1 rkujawa #define AMCC460EX_PESDR1_LOOP 0x343
132 1.1 rkujawa #define AMCC460EX_PESDR1_RCSSET 0x344
133 1.1 rkujawa #define AMCC460EX_PESDR1_RCSSTS 0x345
134 1.1 rkujawa
135 1.1 rkujawa #define AMCC460EX_PESDR_LOOP_LNKUP 0x00001000 /* link trained */
136 1.1 rkujawa
137 1.1 rkujawa /*
138 1.1 rkujawa * Interrupt numbers in the flat PIC space:
139 1.1 rkujawa * UIC0 : irqs 0-31
140 1.1 rkujawa * UIC1 : cascaded via UIC0 bit 30) is irqs 32-63
141 1.1 rkujawa * UIC2 : (UIC0 bit 10) is irqs 64-95
142 1.1 rkujawa * UIC3 : (UIC0 bit 16) is irqs 96-127
143 1.1 rkujawa */
144 1.1 rkujawa #define AMCC460EX_UART0_IRQ 33 /* UIC1 bit 1 */
145 1.1 rkujawa #define AMCC460EX_UART1_IRQ 1 /* UIC0 bit 1 */
146 1.1 rkujawa #define AMCC460EX_IIC0_IRQ 2 /* UIC0 bit 2 */
147 1.1 rkujawa #define AMCC460EX_IIC1_IRQ 3 /* UIC0 bit 3 */
148 1.1 rkujawa #define AMCC460EX_PCI_IRQ 32 /* UIC1 bit 0: PCI INTA */
149 1.1 rkujawa #define AMCC460EX_MAL_TXEOB_IRQ 70 /* UIC2 bit 6 */
150 1.1 rkujawa #define AMCC460EX_MAL_RXEOB_IRQ 71 /* UIC2 bit 7 */
151 1.1 rkujawa #define AMCC460EX_EMAC0_IRQ 80 /* UIC2 bit 16 */
152 1.1 rkujawa #define AMCC460EX_EMAC1_IRQ 81 /* UIC2 bit 17 */
153 1.1 rkujawa #define AMCC460EX_USB_EHCI_IRQ 93 /* UIC2 bit 29 */
154 1.1 rkujawa #define AMCC460EX_USB_OHCI_IRQ 94 /* UIC2 bit 30 */
155 1.1 rkujawa #define AMCC460EX_SATA_IRQ 96 /* UIC3 bit 0 */
156 1.1 rkujawa #define AMCC460EX_SATA_DMA_IRQ 101 /* UIC3 bit 5: AHB DMAC */
157 1.1 rkujawa
158 1.1 rkujawa #endif /* _IBM4XX_AMCC460EX_H_ */
159