[U-Boot] [PATCH 12/16] ARM: omap4/5: Add device type to CPU string

Andreas Dannenberg
2016-04-19T16:26:30Z

On Mon, Apr 11, 2016 at 06:37:14PM -0500, Daniel Allred wrote:
> Update the CPU string output so that the device
> type is now included as part of the CPU string that
> is printed as the SPL or u-boot comes up. This update
> adds a suffix of the form "-GP" or "-HS" for production
> devices, so that general purpose (GP) and high security
> (HS) can be distiguished. Applies to all OMAP5 variants.

When I'm building for AM437x HS and running on the device I don't see
that output. It seems like there is something funny going on with
CONFIG_SPL_DISPLAY_PRINT. Even though this definition is activated in
ti_omap4_common.h and ti_omap5_common.h it is not seen by
preloader_console_init() in spl.c, hence the function that prints the
chip-type/rev specifics never gets invoked.

Madan,
can you please confirm that behavior on your end?

Thanks,

--
Andreas Dannenberg
Texas Instruments Inc

>
> Signed-off-by: Daniel Allred <d-allred@ti.com>
> Signed-off-by: Madan Srinivas <madans@ti.com>
> ---
> arch/arm/cpu/armv7/omap-common/hwinit-common.c | 22 ++++++++++++++++++++--
> arch/arm/include/asm/arch-omap4/cpu.h | 7 +++++++
> arch/arm/include/asm/arch-omap5/cpu.h | 7 +++++++
> 3 files changed, 34 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/omap-common/hwinit-common.c b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
> index 01c2d57..078bdd8 100644
> --- a/arch/arm/cpu/armv7/omap-common/hwinit-common.c
> +++ b/arch/arm/cpu/armv7/omap-common/hwinit-common.c
> @@ -65,12 +65,30 @@ static void omap_rev_string(void)
> u32 major_rev = (omap_rev & 0x00000F00) >> 8;
> u32 minor_rev = (omap_rev & 0x000000F0) >> 4;
>
> + const char *sec_s;
> +
> + switch (get_device_type()) {
> + case TST_DEVICE:
> + sec_s = "TST";
> + break;
> + case EMU_DEVICE:
> + sec_s = "EMU";
> + break;
> + case HS_DEVICE:
> + sec_s = "HS";
> + break;
> + case GP_DEVICE:
> + sec_s = "GP";
> + break;
> + default:
> + sec_s = "?";
> + }
> +
> if (soc_variant)
> printf("OMAP");
> else
> printf("DRA");
> - printf("%x ES%x.%x\n", omap_variant, major_rev,
> - minor_rev);
> + printf("%x-%s ES%x.%x\n", omap_variant, sec_s, major_rev, minor_rev);
> }
>
> #ifdef CONFIG_SPL_BUILD
> diff --git a/arch/arm/include/asm/arch-omap4/cpu.h b/arch/arm/include/asm/arch-omap4/cpu.h
> index f7595ae..34609b9 100644
> --- a/arch/arm/include/asm/arch-omap4/cpu.h
> +++ b/arch/arm/include/asm/arch-omap4/cpu.h
> @@ -59,6 +59,13 @@ struct watchdog {
> #define TCLR_AR (0x1 << 1)
> #define TCLR_PRE (0x1 << 5)
>
> +/* device type */
> +#define DEVICE_MASK (BIT(8) | BIT(9) | BIT(10))
> +#define TST_DEVICE 0x0
> +#define EMU_DEVICE 0x1
> +#define HS_DEVICE 0x2
> +#define GP_DEVICE 0x3
> +
> /* I2C base */
> #define I2C_BASE1 (OMAP44XX_L4_PER_BASE + 0x70000)
> #define I2C_BASE2 (OMAP44XX_L4_PER_BASE + 0x72000)
> diff --git a/arch/arm/include/asm/arch-omap5/cpu.h b/arch/arm/include/asm/arch-omap5/cpu.h
> index b1513e9..1d53da6 100644
> --- a/arch/arm/include/asm/arch-omap5/cpu.h
> +++ b/arch/arm/include/asm/arch-omap5/cpu.h
> @@ -63,6 +63,13 @@ struct watchdog {
> #define TCLR_AR (0x1 << 1)
> #define TCLR_PRE (0x1 << 5)
>
> +/* device type */
> +#define DEVICE_MASK (BIT(8) | BIT(9) | BIT(10))
> +#define TST_DEVICE 0x0
> +#define EMU_DEVICE 0x1
> +#define HS_DEVICE 0x2
> +#define GP_DEVICE 0x3
> +
> /* I2C base */
> #define I2C_BASE1 (OMAP54XX_L4_PER_BASE + 0x70000)
> #define I2C_BASE2 (OMAP54XX_L4_PER_BASE + 0x72000)
> --
> 1.9.1
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot