18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* ********************************************************************* 38c2ecf20Sopenharmony_ci * BCM1255/BCM1280/BCM1455/BCM1480 Board Support Package 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Register Definitions File: bcm1480_regs.h 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * This module contains the addresses of the on-chip peripherals 88c2ecf20Sopenharmony_ci * on the BCM1280 and BCM1480. 98c2ecf20Sopenharmony_ci * 108c2ecf20Sopenharmony_ci * BCM1480 specification level: 1X55_1X80-UM100-D4 (11/24/03) 118c2ecf20Sopenharmony_ci * 128c2ecf20Sopenharmony_ci ********************************************************************* 138c2ecf20Sopenharmony_ci * 148c2ecf20Sopenharmony_ci * Copyright 2000,2001,2002,2003 158c2ecf20Sopenharmony_ci * Broadcom Corporation. All rights reserved. 168c2ecf20Sopenharmony_ci * 178c2ecf20Sopenharmony_ci ********************************************************************* */ 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci#ifndef _BCM1480_REGS_H 208c2ecf20Sopenharmony_ci#define _BCM1480_REGS_H 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci#include <asm/sibyte/sb1250_defs.h> 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci/* ********************************************************************* 258c2ecf20Sopenharmony_ci * Pull in the BCM1250's registers since a great deal of the 1480's 268c2ecf20Sopenharmony_ci * functions are the same as the BCM1250. 278c2ecf20Sopenharmony_ci ********************************************************************* */ 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci#include <asm/sibyte/sb1250_regs.h> 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci/* ********************************************************************* 338c2ecf20Sopenharmony_ci * Some general notes: 348c2ecf20Sopenharmony_ci * 358c2ecf20Sopenharmony_ci * Register addresses are grouped by function and follow the order 368c2ecf20Sopenharmony_ci * of the User Manual. 378c2ecf20Sopenharmony_ci * 388c2ecf20Sopenharmony_ci * For the most part, when there is more than one peripheral 398c2ecf20Sopenharmony_ci * of the same type on the SOC, the constants below will be 408c2ecf20Sopenharmony_ci * offsets from the base of each peripheral. For example, 418c2ecf20Sopenharmony_ci * the MAC registers are described as offsets from the first 428c2ecf20Sopenharmony_ci * MAC register, and there will be a MAC_REGISTER() macro 438c2ecf20Sopenharmony_ci * to calculate the base address of a given MAC. 448c2ecf20Sopenharmony_ci * 458c2ecf20Sopenharmony_ci * The information in this file is based on the BCM1X55/BCM1X80 468c2ecf20Sopenharmony_ci * User Manual, Document 1X55_1X80-UM100-R, 22/12/03. 478c2ecf20Sopenharmony_ci * 488c2ecf20Sopenharmony_ci * This file is basically a "what's new" header file. Since the 498c2ecf20Sopenharmony_ci * BCM1250 and the new BCM1480 (and derivatives) share many common 508c2ecf20Sopenharmony_ci * features, this file contains only what's new or changed from 518c2ecf20Sopenharmony_ci * the 1250. (above, you can see that we include the 1250 symbols 528c2ecf20Sopenharmony_ci * to get the base functionality). 538c2ecf20Sopenharmony_ci * 548c2ecf20Sopenharmony_ci * In software, be sure to use the correct symbols, particularly 558c2ecf20Sopenharmony_ci * for blocks that are different between the two chip families. 568c2ecf20Sopenharmony_ci * All BCM1480-specific symbols have _BCM1480_ in their names, 578c2ecf20Sopenharmony_ci * and all BCM1250-specific and "base" functions that are common in 588c2ecf20Sopenharmony_ci * both chips have no special names (this is for compatibility with 598c2ecf20Sopenharmony_ci * older include files). Therefore, if you're working with the 608c2ecf20Sopenharmony_ci * SCD, which is very different on each chip, A_SCD_xxx implies 618c2ecf20Sopenharmony_ci * the BCM1250 version and A_BCM1480_SCD_xxx implies the BCM1480 628c2ecf20Sopenharmony_ci * version. 638c2ecf20Sopenharmony_ci ********************************************************************* */ 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ci/* ********************************************************************* 678c2ecf20Sopenharmony_ci * Memory Controller Registers (Section 6) 688c2ecf20Sopenharmony_ci ********************************************************************* */ 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci#define A_BCM1480_MC_BASE_0 0x0010050000 718c2ecf20Sopenharmony_ci#define A_BCM1480_MC_BASE_1 0x0010051000 728c2ecf20Sopenharmony_ci#define A_BCM1480_MC_BASE_2 0x0010052000 738c2ecf20Sopenharmony_ci#define A_BCM1480_MC_BASE_3 0x0010053000 748c2ecf20Sopenharmony_ci#define BCM1480_MC_REGISTER_SPACING 0x1000 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci#define A_BCM1480_MC_BASE(ctlid) (A_BCM1480_MC_BASE_0+(ctlid)*BCM1480_MC_REGISTER_SPACING) 778c2ecf20Sopenharmony_ci#define A_BCM1480_MC_REGISTER(ctlid, reg) (A_BCM1480_MC_BASE(ctlid)+(reg)) 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CONFIG 0x0000000100 808c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS_START 0x0000000120 818c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS_END 0x0000000140 828c2ecf20Sopenharmony_ci#define S_BCM1480_MC_CS_STARTEND 24 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS01_ROW0 0x0000000180 858c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS01_ROW1 0x00000001A0 868c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS23_ROW0 0x0000000200 878c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS23_ROW1 0x0000000220 888c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS01_COL0 0x0000000280 898c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS01_COL1 0x00000002A0 908c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS23_COL0 0x0000000300 918c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS23_COL1 0x0000000320 928c2ecf20Sopenharmony_ci 938c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CSX_BASE 0x0000000180 948c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CSX_ROW0 0x0000000000 /* relative to CSX_BASE */ 958c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CSX_ROW1 0x0000000020 /* relative to CSX_BASE */ 968c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CSX_COL0 0x0000000100 /* relative to CSX_BASE */ 978c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CSX_COL1 0x0000000120 /* relative to CSX_BASE */ 988c2ecf20Sopenharmony_ci#define BCM1480_MC_CSX_SPACING 0x0000000080 /* CS23 relative to CS01 */ 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS01_BA 0x0000000380 1018c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CS23_BA 0x00000003A0 1028c2ecf20Sopenharmony_ci#define R_BCM1480_MC_DRAMCMD 0x0000000400 1038c2ecf20Sopenharmony_ci#define R_BCM1480_MC_DRAMMODE 0x0000000420 1048c2ecf20Sopenharmony_ci#define R_BCM1480_MC_CLOCK_CFG 0x0000000440 1058c2ecf20Sopenharmony_ci#define R_BCM1480_MC_MCLK_CFG R_BCM1480_MC_CLOCK_CFG 1068c2ecf20Sopenharmony_ci#define R_BCM1480_MC_TEST_DATA 0x0000000480 1078c2ecf20Sopenharmony_ci#define R_BCM1480_MC_TEST_ECC 0x00000004A0 1088c2ecf20Sopenharmony_ci#define R_BCM1480_MC_TIMING1 0x00000004C0 1098c2ecf20Sopenharmony_ci#define R_BCM1480_MC_TIMING2 0x00000004E0 1108c2ecf20Sopenharmony_ci#define R_BCM1480_MC_DLL_CFG 0x0000000500 1118c2ecf20Sopenharmony_ci#define R_BCM1480_MC_DRIVE_CFG 0x0000000520 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci#if SIBYTE_HDR_FEATURE(1480, PASS2) 1148c2ecf20Sopenharmony_ci#define R_BCM1480_MC_ODT 0x0000000460 1158c2ecf20Sopenharmony_ci#define R_BCM1480_MC_ECC_STATUS 0x0000000540 1168c2ecf20Sopenharmony_ci#endif 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci/* Global registers (single instance) */ 1198c2ecf20Sopenharmony_ci#define A_BCM1480_MC_GLB_CONFIG 0x0010054100 1208c2ecf20Sopenharmony_ci#define A_BCM1480_MC_GLB_INTLV 0x0010054120 1218c2ecf20Sopenharmony_ci#define A_BCM1480_MC_GLB_ECC_STATUS 0x0010054140 1228c2ecf20Sopenharmony_ci#define A_BCM1480_MC_GLB_ECC_ADDR 0x0010054160 1238c2ecf20Sopenharmony_ci#define A_BCM1480_MC_GLB_ECC_CORRECT 0x0010054180 1248c2ecf20Sopenharmony_ci#define A_BCM1480_MC_GLB_PERF_CNT_CONTROL 0x00100541A0 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ci/* ********************************************************************* 1278c2ecf20Sopenharmony_ci * L2 Cache Control Registers (Section 5) 1288c2ecf20Sopenharmony_ci ********************************************************************* */ 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci#define A_BCM1480_L2_BASE 0x0010040000 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_ci#define A_BCM1480_L2_READ_TAG 0x0010040018 1338c2ecf20Sopenharmony_ci#define A_BCM1480_L2_ECC_TAG 0x0010040038 1348c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MISC0_VALUE 0x0010040058 1358c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MISC1_VALUE 0x0010040078 1368c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MISC2_VALUE 0x0010040098 1378c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MISC_CONFIG 0x0010040040 /* x040 */ 1388c2ecf20Sopenharmony_ci#define A_BCM1480_L2_CACHE_DISABLE 0x0010040060 /* x060 */ 1398c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MAKECACHEDISABLE(x) (A_BCM1480_L2_CACHE_DISABLE | (((x)&0xF) << 12)) 1408c2ecf20Sopenharmony_ci#define A_BCM1480_L2_WAY_ENABLE_3_0 0x0010040080 /* x080 */ 1418c2ecf20Sopenharmony_ci#define A_BCM1480_L2_WAY_ENABLE_7_4 0x00100400A0 /* x0A0 */ 1428c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MAKE_WAY_ENABLE_LO(x) (A_BCM1480_L2_WAY_ENABLE_3_0 | (((x)&0xF) << 12)) 1438c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MAKE_WAY_ENABLE_HI(x) (A_BCM1480_L2_WAY_ENABLE_7_4 | (((x)&0xF) << 12)) 1448c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MAKE_WAY_DISABLE_LO(x) (A_BCM1480_L2_WAY_ENABLE_3_0 | (((~x)&0xF) << 12)) 1458c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MAKE_WAY_DISABLE_HI(x) (A_BCM1480_L2_WAY_ENABLE_7_4 | (((~x)&0xF) << 12)) 1468c2ecf20Sopenharmony_ci#define A_BCM1480_L2_WAY_LOCAL_3_0 0x0010040100 /* x100 */ 1478c2ecf20Sopenharmony_ci#define A_BCM1480_L2_WAY_LOCAL_7_4 0x0010040120 /* x120 */ 1488c2ecf20Sopenharmony_ci#define A_BCM1480_L2_WAY_REMOTE_3_0 0x0010040140 /* x140 */ 1498c2ecf20Sopenharmony_ci#define A_BCM1480_L2_WAY_REMOTE_7_4 0x0010040160 /* x160 */ 1508c2ecf20Sopenharmony_ci#define A_BCM1480_L2_WAY_AGENT_3_0 0x00100400C0 /* xxC0 */ 1518c2ecf20Sopenharmony_ci#define A_BCM1480_L2_WAY_AGENT_7_4 0x00100400E0 /* xxE0 */ 1528c2ecf20Sopenharmony_ci#define A_BCM1480_L2_WAY_ENABLE(A, banks) (A | (((~(banks))&0x0F) << 8)) 1538c2ecf20Sopenharmony_ci#define A_BCM1480_L2_BANK_BASE 0x00D0300000 1548c2ecf20Sopenharmony_ci#define A_BCM1480_L2_BANK_ADDRESS(b) (A_BCM1480_L2_BANK_BASE | (((b)&0x7)<<17)) 1558c2ecf20Sopenharmony_ci#define A_BCM1480_L2_MGMT_TAG_BASE 0x00D0000000 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci/* ********************************************************************* 1598c2ecf20Sopenharmony_ci * PCI-X Interface Registers (Section 7) 1608c2ecf20Sopenharmony_ci ********************************************************************* */ 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci#define A_BCM1480_PCI_BASE 0x0010061400 1638c2ecf20Sopenharmony_ci 1648c2ecf20Sopenharmony_ci#define A_BCM1480_PCI_RESET 0x0010061400 1658c2ecf20Sopenharmony_ci#define A_BCM1480_PCI_DLL 0x0010061500 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci#define A_BCM1480_PCI_TYPE00_HEADER 0x002E000000 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci/* ********************************************************************* 1708c2ecf20Sopenharmony_ci * Ethernet MAC Registers (Section 11) and DMA Registers (Section 10.6) 1718c2ecf20Sopenharmony_ci ********************************************************************* */ 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci/* No register changes with Rev.C BCM1250, but one additional MAC */ 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci#define A_BCM1480_MAC_BASE_2 0x0010066000 1768c2ecf20Sopenharmony_ci 1778c2ecf20Sopenharmony_ci#ifndef A_MAC_BASE_2 1788c2ecf20Sopenharmony_ci#define A_MAC_BASE_2 A_BCM1480_MAC_BASE_2 1798c2ecf20Sopenharmony_ci#endif 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ci#define A_BCM1480_MAC_BASE_3 0x0010067000 1828c2ecf20Sopenharmony_ci#define A_MAC_BASE_3 A_BCM1480_MAC_BASE_3 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci#define R_BCM1480_MAC_DMA_OODPKTLOST 0x00000038 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci#ifndef R_MAC_DMA_OODPKTLOST 1878c2ecf20Sopenharmony_ci#define R_MAC_DMA_OODPKTLOST R_BCM1480_MAC_DMA_OODPKTLOST 1888c2ecf20Sopenharmony_ci#endif 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci/* ********************************************************************* 1928c2ecf20Sopenharmony_ci * DUART Registers (Section 14) 1938c2ecf20Sopenharmony_ci ********************************************************************* */ 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci/* No significant differences from BCM1250, two DUARTs */ 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ci/* Conventions, per user manual: 1988c2ecf20Sopenharmony_ci * DUART generic, channels A,B,C,D 1998c2ecf20Sopenharmony_ci * DUART0 implementing channels A,B 2008c2ecf20Sopenharmony_ci * DUART1 inplementing channels C,D 2018c2ecf20Sopenharmony_ci */ 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci#define BCM1480_DUART_NUM_PORTS 4 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci#define A_BCM1480_DUART0 0x0010060000 2068c2ecf20Sopenharmony_ci#define A_BCM1480_DUART1 0x0010060400 2078c2ecf20Sopenharmony_ci#define A_BCM1480_DUART(chan) ((((chan)&2) == 0)? A_BCM1480_DUART0 : A_BCM1480_DUART1) 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_ci#define BCM1480_DUART_CHANREG_SPACING 0x100 2108c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_CHANREG(chan, reg) \ 2118c2ecf20Sopenharmony_ci (A_BCM1480_DUART(chan) + \ 2128c2ecf20Sopenharmony_ci BCM1480_DUART_CHANREG_SPACING * (((chan) & 1) + 1) + (reg)) 2138c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_CTRLREG(chan, reg) \ 2148c2ecf20Sopenharmony_ci (A_BCM1480_DUART(chan) + \ 2158c2ecf20Sopenharmony_ci BCM1480_DUART_CHANREG_SPACING * 3 + (reg)) 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci#define DUART_IMRISR_SPACING 0x20 2188c2ecf20Sopenharmony_ci#define DUART_INCHNG_SPACING 0x10 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci#define R_BCM1480_DUART_IMRREG(chan) \ 2218c2ecf20Sopenharmony_ci (R_DUART_IMR_A + ((chan) & 1) * DUART_IMRISR_SPACING) 2228c2ecf20Sopenharmony_ci#define R_BCM1480_DUART_ISRREG(chan) \ 2238c2ecf20Sopenharmony_ci (R_DUART_ISR_A + ((chan) & 1) * DUART_IMRISR_SPACING) 2248c2ecf20Sopenharmony_ci#define R_BCM1480_DUART_INCHREG(chan) \ 2258c2ecf20Sopenharmony_ci (R_DUART_IN_CHNG_A + ((chan) & 1) * DUART_INCHNG_SPACING) 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_IMRREG(chan) \ 2288c2ecf20Sopenharmony_ci (A_BCM1480_DUART_CTRLREG((chan), R_BCM1480_DUART_IMRREG(chan))) 2298c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_ISRREG(chan) \ 2308c2ecf20Sopenharmony_ci (A_BCM1480_DUART_CTRLREG((chan), R_BCM1480_DUART_ISRREG(chan))) 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_IN_PORT(chan) \ 2338c2ecf20Sopenharmony_ci (A_BCM1480_DUART_CTRLREG((chan), R_DUART_IN_PORT)) 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_ci/* 2368c2ecf20Sopenharmony_ci * These constants are the absolute addresses. 2378c2ecf20Sopenharmony_ci */ 2388c2ecf20Sopenharmony_ci 2398c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_MODE_REG_1_C 0x0010060400 2408c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_MODE_REG_2_C 0x0010060410 2418c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_STATUS_C 0x0010060420 2428c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_CLK_SEL_C 0x0010060430 2438c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_FULL_CTL_C 0x0010060440 2448c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_CMD_C 0x0010060450 2458c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_RX_HOLD_C 0x0010060460 2468c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_TX_HOLD_C 0x0010060470 2478c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_OPCR_C 0x0010060480 2488c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_AUX_CTRL_C 0x0010060490 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_MODE_REG_1_D 0x0010060500 2518c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_MODE_REG_2_D 0x0010060510 2528c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_STATUS_D 0x0010060520 2538c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_CLK_SEL_D 0x0010060530 2548c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_FULL_CTL_D 0x0010060540 2558c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_CMD_D 0x0010060550 2568c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_RX_HOLD_D 0x0010060560 2578c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_TX_HOLD_D 0x0010060570 2588c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_OPCR_D 0x0010060580 2598c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_AUX_CTRL_D 0x0010060590 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_INPORT_CHNG_CD 0x0010060600 2628c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_AUX_CTRL_CD 0x0010060610 2638c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_ISR_C 0x0010060620 2648c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_IMR_C 0x0010060630 2658c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_ISR_D 0x0010060640 2668c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_IMR_D 0x0010060650 2678c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_OUT_PORT_CD 0x0010060660 2688c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_OPCR_CD 0x0010060670 2698c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_IN_PORT_CD 0x0010060680 2708c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_ISR_CD 0x0010060690 2718c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_IMR_CD 0x00100606A0 2728c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_SET_OPR_CD 0x00100606B0 2738c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_CLEAR_OPR_CD 0x00100606C0 2748c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_INPORT_CHNG_C 0x00100606D0 2758c2ecf20Sopenharmony_ci#define A_BCM1480_DUART_INPORT_CHNG_D 0x00100606E0 2768c2ecf20Sopenharmony_ci 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci/* ********************************************************************* 2798c2ecf20Sopenharmony_ci * Generic Bus Registers (Section 15) and PCMCIA Registers (Section 16) 2808c2ecf20Sopenharmony_ci ********************************************************************* */ 2818c2ecf20Sopenharmony_ci 2828c2ecf20Sopenharmony_ci#define A_BCM1480_IO_PCMCIA_CFG_B 0x0010061A58 2838c2ecf20Sopenharmony_ci#define A_BCM1480_IO_PCMCIA_STATUS_B 0x0010061A68 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci/* ********************************************************************* 2868c2ecf20Sopenharmony_ci * GPIO Registers (Section 17) 2878c2ecf20Sopenharmony_ci ********************************************************************* */ 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci/* One additional GPIO register, placed _before_ the BCM1250's GPIO block base */ 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ci#define A_BCM1480_GPIO_INT_ADD_TYPE 0x0010061A78 2928c2ecf20Sopenharmony_ci#define R_BCM1480_GPIO_INT_ADD_TYPE (-8) 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci#define A_GPIO_INT_ADD_TYPE A_BCM1480_GPIO_INT_ADD_TYPE 2958c2ecf20Sopenharmony_ci#define R_GPIO_INT_ADD_TYPE R_BCM1480_GPIO_INT_ADD_TYPE 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci/* ********************************************************************* 2988c2ecf20Sopenharmony_ci * SMBus Registers (Section 18) 2998c2ecf20Sopenharmony_ci ********************************************************************* */ 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ci/* No changes from BCM1250 */ 3028c2ecf20Sopenharmony_ci 3038c2ecf20Sopenharmony_ci/* ********************************************************************* 3048c2ecf20Sopenharmony_ci * Timer Registers (Sections 4.6) 3058c2ecf20Sopenharmony_ci ********************************************************************* */ 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ci/* BCM1480 has two additional watchdogs */ 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ci/* Watchdog timers */ 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_2 0x0010022050 3128c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_3 0x0010022150 3138c2ecf20Sopenharmony_ci 3148c2ecf20Sopenharmony_ci#define BCM1480_SCD_NUM_WDOGS 4 3158c2ecf20Sopenharmony_ci 3168c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_BASE(w) (A_BCM1480_SCD_WDOG_0+((w)&2)*0x1000 + ((w)&1)*0x100) 3178c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_REGISTER(w, r) (A_BCM1480_SCD_WDOG_BASE(w) + (r)) 3188c2ecf20Sopenharmony_ci 3198c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_INIT_2 0x0010022050 3208c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_CNT_2 0x0010022058 3218c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_CFG_2 0x0010022060 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_INIT_3 0x0010022150 3248c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_CNT_3 0x0010022158 3258c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_WDOG_CFG_3 0x0010022160 3268c2ecf20Sopenharmony_ci 3278c2ecf20Sopenharmony_ci/* BCM1480 has two additional compare registers */ 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_ZBBUS_CYCLE_COUNT A_SCD_ZBBUS_CYCLE_COUNT 3308c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_ZBBUS_CYCLE_CP_BASE 0x0010020C00 3318c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_ZBBUS_CYCLE_CP0 A_SCD_ZBBUS_CYCLE_CP0 3328c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_ZBBUS_CYCLE_CP1 A_SCD_ZBBUS_CYCLE_CP1 3338c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_ZBBUS_CYCLE_CP2 0x0010020C10 3348c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_ZBBUS_CYCLE_CP3 0x0010020C18 3358c2ecf20Sopenharmony_ci 3368c2ecf20Sopenharmony_ci/* ********************************************************************* 3378c2ecf20Sopenharmony_ci * System Control Registers (Section 4.2) 3388c2ecf20Sopenharmony_ci ********************************************************************* */ 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_ci/* Scratch register in different place */ 3418c2ecf20Sopenharmony_ci 3428c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_SCRATCH 0x100200A0 3438c2ecf20Sopenharmony_ci 3448c2ecf20Sopenharmony_ci/* ********************************************************************* 3458c2ecf20Sopenharmony_ci * System Address Trap Registers (Section 4.9) 3468c2ecf20Sopenharmony_ci ********************************************************************* */ 3478c2ecf20Sopenharmony_ci 3488c2ecf20Sopenharmony_ci/* No changes from BCM1250 */ 3498c2ecf20Sopenharmony_ci 3508c2ecf20Sopenharmony_ci/* ********************************************************************* 3518c2ecf20Sopenharmony_ci * System Interrupt Mapper Registers (Sections 4.3-4.5) 3528c2ecf20Sopenharmony_ci ********************************************************************* */ 3538c2ecf20Sopenharmony_ci 3548c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_CPU0_BASE 0x0010020000 3558c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_CPU1_BASE 0x0010022000 3568c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_CPU2_BASE 0x0010024000 3578c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_CPU3_BASE 0x0010026000 3588c2ecf20Sopenharmony_ci#define BCM1480_IMR_REGISTER_SPACING 0x2000 3598c2ecf20Sopenharmony_ci#define BCM1480_IMR_REGISTER_SPACING_SHIFT 13 3608c2ecf20Sopenharmony_ci 3618c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_MAPPER(cpu) (A_BCM1480_IMR_CPU0_BASE+(cpu)*BCM1480_IMR_REGISTER_SPACING) 3628c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_REGISTER(cpu, reg) (A_BCM1480_IMR_MAPPER(cpu)+(reg)) 3638c2ecf20Sopenharmony_ci 3648c2ecf20Sopenharmony_ci/* Most IMR registers are 128 bits, implemented as non-contiguous 3658c2ecf20Sopenharmony_ci 64-bit registers high (_H) and low (_L) */ 3668c2ecf20Sopenharmony_ci#define BCM1480_IMR_HL_SPACING 0x1000 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_DIAG_H 0x0010 3698c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_LDT_INTERRUPT_H 0x0018 3708c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_LDT_INTERRUPT_CLR_H 0x0020 3718c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_MASK_H 0x0028 3728c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_TRACE_H 0x0038 3738c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_SOURCE_STATUS_H 0x0040 3748c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_LDT_INTERRUPT_SET 0x0048 3758c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_0_CPU 0x00C0 3768c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_0_SET_CPU 0x00C8 3778c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_0_CLR_CPU 0x00D0 3788c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_1_CPU 0x00E0 3798c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_1_SET_CPU 0x00E8 3808c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_1_CLR_CPU 0x00F0 3818c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_STATUS_BASE_H 0x0100 3828c2ecf20Sopenharmony_ci#define BCM1480_IMR_INTERRUPT_STATUS_COUNT 8 3838c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_MAP_BASE_H 0x0200 3848c2ecf20Sopenharmony_ci#define BCM1480_IMR_INTERRUPT_MAP_COUNT 64 3858c2ecf20Sopenharmony_ci 3868c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_DIAG_L 0x1010 3878c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_LDT_INTERRUPT_L 0x1018 3888c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_LDT_INTERRUPT_CLR_L 0x1020 3898c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_MASK_L 0x1028 3908c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_TRACE_L 0x1038 3918c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_SOURCE_STATUS_L 0x1040 3928c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_STATUS_BASE_L 0x1100 3938c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_INTERRUPT_MAP_BASE_L 0x1200 3948c2ecf20Sopenharmony_ci 3958c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_ALIAS_MAILBOX_CPU0_BASE 0x0010028000 3968c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_ALIAS_MAILBOX_CPU1_BASE 0x0010028100 3978c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_ALIAS_MAILBOX_CPU2_BASE 0x0010028200 3988c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_ALIAS_MAILBOX_CPU3_BASE 0x0010028300 3998c2ecf20Sopenharmony_ci#define BCM1480_IMR_ALIAS_MAILBOX_SPACING 0100 4008c2ecf20Sopenharmony_ci 4018c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_ALIAS_MAILBOX(cpu) (A_BCM1480_IMR_ALIAS_MAILBOX_CPU0_BASE + \ 4028c2ecf20Sopenharmony_ci (cpu)*BCM1480_IMR_ALIAS_MAILBOX_SPACING) 4038c2ecf20Sopenharmony_ci#define A_BCM1480_IMR_ALIAS_MAILBOX_REGISTER(cpu, reg) (A_BCM1480_IMR_ALIAS_MAILBOX(cpu)+(reg)) 4048c2ecf20Sopenharmony_ci 4058c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_ALIAS_MAILBOX_0 0x0000 4068c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_ALIAS_MAILBOX_0_SET 0x0008 4078c2ecf20Sopenharmony_ci 4088c2ecf20Sopenharmony_ci/* 4098c2ecf20Sopenharmony_ci * these macros work together to build the address of a mailbox 4108c2ecf20Sopenharmony_ci * register, e.g., A_BCM1480_MAILBOX_REGISTER(0,R_BCM1480_IMR_MAILBOX_SET,2) 4118c2ecf20Sopenharmony_ci * for mbox_0_set_cpu2 returns 0x00100240C8 4128c2ecf20Sopenharmony_ci */ 4138c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_CPU 0x00 4148c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_SET 0x08 4158c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_CLR 0x10 4168c2ecf20Sopenharmony_ci#define R_BCM1480_IMR_MAILBOX_NUM_SPACING 0x20 4178c2ecf20Sopenharmony_ci#define A_BCM1480_MAILBOX_REGISTER(num, reg, cpu) \ 4188c2ecf20Sopenharmony_ci (A_BCM1480_IMR_CPU0_BASE + \ 4198c2ecf20Sopenharmony_ci (num * R_BCM1480_IMR_MAILBOX_NUM_SPACING) + \ 4208c2ecf20Sopenharmony_ci (cpu * BCM1480_IMR_REGISTER_SPACING) + \ 4218c2ecf20Sopenharmony_ci (R_BCM1480_IMR_MAILBOX_0_CPU + reg)) 4228c2ecf20Sopenharmony_ci 4238c2ecf20Sopenharmony_ci/* ********************************************************************* 4248c2ecf20Sopenharmony_ci * System Performance Counter Registers (Section 4.7) 4258c2ecf20Sopenharmony_ci ********************************************************************* */ 4268c2ecf20Sopenharmony_ci 4278c2ecf20Sopenharmony_ci/* BCM1480 has four more performance counter registers, and two control 4288c2ecf20Sopenharmony_ci registers. */ 4298c2ecf20Sopenharmony_ci 4308c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_BASE 0x00100204C0 4318c2ecf20Sopenharmony_ci 4328c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_CFG0 0x00100204C0 4338c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_CFG_0 A_BCM1480_SCD_PERF_CNT_CFG0 4348c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_CFG1 0x00100204C8 4358c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_CFG_1 A_BCM1480_SCD_PERF_CNT_CFG1 4368c2ecf20Sopenharmony_ci 4378c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_0 A_SCD_PERF_CNT_0 4388c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_1 A_SCD_PERF_CNT_1 4398c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_2 A_SCD_PERF_CNT_2 4408c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_3 A_SCD_PERF_CNT_3 4418c2ecf20Sopenharmony_ci 4428c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_4 0x00100204F0 4438c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_5 0x00100204F8 4448c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_6 0x0010020500 4458c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT_7 0x0010020508 4468c2ecf20Sopenharmony_ci 4478c2ecf20Sopenharmony_ci#define BCM1480_SCD_NUM_PERF_CNT 8 4488c2ecf20Sopenharmony_ci#define BCM1480_SCD_PERF_CNT_SPACING 8 4498c2ecf20Sopenharmony_ci#define A_BCM1480_SCD_PERF_CNT(n) (A_SCD_PERF_CNT_0+(n*BCM1480_SCD_PERF_CNT_SPACING)) 4508c2ecf20Sopenharmony_ci 4518c2ecf20Sopenharmony_ci/* ********************************************************************* 4528c2ecf20Sopenharmony_ci * System Bus Watcher Registers (Section 4.8) 4538c2ecf20Sopenharmony_ci ********************************************************************* */ 4548c2ecf20Sopenharmony_ci 4558c2ecf20Sopenharmony_ci 4568c2ecf20Sopenharmony_ci/* Same as 1250 except BUS_ERR_STATUS_DEBUG is in a different place. */ 4578c2ecf20Sopenharmony_ci 4588c2ecf20Sopenharmony_ci#define A_BCM1480_BUS_ERR_STATUS_DEBUG 0x00100208D8 4598c2ecf20Sopenharmony_ci 4608c2ecf20Sopenharmony_ci/* ********************************************************************* 4618c2ecf20Sopenharmony_ci * System Debug Controller Registers (Section 19) 4628c2ecf20Sopenharmony_ci ********************************************************************* */ 4638c2ecf20Sopenharmony_ci 4648c2ecf20Sopenharmony_ci/* Same as 1250 */ 4658c2ecf20Sopenharmony_ci 4668c2ecf20Sopenharmony_ci/* ********************************************************************* 4678c2ecf20Sopenharmony_ci * System Trace Unit Registers (Sections 4.10) 4688c2ecf20Sopenharmony_ci ********************************************************************* */ 4698c2ecf20Sopenharmony_ci 4708c2ecf20Sopenharmony_ci/* Same as 1250 */ 4718c2ecf20Sopenharmony_ci 4728c2ecf20Sopenharmony_ci/* ********************************************************************* 4738c2ecf20Sopenharmony_ci * Data Mover DMA Registers (Section 10.7) 4748c2ecf20Sopenharmony_ci ********************************************************************* */ 4758c2ecf20Sopenharmony_ci 4768c2ecf20Sopenharmony_ci/* Same as 1250 */ 4778c2ecf20Sopenharmony_ci 4788c2ecf20Sopenharmony_ci 4798c2ecf20Sopenharmony_ci/* ********************************************************************* 4808c2ecf20Sopenharmony_ci * HyperTransport Interface Registers (Section 8) 4818c2ecf20Sopenharmony_ci ********************************************************************* */ 4828c2ecf20Sopenharmony_ci 4838c2ecf20Sopenharmony_ci#define BCM1480_HT_NUM_PORTS 3 4848c2ecf20Sopenharmony_ci#define BCM1480_HT_PORT_SPACING 0x800 4858c2ecf20Sopenharmony_ci#define A_BCM1480_HT_PORT_HEADER(x) (A_BCM1480_HT_PORT0_HEADER + ((x)*BCM1480_HT_PORT_SPACING)) 4868c2ecf20Sopenharmony_ci 4878c2ecf20Sopenharmony_ci#define A_BCM1480_HT_PORT0_HEADER 0x00FE000000 4888c2ecf20Sopenharmony_ci#define A_BCM1480_HT_PORT1_HEADER 0x00FE000800 4898c2ecf20Sopenharmony_ci#define A_BCM1480_HT_PORT2_HEADER 0x00FE001000 4908c2ecf20Sopenharmony_ci#define A_BCM1480_HT_TYPE00_HEADER 0x00FE002000 4918c2ecf20Sopenharmony_ci 4928c2ecf20Sopenharmony_ci 4938c2ecf20Sopenharmony_ci/* ********************************************************************* 4948c2ecf20Sopenharmony_ci * Node Controller Registers (Section 9) 4958c2ecf20Sopenharmony_ci ********************************************************************* */ 4968c2ecf20Sopenharmony_ci 4978c2ecf20Sopenharmony_ci#define A_BCM1480_NC_BASE 0x00DFBD0000 4988c2ecf20Sopenharmony_ci 4998c2ecf20Sopenharmony_ci#define A_BCM1480_NC_RLD_FIELD 0x00DFBD0000 5008c2ecf20Sopenharmony_ci#define A_BCM1480_NC_RLD_TRIGGER 0x00DFBD0020 5018c2ecf20Sopenharmony_ci#define A_BCM1480_NC_RLD_BAD_ERROR 0x00DFBD0040 5028c2ecf20Sopenharmony_ci#define A_BCM1480_NC_RLD_COR_ERROR 0x00DFBD0060 5038c2ecf20Sopenharmony_ci#define A_BCM1480_NC_RLD_ECC_STATUS 0x00DFBD0080 5048c2ecf20Sopenharmony_ci#define A_BCM1480_NC_RLD_WAY_ENABLE 0x00DFBD00A0 5058c2ecf20Sopenharmony_ci#define A_BCM1480_NC_RLD_RANDOM_LFSR 0x00DFBD00C0 5068c2ecf20Sopenharmony_ci 5078c2ecf20Sopenharmony_ci#define A_BCM1480_NC_INTERRUPT_STATUS 0x00DFBD00E0 5088c2ecf20Sopenharmony_ci#define A_BCM1480_NC_INTERRUPT_ENABLE 0x00DFBD0100 5098c2ecf20Sopenharmony_ci#define A_BCM1480_NC_TIMEOUT_COUNTER 0x00DFBD0120 5108c2ecf20Sopenharmony_ci#define A_BCM1480_NC_TIMEOUT_COUNTER_SEL 0x00DFBD0140 5118c2ecf20Sopenharmony_ci 5128c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG0 0x00DFBD0200 5138c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG1 0x00DFBD0220 5148c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG2 0x00DFBD0240 5158c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG3 0x00DFBD0260 5168c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG4 0x00DFBD0280 5178c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG5 0x00DFBD02A0 5188c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG6 0x00DFBD02C0 5198c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG7 0x00DFBD02E0 5208c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG8 0x00DFBD0300 5218c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG9 0x00DFBD0320 5228c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG10 0x00DFBE0000 5238c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG11 0x00DFBE0020 5248c2ecf20Sopenharmony_ci#define A_BCM1480_NC_CREDIT_STATUS_REG12 0x00DFBE0040 5258c2ecf20Sopenharmony_ci 5268c2ecf20Sopenharmony_ci#define A_BCM1480_NC_SR_TIMEOUT_COUNTER 0x00DFBE0060 5278c2ecf20Sopenharmony_ci#define A_BCM1480_NC_SR_TIMEOUT_COUNTER_SEL 0x00DFBE0080 5288c2ecf20Sopenharmony_ci 5298c2ecf20Sopenharmony_ci 5308c2ecf20Sopenharmony_ci/* ********************************************************************* 5318c2ecf20Sopenharmony_ci * H&R Block Configuration Registers (Section 12.4) 5328c2ecf20Sopenharmony_ci ********************************************************************* */ 5338c2ecf20Sopenharmony_ci 5348c2ecf20Sopenharmony_ci#define A_BCM1480_HR_BASE_0 0x00DF820000 5358c2ecf20Sopenharmony_ci#define A_BCM1480_HR_BASE_1 0x00DF8A0000 5368c2ecf20Sopenharmony_ci#define A_BCM1480_HR_BASE_2 0x00DF920000 5378c2ecf20Sopenharmony_ci#define BCM1480_HR_REGISTER_SPACING 0x80000 5388c2ecf20Sopenharmony_ci 5398c2ecf20Sopenharmony_ci#define A_BCM1480_HR_BASE(idx) (A_BCM1480_HR_BASE_0 + ((idx)*BCM1480_HR_REGISTER_SPACING)) 5408c2ecf20Sopenharmony_ci#define A_BCM1480_HR_REGISTER(idx, reg) (A_BCM1480_HR_BASE(idx) + (reg)) 5418c2ecf20Sopenharmony_ci 5428c2ecf20Sopenharmony_ci#define R_BCM1480_HR_CFG 0x0000000000 5438c2ecf20Sopenharmony_ci 5448c2ecf20Sopenharmony_ci#define R_BCM1480_HR_MAPPING 0x0000010010 5458c2ecf20Sopenharmony_ci 5468c2ecf20Sopenharmony_ci#define BCM1480_HR_RULE_SPACING 0x0000000010 5478c2ecf20Sopenharmony_ci#define BCM1480_HR_NUM_RULES 16 5488c2ecf20Sopenharmony_ci#define BCM1480_HR_OP_OFFSET 0x0000000100 5498c2ecf20Sopenharmony_ci#define BCM1480_HR_TYPE_OFFSET 0x0000000108 5508c2ecf20Sopenharmony_ci#define R_BCM1480_HR_RULE_OP(idx) (BCM1480_HR_OP_OFFSET + ((idx)*BCM1480_HR_RULE_SPACING)) 5518c2ecf20Sopenharmony_ci#define R_BCM1480_HR_RULE_TYPE(idx) (BCM1480_HR_TYPE_OFFSET + ((idx)*BCM1480_HR_RULE_SPACING)) 5528c2ecf20Sopenharmony_ci 5538c2ecf20Sopenharmony_ci#define BCM1480_HR_LEAF_SPACING 0x0000000010 5548c2ecf20Sopenharmony_ci#define BCM1480_HR_NUM_LEAVES 10 5558c2ecf20Sopenharmony_ci#define BCM1480_HR_LEAF_OFFSET 0x0000000300 5568c2ecf20Sopenharmony_ci#define R_BCM1480_HR_HA_LEAF0(idx) (BCM1480_HR_LEAF_OFFSET + ((idx)*BCM1480_HR_LEAF_SPACING)) 5578c2ecf20Sopenharmony_ci 5588c2ecf20Sopenharmony_ci#define R_BCM1480_HR_EX_LEAF0 0x00000003A0 5598c2ecf20Sopenharmony_ci 5608c2ecf20Sopenharmony_ci#define BCM1480_HR_PATH_SPACING 0x0000000010 5618c2ecf20Sopenharmony_ci#define BCM1480_HR_NUM_PATHS 16 5628c2ecf20Sopenharmony_ci#define BCM1480_HR_PATH_OFFSET 0x0000000600 5638c2ecf20Sopenharmony_ci#define R_BCM1480_HR_PATH(idx) (BCM1480_HR_PATH_OFFSET + ((idx)*BCM1480_HR_PATH_SPACING)) 5648c2ecf20Sopenharmony_ci 5658c2ecf20Sopenharmony_ci#define R_BCM1480_HR_PATH_DEFAULT 0x0000000700 5668c2ecf20Sopenharmony_ci 5678c2ecf20Sopenharmony_ci#define BCM1480_HR_ROUTE_SPACING 8 5688c2ecf20Sopenharmony_ci#define BCM1480_HR_NUM_ROUTES 512 5698c2ecf20Sopenharmony_ci#define BCM1480_HR_ROUTE_OFFSET 0x0000001000 5708c2ecf20Sopenharmony_ci#define R_BCM1480_HR_RT_WORD(idx) (BCM1480_HR_ROUTE_OFFSET + ((idx)*BCM1480_HR_ROUTE_SPACING)) 5718c2ecf20Sopenharmony_ci 5728c2ecf20Sopenharmony_ci 5738c2ecf20Sopenharmony_ci/* checked to here - ehs */ 5748c2ecf20Sopenharmony_ci/* ********************************************************************* 5758c2ecf20Sopenharmony_ci * Packet Manager DMA Registers (Section 12.5) 5768c2ecf20Sopenharmony_ci ********************************************************************* */ 5778c2ecf20Sopenharmony_ci 5788c2ecf20Sopenharmony_ci#define A_BCM1480_PM_BASE 0x0010056000 5798c2ecf20Sopenharmony_ci 5808c2ecf20Sopenharmony_ci#define A_BCM1480_PMI_LCL_0 0x0010058000 5818c2ecf20Sopenharmony_ci#define A_BCM1480_PMO_LCL_0 0x001005C000 5828c2ecf20Sopenharmony_ci#define A_BCM1480_PMI_OFFSET_0 (A_BCM1480_PMI_LCL_0 - A_BCM1480_PM_BASE) 5838c2ecf20Sopenharmony_ci#define A_BCM1480_PMO_OFFSET_0 (A_BCM1480_PMO_LCL_0 - A_BCM1480_PM_BASE) 5848c2ecf20Sopenharmony_ci 5858c2ecf20Sopenharmony_ci#define BCM1480_PM_LCL_REGISTER_SPACING 0x100 5868c2ecf20Sopenharmony_ci#define BCM1480_PM_NUM_CHANNELS 32 5878c2ecf20Sopenharmony_ci 5888c2ecf20Sopenharmony_ci#define A_BCM1480_PMI_LCL_BASE(idx) (A_BCM1480_PMI_LCL_0 + ((idx)*BCM1480_PM_LCL_REGISTER_SPACING)) 5898c2ecf20Sopenharmony_ci#define A_BCM1480_PMI_LCL_REGISTER(idx, reg) (A_BCM1480_PMI_LCL_BASE(idx) + (reg)) 5908c2ecf20Sopenharmony_ci#define A_BCM1480_PMO_LCL_BASE(idx) (A_BCM1480_PMO_LCL_0 + ((idx)*BCM1480_PM_LCL_REGISTER_SPACING)) 5918c2ecf20Sopenharmony_ci#define A_BCM1480_PMO_LCL_REGISTER(idx, reg) (A_BCM1480_PMO_LCL_BASE(idx) + (reg)) 5928c2ecf20Sopenharmony_ci 5938c2ecf20Sopenharmony_ci#define BCM1480_PM_INT_PACKING 8 5948c2ecf20Sopenharmony_ci#define BCM1480_PM_INT_FUNCTION_SPACING 0x40 5958c2ecf20Sopenharmony_ci#define BCM1480_PM_INT_NUM_FUNCTIONS 3 5968c2ecf20Sopenharmony_ci 5978c2ecf20Sopenharmony_ci/* 5988c2ecf20Sopenharmony_ci * DMA channel registers relative to A_BCM1480_PMI_LCL_BASE(n) and A_BCM1480_PMO_LCL_BASE(n) 5998c2ecf20Sopenharmony_ci */ 6008c2ecf20Sopenharmony_ci 6018c2ecf20Sopenharmony_ci#define R_BCM1480_PM_BASE_SIZE 0x0000000000 6028c2ecf20Sopenharmony_ci#define R_BCM1480_PM_CNT 0x0000000008 6038c2ecf20Sopenharmony_ci#define R_BCM1480_PM_PFCNT 0x0000000010 6048c2ecf20Sopenharmony_ci#define R_BCM1480_PM_LAST 0x0000000018 6058c2ecf20Sopenharmony_ci#define R_BCM1480_PM_PFINDX 0x0000000020 6068c2ecf20Sopenharmony_ci#define R_BCM1480_PM_INT_WMK 0x0000000028 6078c2ecf20Sopenharmony_ci#define R_BCM1480_PM_CONFIG0 0x0000000030 6088c2ecf20Sopenharmony_ci#define R_BCM1480_PM_LOCALDEBUG 0x0000000078 6098c2ecf20Sopenharmony_ci#define R_BCM1480_PM_CACHEABILITY 0x0000000080 /* PMI only */ 6108c2ecf20Sopenharmony_ci#define R_BCM1480_PM_INT_CNFG 0x0000000088 6118c2ecf20Sopenharmony_ci#define R_BCM1480_PM_DESC_MERGE_TIMER 0x0000000090 6128c2ecf20Sopenharmony_ci#define R_BCM1480_PM_LOCALDEBUG_PIB 0x00000000F8 /* PMI only */ 6138c2ecf20Sopenharmony_ci#define R_BCM1480_PM_LOCALDEBUG_POB 0x00000000F8 /* PMO only */ 6148c2ecf20Sopenharmony_ci 6158c2ecf20Sopenharmony_ci/* 6168c2ecf20Sopenharmony_ci * Global Registers (Not Channelized) 6178c2ecf20Sopenharmony_ci */ 6188c2ecf20Sopenharmony_ci 6198c2ecf20Sopenharmony_ci#define A_BCM1480_PMI_GLB_0 0x0010056000 6208c2ecf20Sopenharmony_ci#define A_BCM1480_PMO_GLB_0 0x0010057000 6218c2ecf20Sopenharmony_ci 6228c2ecf20Sopenharmony_ci/* 6238c2ecf20Sopenharmony_ci * PM to TX Mapping Register relative to A_BCM1480_PMI_GLB_0 and A_BCM1480_PMO_GLB_0 6248c2ecf20Sopenharmony_ci */ 6258c2ecf20Sopenharmony_ci 6268c2ecf20Sopenharmony_ci#define R_BCM1480_PM_PMO_MAPPING 0x00000008C8 /* PMO only */ 6278c2ecf20Sopenharmony_ci 6288c2ecf20Sopenharmony_ci#define A_BCM1480_PM_PMO_MAPPING (A_BCM1480_PMO_GLB_0 + R_BCM1480_PM_PMO_MAPPING) 6298c2ecf20Sopenharmony_ci 6308c2ecf20Sopenharmony_ci/* 6318c2ecf20Sopenharmony_ci * Interrupt mapping registers 6328c2ecf20Sopenharmony_ci */ 6338c2ecf20Sopenharmony_ci 6348c2ecf20Sopenharmony_ci 6358c2ecf20Sopenharmony_ci#define A_BCM1480_PMI_INT_0 0x0010056800 6368c2ecf20Sopenharmony_ci#define A_BCM1480_PMI_INT(q) (A_BCM1480_PMI_INT_0 + ((q>>8)<<8)) 6378c2ecf20Sopenharmony_ci#define A_BCM1480_PMI_INT_OFFSET_0 (A_BCM1480_PMI_INT_0 - A_BCM1480_PM_BASE) 6388c2ecf20Sopenharmony_ci#define A_BCM1480_PMO_INT_0 0x0010057800 6398c2ecf20Sopenharmony_ci#define A_BCM1480_PMO_INT(q) (A_BCM1480_PMO_INT_0 + ((q>>8)<<8)) 6408c2ecf20Sopenharmony_ci#define A_BCM1480_PMO_INT_OFFSET_0 (A_BCM1480_PMO_INT_0 - A_BCM1480_PM_BASE) 6418c2ecf20Sopenharmony_ci 6428c2ecf20Sopenharmony_ci/* 6438c2ecf20Sopenharmony_ci * Interrupt registers relative to A_BCM1480_PMI_INT_0 and A_BCM1480_PMO_INT_0 6448c2ecf20Sopenharmony_ci */ 6458c2ecf20Sopenharmony_ci 6468c2ecf20Sopenharmony_ci#define R_BCM1480_PM_INT_ST 0x0000000000 6478c2ecf20Sopenharmony_ci#define R_BCM1480_PM_INT_MSK 0x0000000040 6488c2ecf20Sopenharmony_ci#define R_BCM1480_PM_INT_CLR 0x0000000080 6498c2ecf20Sopenharmony_ci#define R_BCM1480_PM_MRGD_INT 0x00000000C0 6508c2ecf20Sopenharmony_ci 6518c2ecf20Sopenharmony_ci/* 6528c2ecf20Sopenharmony_ci * Debug registers (global) 6538c2ecf20Sopenharmony_ci */ 6548c2ecf20Sopenharmony_ci 6558c2ecf20Sopenharmony_ci#define A_BCM1480_PM_GLOBALDEBUGMODE_PMI 0x0010056000 6568c2ecf20Sopenharmony_ci#define A_BCM1480_PM_GLOBALDEBUG_PID 0x00100567F8 6578c2ecf20Sopenharmony_ci#define A_BCM1480_PM_GLOBALDEBUG_PIB 0x0010056FF8 6588c2ecf20Sopenharmony_ci#define A_BCM1480_PM_GLOBALDEBUGMODE_PMO 0x0010057000 6598c2ecf20Sopenharmony_ci#define A_BCM1480_PM_GLOBALDEBUG_POD 0x00100577F8 6608c2ecf20Sopenharmony_ci#define A_BCM1480_PM_GLOBALDEBUG_POB 0x0010057FF8 6618c2ecf20Sopenharmony_ci 6628c2ecf20Sopenharmony_ci/* ********************************************************************* 6638c2ecf20Sopenharmony_ci * Switch performance counters 6648c2ecf20Sopenharmony_ci ********************************************************************* */ 6658c2ecf20Sopenharmony_ci 6668c2ecf20Sopenharmony_ci#define A_BCM1480_SWPERF_CFG 0xdfb91800 6678c2ecf20Sopenharmony_ci#define A_BCM1480_SWPERF_CNT0 0xdfb91880 6688c2ecf20Sopenharmony_ci#define A_BCM1480_SWPERF_CNT1 0xdfb91888 6698c2ecf20Sopenharmony_ci#define A_BCM1480_SWPERF_CNT2 0xdfb91890 6708c2ecf20Sopenharmony_ci#define A_BCM1480_SWPERF_CNT3 0xdfb91898 6718c2ecf20Sopenharmony_ci 6728c2ecf20Sopenharmony_ci 6738c2ecf20Sopenharmony_ci/* ********************************************************************* 6748c2ecf20Sopenharmony_ci * Switch Trace Unit 6758c2ecf20Sopenharmony_ci ********************************************************************* */ 6768c2ecf20Sopenharmony_ci 6778c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_CONTROL_0 0xDFB91000 6788c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_DATA_VALUE_0 0xDFB91100 6798c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_DATA_MASK_0 0xDFB91108 6808c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_TAG_VALUE_0 0xDFB91200 6818c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_TAG_MAKS_0 0xDFB91208 6828c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_EVENT_0 0xDFB91300 6838c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_SEQUENCE_0 0xDFB91400 6848c2ecf20Sopenharmony_ci 6858c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_CFG 0xDFB91500 6868c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_READ 0xDFB91508 6878c2ecf20Sopenharmony_ci 6888c2ecf20Sopenharmony_ci#define A_BCM1480_SWDEBUG_SCHEDSTOP 0xDFB92000 6898c2ecf20Sopenharmony_ci 6908c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_CONTROL(x) (A_BCM1480_SWTRC_MATCH_CONTROL_0 + ((x)*8)) 6918c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_EVENT(x) (A_BCM1480_SWTRC_EVENT_0 + ((x)*8)) 6928c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_SEQUENCE(x) (A_BCM1480_SWTRC_SEQUENCE_0 + ((x)*8)) 6938c2ecf20Sopenharmony_ci 6948c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_DATA_VALUE(x) (A_BCM1480_SWTRC_MATCH_DATA_VALUE_0 + ((x)*16)) 6958c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_DATA_MASK(x) (A_BCM1480_SWTRC_MATCH_DATA_MASK_0 + ((x)*16)) 6968c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_TAG_VALUE(x) (A_BCM1480_SWTRC_MATCH_TAG_VALUE_0 + ((x)*16)) 6978c2ecf20Sopenharmony_ci#define A_BCM1480_SWTRC_MATCH_TAG_MASK(x) (A_BCM1480_SWTRC_MATCH_TAG_MASK_0 + ((x)*16)) 6988c2ecf20Sopenharmony_ci 6998c2ecf20Sopenharmony_ci 7008c2ecf20Sopenharmony_ci 7018c2ecf20Sopenharmony_ci/* ********************************************************************* 7028c2ecf20Sopenharmony_ci * High-Speed Port Registers (Section 13) 7038c2ecf20Sopenharmony_ci ********************************************************************* */ 7048c2ecf20Sopenharmony_ci 7058c2ecf20Sopenharmony_ci#define A_BCM1480_HSP_BASE_0 0x00DF810000 7068c2ecf20Sopenharmony_ci#define A_BCM1480_HSP_BASE_1 0x00DF890000 7078c2ecf20Sopenharmony_ci#define A_BCM1480_HSP_BASE_2 0x00DF910000 7088c2ecf20Sopenharmony_ci#define BCM1480_HSP_REGISTER_SPACING 0x80000 7098c2ecf20Sopenharmony_ci 7108c2ecf20Sopenharmony_ci#define A_BCM1480_HSP_BASE(idx) (A_BCM1480_HSP_BASE_0 + ((idx)*BCM1480_HSP_REGISTER_SPACING)) 7118c2ecf20Sopenharmony_ci#define A_BCM1480_HSP_REGISTER(idx, reg) (A_BCM1480_HSP_BASE(idx) + (reg)) 7128c2ecf20Sopenharmony_ci 7138c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI4_CFG_0 0x0000000000 7148c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI4_CFG_1 0x0000000008 7158c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI4_DESKEW_OVERRIDE 0x0000000010 7168c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI4_DESKEW_DATAPATH 0x0000000018 7178c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI4_PORT_INT_EN 0x0000000020 7188c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI4_PORT_INT_STATUS 0x0000000028 7198c2ecf20Sopenharmony_ci 7208c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI4_CALENDAR_0 0x0000000200 7218c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI4_CALENDAR_1 0x0000000208 7228c2ecf20Sopenharmony_ci 7238c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PLL_CNFG 0x0000000800 7248c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_CALIBRATION 0x0000000808 7258c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_TEST 0x0000000810 7268c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_DIAG_DETAILS 0x0000000818 7278c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_DIAG_CRC_0 0x0000000820 7288c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_DIAG_CRC_1 0x0000000828 7298c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_DIAG_HTCMD 0x0000000830 7308c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_DIAG_PKTCTL 0x0000000838 7318c2ecf20Sopenharmony_ci 7328c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_VIS_FLCTRL_COUNTER 0x0000000870 7338c2ecf20Sopenharmony_ci 7348c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PKT_RAMALLOC_0 0x0000020020 7358c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PKT_RAMALLOC_1 0x0000020028 7368c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PKT_RAMALLOC_2 0x0000020030 7378c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PKT_RAMALLOC_3 0x0000020038 7388c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PKT_RAMALLOC_4 0x0000020040 7398c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PKT_RAMALLOC_5 0x0000020048 7408c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PKT_RAMALLOC_6 0x0000020050 7418c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PKT_RAMALLOC_7 0x0000020058 7428c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_PKT_RAMALLOC(idx) (R_BCM1480_HSP_RX_PKT_RAMALLOC_0 + 8*(idx)) 7438c2ecf20Sopenharmony_ci 7448c2ecf20Sopenharmony_ci/* XXX Following registers were shuffled. Renamed/renumbered per errata. */ 7458c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_HT_RAMALLOC_0 0x0000020078 7468c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_HT_RAMALLOC_1 0x0000020080 7478c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_HT_RAMALLOC_2 0x0000020088 7488c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_HT_RAMALLOC_3 0x0000020090 7498c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_HT_RAMALLOC_4 0x0000020098 7508c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_HT_RAMALLOC_5 0x00000200A0 7518c2ecf20Sopenharmony_ci 7528c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI_WATERMARK_0 0x00000200B0 7538c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI_WATERMARK_1 0x00000200B8 7548c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI_WATERMARK_2 0x00000200C0 7558c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI_WATERMARK_3 0x00000200C8 7568c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI_WATERMARK_4 0x00000200D0 7578c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI_WATERMARK_5 0x00000200D8 7588c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI_WATERMARK_6 0x00000200E0 7598c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI_WATERMARK_7 0x00000200E8 7608c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_SPI_WATERMARK(idx) (R_BCM1480_HSP_RX_SPI_WATERMARK_0 + 8*(idx)) 7618c2ecf20Sopenharmony_ci 7628c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_VIS_CMDQ_0 0x00000200F0 7638c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_VIS_CMDQ_1 0x00000200F8 7648c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_VIS_CMDQ_2 0x0000020100 7658c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_RAM_READCTL 0x0000020108 7668c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_RAM_READWINDOW 0x0000020110 7678c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_RF_READCTL 0x0000020118 7688c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_RX_RF_READWINDOW 0x0000020120 7698c2ecf20Sopenharmony_ci 7708c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_SPI4_CFG_0 0x0000040000 7718c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_SPI4_CFG_1 0x0000040008 7728c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_SPI4_TRAINING_FMT 0x0000040010 7738c2ecf20Sopenharmony_ci 7748c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RAMALLOC_0 0x0000040020 7758c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RAMALLOC_1 0x0000040028 7768c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RAMALLOC_2 0x0000040030 7778c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RAMALLOC_3 0x0000040038 7788c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RAMALLOC_4 0x0000040040 7798c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RAMALLOC_5 0x0000040048 7808c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RAMALLOC_6 0x0000040050 7818c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RAMALLOC_7 0x0000040058 7828c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RAMALLOC(idx) (R_BCM1480_HSP_TX_PKT_RAMALLOC_0 + 8*(idx)) 7838c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_NPC_RAMALLOC 0x0000040078 7848c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_RSP_RAMALLOC 0x0000040080 7858c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PC_RAMALLOC 0x0000040088 7868c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_HTCC_RAMALLOC_0 0x0000040090 7878c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_HTCC_RAMALLOC_1 0x0000040098 7888c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_HTCC_RAMALLOC_2 0x00000400A0 7898c2ecf20Sopenharmony_ci 7908c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RXPHITCNT_0 0x00000400B0 7918c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RXPHITCNT_1 0x00000400B8 7928c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RXPHITCNT_2 0x00000400C0 7938c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RXPHITCNT_3 0x00000400C8 7948c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_RXPHITCNT(idx) (R_BCM1480_HSP_TX_PKT_RXPHITCNT_0 + 8*(idx)) 7958c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_HTIO_RXPHITCNT 0x00000400D0 7968c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_HTCC_RXPHITCNT 0x00000400D8 7978c2ecf20Sopenharmony_ci 7988c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_TXPHITCNT_0 0x00000400E0 7998c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_TXPHITCNT_1 0x00000400E8 8008c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_TXPHITCNT_2 0x00000400F0 8018c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_TXPHITCNT_3 0x00000400F8 8028c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PKT_TXPHITCNT(idx) (R_BCM1480_HSP_TX_PKT_TXPHITCNT_0 + 8*(idx)) 8038c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_HTIO_TXPHITCNT 0x0000040100 8048c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_HTCC_TXPHITCNT 0x0000040108 8058c2ecf20Sopenharmony_ci 8068c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_SPI4_CALENDAR_0 0x0000040200 8078c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_SPI4_CALENDAR_1 0x0000040208 8088c2ecf20Sopenharmony_ci 8098c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_PLL_CNFG 0x0000040800 8108c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_CALIBRATION 0x0000040808 8118c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_TEST 0x0000040810 8128c2ecf20Sopenharmony_ci 8138c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_VIS_CMDQ_0 0x0000040840 8148c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_VIS_CMDQ_1 0x0000040848 8158c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_VIS_CMDQ_2 0x0000040850 8168c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_RAM_READCTL 0x0000040860 8178c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_RAM_READWINDOW 0x0000040868 8188c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_RF_READCTL 0x0000040870 8198c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_RF_READWINDOW 0x0000040878 8208c2ecf20Sopenharmony_ci 8218c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_SPI4_PORT_INT_STATUS 0x0000040880 8228c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_SPI4_PORT_INT_EN 0x0000040888 8238c2ecf20Sopenharmony_ci 8248c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_NEXT_ADDR_BASE 0x000040400 8258c2ecf20Sopenharmony_ci#define R_BCM1480_HSP_TX_NEXT_ADDR_REGISTER(x) (R_BCM1480_HSP_TX_NEXT_ADDR_BASE+ 8*(x)) 8268c2ecf20Sopenharmony_ci 8278c2ecf20Sopenharmony_ci 8288c2ecf20Sopenharmony_ci 8298c2ecf20Sopenharmony_ci/* ********************************************************************* 8308c2ecf20Sopenharmony_ci * Physical Address Map (Table 10 and Figure 7) 8318c2ecf20Sopenharmony_ci ********************************************************************* */ 8328c2ecf20Sopenharmony_ci 8338c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_MEMORY_0 _SB_MAKE64(0x0000000000) 8348c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_MEMORY_SIZE _SB_MAKE64((256*1024*1024)) 8358c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_SYSTEM_CTL _SB_MAKE64(0x0010000000) 8368c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_IO_SYSTEM _SB_MAKE64(0x0010060000) 8378c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_GENBUS _SB_MAKE64(0x0010090000) 8388c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_GENBUS_END _SB_MAKE64(0x0028000000) 8398c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_MISC_MATCH_BYTES _SB_MAKE64(0x0028000000) 8408c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_IACK_MATCH_BYTES _SB_MAKE64(0x0029000000) 8418c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_IO_MATCH_BYTES _SB_MAKE64(0x002C000000) 8428c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_CFG_MATCH_BYTES _SB_MAKE64(0x002E000000) 8438c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_OMAP_MATCH_BYTES _SB_MAKE64(0x002F000000) 8448c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_MEM_MATCH_BYTES _SB_MAKE64(0x0030000000) 8458c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_MEM_MATCH_BYTES _SB_MAKE64(0x0040000000) 8468c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_MEM_MATCH_BITS _SB_MAKE64(0x0060000000) 8478c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_MEMORY_1 _SB_MAKE64(0x0080000000) 8488c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_MEMORY_2 _SB_MAKE64(0x0090000000) 8498c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_MISC_MATCH_BITS _SB_MAKE64(0x00A8000000) 8508c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_IACK_MATCH_BITS _SB_MAKE64(0x00A9000000) 8518c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_IO_MATCH_BITS _SB_MAKE64(0x00AC000000) 8528c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_CFG_MATCH_BITS _SB_MAKE64(0x00AE000000) 8538c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_OMAP_MATCH_BITS _SB_MAKE64(0x00AF000000) 8548c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_MEM_MATCH_BITS _SB_MAKE64(0x00B0000000) 8558c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_MEMORY_3 _SB_MAKE64(0x00C0000000) 8568c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2_CACHE_TEST _SB_MAKE64(0x00D0000000) 8578c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_SPECIAL_MATCH_BYTES _SB_MAKE64(0x00D8000000) 8588c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_IO_MATCH_BYTES _SB_MAKE64(0x00DC000000) 8598c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_CFG_MATCH_BYTES _SB_MAKE64(0x00DE000000) 8608c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HS_SUBSYS _SB_MAKE64(0x00DF000000) 8618c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_SPECIAL_MATCH_BITS _SB_MAKE64(0x00F8000000) 8628c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_IO_MATCH_BITS _SB_MAKE64(0x00FC000000) 8638c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_CFG_MATCH_BITS _SB_MAKE64(0x00FE000000) 8648c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_MEMORY_EXP _SB_MAKE64(0x0100000000) 8658c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_MEMORY_EXP_SIZE _SB_MAKE64((508*1024*1024*1024)) 8668c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_PCI_UPPER _SB_MAKE64(0x1000000000) 8678c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_UPPER_MATCH_BYTES _SB_MAKE64(0x2000000000) 8688c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_UPPER_MATCH_BITS _SB_MAKE64(0x3000000000) 8698c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_NODE_ALIAS _SB_MAKE64(0x4000000000) 8708c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_HT_FULLACCESS _SB_MAKE64(0xF000000000) 8718c2ecf20Sopenharmony_ci 8728c2ecf20Sopenharmony_ci 8738c2ecf20Sopenharmony_ci/* ********************************************************************* 8748c2ecf20Sopenharmony_ci * L2 Cache as RAM (Table 54) 8758c2ecf20Sopenharmony_ci ********************************************************************* */ 8768c2ecf20Sopenharmony_ci 8778c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_WAY_SIZE _SB_MAKE64(0x0000020000) 8788c2ecf20Sopenharmony_ci#define BCM1480_PHYS_L2CACHE_NUM_WAYS 8 8798c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_TOTAL_SIZE _SB_MAKE64(0x0000100000) 8808c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_WAY0 _SB_MAKE64(0x00D0300000) 8818c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_WAY1 _SB_MAKE64(0x00D0320000) 8828c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_WAY2 _SB_MAKE64(0x00D0340000) 8838c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_WAY3 _SB_MAKE64(0x00D0360000) 8848c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_WAY4 _SB_MAKE64(0x00D0380000) 8858c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_WAY5 _SB_MAKE64(0x00D03A0000) 8868c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_WAY6 _SB_MAKE64(0x00D03C0000) 8878c2ecf20Sopenharmony_ci#define A_BCM1480_PHYS_L2CACHE_WAY7 _SB_MAKE64(0x00D03E0000) 8888c2ecf20Sopenharmony_ci 8898c2ecf20Sopenharmony_ci#endif /* _BCM1480_REGS_H */ 890