On 20/07/2015 13:28, Peng Fan wrote: > 1. Update imx register base address for i.MX6UL. > 2. Remove duplicated MXS_APBH/GPMI/BCH_BASE. > 3. Remove #ifdef for register addresses that equal to > "AIPS2_OFF_BASE_ADDR + 0x34000" for different chips. > 4. According fuse map, complete fuse_bank4_regs. > 5. Move AIPS3_ARB_BASE_ADDR and AIPS3_ARB_END_ADDR out of #ifdef CONFIG_MX6SX, > because we can use runtime check > > Signed-off-by: Peng Fan <peng....@freescale.com> > --- > > Changes v3: > Taking Marek's suggestion, fix the WDOG3_BASE_ADDRESS for assembler usage. > > Changes v2: > split CONFIG_SYS_CACHELINE_SIZE part into another patch > > arch/arm/include/asm/arch-mx6/imx-regs.h | 60 > +++++++++++++++++++------------- > 1 file changed, 35 insertions(+), 25 deletions(-) > > diff --git a/arch/arm/include/asm/arch-mx6/imx-regs.h > b/arch/arm/include/asm/arch-mx6/imx-regs.h > index 35a324c..d8b5d6f 100644 > --- a/arch/arm/include/asm/arch-mx6/imx-regs.h > +++ b/arch/arm/include/asm/arch-mx6/imx-regs.h > @@ -19,7 +19,7 @@ > #define GPU_2D_ARB_END_ADDR 0x02203FFF > #define OPENVG_ARB_BASE_ADDR 0x02204000 > #define OPENVG_ARB_END_ADDR 0x02207FFF > -#elif CONFIG_MX6SX > +#elif (defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL)) > #define CAAM_ARB_BASE_ADDR 0x00100000 > #define CAAM_ARB_END_ADDR 0x00107FFF > #define GPU_ARB_BASE_ADDR 0x01800000 > @@ -28,10 +28,6 @@ > #define APBH_DMA_ARB_END_ADDR 0x0180BFFF > #define M4_BOOTROM_BASE_ADDR 0x007F8000 > > -#define MXS_APBH_BASE APBH_DMA_ARB_BASE_ADDR > -#define MXS_GPMI_BASE (APBH_DMA_ARB_BASE_ADDR + > 0x02000) > -#define MXS_BCH_BASE (APBH_DMA_ARB_BASE_ADDR + 0x04000) > - > #else > #define CAAM_ARB_BASE_ADDR 0x00100000 > #define CAAM_ARB_END_ADDR 0x00103FFF > @@ -52,13 +48,13 @@ > #define MXS_BCH_BASE (APBH_DMA_ARB_BASE_ADDR + 0x04000) > > /* GPV - PL301 configuration ports */ > -#if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX)) > +#if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL)) > #define GPV2_BASE_ADDR 0x00D00000 > #else > #define GPV2_BASE_ADDR 0x00200000 > #endif > > -#ifdef CONFIG_MX6SX > +#if (defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL)) > #define GPV3_BASE_ADDR 0x00E00000 > #define GPV4_BASE_ADDR 0x00F00000 > #define GPV5_BASE_ADDR 0x01000000 > @@ -87,15 +83,21 @@ > #define AIPS1_ARB_END_ADDR 0x020FFFFF > #define AIPS2_ARB_BASE_ADDR 0x02100000 > #define AIPS2_ARB_END_ADDR 0x021FFFFF > -#ifdef CONFIG_MX6SX > +/* AIPS3 only on i.MX6SX */ > #define AIPS3_ARB_BASE_ADDR 0x02200000 > #define AIPS3_ARB_END_ADDR 0x022FFFFF > +#ifdef CONFIG_MX6SX > #define WEIM_ARB_BASE_ADDR 0x50000000 > #define WEIM_ARB_END_ADDR 0x57FFFFFF > #define QSPI0_AMBA_BASE 0x60000000 > #define QSPI0_AMBA_END 0x6FFFFFFF > #define QSPI1_AMBA_BASE 0x70000000 > #define QSPI1_AMBA_END 0x7FFFFFFF > +#elif defined(CONFIG_MX6UL) > +#define WEIM_ARB_BASE_ADDR 0x50000000 > +#define WEIM_ARB_END_ADDR 0x57FFFFFF > +#define QSPI0_AMBA_BASE 0x60000000 > +#define QSPI0_AMBA_END 0x6FFFFFFF > #else > #define SATA_ARB_BASE_ADDR 0x02200000 > #define SATA_ARB_END_ADDR 0x02203FFF > @@ -111,7 +113,7 @@ > #define WEIM_ARB_END_ADDR 0x0FFFFFFF > #endif > > -#if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX)) > +#if (defined(CONFIG_MX6SL) || defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL)) > #define MMDC0_ARB_BASE_ADDR 0x80000000 > #define MMDC0_ARB_END_ADDR 0xFFFFFFFF > #define MMDC1_ARB_BASE_ADDR 0xC0000000 > @@ -238,13 +240,16 @@ > #define I2C3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x28000) > #define ROMCP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x2C000) > #define MMDC_P0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x30000) > -#ifdef CONFIG_MX6SL > +/* i.MX6SL */ > #define RNGB_IPS_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000) > -#elif CONFIG_MX6SX > -#define ENET2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000) > +#ifdef CONFIG_MX6UL > +#define ENET2_BASE_ADDR (AIPS1_OFF_BASE_ADDR + 0x34000) > #else > -#define MMDC_P1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000) > +/* i.MX6SX */ > +#define ENET2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000) > #endif > +/* i.MX6DQ/SDL */ > +#define MMDC_P1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x34000) > > #define WEIM_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x38000) > #define OCOTP_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x3C000) > @@ -257,22 +262,21 @@ > #define IP2APB_PERFMON3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x4C000) > #endif > #define IP2APB_TZASC1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x50000) > -#ifdef CONFIG_MX6SX > +#ifdef CONFIG_MX6UL > +#define QSPI0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x60000) > +#elif defined(CONFIG_MX6SX) > #define SAI1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x54000) > -#else > -#define IP2APB_TZASC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x54000) > -#endif > #define AUDMUX_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x58000) > -#define AUDMUX_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x58000) > -#ifdef CONFIG_MX6SX > #define SAI2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x5C000) > #define QSPI0_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x60000) > #define QSPI1_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x64000) > #else > +#define IP2APB_TZASC2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x54000) > #define MIPI_CSI2_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x5C000) > #define MIPI_DSI_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x60000) > #define VDOA_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x64000) > #endif > +#define MX6UL_WDOG3_BASE_ADDR (AIPS2_OFF_BASE_ADDR + 0x64000) > #define UART2_BASE (AIPS2_OFF_BASE_ADDR + 0x68000) > #define UART3_BASE (AIPS2_OFF_BASE_ADDR + 0x6C000) > #define UART4_BASE (AIPS2_OFF_BASE_ADDR + 0x70000) > @@ -296,7 +300,6 @@ > #define AIPS3_CONFIG_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x7C000) > #define ADC1_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x80000) > #define ADC2_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x84000) > -#define WDOG3_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x88000) > #define ECSPI5_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x8C000) > #define HS_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x90000) > #define MU_MCU_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x94000) > @@ -308,12 +311,17 @@ > #define PWM7_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0xAC000) > #define PWM8_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0xB0000) > #endif > +#define MX6SX_WDOG3_BASE_ADDR (AIPS3_ARB_BASE_ADDR + 0x88000) > + > +/* only for i.MX6SX/UL */ > +#define WDOG3_BASE_ADDR (is_cpu_type(MXC_CPU_MX6UL) ? \ > + MX6UL_WDOG3_BASE_ADDR : MX6SX_WDOG3_BASE_ADDR) > > #define CHIP_REV_1_0 0x10 > #define CHIP_REV_1_2 0x12 > #define CHIP_REV_1_5 0x15 > #define CHIP_REV_2_0 0x20 > -#ifndef CONFIG_MX6SX > +#if !(defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL)) > #define IRAM_SIZE 0x00040000 > #else > #define IRAM_SIZE 0x00020000 > @@ -451,7 +459,7 @@ struct src { > > > struct iomuxc { > -#ifdef CONFIG_MX6SX > +#if (defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL)) > u8 reserved[0x4000]; > #endif > u32 gpr[14]; > @@ -577,7 +585,7 @@ struct cspi_regs { > #define MXC_CSPICON_POL 4 /* SCLK polarity */ > #define MXC_CSPICON_SSPOL 12 /* SS polarity */ > #define MXC_CSPICON_CTL 20 /* inactive state of SCLK */ > -#if defined(CONFIG_MX6SL) || defined(CONFIG_MX6DL) > +#if defined(CONFIG_MX6SL) || defined(CONFIG_MX6DL) || defined(CONFIG_MX6UL) > #define MXC_SPI_BASE_ADDRESSES \ > ECSPI1_BASE_ADDR, \ > ECSPI2_BASE_ADDR, \ > @@ -661,7 +669,7 @@ struct fuse_bank1_regs { > u32 rsvd7[3]; > }; > > -#ifdef CONFIG_MX6SX > +#if (defined(CONFIG_MX6SX) || defined(CONFIG_MX6UL)) > struct fuse_bank4_regs { > u32 sjc_resp_low; > u32 rsvd0[3]; > @@ -674,7 +682,9 @@ struct fuse_bank4_regs { > u32 mac_addr2; > u32 rsvd4[7]; > u32 gp1; > - u32 rsvd5[7]; > + u32 rsvd5[3]; > + u32 gp2; > + u32 rsvd6[3]; > }; > #else > struct fuse_bank4_regs { > Applied to u-boot-imx, thanks !
Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de ===================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot