[U-Boot] [PATCH 01/14] ARM: AM43xx: Update the base addresses of modules
Vaibhav Bedia
vaibhav.bedia at gmail.com
Wed Nov 6 13:28:40 CET 2013
HI Lokesh :)
On Mon, Nov 4, 2013 at 11:20 PM, Lokesh Vutla <lokeshvutla at ti.com> wrote:
> PRCM, timer base addresses and offsets are different from
> AM33xx. Updating the same.
>
> Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
> ---
> arch/arm/include/asm/arch-am33xx/cpu.h | 17 +++++++++++------
> arch/arm/include/asm/arch-am33xx/hardware.h | 8 --------
> arch/arm/include/asm/arch-am33xx/hardware_am33xx.h | 3 +++
> arch/arm/include/asm/arch-am33xx/hardware_am43xx.h | 3 +++
> arch/arm/include/asm/arch-am33xx/hardware_ti814x.h | 3 +++
> arch/arm/include/asm/arch-am33xx/hardware_ti816x.h | 3 +++
> 6 files changed, 23 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm/include/asm/arch-am33xx/cpu.h b/arch/arm/include/asm/arch-am33xx/cpu.h
> index 52fa128..f463b27 100644
> --- a/arch/arm/include/asm/arch-am33xx/cpu.h
> +++ b/arch/arm/include/asm/arch-am33xx/cpu.h
> @@ -237,6 +237,14 @@ struct cm_perpll {
> unsigned int cpswclkstctrl; /* offset 0x144 */
> unsigned int lcdcclkstctrl; /* offset 0x148 */
> };
> +
> +/* Encapsulating Display pll registers */
> +struct cm_dpll {
> + unsigned int resv1[2];
> + unsigned int clktimer2clk; /* offset 0x08 */
> + unsigned int resv2[10];
> + unsigned int clklcdcpixelclk; /* offset 0x34 */
> +};
> #else
> /* Encapsulating core pll registers */
> struct cm_wkuppll {
> @@ -392,15 +400,12 @@ struct cm_perpll {
> unsigned int resv40[7];
> unsigned int cpgmac0clkctrl; /* offset 0xB20 */
> };
> -#endif /* CONFIG_AM43XX */
>
> -/* Encapsulating Display pll registers */
> struct cm_dpll {
> - unsigned int resv1[2];
> - unsigned int clktimer2clk; /* offset 0x08 */
> - unsigned int resv2[10];
> - unsigned int clklcdcpixelclk; /* offset 0x34 */
> + unsigned int resv1;
> + unsigned int clktimer2clk; /* offset 0x04 */
> };
> +#endif /* CONFIG_AM43XX */
>
> /* Control Module RTC registers */
> struct cm_rtc {
> diff --git a/arch/arm/include/asm/arch-am33xx/hardware.h b/arch/arm/include/asm/arch-am33xx/hardware.h
> index ee5fce0..b6db731 100644
> --- a/arch/arm/include/asm/arch-am33xx/hardware.h
> +++ b/arch/arm/include/asm/arch-am33xx/hardware.h
> @@ -38,7 +38,6 @@
> #define DM_TIMER7_BASE 0x4804A000
>
> /* GPIO Base address */
> -#define GPIO0_BASE 0x48032000
Going by the patch description this looks an unrelated change.
Moreover, this base address looks wrong! GPIO0 is in wkup
domain for both AM335x and AM437x. I wonder how the
VTT control is working on AM335x. IIRC that was using a pin
from GPIO0.
> #define GPIO1_BASE 0x4804C000
>
> /* BCH Error Location Module */
> @@ -48,13 +47,6 @@
> #define EMIF4_0_CFG_BASE 0x4C000000
> #define EMIF4_1_CFG_BASE 0x4D000000
>
> -/* PLL related registers */
> -#define CM_DPLL 0x44E00500
> -#define CM_DEVICE 0x44E00700
> -#define CM_RTC 0x44E00800
> -#define CM_CEFUSE 0x44E00A00
> -#define PRM_DEVICE 0x44E00F00
> -
> /* DDR Base address */
> #define DDR_CTRL_ADDR 0x44E10E04
> #define DDR_CONTROL_BASE_ADDR 0x44E11404
> diff --git a/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h b/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h
> index e4231c8..ad9d7dd 100644
> --- a/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h
> +++ b/arch/arm/include/asm/arch-am33xx/hardware_am33xx.h
> @@ -17,6 +17,7 @@
> #define UART0_BASE 0x44E09000
>
> /* GPIO Base address */
> +#define GPIO0_BASE 0x48032000
> #define GPIO2_BASE 0x481AC000
>
> /* Watchdog Timer */
> @@ -30,6 +31,8 @@
> #define PRCM_BASE 0x44E00000
> #define CM_PER 0x44E00000
> #define CM_WKUP 0x44E00400
> +#define CM_DPLL 0x44E00500
> +#define CM_RTC 0x44E00800
>
> #define PRM_RSTCTRL (PRCM_BASE + 0x0F00)
> #define PRM_RSTST (PRM_RSTCTRL + 8)
> diff --git a/arch/arm/include/asm/arch-am33xx/hardware_am43xx.h b/arch/arm/include/asm/arch-am33xx/hardware_am43xx.h
> index 3b665e6..4dbc789 100644
> --- a/arch/arm/include/asm/arch-am33xx/hardware_am43xx.h
> +++ b/arch/arm/include/asm/arch-am33xx/hardware_am43xx.h
> @@ -17,6 +17,7 @@
> #define UART0_BASE 0x44E09000
>
> /* GPIO Base address */
> +#define GPIO0_BASE 0x44E07000
Looks like this address is same for AM335x (what the code has
right now is incorrect) and AM437x. So you can move it back to
hardware.h if that's the general convention.
> #define GPIO2_BASE 0x481AC000
>
> /* Watchdog Timer */
> @@ -30,6 +31,8 @@
> #define PRCM_BASE 0x44DF0000
> #define CM_WKUP 0x44DF2800
> #define CM_PER 0x44DF8800
> +#define CM_DPLL 0x44DF4200
> +#define CM_RTC 0x44df8500
>
> #define PRM_RSTCTRL (PRCM_BASE + 0x4000)
> #define PRM_RSTST (PRM_RSTCTRL + 4)
> diff --git a/arch/arm/include/asm/arch-am33xx/hardware_ti814x.h b/arch/arm/include/asm/arch-am33xx/hardware_ti814x.h
> index 4509a23..2322bc4 100644
> --- a/arch/arm/include/asm/arch-am33xx/hardware_ti814x.h
> +++ b/arch/arm/include/asm/arch-am33xx/hardware_ti814x.h
> @@ -16,6 +16,7 @@
> /* UART Base Address */
> #define UART0_BASE 0x48020000
>
> +#define GPIO0_BASE 0x48032000
So that's where the current address came from. Still incorrect
for AMxx.
Regards,
Vaibhav
More information about the U-Boot
mailing list