]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/pdk.git/blob - packages/ti/board/src/am64x_evm/include/board_cfg.h
PDK-6948: Board: Removed unused Ethernet PHY macros from am64x board lib
[processor-sdk/pdk.git] / packages / ti / board / src / am64x_evm / include / board_cfg.h
1 /******************************************************************************\r
2  * Copyright (c) 2020 Texas Instruments Incorporated - http://www.ti.com\r
3  *\r
4  *  Redistribution and use in source and binary forms, with or without\r
5  *  modification, are permitted provided that the following conditions\r
6  *  are met:\r
7  *\r
8  *    Redistributions of source code must retain the above copyright\r
9  *    notice, this list of conditions and the following disclaimer.\r
10  *\r
11  *    Redistributions in binary form must reproduce the above copyright\r
12  *    notice, this list of conditions and the following disclaimer in the\r
13  *    documentation and/or other materials provided with the\r
14  *    distribution.\r
15  *\r
16  *    Neither the name of Texas Instruments Incorporated nor the names of\r
17  *    its contributors may be used to endorse or promote products derived\r
18  *    from this software without specific prior written permission.\r
19  *\r
20  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
21  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
22  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
23  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
24  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
25  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
26  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
27  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
28  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
29  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
30  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
31  *\r
32  *****************************************************************************/\r
33 \r
34 /**\r
35  * \brief  Board library configurations\r
36  *\r
37  * This file configures the instance numbers, address and gpio reset\r
38  * details of different interfaces of the board.\r
39  *\r
40  */\r
41 #ifndef BOARD_CFG_H_\r
42 #define BOARD_CFG_H_\r
43 \r
44 #ifdef __cplusplus\r
45 extern "C" {\r
46 #endif\r
47 \r
48 /* Board ID information */\r
49 #define BOARD_INFO_CPU_NAME     "am64x"\r
50 #define BOARD_INFO_BOARD_NAME   "am64x_evm"\r
51 \r
52 #define BOARD_SOC_DDR_START_ADDR                        (0x80000000U)\r
53 \r
54 /* Memory sections */\r
55 #define BOARD_DDR_START_ADDR                            (0x80000000U)\r
56 #define BOARD_DDR_SIZE                                  (2048 * 1024 * 1024UL)\r
57 #define BOARD_DDR_END_ADDR                              (0xFFFFFFFFU)\r
58 \r
59 /* Note with ECC enabled, all memory is not usable: 1/8 memory used for inline ECC */\r
60 #define BOARD_DDR_ECC_END_ADDR                          (0xF1FFFFFFU)\r
61 \r
62 /* UART LLD instance number for MAIN UART0 port */\r
63 #define BOARD_UART0_INSTANCE                            (0U)\r
64 /* UART LLD instance number for MAIN UART1 port */\r
65 #define BOARD_UART1_INSTANCE                            (1U)\r
66 /* UART LLD instance number for MAIN UART2 port */\r
67 #define BOARD_UART2_INSTANCE                            (2U)\r
68 /* UART LLD instance number for MAIN UART3 port */\r
69 #define BOARD_UART3_INSTANCE                            (3U)\r
70 /* UART LLD instance number for MCU UART0 port */\r
71 #define BOARD_MCU_UART0_INSTANCE                        (7U)\r
72 /* MCU UART LLD instance number 1 */\r
73 #define BOARD_MCU_UART1_INSTANCE                        (8U)\r
74 \r
75 /* UART LLD instance number for primary UART port */\r
76 #if defined (BUILD_MCU)\r
77 #define BOARD_UART_INSTANCE (BOARD_UART0_INSTANCE)\r
78 #elif defined (BUILD_MPU)\r
79 #define BOARD_UART_INSTANCE (BOARD_UART1_INSTANCE)\r
80 #elif defined (BUILD_M4F)\r
81 #define BOARD_UART_INSTANCE (BOARD_MCU_UART0_INSTANCE)\r
82 #else\r
83 #define BOARD_UART_INSTANCE (BOARD_UART0_INSTANCE)  /* Use MAIN UART0 by default */\r
84 #endif\r
85 \r
86 /* Clock frequency for UART module */\r
87 #define BOARD_UART_CLK_MAIN                             (48000000U)\r
88 \r
89 /** @brief Number of UART instances */\r
90 #define BOARD_UART_PER_CNT                              (6U)\r
91 \r
92 /* ICSSG UART instance number */\r
93 #define BOARD_ICSSG_UART_INSTANCE                       (4U)\r
94 \r
95 /* I2C instance connected to EEPROM - WKUP I2C0 */\r
96 #define BOARD_I2C_EEPROM_INSTANCE                       (0U)\r
97 \r
98 /* I2C instance for BOOT EEPROM */\r
99 #define BOARD_I2C_BOOT_EEPROM_INSTANCE                  (0U)\r
100 \r
101 /* I2C address for Boot EEPROM */\r
102 #define BOARD_I2C_BOOT_EEPROM_ADDR                      (0x50U)\r
103 #define BOARD_I2C_BOOT_EEPROM_ADDR2                     (0x51U)\r
104 \r
105 /* I2C address for Board Id EEPROM */\r
106 #define BOARD_I2C_EEPROM_ADDR                           (0x51U)\r
107 \r
108 /* QSPI instance number */\r
109 #define BOARD_SPI_NOR_INSTANCE                          (0U)\r
110 \r
111 /* I2C Instance connected to clock generator */\r
112 #define BOARD_CLOCK_GENERATOR_INSTANCE                  (0U)\r
113 /* I2C slave address of clock generator */\r
114 #define BOARD_I2C_CLOCK_GENERATOR1                      (0)   //Can be used later\r
115 #define BOARD_I2C_CLOCK_GENERATOR2_ADDR1                (0x76)\r
116 #define BOARD_I2C_CLOCK_GENERATOR2_ADDR2                (0x77)\r
117 #define BOARD_I2C_QSGMII_CLOCK_GENERATOR                (0x77)\r
118 #define BOARD_I2C_PERI_CLOCK_GENERATOR                  (0x6D)\r
119 \r
120 /* OSPI instance connected to OSPI NOR flash */\r
121 #define BOARD_OSPI_NOR_INSTANCE                         (0U)\r
122 \r
123 /* I2C instance connected to IO Expander */\r
124 #define BOARD_I2C_IOEXP_DEVICE1_INSTANCE                (1U)\r
125 #define BOARD_I2C_IOEXP_DEVICE2_INSTANCE                (0U)\r
126 #define BOARD_I2C_IOEXP_DEVICE3_INSTANCE                (3U)\r
127 #define BOARD_I2C_IOEXP_DEVICE4_INSTANCE                (0U)\r
128 #define BOARD_I2C_IOEXP_DEVICE5_INSTANCE                (1U)\r
129 #define BOARD_I2C_AUDIO_IOEXP_DEVICE_INSTANCE           (3U)\r
130 #define BOARD_I2C_VIDEO_IOEXP_DEVICE_INSTANCE           (0U)\r
131 #define BOARD_I2C_LED_INSTANCE                          (1U)\r
132 \r
133 /* I2C IO Expander Slave devices */\r
134 #define BOARD_I2C_IOEXP_DEVICE1_ADDR                    (0x22U)\r
135 /* Used to configure Ethernet PHY LED's */\r
136 #define BOARD_I2C_IOEXP_DEVICE2_ADDR                    (0x60U)\r
137 #define BOARD_I2C_LED_ADDR                              (0x60U)\r
138 \r
139 /* OSPI instance number */\r
140 #define BOARD_OSPI_INSTANCE                             (0)\r
141 \r
142 #define BOARD_GPIO_IOEXP_OSPI_RST_PORT_NUM              (0)\r
143 #define BOARD_GPIO_IOEXP_OSPI_RST_PIN_NUM               (1)\r
144 \r
145 /* GPIO port & pin numbers for  MMC reset */\r
146 #define GPIO_MMC_SDCD_PORT_NUM                          (0)\r
147 #define GPIO_MMC_SDCD_PIN_NUM                           (0)\r
148 \r
149 #define BOARD_GPIO_IOEXP_EMMC_RST_PORT_NUM              (0x0)\r
150 #define BOARD_GPIO_IOEXP_EMMC_RST_PIN_NUM               (0x0)\r
151 \r
152 /* I2C instance for External RTC */\r
153 #define BOARD_I2C_EXT_RTC_INSTANCE                      (0U)\r
154 \r
155 /* I2C address for External RTC */\r
156 #define BOARD_I2C_EXT_RTC_ADDR                          (0x6FU)\r
157 \r
158 /* I2C instance Board Presence Circuit */\r
159 #define BOARD_PRES_I2C_INSTANCE                         (0U)\r
160 /* I2C address Board Presence Circuit */\r
161 #define BOARD_PRES_DETECT_SLAVE_ADDR                    (0x38U)\r
162 \r
163 /* Pin and port numbers for TEST_LED1 on CP board */\r
164 #define BOARD_GPIO_TEST_LED1_PORT_NUM                       (0)       /* Port 0 */\r
165 #define BOARD_GPIO_TEST_LED1_PIN_NUM                    (0x01)    /* Pin 1  */\r
166 /* Pin and port numbers for TEST_LED2 on CP board */\r
167 #define BOARD_MCU_GPIO_TEST_LED2_PORT_NUM               (0)       /* Port 0 */\r
168 #define BOARD_MCU_GPIO_TEST_LED2_PIN_NUM                (0x05)    /* Pin 5  */\r
169 \r
170 /* User LED Pin Details */\r
171 #define BOARD_I2C_USER_LED_INSTANCE                     (0U)\r
172 \r
173 #define BOARD_USER_LED1                                 (1U) /* Main GPIO0_1 */\r
174 #define BOARD_USER_LED2                                 (1U) /* MCU GPIO0_1 */\r
175 \r
176 #define BOARD_ICSS_EMAC_PORT_START                      (0x0U)\r
177 #define BOARD_ICSS_EMAC_PORT_END                        (0x1U)\r
178 #define BOARD_ICSS_EMAC_PORT_MAX                        (0x2U)\r
179 #define BOARD_MCU_EMAC_PORT_MAX                         (0x1U)\r
180 #define BOARD_MCU_ETH_PORT                              (0x1U) //AM64x_TODO: need to update\r
181 \r
182 \r
183 /* ICSS2 EMAC PHY register address */\r
184 #define BOARD_ICSS_EMAC_PHY0_ADDR                       (0x3)\r
185 #define BOARD_ICSS_EMAC_PHY1_ADDR                       (0xFu)\r
186 #define BOARD_CPSW_EMAC_PHY0_ADDR                       (0x0)\r
187 #define BOARD_CPSW_EMAC_PHY1_ADDR                       (0x3u)\r
188 \r
189 \r
190 /* PRG1_RGMII2_RESETn */\r
191 #define BOARD_GPIO_IOEXP_ICSS1_EMAC_RST_PORT_NUM        (0)\r
192 #define BOARD_GPIO_IOEXP_ICSS1_EMAC_RST_PIN_NUM         (4)\r
193 \r
194 /* PRG1_RGMII1_RESETn */\r
195 #define BOARD_GPIO_IOEXP_ICSS2_EMAC_RST_PORT_NUM        (0)\r
196 #define BOARD_GPIO_IOEXP_ICSS2_EMAC_RST_PIN_NUM         (3)\r
197 \r
198 /* PRG1_RGMII_INTn */\r
199 #define BOARD_GPIO_ICSS2_EMAC_INT_PORT_NUM              (0) /* GPIO1_70  */\r
200 #define BOARD_GPIO_ICSS2_EMAC_INT_PIN_NUM               (0x46)\r
201 \r
202 /* PRG1_ETH1_LED_LINK */\r
203 #define BOARD_GPIO_ICSS2_EMAC_PHY0_LED_LINK_PORT_NUM    (0)  /* PRG1_PRU0_GPO8 - GPIO0_53 */\r
204 #define BOARD_GPIO_ICSS2_EMAC_PHY0_LED_LINK_PIN_NUM     (35)\r
205 \r
206 /* PRG1_ETH2_LED_LINK */\r
207 #define BOARD_GPIO_ICSS2_EMAC_PHY1_LED_LINK_PORT_NUM    (0)  /* PRG1_PRU1_GPO8 - GPIO0_73 */\r
208 #define BOARD_GPIO_ICSS2_EMAC_PHY1_LED_LINK_PIN_NUM     (49)\r
209 \r
210 /* GPIO to drive PRG2 LED0 */\r
211 #define BOARD_GPIO_ICSS2_EMAC_LED0_PORT_NUM             (0) //AM64x_TODO: need to update\r
212 #define BOARD_GPIO_ICSS2_EMAC_LED0_PIN_NUM              (0) //AM64x_TODO: need to update\r
213 \r
214 /* GPIO to drive PRG2 LED1 */\r
215 #define BOARD_GPIO_ICSS2_EMAC_LED1_PORT_NUM             (0) //AM64x_TODO: need to update\r
216 #define BOARD_GPIO_ICSS2_EMAC_LED1_PIN_NUM              (0) //AM64x_TODO: need to update\r
217 \r
218 /* GPIO to drive PRG2 LED2 */\r
219 #define BOARD_GPIO_ICSS2_EMAC_LED2_PORT_NUM             (0) //AM64x_TODO: need to update\r
220 #define BOARD_GPIO_ICSS2_EMAC_LED2_PIN_NUM              (0) //AM64x_TODO: need to update\r
221 \r
222 /* GPIO to drive PRG2 LED3 */\r
223 #define BOARD_GPIO_ICSS2_EMAC_LED3_PORT_NUM             (0) //AM64x_TODO: need to update\r
224 #define BOARD_GPIO_ICSS2_EMAC_LED3_PIN_NUM              (0) //AM64x_TODO: need to update\r
225 \r
226 /* MCU EMAC PHY MDIO address */\r
227 #define BOARD_MCU_EMAC_PHY_ADDR                         (0U)\r
228 \r
229 /* MCU EMAC MAX REG DUMP */\r
230 #define BOARD_MCU_EMAC_REG_DUMP_MAX                     (16)\r
231 \r
232 /* MCU EMAC PHY register address definitions for reading strap values */\r
233 #define BOARD_MCU_EMAC_STRAP_STS1_ADDR                  (0x6EU)\r
234 #define BOARD_MCU_EMAC_STRAP_STS2_ADDR                  (0x6FU)\r
235 \r
236 /* MCU EMAC PHY register address definitions for reading strap values */\r
237 #define BOARD_ICSS_EMAC_STRAP_STS1_ADDR                 (0x6EU)\r
238 #define BOARD_ICSS_EMAC_STRAP_STS2_ADDR                 (0x6FU)\r
239 \r
240 /* MCU_ETH1_RESETn --> GPIO_CPSW1_RST */\r
241 #define BOARD_GPIO_IOEXP_MCU_EMAC_RST_PORT_NUM          (0)\r
242 #define BOARD_GPIO_IOEXP_MCU_EMAC_RST_PIN_NUM           (2)\r
243 \r
244 /* MCU_ETH1_INTn -> CPSW_RGMII_INTn */\r
245 #define BOARD_GPIO_MCU_EMAC_INT_PORT_NUM                (1) /* EXTINTn - GPIO1_70 */\r
246 #define BOARD_GPIO_MCU_EMAC_INT_PIN_NUM                 (46)\r
247 \r
248 /* AUTOMATION HEADER */\r
249 #define BOARD_TEST_HEADER_I2C_INSTANCE                  (1U)\r
250 #define BOARD_I2C_BOOT_MODE_SW_ADDR                     (0x22U)\r
251 \r
252 /* TEST_GPIO2 */\r
253 #define BOARD_GPIO_IOEXP_TEST_PORT_NUM                  (1)\r
254 #define BOARD_GPIO_IOEXP_TEST_PIN_NUM                   (5)\r
255 \r
256 /* Temperature sensor i2c instance */\r
257 #define BOARD_TEMP_SENSOR_I2C_INSTANCE                  (1U)\r
258 \r
259 /* Temperature sensor slave device addresses */\r
260 #define BOARD_TEMP_SENSOR_I2C_SLAVE_DEVICE1_ADDR        (0x48U)\r
261 #define BOARD_TEMP_SENSOR_I2C_SLAVE_DEVICE2_ADDR        (0x49U)\r
262 \r
263 #define BOARD_I2C_CURRENT_MONITOR_INSTANCE              (1U)\r
264 \r
265 /* I2C instance connected to OLED DISPLAY */\r
266 #define BOARD_OLED_DISPLAY_INSTANCE                     (1)\r
267 \r
268 /* Instance for interfaces connected to MMCSD */\r
269 #define BOARD_MMCSD_SD_INSTANCE                         (1U)\r
270 #define BOARD_MMCSD_EMMC_INSTANCE                       (0)\r
271 \r
272 /* GPMC instance connected to the flash */\r
273 #define BOARD_GPMC_INSTANCE                             (0U)\r
274 \r
275 /* Number of LEDS connected to GPIO */\r
276 #define BOARD_GPIO_LED_NUM                              (2U)\r
277 \r
278 /* SPI instance connected to EEPROM */\r
279 #define BOARD_EEPROM_SPI0_PORT                          (0U)\r
280 \r
281 /* Enable NOR flash driver */\r
282 #define BOARD_NOR_FLASH_IN\r
283 \r
284 /* McSPI instance for master and slave test */\r
285 #define BOARD_MCSPI_MASTER_INSTANCE                     (1)\r
286 #define BOARD_MCSPI_SLAVE_INSTANCE                      (1)\r
287 \r
288 /* Maximum possible buffer length */\r
289 #define BOARD_EEPROM_MAX_BUFF_LENGTH                    (0)\r
290 \r
291 /* Maximum number of SoC domains */\r
292 #define BOARD_SOC_DOMAIN_MAX                            (2U)\r
293 /* Value for indicating SoC main domain */\r
294 #define BOARD_SOC_DOMAIN_MAIN                           (0)\r
295 /* Value for indicating SoC MCU domain */\r
296 #define BOARD_SOC_DOMAIN_MCU                            (1U)\r
297 /* Maximum I2C instance number common across the domain */\r
298 #define BOARD_I2C_DOMAIN_INSTANCE_MAX                   (2U)\r
299 \r
300 /* SoC domain used by UART module */\r
301 #if defined (BUILD_M4F)\r
302 #define BOARD_UART_SOC_DOMAIN    (BOARD_SOC_DOMAIN_MCU)\r
303 #else\r
304 #define BOARD_UART_SOC_DOMAIN    (BOARD_SOC_DOMAIN_MAIN)\r
305 #endif\r
306 \r
307 \r
308 /* EEPROM board ID information */\r
309 /* EEPROM board ID information */\r
310 #define BOARD_EEPROM_HEADER_FIELD_SIZE                  (7U)\r
311 #define BOARD_EEPROM_TYPE_SIZE                          (1U)\r
312 #define BOARD_EEPROM_STRUCT_LENGTH_SIZE                 (2U)\r
313 #define BOARD_EEPROM_MAGIC_NUMBER                       (0xEE3355AA)\r
314 \r
315 #define BOARD_BOARD_FIELD_TYPE                          (0x10)\r
316 #define BOARD_DDR_FIELD_TYPE                            (0x11)\r
317 #define BOARD_MACINFO_FIELD_TYPE                        (0x13)\r
318 #define BOARD_ENDLIST                                   (0xFE)\r
319 \r
320 #define BOARD_EEPROM_HEADER_ADDR                        (0U)\r
321 \r
322 /* I2C instance connected to OLED DISPLAY */\r
323 #define BOARD_OLED_DISPLAY_INSTANCE                     (1)\r
324 \r
325 /* PinMux data to be programmed to configure a pin to be a GPIO */\r
326 #define PINMUX_GPIO_CFG                                 (0x00050007U)\r
327 \r
328 /* Clock frequency for UART module */\r
329 #define BOARD_UART_CLK_MAIN                             (48000000U)\r
330 \r
331 /** @brief Number of UART instances */\r
332 #define BOARD_UART_PER_CNT                              (6U)\r
333 \r
334 /* SPI instance connected to LED Driver */\r
335 #define BOARD_SPI1_INSTANCE                              (1U)\r
336 \r
337 /* PinMux data to be programmed to configure a pin to be a GPIO */\r
338 #define PINMUX_GPIO_CFG                                 (0x00050007U)\r
339 \r
340 typedef enum\r
341 {\r
342         APP_CARD_DETECT = 0,\r
343         LCD_BRD_DETECT,\r
344         SERDES_BRD_DETECT,\r
345         HDMI_BRD_DETECT\r
346 }boardPresDetect_t;\r
347 \r
348 typedef enum domainType\r
349 {\r
350     MAIN_DOMAIN = 0U,\r
351     WKUP_DOMAIN\r
352 }domainType_t;\r
353 \r
354 \r
355 #define BOARD_EEPROM_HEADER_LENGTH                      (4U)\r
356 #define BOARD_EEPROM_BOARD_NAME_LENGTH                  (8U)\r
357 #define BOARD_EEPROM_VERSION_LENGTH                     (4U)\r
358 #define BOARD_EEPROM_SERIAL_NO_LENGTH                   (12U)\r
359 #define BOARD_EEPROM_CONFIG_LENGTH                      (32U)\r
360 \r
361 #define BOARD_EEPROM_BOARD_NAME_ADDR                    (BOARD_EEPROM_HEADER_ADDR + BOARD_EEPROM_HEADER_LENGTH)\r
362 #define BOARD_EEPROM_VERSION_ADDR                       (BOARD_EEPROM_BOARD_NAME_ADDR + BOARD_EEPROM_BOARD_NAME_LENGTH)\r
363 #define BOARD_EEPROM_SERIAL_NO_ADDR                     (BOARD_EEPROM_VERSION_ADDR + BOARD_EEPROM_VERSION_LENGTH)\r
364 #define BOARD_EEPROM_CONFIG_ADDR                        (BOARD_EEPROM_SERIAL_NO_ADDR + BOARD_EEPROM_SERIAL_NO_LENGTH)\r
365 \r
366 #ifdef __cplusplus\r
367 }\r
368 #endif /* __cplusplus */\r
369 \r
370 #endif   /* BOARD_CFG_H_ */\r
371 \r