imx: Use a clear identification of an unidentified CPU type
Subsystems (2)
PATCH v2 1/2 imx: Use a clear identification of an unidentified CPU type
In case an unidentified CPU type is detected it now returns i.MX??, in a const char.
---
Changes for v2:
* use i.MX?? for unidentified CPU type
arch/arm/cpu/armv7/imx-common/cpu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/cpu/armv7/imx-common/cpu.c +2 -2
@@ -66,7 +66,7 @@ char *get_reset_cause(void)#if defined(CONFIG_DISPLAY_CPUINFO ) -static char *get_imx_type (u32 imxtype) +static const char *get_imx_type (u32 imxtype) {switch (imxtype) {case 0x63 :
@@ -80,7 +80,7 @@ static char *get_imx_type(u32 imxtype)case 0x53 :return "53" ;default : -return "unknown" ; +return "??" ; } }
Signature · 1 line
1.7.10
PATCH v3 2/2 mxs: generalize code for print_cpuinfo()
The information now is gathered from HW_DIGCTL_CHIPID register and includes the revision of the chip on the output.
---
Changes for v3:
* fix info order (first rev, then clock)
Changes for v2:
* use ?? for unidentified revision and cpu type
* use numeric revisions
arch/arm/cpu/arm926ejs/mx28/mx28.c | 55 +++++++++++++++++++++++++- arch/arm/include/asm/arch-mx28/regs-digctl.h | 5 +++ 2 files changed, 58 insertions(+), 2 deletions(-)
arch/arm/cpu/arm926ejs/mx28/mx28.c +53 -2
@@ -190,13 +190,64 @@ int arch_cpu_init(void)#endif #if defined(CONFIG_DISPLAY_CPUINFO ) +static const char *get_cpu_type (void ) +{ +struct mx28_digctl_regs *digctl_regs = + (struct mx28_digctl_regs *)MXS_DIGCTL_BASE ; + +switch (readl (&digctl_regs->hw_digctl_chipid) &HW_DIGCTL_CHIPID_MASK ) { +case HW_DIGCTL_CHIPID_MX28 : +return "28" ; +case HW_DIGCTL_CHIPID_MX23 : +return "23" ; +default : +return "??" ; + } +} + +static const char *get_cpu_rev (void ) +{ +struct mx28_digctl_regs *digctl_regs = + (struct mx28_digctl_regs *)MXS_DIGCTL_BASE ; +uint8_t rev =readl (&digctl_regs->hw_digctl_chipid) &0x000000FF ; + +switch (readl (&digctl_regs->hw_digctl_chipid) &HW_DIGCTL_CHIPID_MASK ) { +case HW_DIGCTL_CHIPID_MX28 : +switch (rev) { +case 0x1 : +return "1.2" ; +default : +return "??" ; + } +case HW_DIGCTL_CHIPID_MX23 : +switch (rev) { +case 0x0 : +return "1.0" ; +case 0x1 : +return "1.1" ; +case 0x2 : +return "1.2" ; +case 0x3 : +return "1.3" ; +case 0x4 : +return "1.4" ; +default : +return "??" ; + } +default : +return "??" ; + } +} +int print_cpuinfo (void ) {struct mx28_spl_data *data = (struct mx28_spl_data *) ((CONFIG_SYS_TEXT_BASE -sizeof (struct mx28_spl_data )) & ~0xf ); -printf ("Freescale i.MX28 family at %d MHz\n" , -mxc_get_clock (MXC_ARM_CLK ) /1000000 ); +printf ("CPU: Freescale i.MX%s rev%s at %d MHz\n" , +get_cpu_type (), +get_cpu_rev (), +mxc_get_clock (MXC_ARM_CLK ) /1000000 );printf ("BOOT: %s\n" , mx28_boot_modes[data->boot_mode_idx].mode);return 0 ; }
arch/arm/include/asm/arch-mx28/regs-digctl.h +5 -0
@@ -152,4 +152,9 @@ struct mx28_digctl_regs { };#endif +/* Product code identification */ +#define HW_DIGCTL_CHIPID_MASK (0xffff << 16) +#define HW_DIGCTL_CHIPID_MX23 (0x3780 << 16) +#define HW_DIGCTL_CHIPID_MX28 (0x2800 << 16) +#endif /* __MX28_REGS_DIGCTL_H__ */
Signature · 1 line
1.7.10
PATCH v3 2/2 mxs: generalize code for print_cpuinfo()
Quoted 9 lines · Otavio Salvador
The information now is gathered from
HW_DIGCTL_CHIPIDregister and includes the revision of the chip on the output.Signed-off-by Otavio Salvador <[email protected]>Cc Marek Vasut <[email protected]>Cc Stefano Babic <[email protected]>Cc Fabio Estevam <[email protected]>---
Hi Otavio,
could you take a look and rebase it ? It does not apply anymore - thanks.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH v3 2/2 mxs: generalize code for print_cpuinfo()
Quoted 5 lines · Stefano Babic
Quoted 2 lines · Otavio Salvador
The information now is gathered from
HW_DIGCTL_CHIPIDregister and includes the revision of the chip on the output.could you take a look and rebase it ? It does not apply anymore - thanks.
Sure; I splitted it to apply i.MX28 part for now and leave i.MX233 info for the another patchset. Will send it.
Signature · 3 lines
Otavio Salvador O.S. Systems E-mail: otavio at ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
PATCH v2 1/2 imx: Use a clear identification of an unidentified CPU type
In reply to Otavio SalvadorQuoted 9 lines · Otavio Salvador
In case an unidentified CPU type is detected it now returns i.MX??, in a const char.
Signed-off-by Otavio Salvador <[email protected]>Cc Marek Vasut <[email protected]>Cc Stefano Babic <[email protected]>Cc Fabio Estevam <[email protected]>---
Applied to u-boot-imx, next branch, thanks.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================