/*
 * Copyright (C) 2012-2015 Apple Inc. All rights reserved.
 *
 * This document is the property of Apple Inc.
 * It is considered confidential and proprietary.
 *
 * This document may not be reproduced or transmitted in any form,
 * in whole or in part, without the express written permission of
 * Apple Inc.
 */
#ifndef __PLATFORM_SOC_HWREGBASE_H
#define __PLATFORM_SOC_HWREGBASE_H

#include <platform/memmap.h>

/*
 * DCS_REG_VERSION mapping used in iBoot for various platforms
 * Maui:  1
 * s8003: 2
 * Elba:  3
 */
#if SUB_PLATFORM_S8000
#define DCS_REG_VERSION			(1)
#elif SUB_PLATFORM_S8003
#define DCS_REG_VERSION			(2)
#elif SUB_PLATFORM_S8001
#define DCS_REG_VERSION			(3)
#else
#error "Unknown SUB_PLATFORM"
#endif

/* S8000 and S8001 Reg Base Defs */

#if SUB_PLATFORM_S8000 || SUB_PLATFORM_S8003

#define AMCC_BASE_ADDR(_n)		(IO_BASE + ((_n) * 0x000200000)) // AMCC Config
#define NUM_AMCCS			(1)

#define DCS_BASE_ADDR			(IO_BASE + 0x000200000) 	// DCS

#define DCS_SPACING			(0x40000)
#define SPLLCTRL_SPACING		(0x00000C000)
#define AMP_CA_SPACING			(0x000020000)
#define AMP_DQ_SPACING			(0x000008000)
#define AMP_SPACING			(DCS_SPACING)
#define AMP_BASE_ADDR			(DCS_BASE_ADDR + AMP_CA_SPACING)
#define AMPH_BASE_ADDR			(AMP_BASE_ADDR + 3 * AMP_DQ_SPACING)

#define SWTCH_FAB_BASE_ADDR		(IO_BASE + 0x000800000)		// Switch Fabric Config

#define CP_COM_BASE_ADDR		(IO_BASE + 0x000D00000)		// CP Common Registers
#define CP_COM_INT_BASE_ADDR		(CP_COM_BASE_ADDR + 0x10000)	// CP Common Interrupt Config Registers

#define CP_0_DT_DBG_CA0_ADDR		(IO_BASE + 0x000D40000)		// Dup Tag Debug backdoor Ram Access For CP0/CA0
#define CP_1_DT_DBG_CA0_ADDR		(IO_BASE + 0x000E40000)		// Dup Tag Debug backdoor Ram Access For CP1/CA0

#define RGX_CR_BASE_ADDR		(IO_BASE + 0x001000000)		// Templar4 Space

#define GPC_BASE_ADDR			(IO_BASE + 0x001e00000)		// Templar4 Power Controller Space

#define IMGV42AF_AFC_AIU_BASE_ADDR	(IO_BASE + 0x001f00000)		// IMGv42AF0: Local PIO Config Space of AF AIU Block
#define IMGV42AF_AFUSR_BASE_ADDR	(IO_BASE + 0x001f02000)		// IMGv42AF0: Bridge PIO Space

#define ACC_BASE_ADDR			(IO_BASE + 0x002000000)		// Apple Compute Complex
#define CCC_CPU0_SYS_BASE_ADDR		(IO_BASE + 0x002050000)		// Twister CPU0 Implementation Specific Registers
#define CCC_CPU1_SYS_BASE_ADDR		(IO_BASE + 0x002150000)		// Twister CPU1 Implementation Specific Registers

#define CCC0_SYS_BASE_ADDR		(IO_BASE + 0x002200000)		// Twister Core Complex Registers

#define CCC_SOC_BUSMUX_BASE_ADDR	(IO_BASE + 0x004000000)		// AF SoC BusMux Config
#define SOC_BUSMUX_BASE_ADDR		(IO_BASE + 0x004000000)		// AF SoC BusMux Config
// XXX JF
#if SUB_PLATFORM_T7000
#define CCC_CAM_BUSMUX_BASE_ADDR	(IO_BASE + 0x005000000)		// AF Camera BusMux Config
#endif

#define ISP_AFC_AIU_0_BASE_ADDR		(IO_BASE + 0x005B00000)		// ISP AXI to AF Bridge
// XXX JF
#if SUB_PLATFORM_T7000
#define ISP_AFC_AIU_1_BASE_ADDR	(IO_BASE + 0x005B10000)		// ISP AXI to AF Bridge
#endif
#define ISP_INTR2AXI_BASE_ADDR		(IO_BASE + 0x005B20000)		// ISP Interrupt to AXI Widget
#define ISP_DART_BASE_ADDR		(IO_BASE + 0x005B22000)		// ISP DART
#define ISP_SMMU_BASE_ADDR		(IO_BASE + 0x005B24000)		// ISP SMMU
#define ISP_ISPCTRL_R0_BASE_ADDR	(IO_BASE + 0x005B40000)		// SISP Region 0 Control
#define ISP_MIPI_CSI_0_BASE_ADDR	(IO_BASE + 0x005B80000)		// MIPI CSI Controller
#define ISP_MIPI_CSI_1_BASE_ADDR	(IO_BASE + 0x005B81000)		// MIPI CSI Controller
#define ISP_SMB_0_BASE_ADDR		(IO_BASE + 0x005B82000)		// SMB Controller
#define ISP_SMB_1_BASE_ADDR		(IO_BASE + 0x005B83000)		// SMB Controller
#define ISP_FD_BASE_ADDR		(IO_BASE + 0x005B84000)		// Face Detect
#define ISP_AISP_BASE_ADDR		(IO_BASE + 0x005BA0000)		// AISP
#define ISP_ISPCTRL_R1_BASE_ADDR	(IO_BASE + 0x005BC0000)		// SISP Region 1 Control
#define ISP_AKF_BASE_ADDR		(IO_BASE + 0x005C00000)		// SISP KF Widgets and Config

// XXX JF
#if SUB_PLATFORM_T7000
#define DISP_BUSMUX_BASE_ADDR		(IO_BASE + 0x006000000)		// AF Display BusMux Config
#endif
#define DISP0_FAB_BASE_ADDR		(IO_BASE + 0x006100000)		// DisplayPipe0 AF and AXI Config
#define DISP0_BASE_ADDR			(IO_BASE + 0x006200000)		// DisplayPipe0
#define DISP0_ADP_BASE_ADDR		(IO_BASE + 0x006200000)		// DisplayPipe0 Configuration
#define DISP0_SMMU_BASE_ADDR		(IO_BASE + 0x006300000)		// DisplayPipe0 SMMU Configuration
#define DISP0_ADBE_BASE_ADDR		(IO_BASE + 0x006400000)		// DisplayPipe0 Backend Config
#define DISP0_AAP_BASE_ADDR		(IO_BASE + 0x006440000)		// DisplayPipe0 Ambient-Adaptive Pixel Config
#define DISP0_DPB_BASE_ADDR		(IO_BASE + 0x006480000)		// DisplayPipe0 Pixel Backlight Config
#define DISP0_DITHER_BASE_ADDR		(IO_BASE + 0x0064C0000)		// DisplayPipe0 Dither Config
#define DITHER_BASE_ADDR		DISP0_DITHER_BASE_ADDR
#define DITHER_VERSION			(3)

#define DISP0_MIPI_DSI_BASE_ADDR	(IO_BASE + 0x006600000)		// DisplayPipe0 MIPI DSI Config
#define DISP0_DPTX_BASE_ADDR		(IO_BASE + 0x006700000)		// DisplayPipe0 DisplayPort TX Config

#define MSR_AFC_AIU_BASE_ADDR		(IO_BASE + 0x007800000)		// MSR AXI2AF AFC_AIU
#define MSR_BASE_ADDR			(IO_BASE + 0x007900000)		// Memory Scalar Rotator
#define MSR_SMMU_BASE_ADDR		(IO_BASE + 0x007904000)		// MSR SMMU
#define MSR_DART_BASE_ADDR		(IO_BASE + 0x007908000)		// DART for MSR SMMU
#define MSR_INTR2AXI_BASE_ADDR		(IO_BASE + 0x00790C000)		// MSR Interrupt to AXI Widget

#define AJPEG_AFC_AIU_BASE_ADDR		(IO_BASE + 0x007A00000)		// AJPEG AXI2AF AFC_AIU
#define AJPEG_BASE_ADDR			(IO_BASE + 0x007B00000)		// AJPEG Wrap
#define AJPEG_DART_BASE_ADDR		(IO_BASE + 0x007B02000)		// AJPEG DART
#define AJPEG_INTR2AXI_BASE_ADDR	(IO_BASE + 0x007B04000)		// AJPEG Interrupt to AXI Widget

#define SVE_BASE_ADDR			(IO_BASE + 0x007C00000)		// SVE Video Encoder Subsystem
#define SVE_AVE_AXI2AF			(IO_BASE + 0x007C00000)		// SVE AVE AXI to Apple Fabric Bridge
#define SVE_AFC_AIU_BASE_ADDR		(IO_BASE + 0x007C00000)		// SVE AXI2AF AFC_AIU
#define SVE_INTR2AXI_BASE_ADDR		(IO_BASE + 0x007C10000)		// SVE VENC Interrupt to AXI Widget
#define SVE_SMMU_BASE_ADDR		(IO_BASE + 0x007C20000)		// SVE Streaming MMU for AVE
#define SVE_DART_BASE_ADDR		(IO_BASE + 0x007C30000)		// SVE DART for AVE SMMU
#define SVE_PL301_BASE_ADDR		(IO_BASE + 0x007C40000)		// SVE PL301 Config
#define SVE_AKF_BASE_ADDR		(IO_BASE + 0x007C80000)		// SVE Kingfisher Wrapper Configuration
// XXX #define SVE_AVE_KF_DBG_BASE_ADDR	(IO_BASE + 0x007CA0000)		// SVE Kingfisher Wrapper Debug APB
#define SVE_CTRL_BASE_ADDR		(IO_BASE + 0x007CC0000)		// SVE Control Registers

#define VXD_AFC_AIU_BASE_ADDR		(IO_BASE + 0x007E00000)		// VXD AXI2AF AFC_AIU
#define VXD_INTR2AXI_BASE_ADDR		(IO_BASE + 0x007E10000)		// VXD Interrupt to AXI Widget
#define VXD_PL301_BASE_ADDR		(IO_BASE + 0x007E20000)		// VXD PL301 Config
#define VXD_CFG_BASE_ADDR		(IO_BASE + 0x007F00000)		// VXD Config Registers

#define IOBUSMUX_BASE_ADDR		(IO_BASE + 0x009000000)		// IO BusMux Config

#define SB_BASE_ADDR			(IO_BASE + 0x00A000000)		// South Bridge

#define ASIO_MISC_0_BASE_ADDR		(IO_BASE + 0x00A000000)		// ASIO Shim0 Misc Registers
#define ASIO_AUD_MUX_BASE_ADDR		(IO_BASE + 0x00A003000)		// ASIO Audio I2S Switch Config
#define ASIO_SPI_BASE_ADDR		(IO_BASE + 0x00A080000)		// ASIO SPI Device
#define ASIO_SPI_TX_CFG_BASE_ADDR	(IO_BASE + 0x00A081000)		// ASIO SPI TX DMA Channel
#define ASIO_SPI_RX_CFG_BASE_ADDR	(IO_BASE + 0x00A081800)		// ASIO SPI RX DMA Channel
#define ASIO_SPI_TX_FIFO_BASE_ADDR	(IO_BASE + 0x00A082000)		// ASIO SPI TX DMA Shim FIFO
#define ASIO_SPI_RX_FIFO_BASE_ADDR	(IO_BASE + 0x00A083000)		// ASIO SPI RX DMA Shim FIFO
#define ASIO_MCA_BASE_ADDR		(IO_BASE + 0x00A0A0000)		// ASIO MCA Device
#define ASIO_MCA_TX_CFG_BASE_ADDR	(IO_BASE + 0x00A0A1000)		// ASIO MCA TX DMA Channel
#define ASIO_MCA_RX_CFG_BASE_ADDR	(IO_BASE + 0x00A0A1800)		// ASIO MCA RX DMA Channel
#define ASIO_MCA_TX_FIFO_BASE_ADDR	(IO_BASE + 0x00A0A2000)		// ASIO MCA TX DMA Shim FIFO
#define ASIO_MCA_RX_FIFO_BASE_ADDR	(IO_BASE + 0x00A0A3000)		// ASIO MCA RX DMA Shim FIFO
#define ASIO_UART_BASE_ADDR		(IO_BASE + 0x00A0C0000)		// ASIO UART Device
#define ASIO_UART_TX_CFG_BASE_ADDR	(IO_BASE + 0x00A0C1000)		// ASIO UART TX DMA Channel
#define ASIO_UART_RX_CFG_BASE_ADDR	(IO_BASE + 0x00A0C1800)		// ASIO UART RX DMA Channel
#define ASIO_UART_TX_FIFO_BASE_ADDR	(IO_BASE + 0x00A0C2000)		// ASIO UART TX DMA Shim FIFO
#define ASIO_UART_RX_FIFO_BASE_ADDR	(IO_BASE + 0x00A0C3000)		// ASIO UART RX DMA Shim FIFO
#define ASIO_MISC_1_BASE_ADDR		(IO_BASE + 0x00A100000)		// ASIO Shim1 Misc Registers
#define ASIO_AES_BASE_ADDR		(IO_BASE + 0x00A108000)		// ASIO AES Config and DMA Registers
#define ASIO_SMB_0_BASE_ADDR		(IO_BASE + 0x00A110000)		// ASIO I2C 0 Device
#define ASIO_SMB_1_BASE_ADDR		(IO_BASE + 0x00A111000)		// ASIO I2C 1 Device
#define ASIO_SMB_2_BASE_ADDR		(IO_BASE + 0x00A112000)		// ASIO I2C 2 Device
#define ASIO_SMB_3_BASE_ADDR		(IO_BASE + 0x00A113000)		// ASIO I2C 3 Device
#define ASIO_PWM_BASE_ADDR		(IO_BASE + 0x00A118000)		// ASIO PWM
#define ASIO_DNSZ_AXI_0_BASE_ADDR	(IO_BASE + 0x00A141000)		// ASIO Downsizer 0 Configuration Registers
#define ASIO_DNSZ_AXI_1_BASE_ADDR	(IO_BASE + 0x00A142000)		// ASIO Downsizer 1 Configuration Registers
#define ASIO_AKF_BASE_ADDR		(IO_BASE + 0x00AE00000)		// ASIO KF Wrapper
// XXX ASIO AKF DBG

#define AUSB_CTL_REG_BASE_ADDR		(IO_BASE + 0x00C000000)		// USBCTL Config
#define AUSB_CTL_USB20PHY_REG_OFFSET	(0x30)				// USB20PHY Register offset within AUSBCTL registers
#define AUSB_OTG_BASE_ADDR		(IO_BASE + 0x00C100000)		// USB OTG
#define AUSB_USB2HOST0_EHCI_BASE_ADDR	(IO_BASE + 0x00C200000)		// EHCI0
#define AUSB_USB2HOST0_OHCI_BASE_ADDR	(IO_BASE + 0x00C300000)		// OHCI0
#define AUSB_USB2HOST1_EHCI_BASE_ADDR	(IO_BASE + 0x00C400000)		// EHCI1
#define AUSB_USB2HOST1_OHCI_BASE_ADDR	(IO_BASE + 0x00C500000)		// OHCI1
#define AUSB_PL301_BASE_ADDR		(IO_BASE + 0x00C800000)		// AUSB PL301 4-AHB Master to 1-AXI Slave
#define AUSB_PL301_WIDGET_BASE_ADDR	(IO_BASE + 0x00C900000)		// AUSB PL301 Widget
#define AUSB_INTR2AXI_BASE_ADDR		(IO_BASE + 0x00CA00000)		// AUSB Interrupt to AXI Widget
#define AUSB_AFIFO_WIDGET_BASE_ADDR	(IO_BASE + 0x00CB00000)		// AUSB Async FIFO

#define ASEP_AKF_BASE_ADDR		(IO_BASE + 0x00DA00000)		// ASEP AKF control Registers

#define PMGR_BASE_ADDR			(IO_BASE + 0x00E000000)		// PMGR

#define AIC_BASE_ADDR			(IO_BASE + 0x00E100000)		// AIC
#define AIC_WIRE_VIRT_BASE_ADDR		(IO_BASE + 0x00E110000)		// AIC Wrapper

#define DWI_BASE_ADDR			(IO_BASE + 0x00E200000)		// DWI

#define LIO_MEM_PL301_BASE_ADDR		(IO_BASE + 0x00E900000)		// PL310 for pd_lio memory
#define LIO_PIO_PL310_BASE_ADDR		(IO_BASE + 0x00E940000)		// PL310 for pd_lio PIO
#define LIO_DNSZ_AXI_BASE_ADDR		(IO_BASE + 0x00E9C8000)		// PL310 for pd_lio downsizer
#define LIO_SIO_AFIFO_WIDGETS_BASE_ADDR	(IO_BASE + 0x00E9C0000)		// SIO Async FIFO for pd_lio
#define LIO_DAP_AFIFO_WIDGETS_BASE_ADDR	(IO_BASE + 0x00E9E0000)		// DAP Async FIFO for pd_lio
#define LIO_AFC_AIU_BASE_ADDR		(IO_BASE + 0x00F010000)		// LIO AXI to AF Bridge

#define GPIO_BASE_ADDR			(IO_BASE + 0x00F100000)		// GPIO
#define GLBTIMER_BASE_ADDR		(IO_BASE + 0x00F140000)		// Global Timer

#define ERR_REFLECTION_BASE_ADDR	(IO_BASE + 0x00FFFC000)

#define AOP_BASE_ADDR			(IO_BASE + 0x010000000)
#define AOP_MINIPMGR_BASE_ADDR		(IO_BASE + 0x010200000)
#define DBG_WRP_BASE_ADDR		(IO_BASE + 0x010300000)		// Debug Sub-system Config
#define AOP_GPIO_BASE_ADDR		(IO_BASE + 0x0100f0000)
#define AOP_SRAM_BASE_ADDR		(IO_BASE + 0x010E00000)
#define AOP_RECONFIG_REGION_BASE_ADDR	(IO_BASE + 0x010E9B000)
#define AOP_RECONFIG_REGION_SIZE	(IO_BASE + 0x010EA0000 - AOP_RECONFIG_REGION_BASE_ADDR)
#define AOP_RECONFIG_REGION_DIAGS_BASE_ADDR	(IO_BASE + 0x010E90000)
#define AOP_RECONFIG_REGION_DIAGS_SIZE		(IO_BASE + 0x010EA0000 - AOP_RECONFIG_REGION_DIAGS_BASE_ADDR)
#define MEMORY_CALIB_SAVE_BASE_ADDR	AOP_SRAM_BASE_ADDR // Temporarily save cold boot memcal results in AOP_SRAM

#define APCIE_VERSION			(2)
#define APCIE_COMMON_BASE_ADDR		(PCI_REG_BASE + 0x00000000)
#define APCIE_PHY_BASE_ADDR		(PCI_REG_BASE + 0x00008000)
#if SUB_PLATFORM_S8000
#define APCIE_PHY_AUSP_SHM_BASE_ADDR	(PCI_REG_BASE + 0x00009a00)
#define APCIE_PHY_AUST0_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x8100)
#define APCIE_PHY_AUST1_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x8300)
#define APCIE_PHY_AUST2_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x8500)
#define APCIE_PHY_AUST3_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x8700)
#define APCIE_PHY_AUST4_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x8900)
#define APCIE_PHY_AUSR0_CFG_BASE_ADDR		(PCI_REG_BASE + 0x8a00)
#define APCIE_PHY_AUSR0_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x8b00)
#define APCIE_PHY_AUSR1_CFG_BASE_ADDR		(PCI_REG_BASE + 0x8c00)
#define APCIE_PHY_AUSR1_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x8d00)
#define APCIE_PHY_AUSR2_CFG_BASE_ADDR		(PCI_REG_BASE + 0x8e00)
#define APCIE_PHY_AUSR2_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x8f00)
#define APCIE_PHY_AUSR3_CFG_BASE_ADDR		(PCI_REG_BASE + 0x9000)
#define APCIE_PHY_AUSR3_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x9100)
#define APCIE_PHY_AUSR4_CFG_BASE_ADDR		(PCI_REG_BASE + 0x9200)
#define APCIE_PHY_AUSR4_SHM_CFG_BASE_ADDR	(PCI_REG_BASE + 0x9300)
#elif SUB_PLATFORM_S8003
#define APCIE_PHY_PMA_COMMON_BASE_ADDR		(PCI_REG_BASE + 0x0a000000)
#define APCIE_PHY_PMA_TX_LANE_BASE_ADDR		(PCI_REG_BASE + 0x0a010000)
#define APCIE_PHY_PMA_TX_LANE_STRIDE		(0x800)
#define APCIE_PHY_PMA_RX_LANE_BASE_ADDR		(PCI_REG_BASE + 0x0a020000)
#define APCIE_PHY_PMA_RX_LANE_STRIDE		(0x800)
#endif
#define APCIE_COUNTER_BASE_ADDR		(PCI_REG_BASE + 0x4000)
#define APCIE_CONFIG_BASE_ADDR		(PCI_REG_BASE + 0x01000000)
#define APCIE_CONFIG_PORT_STRIDE	(0x01000000)

/* iBoot Specific Defs */

#define AKF_VERSION			(2)

#define UART0_BASE_ADDR			(ASIO_UART_BASE_ADDR)
#define UART1_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x04000)
#define UART2_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x08000)
#define UART3_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x0C000)
#define UART4_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x10000)
#define UART5_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x14000)
#define UART6_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x18000)
#define UART7_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x1C000)
#define UART8_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x20000)
#define UARTS_COUNT			(9)
#define UART_VERSION			(1)

#define SPI0_BASE_ADDR			(ASIO_SPI_BASE_ADDR)
#define SPI1_BASE_ADDR			(ASIO_SPI_BASE_ADDR + 0x04000)
#define SPI2_BASE_ADDR			(ASIO_SPI_BASE_ADDR + 0x08000)
#define SPI3_BASE_ADDR			(ASIO_SPI_BASE_ADDR + 0x0C000)
#define SPI_VERSION			(1)
#define SPIS_COUNT			(4)

#define IIC_BASE_ADDR			(ASIO_SMB_0_BASE_ADDR)
#define IIC_SPACING			(0x00001000)
#define IICS_COUNT			(3)

#define USBPHY_VERSION			(4)

#define DSIM_BASE_ADDR			(DISP0_MIPI_DSI_BASE_ADDR)
#define DSIM_LANE_COUNT			(4)
#define DSIM_VERSION			(2)

#define EDP_BASE_ADDR			(DISP0_DPTX_BASE_ADDR)
#define	DP_BASE_ADDR			(DISP0_DPTX_BASE_ADDR)
#define	LPDP_PHY_BASE_ADDR		(DISP0_DPTX_BASE_ADDR + 0x080000)
#define DISPLAYPORT_VERSION		(4)
#define LPDP_PHY_VERSION		(1)

#define ADBE_DISPLAYPIPE_BASE_ADDR	(DISP0_BASE_ADDR)
#define DISP_VERSION			(5)
#define ADP_VERSION			(2)

#define GPIOC_COUNT			(2)
#define GPIO_VERSION			(4)
#define GPIO_0_GROUP_COUNT		(25)
#define GPIO_1_BASE_ADDR		(AOP_GPIO_BASE_ADDR)
#define GPIO_1_GROUP_COUNT		(4)
#define GPIO_AP				(GPIOC_0)
#define GPIO_AOP			(GPIOC_1)
#define GPIO_GROUP_COUNT		(GPIO_0_GROUP_COUNT)
#define GPIO_PAD_SPI                    (GPIO_GROUP_COUNT)

#define AIC_VERSION			(1)
#define AIC_INT_COUNT			(256)

#define PMGR_WDG_VERSION		(1)

#define USBOTG_BASE_ADDR		(AUSB_OTG_BASE_ADDR)

#define APCIE_NUM_LINKS			(4)

#define DART0_BASE_ADDR			(PCI_REG_BASE + 0x1008000)
#define DART0_ADDR_MASK			(0x3FFFFFFF)
#define DART1_BASE_ADDR			(PCI_REG_BASE + 0x2008000)
#define DART1_ADDR_MASK			(0x3FFFFFFF)
#define DART2_BASE_ADDR			(PCI_REG_BASE + 0x3008000)
#define DART2_ADDR_MASK			(0x3FFFFFFF)
#define DART3_BASE_ADDR			(PCI_REG_BASE + 0x4008000)
#define DART3_ADDR_MASK			(0x3FFFFFFF)

#define PCIE_PORT0_DART_ID		(0)
#define PCIE_PORT1_DART_ID		(1)
#define PCIE_PORT2_DART_ID		(2)
#define PCIE_PORT3_DART_ID		(3)
#define NUM_DARTS			(4)

#define AES_AP_BASE_ADDR		(ASIO_AES_BASE_ADDR)
#define AES_AP_VERSION			(0)

#elif SUB_PLATFORM_S8001

#define AMCC_BASE_ADDR(_n)		(IO_BASE + ((_n) * 0x000200000)) // AMCC Config
#define NUM_AMCCS			(2)

#define DCS_BASE_ADDR			(IO_BASE + 0x000400000) 	// DCS

#define DCS_SPACING 			(0x40000)
#define SPLLCTRL_SPACING 		(0x00000C000)
#define AMP_CA_SPACING 			(0x000020000)
#define AMP_DQ_SPACING 			(0x000008000)
#define AMP_SPACING 			(DCS_SPACING)
#define AMP_BASE_ADDR 			(DCS_BASE_ADDR + AMP_CA_SPACING)
#define AMPH_BASE_ADDR 			(AMP_BASE_ADDR + 3 * AMP_DQ_SPACING)

#define SWTCH_FAB_BASE_ADDR		(IO_BASE + 0x000800000)		// Switch Fabric Config

#define CP0_COM_BASE_ADDR		(IO_BASE + 0x000A00000)		// CP0 Common Registers
#define CP0_COM_INT_BASE_ADDR		(CP0_COM_BASE_ADDR + 0x10000)	// CP0 Common Interrupt Config Registers

#define CP0_0_DT_DBG_CA0_ADDR		(IO_BASE + 0x000A40000)		// Dup Tag Debug backdoor Ram Access For CP0/CA0
#define CP0_1_DT_DBG_CA0_ADDR		(IO_BASE + 0x000B40000)		// Dup Tag Debug backdoor Ram Access For CP0/CA0

#define CP1_COM_BASE_ADDR		(IO_BASE + 0x000C00000)		// CP1 Common Registers
#define CP1_COM_INT_BASE_ADDR		(CP1_COM_BASE_ADDR + 0x10000)	// CP1 Common Interrupt Config Registers

#define CP1_0_DT_DBG_CA0_ADDR		(IO_BASE + 0x000C40000)		// Dup Tag Debug backdoor Ram Access For CP1/CA0
#define CP1_1_DT_DBG_CA0_ADDR		(IO_BASE + 0x000D40000)		// Dup Tag Debug backdoor Ram Access For CP1/CA0

#define RGX_CR_BASE_ADDR		(IO_BASE + 0x001000000)		// Templar4 Space

#define GPC_BASE_ADDR			(IO_BASE + 0x001d00000)		// Templar4 Power Controller Space

#define IMGV42AF_AFC_AIU_BASE_ADDR	(IO_BASE + 0x001f00000)		// IMGv42AF0: Local PIO Config Space of AF AIU Block
#define IMGV42AF_AFUSR_BASE_ADDR	(IO_BASE + 0x001f40000)		// IMGv42AF0: Bridge PIO Space
#define IMGV42AF1_AFC_AIU_BASE_ADDR	(IO_BASE + 0x001f80000)		// IMGv42AF1: Local PIO Config Space of AF AIU Block
#define IMGV42AF1_AFUSR_BASE_ADDR	(IO_BASE + 0x001fC0000)		// IMGv42AF1: Bridge PIO Space

#define ACC_BASE_ADDR			(IO_BASE + 0x002000000)		// Apple Compute Complex
#define CCC_CPU0_SYS_BASE_ADDR		(IO_BASE + 0x002050000)		// Twister CPU0 Implementation Specific Registers
#define CCC_CPU1_SYS_BASE_ADDR		(IO_BASE + 0x002150000)		// Twister CPU1 Implementation Specific Registers
#define CCC0_SYS_BASE_ADDR		(IO_BASE + 0x002200000)		// Twister Core Complex Registers

#define CCC_SOC_BUSMUX_BASE_ADDR	(IO_BASE + 0x004000000)		// AF SoC BusMux Config
#define SOC_BUSMUX_BASE_ADDR		(IO_BASE + 0x004000000)		// AF SoC BusMux Config

#define ISP_AFC_AIU_0_BASE_ADDR		(IO_BASE + 0x005B00000)		// ISP AXI to AF Bridge
#define ISP_INTR2AXI_BASE_ADDR		(IO_BASE + 0x005B20000)		// ISP Interrupt to AXI Widget
#define ISP_DART_BASE_ADDR		(IO_BASE + 0x005B22000)		// ISP DART
#define ISP_SMMU_BASE_ADDR		(IO_BASE + 0x005B24000)		// ISP SMMU
#define ISP_ISPCTRL_R0_BASE_ADDR	(IO_BASE + 0x005B40000)		// SISP Region 0 Control
#define ISP_SMB_0_BASE_ADDR		(IO_BASE + 0x005B82000)		// SMB Controller
#define ISP_SMB_1_BASE_ADDR		(IO_BASE + 0x005B83000)		// SMB Controller
#define ISP_FD_BASE_ADDR		(IO_BASE + 0x005B84000)		// Face Detect
#define ISP_AISP_BASE_ADDR		(IO_BASE + 0x005BA0000)		// AISP
#define ISP_ISPCTRL_R1_BASE_ADDR	(IO_BASE + 0x005BC0000)		// SISP Region 1 Control
#define ISP_AKF_BASE_ADDR		(IO_BASE + 0x005C00000)		// SISP KF Widgets and Config

#define RT_BUSMUX_BASE_ADDR		(IO_BASE + 0x006000000)		// RT BusMux Config

#define DISP0_FAB_BASE_ADDR		(IO_BASE + 0x006100000)		// DisplayPipe0 AF and AXI Config
#define DISP0_BASE_ADDR			(IO_BASE + 0x006200000)		// DisplayPipe0
#define DISP0_ADP_BASE_ADDR		(IO_BASE + 0x006200000)		// DisplayPipe0 Configuration
#define DISP0_SMMU_BASE_ADDR		(IO_BASE + 0x006300000)		// DisplayPipe0 SMMU Configuration
#define DISP0_ADBE_BASE_ADDR		(IO_BASE + 0x006400000)		// DisplayPipe0 Backend Config
#define DISP0_AAP_BASE_ADDR		(IO_BASE + 0x006440000)		// DisplayPipe0 Ambient-Adaptive Pixel Config
#define DISP0_DPB_BASE_ADDR		(IO_BASE + 0x006480000)		// DisplayPipe0 Pixel Backlight Config
#define DISP0_WPC_BASE_ADDR		(IO_BASE + 0x0064C0000)		// DisplayPipe0 Whitepoint Correction
#define DISP0_PRC_BASE_ADDR		(IO_BASE + 0x006500000)
#define DISP0_DITHER_BASE_ADDR		(IO_BASE + 0x006540000)		// DisplayPipe0 Dither Config
#define DITHER_BASE_ADDR		DISP0_DITHER_BASE_ADDR
#define DITHER_VERSION			(4)

#define DISP0_DPTX_BASE_ADDR		(IO_BASE + 0x006700000)		// DisplayPipe0 DisplayPort TX Config

#define DISP1_FAB_BASE_ADDR		(IO_BASE + 0x006900000)		// DisplayPipe1 AF and AXI Config
#define DISP1_BASE_ADDR			(IO_BASE + 0x006A00000)		// DisplayPipe1
#define DISP1_ADP_BASE_ADDR		(IO_BASE + 0x006A00000)		// DisplayPipe1 Ambient-Adaptive Pixel Config
#define DISP1_SMMU_BASE_ADDR		(IO_BASE + 0x006B00000)		// DisplayPipe1 SMMU Configuration

#define MEDIA_BUS_MUX			(IO_BASE + 0x007000000)		// Media Bus Mux
#define DISP1_MEDIA_BUSMUX_BASE_ADDR	(IO_BASE + 0x008000000)		// DisplayPipe1 AF Media BusMux Config

#define MSR_AFC_AIU_BASE_ADDR		(IO_BASE + 0x007800000)		// MSR AXI2AF AFC_AIU
#define MSR_BASE_ADDR			(IO_BASE + 0x007900000)		// Memory Scalar Rotator
#define MSR_SMMU_BASE_ADDR		(IO_BASE + 0x007904000)		// MSR SMMU
#define MSR_DART_BASE_ADDR		(IO_BASE + 0x007908000)		// DART for MSR SMMU
#define MSR_INTR2AXI_BASE_ADDR		(IO_BASE + 0x00790C000)		// MSR Interrupt to AXI Widget

#define AJPEG_AFC_AIU_BASE_ADDR		(IO_BASE + 0x007A00000)		// AJPEG AXI2AF AFC_AIU
#define AJPEG_BASE_ADDR			(IO_BASE + 0x007B00000)		// AJPEG Wrap
#define AJPEG_DART_BASE_ADDR		(IO_BASE + 0x007B04000)		// AJPEG DART
#define AJPEG_INTR2AXI_BASE_ADDR	(IO_BASE + 0x007B08000)		// AJPEG Interrupt to AXI Widget

#define SVE_BASE_ADDR			(IO_BASE + 0x007C00000)		// SVE Video Encoder Subsystem
#define SVE_AVE_AXI2AF			(IO_BASE + 0x007C00000)		// SVE AVE AXI to Apple Fabric Bridge
#define SVE_AFC_AIU_BASE_ADDR		(IO_BASE + 0x007C00000)		// SVE AXI2AF AFC_AIU
#define SVE_INTR2AXI_BASE_ADDR		(IO_BASE + 0x007C10000)		// SVE VENC Interrupt to AXI Widget
#define SVE_SMMU_BASE_ADDR		(IO_BASE + 0x007C20000)		// SVE Streaming MMU for AVE
#define SVE_DART_BASE_ADDR		(IO_BASE + 0x007C30000)		// SVE DART for AVE SMMU
#define SVE_PL301_BASE_ADDR		(IO_BASE + 0x007C40000)		// SVE PL301 Config
#define SVE_AKF_BASE_ADDR		(IO_BASE + 0x007C80000)		// SVE Kingfisher Wrapper Configuration
// XXX #define SVE_AVE_KF_DBG_BASE_ADDR	(IO_BASE + 0x007CA0000)		// SVE Kingfisher Wrapper Debug APB
#define SVE_CTRL_BASE_ADDR		(IO_BASE + 0x007CC0000)		// SVE Control Registers

#define VXD_AFC_AIU_BASE_ADDR		(IO_BASE + 0x007E00000)		// VXD AXI2AF AFC_AIU
#define VXD_CFG_BASE_ADDR		(IO_BASE + 0x007F00000)		// VXD Config Registers

#define SB_BASE_ADDR			(IO_BASE + 0x00A000000)		// South Bridge

#define ASIO_MISC_0_BASE_ADDR		(IO_BASE + 0x00A000000)		// ASIO Shim0 Misc Registers
#define ASIO_AUD_MUX_BASE_ADDR		(IO_BASE + 0x00A003000)		// ASIO Audio I2S Switch Config
#define ASIO_SPI_BASE_ADDR		(IO_BASE + 0x00A080000)		// ASIO SPI Device
#define ASIO_SPI_TX_CFG_BASE_ADDR	(IO_BASE + 0x00A081000)		// ASIO SPI TX DMA Channel
#define ASIO_SPI_RX_CFG_BASE_ADDR	(IO_BASE + 0x00A081800)		// ASIO SPI RX DMA Channel
#define ASIO_SPI_TX_FIFO_BASE_ADDR	(IO_BASE + 0x00A082000)		// ASIO SPI TX DMA Shim FIFO
#define ASIO_SPI_RX_FIFO_BASE_ADDR	(IO_BASE + 0x00A083000)		// ASIO SPI RX DMA Shim FIFO
#define ASIO_MCA_BASE_ADDR		(IO_BASE + 0x00A0A0000)		// ASIO MCA Device
#define ASIO_MCA_TX_CFG_BASE_ADDR	(IO_BASE + 0x00A0A1000)		// ASIO MCA TX DMA Channel
#define ASIO_MCA_RX_CFG_BASE_ADDR	(IO_BASE + 0x00A0A1800)		// ASIO MCA RX DMA Channel
#define ASIO_MCA_TX_FIFO_BASE_ADDR	(IO_BASE + 0x00A0A2000)		// ASIO MCA TX DMA Shim FIFO
#define ASIO_MCA_RX_FIFO_BASE_ADDR	(IO_BASE + 0x00A0A3000)		// ASIO MCA RX DMA Shim FIFO
#define ASIO_UART_BASE_ADDR		(IO_BASE + 0x00A0C0000)		// ASIO UART Device
#define ASIO_UART_TX_CFG_BASE_ADDR	(IO_BASE + 0x00A0C1000)		// ASIO UART TX DMA Channel
#define ASIO_UART_RX_CFG_BASE_ADDR	(IO_BASE + 0x00A0C1800)		// ASIO UART RX DMA Channel
#define ASIO_UART_TX_FIFO_BASE_ADDR	(IO_BASE + 0x00A0C2000)		// ASIO UART TX DMA Shim FIFO
#define ASIO_UART_RX_FIFO_BASE_ADDR	(IO_BASE + 0x00A0C3000)		// ASIO UART RX DMA Shim FIFO
#define ASIO_MISC_1_BASE_ADDR		(IO_BASE + 0x00A100000)		// ASIO Shim1 Misc Registers
#define ASIO_AES_BASE_ADDR		(IO_BASE + 0x00A108000)		// ASIO AES Config and DMA Registers
#define ASIO_SMB_0_BASE_ADDR		(IO_BASE + 0x00A110000)		// ASIO I2C 0 Device
#define ASIO_SMB_1_BASE_ADDR		(IO_BASE + 0x00A111000)		// ASIO I2C 1 Device
#define ASIO_SMB_2_BASE_ADDR		(IO_BASE + 0x00A112000)		// ASIO I2C 2 Device
#define ASIO_SMB_3_BASE_ADDR		(IO_BASE + 0x00A113000)		// ASIO I2C 3 Device
#define ASIO_PWM_BASE_ADDR		(IO_BASE + 0x00A118000)		// ASIO PWM
#define ASIO_DNSZ_AXI_0_BASE_ADDR	(IO_BASE + 0x00A141000)		// ASIO Downsizer 0 Configuration Registers
#define ASIO_DNSZ_AXI_1_BASE_ADDR	(IO_BASE + 0x00A142000)		// ASIO Downsizer 1 Configuration Registers
#define ASIO_AKF_BASE_ADDR		(IO_BASE + 0x00AE00000)		// ASIO KF Wrapper
// XXX ASIO AKF DBG

#define AUSB_CTL_REG_BASE_ADDR		(IO_BASE + 0x00C000000)		// USBCTL Config
#define AUSB_CTL_USB20PHY_REG_OFFSET	(0x30)				// USB20PHY Register offset within AUSBCTL registers
#define AUSB_OTG_BASE_ADDR		(IO_BASE + 0x00C100000)		// USB OTG
#define AUSB_USB2HOST0_EHCI_BASE_ADDR	(IO_BASE + 0x00C200000)		// EHCI0
#define AUSB_USB2HOST0_OHCI_BASE_ADDR	(IO_BASE + 0x00C300000)		// OHCI0
#define AUSB_USB2HOST1_EHCI_BASE_ADDR	(IO_BASE + 0x00C400000)		// EHCI1
#define AUSB_USB2HOST1_OHCI_BASE_ADDR	(IO_BASE + 0x00C500000)		// OHCI1
#define AUSB_PL301_BASE_ADDR		(IO_BASE + 0x00C800000)		// AUSB PL301 4-AHB Master to 1-AXI Slave
#define AUSB_PL301_WIDGET_BASE_ADDR	(IO_BASE + 0x00C900000)		// AUSB PL301 Widget
#define AUSB_INTR2AXI_BASE_ADDR		(IO_BASE + 0x00CA00000)		// AUSB Interrupt to AXI Widget
#define AUSB_AFIFO_WIDGET_BASE_ADDR	(IO_BASE + 0x00CB00000)		// AUSB Async FIFO

#define ASEP_AKF_BASE_ADDR		(IO_BASE + 0x00DA00000)		// ASEP AKF control Registers

#define PMGR_BASE_ADDR			(IO_BASE + 0x00E000000)		// PMGR

#define AIC_BASE_ADDR			(IO_BASE + 0x00E100000)		// AIC
#define AIC_WIRE_VIRT_BASE_ADDR		(IO_BASE + 0x00E110000)		// AIC Wrapper

#define DWI_BASE_ADDR			(IO_BASE + 0x00E200000)		// DWI

#define LIO_MEM_PL301_BASE_ADDR		(IO_BASE + 0x00F160000)		// PL310 for pd_lio memory
#define LIO_PIO_PL310_BASE_ADDR		(IO_BASE + 0x00F180000)		// PL310 for pd_lio PIO
#define LIO_NIC_PL301_BASE_ADDR		(IO_BASE + 0x00F1A0000)		// PL310 for pd_lio downsizer
#define LIO_PMS_AFIFO_WIDGETS_BASE_ADDR	(IO_BASE + 0x00F1E0000)		// PMS Async FIFO for pd_lio
#define LIO_AFC_AIU_BASE_ADDR		(IO_BASE + 0x00F000000)		// LIO AXI to AF Bridge
#define SBR_AFC_AIU_BASE_ADDR		(LIO_AFC_AIU_BASE_ADDR)

#define GPIO_BASE_ADDR			(IO_BASE + 0x00F100000)		// GPIO
#define GLBTIMER_BASE_ADDR		(IO_BASE + 0x00F140000)		// Global Timer

#define ERR_REFLECTION_BASE_ADDR	(IO_BASE + 0x00FFFC000)

#define AOP_BASE_ADDR			(IO_BASE + 0x010000000)
#define AOP_MINIPMGR_BASE_ADDR		(IO_BASE + 0x010200000)
#define DBG_WRP_BASE_ADDR		(IO_BASE + 0x010300000)		// Debug Sub-system Config
#define AOP_GPIO_BASE_ADDR		(IO_BASE + 0x0100f0000)
#define AOP_SRAM_BASE_ADDR		(IO_BASE + 0x010E00000)
#define AOP_RECONFIG_REGION_BASE_ADDR	(IO_BASE + 0x010E9B000)
#define AOP_RECONFIG_REGION_SIZE	(IO_BASE + 0x010EA0000 - AOP_RECONFIG_REGION_BASE_ADDR)
#define AOP_RECONFIG_REGION_DIAGS_BASE_ADDR	(IO_BASE + 0x010E90000)
#define AOP_RECONFIG_REGION_DIAGS_SIZE		(IO_BASE + 0x010EA0000 - AOP_RECONFIG_REGION_DIAGS_BASE_ADDR)
#define MEMORY_CALIB_SAVE_BASE_ADDR	AOP_SRAM_BASE_ADDR // Temporarily save cold boot memcal results in AOP_SRAM

#define APCIE_VERSION			(2)
#define APCIE_COMMON_BASE_ADDR		(PCI_REG_BASE + 0x00000000)
#define APCIE_COUNTER_BASE_ADDR		(PCI_REG_BASE + 0x4000)
#define APCIE_PHY_BASE_ADDR		(PCI_REG_BASE + 0x8000)
#define APCIE_CONFIG_BASE_ADDR		(PCI_REG_BASE + 0x01000000)
#define APCIE_CONFIG_PORT_STRIDE	(0x01000000)
#define APCIE_PHY_PMA_COMMON_BASE_ADDR		(PCI_REG_BASE + 0x0a000000)
#define APCIE_PHY_PMA_TX_LANE_BASE_ADDR		(PCI_REG_BASE + 0x0a010000)
#define APCIE_PHY_PMA_TX_LANE_STRIDE		(0x800)
#define APCIE_PHY_PMA_RX_LANE_BASE_ADDR		(PCI_REG_BASE + 0x0a020000)
#define APCIE_PHY_PMA_RX_LANE_STRIDE		(0x800)

/* iBoot Specific Defs */

#define AKF_VERSION			(2)

#define UART0_BASE_ADDR			(ASIO_UART_BASE_ADDR)
#define UART1_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x04000)
#define UART2_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x08000)
#define UART3_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x0C000)
#define UART4_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x10000)
#define UART5_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x14000)
#define UART6_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x18000)
#define UART7_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x1C000)
#define UART8_BASE_ADDR			(ASIO_UART_BASE_ADDR + 0x20000)
#define UARTS_COUNT			(9)
#define UART_VERSION			(1)

#define SPI0_BASE_ADDR			(ASIO_SPI_BASE_ADDR)
#define SPI1_BASE_ADDR			(ASIO_SPI_BASE_ADDR + 0x04000)
#define SPI2_BASE_ADDR			(ASIO_SPI_BASE_ADDR + 0x08000)
#define SPI3_BASE_ADDR			(ASIO_SPI_BASE_ADDR + 0x0C000)
#define SPI_VERSION			(1)
#define SPIS_COUNT			(4)

#define IIC_BASE_ADDR			(ASIO_SMB_0_BASE_ADDR)
#define IIC_SPACING			(0x00001000)
#define IICS_COUNT			(4)

#define USBPHY_VERSION			(4)

#define EDP_BASE_ADDR			(DISP0_DPTX_BASE_ADDR)
#define	DP_BASE_ADDR			(DISP0_DPTX_BASE_ADDR)
#define	LPDP_PHY_BASE_ADDR		(DISP0_DPTX_BASE_ADDR + 0x080000)
#define DISPLAYPORT_VERSION		(5)
#define LPDP_PHY_VERSION		(2)

#define ADBE_DISPLAYPIPE_BASE_ADDR	(DISP0_BASE_ADDR)
#define DISP_VERSION			(5)
#define ADP_VERSION			(2)

#define GPIOC_COUNT			(2)
#define GPIO_VERSION			(5)
#define GPIO_0_GROUP_COUNT		(28)
#define GPIO_1_BASE_ADDR		(AOP_GPIO_BASE_ADDR)
#define GPIO_1_GROUP_COUNT		(4)
#define GPIO_AP				(GPIOC_0)
#define GPIO_AOP			(GPIOC_1)
#define GPIO_GROUP_COUNT		(GPIO_0_GROUP_COUNT)
#define GPIO_PAD_SPI                    (GPIO_GROUP_COUNT)

#define AIC_VERSION			(1)
#define AIC_INT_COUNT			(256)

#define PMGR_WDG_VERSION		(1)

#define USBOTG_BASE_ADDR		(AUSB_OTG_BASE_ADDR)

#define APCIE_NUM_LINKS			(6)

#define DART0_BASE_ADDR			(PCI_REG_BASE + 0x1008000)
#define DART0_ADDR_MASK			(0x3FFFFFFF)
#define DART1_BASE_ADDR			(PCI_REG_BASE + 0x2008000)
#define DART1_ADDR_MASK			(0x3FFFFFFF)
#define DART2_BASE_ADDR			(PCI_REG_BASE + 0x3008000)
#define DART2_ADDR_MASK			(0x3FFFFFFF)
#define DART3_BASE_ADDR			(PCI_REG_BASE + 0x4008000)
#define DART3_ADDR_MASK			(0x3FFFFFFF)
#define DART4_BASE_ADDR			(PCI_REG_BASE + 0x5008000)
#define DART4_ADDR_MASK			(0x3FFFFFFF)
#define DART5_BASE_ADDR			(PCI_REG_BASE + 0x6008000)
#define DART5_ADDR_MASK			(0x3FFFFFFF)

#define PCIE_PORT0_DART_ID		(0)
#define PCIE_PORT1_DART_ID		(1)
#define PCIE_PORT2_DART_ID		(2)
#define PCIE_PORT3_DART_ID		(3)
#define PCIE_PORT4_DART_ID		(4)
#define PCIE_PORT5_DART_ID		(5)
#define NUM_DARTS			(6)

#define AES_AP_BASE_ADDR		(ASIO_AES_BASE_ADDR)
#define AES_AP_VERSION			(0)

#endif

#endif /* ! __PLATFORM_SOC_HWREGBASE_H */
