/* <:copyright-BRCM:2012:DUAL/GPL:standard Copyright (c) 2012 Broadcom All Rights Reserved This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation (the "GPL"). This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. A copy of the GPL is available at http://www.broadcom.com/licenses/GPLv2.php, or by writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. :> */ #ifndef __BCM60333_MAP_PART_H #define __BCM60333_MAP_PART_H #ifdef __cplusplus extern "C" { #endif #include "bcmtypes.h" #if !defined(REG_BASE) #define REG_BASE 0xb2000000 #endif #define CHIP_FAMILY_ID_HEX 0x60333 #define SDRAM_CTRL_BASE (REG_BASE + 0x00000000) /* SDRAM Control */ #define ENET_CORE0_BASE (REG_BASE + 0x00400000) #define ENET_CORE1_BASE (REG_BASE + 0x00600000) #define PCIE_BASE (REG_BASE + 0x00a00000) /* PCIE Control */ #define BRIDGE_BASE (REG_BASE + 0x01000000) #define PERF_BASE (REG_BASE + 0x01e00000) /* chip control */ #define TIMR_BASE (REG_BASE + 0x01e00100) /* timer registers */ #define GPIO_BASE (REG_BASE + 0x01e00200) /* gpio registers */ #define MISC_BASE (REG_BASE + 0x01e00300) /* Miscellaneous registers */ #define STRAP_BASE (REG_BASE + 0x01e00304) /* Strap Override Control Registers */ #define BSTI_BASE (REG_BASE + 0x01e003f8) /* Serial Interface Control registers */ #define OTP_BASE (REG_BASE + 0x01e00400) /* OTP Controller registers */ #define UART_BASE (REG_BASE + 0x01e00500) /* UART registers */ #define PERIPH_MUTEX_BASE (REG_BASE + 0x01e00700) /* Periph Mutex registers */ #define HSSPIM_BASE (REG_BASE + 0x01e01000) /* High-Speed SPI registers */ #define ETH0_DMA_BASE (REG_BASE + 0x00410000) #define ETH1_DMA_BASE (REG_BASE + 0x00610000) #define BRIDGE_DMA_BASE (REG_BASE + 0x01020000) #define SWITCH_DMA_BASE 0 /* Dummy, to avoid compiler errors */ #define DUMMY_A_BASE 0x82100000 /* PLCPHY DUMMY_A: QBUS dummy registers (segment A) */ #define DUMMY_B_BASE 0x82200000 /* PLCPHY DUMMY_B: QBUS dummy registers (segment B) */ #define DUMMY_C_BASE 0x82300000 /* PLCPHY DUMMY_C: QBUS dummy registers (segment C) */ #define DUMMY_D_BASE 0x82400000 /* PLCPHY DUMMY_D; QBUS dummy registers (segment D) */ /* * 0x82100000..0x8210004c DUMMY_A_RW_DUMMY_REG[0..19] "Read/Write Dummy Register 0..19" * 0x82100050..0x8210006c DUMMY_A_R_DUMMY_REG[0..7] "Read Dummy Register 0..7" * 0x82100070..0x8210007c DUMMY_A_W_DUMMY_REG[0..3] "Write Dummy Register 0..3" */ /* Use DUMMY_A_RW:19 to send QoS-related data to plc-phy */ #define PLC_PHY_AC_CONTROL_REGISTER DUMMY_A_BASE + (19 * sizeof(int)) /* PLC status register address */ #define PLC_STATUS_ADDR 0x82100014 #define PLC_STATUS_BOOTING 0 #define PLC_STATUS_RUNNING 1 #define PLC_STATUS_ERROR 2 #define PLC_STATUS_RUNNING_WDOG_DISABLED 3 #define PLC_STATUS_COREDUMP_REQUESTED 0xC08EC08E /* ROM-based Chip identification: * ROM address 0x40000 (0x80040000) contains 0xFFFFFFFF in A0 * 0xB6FF89FF in B0 */ #define PLC_ROM_CHECK_ADDR 0x80040000 #define PLC_ROM_ID_B0 0xB6FF89FF #define PLC_ROM_ID_A0 0xFFFFFFFF #ifndef __ASSEMBLER__ /* ** SDR/DDR Memory Controller Register Set Definitions. */ typedef struct MEMCControl { uint32 SDR_CFG; /* 0x00 */ #define MEMC_SDRAM_SPACE_SHIFT 4 #define MEMC_SDRAM_SPACE_MASK (0xF< thresh, txfifo thresh, txfifo