imx: add cpu type for i.MX2 and i.MX3
Subsystems (2)
PATCH v2 1/5 imx: add cpu type for i.MX2 and i.MX3
Add cpu types for i.MX2/3.
---
Changes v2:
Add mx27 cpu type.
arch/arm/include/asm/arch-imx/cpu.h | 6 ++++++ 1 file changed, 6 insertions(+)
arch/arm/include/asm/arch-imx/cpu.h +6 -0
@@ -4,6 +4,12 @@* SPDX-License-Identifier: GPL-2.0+ */ +#define MXC_CPU_MX23 0x23 +#define MXC_CPU_MX25 0x25 +#define MXC_CPU_MX27 0x27 +#define MXC_CPU_MX28 0x28 +#define MXC_CPU_MX31 0x31 +#define MXC_CPU_MX35 0x35#define MXC_CPU_MX51 0x51#define MXC_CPU_MX53 0x53#define MXC_CPU_MX6SL 0x60
Signature · 1 line
1.8.4
PATCH v2 2/5 imx: mx27 implement get_cpu_rev
Implement get_cpu_rev to support runtime check using is_cpu_type.
---
Changes v2:
New patch.
arch/arm/cpu/arm926ejs/mx27/generic.c | 6 ++++++ 1 file changed, 6 insertions(+)
arch/arm/cpu/arm926ejs/mx27/generic.c +6 -0
@@ -12,6 +12,7 @@#include <asm/arch/imx-regs.h> #include <asm/arch/clock.h> #include <asm/arch/gpio.h> +#include <asm/imx-common/sys_proto.h> #ifdef CONFIG_MXC_MMC #include <asm/arch/mxcmmc.h> #endif
@@ -159,6 +160,11 @@ unsigned int mxc_get_clock(enum mxc_clock clk) } +u32 get_cpu_rev (void ) +{ +return MXC_CPU_MX27 <<12 ; +} +#if defined(CONFIG_DISPLAY_CPUINFO )int print_cpuinfo (void ) {
Signature · 1 line
1.8.4
PATCH v2 2/5 imx: mx27 implement get_cpu_rev
Quoted 28 lines · Peng Fan
Implement
get_cpu_revto support runtime check usingis_cpu_type.Signed-off-by Peng Fan <[email protected]>Cc Stefano Babic <[email protected]>Reviewed-by Stefano Babic <[email protected]>---
Changes v2:
New patch.arch/arm/cpu/arm926ejs/mx27/generic.c | 6 ++++++ 1 file changed, 6 insertions(+)arch/arm/cpu/arm926ejs/mx27/generic.c +1
-0@@ -12,6 +12,7 @@#include <asm/arch/imx-regs.h> #include <asm/arch/clock.h> #include <asm/arch/gpio.h> +#include <asm/imx-common/sys_proto.h> #ifdef CONFIG_MXC_MMC #include <asm/arch/mxcmmc.h> #endif @@ -159,6 +160,11 @@ unsigned int mxc_get_clock(enum mxc_clock clk) }
arch/arm/cpu/arm926ejs/mx27/generic.c unsigned int mxc_get_clock(enum mxc_clock clk) · line 170
Quoted 10 lines
arch/arm/cpu/arm926ejs/mx27/generic.c +5
-0+u32 get_cpu_rev (void ) +{ +return MXC_CPU_MX27 <<12 ; +} +#if defined(CONFIG_DISPLAY_CPUINFO )int print_cpuinfo (void ) {
Applied to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== 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: sbabic at denx.de =====================================================================
PATCH v2 3/5 imx: mx31 use new formula for get_cpu_rev
In reply to Peng FanUse new formula for get_cpu_rev, since we need to use this formula to do runtime check for all i.MXes.
---
Changes v2:
none
arch/arm/cpu/arm1136/mx31/generic.c | 2 +- arch/arm/include/asm/arch-mx31/sys_proto.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-)
arch/arm/cpu/arm1136/mx31/generic.c +1 -1
@@ -175,7 +175,7 @@ u32 get_cpu_rev(void)for (i =0 ; i <ARRAY_SIZE (mx31_cpu_type); i++)if (srev == mx31_cpu_type[i].srev) -return mx31_cpu_type[i].v; +return mx31_cpu_type[i].v | (MXC_CPU_MX31 <<12 );return srev |0x8000 ; }
arch/arm/include/asm/arch-mx31/sys_proto.h +2 -0
@@ -8,6 +8,8 @@ #ifndef _SYS_PROTO_H_ #define _SYS_PROTO_H_ +#include "../arch-imx/cpu.h" + struct mxc_weimcs { u32 upper; u32 lower;
Signature · 1 line
1.8.4
PATCH v2 3/5 imx: mx31 use new formula for get_cpu_rev
Quoted 34 lines · Peng Fan
Use new formula for
get_cpu_rev, since we need to use this formula to do runtime check for all i.MXes.Signed-off-by Peng Fan <[email protected]>Cc Stefano Babic <[email protected]>Reviewed-by Stefano Babic <[email protected]>---
Changes v2:
nonearch/arm/cpu/arm1136/mx31/generic.c | 2 +- arch/arm/include/asm/arch-mx31/sys_proto.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-)arch/arm/cpu/arm1136/mx31/generic.c +1
-1@@ -175,7 +175,7 @@ u32 get_cpu_rev(void)for (i =0 ; i <ARRAY_SIZE (mx31_cpu_type); i++)if (srev == mx31_cpu_type[i].srev) -return mx31_cpu_type[i].v; +return mx31_cpu_type[i].v | (MXC_CPU_MX31 <<12 );return srev |0x8000 ; }arch/arm/include/asm/arch-mx31/sys_proto.h +0
-0
arch/arm/include/asm/arch-mx31/sys_proto.h line 15
Quoted 8 lines
arch/arm/include/asm/arch-mx31/sys_proto.h +2
-0@@ -8,6 +8,8 @@ #ifndef _SYS_PROTO_H_ #define _SYS_PROTO_H_ +#include "../arch-imx/cpu.h" + struct mxc_weimcs { u32 upper; u32 lower;
Applied to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== 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: sbabic at denx.de =====================================================================
PATCH v2 4/5 imx: mxs: reimplement get_cpu_rev
In reply to Peng FanRewrite get_cpu_rev, from "static const char *get_cpu_rev(void)" to "u32 get_cpu_rev(void)". To align with get_cpu_rev of other i.MXes.
Also write get_imx_type to replace get_cpu_type, since we have macro named get_cpu_type.
---
Changes v2:
none.
arch/arm/cpu/arm926ejs/mxs/mxs.c | 52 ++++++++++++++----------------- arch/arm/include/asm/arch-mxs/sys_proto.h | 1 + 2 files changed, 25 insertions(+), 28 deletions(-)
arch/arm/cpu/arm926ejs/mxs/mxs.c +24 -28
@@ -132,23 +132,7 @@ int arch_cpu_init(void)return 0 ; } -#if defined(CONFIG_DISPLAY_CPUINFO ) -static const char *get_cpu_type (void ) -{ -struct mxs_digctl_regs *digctl_regs = - (struct mxs_digctl_regs *)MXS_DIGCTL_BASE ; - -switch (readl (&digctl_regs->hw_digctl_chipid) &HW_DIGCTL_CHIPID_MASK ) { -case HW_DIGCTL_CHIPID_MX23 : -return "23" ; -case HW_DIGCTL_CHIPID_MX28 : -return "28" ; -default : -return "??" ; - } -} - -static const char *get_cpu_rev (void ) +u32 get_cpu_rev (void ) {struct mxs_digctl_regs *digctl_regs = (struct mxs_digctl_regs *)MXS_DIGCTL_BASE ;
@@ -158,38 +142,50 @@ static const char *get_cpu_rev(void)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" ; +return (MXC_CPU_MX23 <<12 ) | (rev +0x10 );default : -return "??" ; +return 0 ; }case HW_DIGCTL_CHIPID_MX28 :switch (rev) {case 0x1 : -return "1.2" ; +return (MXC_CPU_MX28 <<12 ) |0x12 ;default : -return "??" ; +return 0 ; }default : +return 0 ; + } +} + +#if defined(CONFIG_DISPLAY_CPUINFO ) +const char *get_imx_type (u32 imxtype) +{ +switch (imxtype) { +case MXC_CPU_MX23 : +return "23" ;/* Quad-Plus version of the mx6 */ +case MXC_CPU_MX28 : +return "28" ;/* Dual-Plus version of the mx6 */ +default :return "??" ; } }int print_cpuinfo (void ) { +u32 cpurev;struct mxs_spl_data *data = (struct mxs_spl_data *) ((CONFIG_SYS_TEXT_BASE -sizeof (struct mxs_spl_data )) & ~0xf ); -printf ("CPU: Freescale i.MX%s rev%s at %d MHz\n" , -get_cpu_type (), -get_cpu_rev (), + cpurev =get_cpu_rev (); +printf ("CPU: Freescale i.MX%s rev%d.%d@%d MHz\n" , +get_imx_type ((cpurev &0xFF000 ) >>12 ), + (cpurev &0x000F0 ) >>4 , + (cpurev &0x0000F ) >>0 ,mxc_get_clock (MXC_ARM_CLK ) /1000000 );printf ("BOOT: %s\n" , mxs_boot_modes[data->boot_mode_idx].mode);return 0 ;
arch/arm/include/asm/arch-mxs/sys_proto.h +1 -0
@@ -11,6 +11,7 @@#define __SYS_PROTO_H__#include <asm/imx-common/regs-common.h> +#include <../arch-imx/cpu.h> int mxs_reset_block (struct mxs_register_32 *reg); int mxs_wait_mask_set(struct mxs_register_32 *reg,
Signature · 1 line
1.8.4
PATCH v2 4/5 imx: mxs: reimplement get_cpu_rev
Quoted 115 lines · Peng Fan
Rewrite
get_cpu_rev, from "static const char*get_cpu_rev(void)" to "u32get_cpu_rev(void)". To align withget_cpu_revof other i.MXes.Also write
get_imx_typeto replaceget_cpu_type, since we have macro namedget_cpu_type.Signed-off-by Peng Fan <[email protected]>Cc Stefano Babic <[email protected]>Reviewed-by Stefano Babic <[email protected]>---
Changes v2:
none.arch/arm/cpu/arm926ejs/mxs/mxs.c | 52 ++++++++++++++----------------- arch/arm/include/asm/arch-mxs/sys_proto.h | 1 + 2 files changed, 25 insertions(+), 28 deletions(-)arch/arm/cpu/arm926ejs/mxs/mxs.c +24
-28@@ -132,23 +132,7 @@ int arch_cpu_init(void)return 0 ; } -#if defined(CONFIG_DISPLAY_CPUINFO ) -static const char *get_cpu_type (void ) -{ -struct mxs_digctl_regs *digctl_regs = - (struct mxs_digctl_regs *)MXS_DIGCTL_BASE ; - -switch (readl (&digctl_regs->hw_digctl_chipid) &HW_DIGCTL_CHIPID_MASK ) { -case HW_DIGCTL_CHIPID_MX23 : -return "23" ; -case HW_DIGCTL_CHIPID_MX28 : -return "28" ; -default : -return "??" ; - } -} - -static const char *get_cpu_rev (void ) +u32 get_cpu_rev (void ) {struct mxs_digctl_regs *digctl_regs = (struct mxs_digctl_regs *)MXS_DIGCTL_BASE ;@@ -158,38 +142,50 @@ static const char *get_cpu_rev(void)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" ; +return (MXC_CPU_MX23 <<12 ) | (rev +0x10 );default : -return "??" ; +return 0 ; }case HW_DIGCTL_CHIPID_MX28 :switch (rev) {case 0x1 : -return "1.2" ; +return (MXC_CPU_MX28 <<12 ) |0x12 ;default : -return "??" ; +return 0 ; }default : +return 0 ; + } +} + +#if defined(CONFIG_DISPLAY_CPUINFO ) +const char *get_imx_type (u32 imxtype) +{ +switch (imxtype) { +case MXC_CPU_MX23 : +return "23" ;/* Quad-Plus version of the mx6 */ +case MXC_CPU_MX28 : +return "28" ;/* Dual-Plus version of the mx6 */ +default :return "??" ; } }int print_cpuinfo (void ) { +u32 cpurev;struct mxs_spl_data *data = (struct mxs_spl_data *) ((CONFIG_SYS_TEXT_BASE -sizeof (struct mxs_spl_data )) & ~0xf ); -printf ("CPU: Freescale i.MX%s rev%s at %d MHz\n" , -get_cpu_type (), -get_cpu_rev (), + cpurev =get_cpu_rev (); +printf ("CPU: Freescale i.MX%s rev%d.%d at %d MHz\n" , +get_imx_type ((cpurev &0xFF000 ) >>12 ), + (cpurev &0x000F0 ) >>4 , + (cpurev &0x0000F ) >>0 ,mxc_get_clock (MXC_ARM_CLK ) /1000000 );printf ("BOOT: %s\n" , mxs_boot_modes[data->boot_mode_idx].mode);return 0 ;arch/arm/include/asm/arch-mxs/sys_proto.h +0
-0
arch/arm/include/asm/arch-mxs/sys_proto.h line 17
Quoted 7 lines
arch/arm/include/asm/arch-mxs/sys_proto.h +1
-0@@ -11,6 +11,7 @@#define __SYS_PROTO_H__#include <asm/imx-common/regs-common.h> +#include <../arch-imx/cpu.h> int mxs_reset_block (struct mxs_register_32 *reg); int mxs_wait_mask_set(struct mxs_register_32 *reg,
Applied to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== 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: sbabic at denx.de =====================================================================
PATCH v2 5/5 imx-common: consolidate macros and prototypes into sys_proto.h
In reply to Peng FanMove most macro definitions and prototypes into "arch/arm/include/asm/imx-common/sys_proto.h" to avoid duplicated function prototypes and marco definitions for different i.MX SoCs.
This patch do not remove the sys_proto.h for different i.MX SoCs, because we need to modify lots of driver code and others. This patch remove duplicated macros and prototypes and incude "sys_proto.h" of imx-common for each sys_proto.h of different i.MX platforms. Then later we should avoid add stuff in sys_proto.h of each platform, and modify driver to include common sys_proto.h.
---
Changes v2:
Fix mx35 build error.
arch/arm/include/asm/arch-mx31/sys_proto.h | 7 ++--- arch/arm/include/asm/arch-mx35/sys_proto.h | 12 ++++---- arch/arm/include/asm/arch-mx5/sys_proto.h | 22 +------------- arch/arm/include/asm/arch-mx6/sys_proto.h | 45 +--------------------------- arch/arm/include/asm/arch-mxs/sys_proto.h | 15 ++-------- arch/arm/include/asm/imx-common/sys_proto.h | 46 +++++++++++++++++++++++++++++ 6 files changed, 60 insertions(+), 87 deletions(-) create mode 100644 arch/arm/include/asm/imx-common/sys_proto.h
arch/arm/include/asm/arch-mx31/sys_proto.h +3 -4
@@ -5,10 +5,10 @@* SPDX-License-Identifier: GPL-2.0+ */ -#ifndef _SYS_PROTO_H_ -#define _SYS_PROTO_H_ +#ifndef _MX31_SYS_PROTO_H_ +#define _MX31_SYS_PROTO_H_ -#include "../arch-imx/cpu.h" +#include <asm/imx-common/sys_proto.h> struct mxc_weimcs { u32 upper;
@@ -18,5 +18,4 @@ struct mxc_weimcs {void mxc_setup_weimcs (int cs,const struct mxc_weimcs *weimcs);int mxc_mmc_init (bd_t *bis); -u32 get_cpu_rev (void );#endif
arch/arm/include/asm/arch-mx35/sys_proto.h +6 -6
@@ -5,12 +5,12 @@* SPDX-License-Identifier: GPL-2.0+ */ -#ifndef _SYS_PROTO_H_ -#define _SYS_PROTO_H_ +#ifndef _MX35_SYS_PROTO_H_ +#define _MX35_SYS_PROTO_H_ -u32 get_cpu_rev (void ); -void mx3_setup_sdram_bank (u32 start_address,u32 ddr2_config, -u32 row,u32 col,u32 dsize,u32 refresh); -#define is_soc_rev (rev) ((get_cpu_rev() & 0xFF) - rev) +#include <asm/imx-common/sys_proto.h> + +void mx3_setup_sdram_bank (u32 start_address,u32 ddr2_config,u32 row, +u32 col,u32 dsize,u32 refresh);#endif
arch/arm/include/asm/arch-mx5/sys_proto.h +1 -21
@@ -5,24 +5,4 @@* SPDX-License-Identifier: GPL-2.0+ */ -#ifndef _SYS_PROTO_H_ -#define _SYS_PROTO_H_ - -#include "../arch-imx/cpu.h" - -#define is_soc_rev (rev) ((get_cpu_rev() & 0xFF) - rev) -u32 get_cpu_rev (void ); -unsigned imx_ddr_size (void ); -void sdelay (unsigned long ); -void set_chipselect_size (int const ); - -/* -* Initializes on-chip ethernet controllers. -* to override, implement board_eth_init() -*/ - -int fecmxc_initialize (bd_t *bis); -u32 get_ahb_clk (void ); -u32 get_periph_clk (void ); - -#endif +#include <asm/imx-common/sys_proto.h>
arch/arm/include/asm/arch-mx6/sys_proto.h +1 -44
48 lines not on this page · raw message
arch/arm/include/asm/arch-mxs/sys_proto.h +3 -12
@@ -7,19 +7,10 @@* SPDX-License-Identifier: GPL-2.0+ */ -#ifndef __SYS_PROTO_H__ -#define __SYS_PROTO_H__ +#ifndef __MXS_SYS_PROTO_H__ +#define __MXS_SYS_PROTO_H__ -#include <asm/imx-common/regs-common.h> -#include <../arch-imx/cpu.h> - -int mxs_reset_block (struct mxs_register_32 *reg); -int mxs_wait_mask_set (struct mxs_register_32 *reg, -uint32_t mask, -unsigned int timeout); -int mxs_wait_mask_clr (struct mxs_register_32 *reg, -uint32_t mask, -unsigned int timeout); +#include <asm/imx-common/sys_proto.h> int mxsmmc_initialize (bd_t *bis,int id,int (*wp)(int ),int (*cd)(int ));
arch/arm/include/asm/imx-common/sys_proto.h new file +46 -0
46 lines not on this page · raw message
Signature · 1 line
1.8.4
PATCH v2 5/5 imx-common: consolidate macros and prototypes into sys_proto.h
Quoted 228 lines · Peng Fan
Move most macro definitions and prototypes into "
arch/arm/include/asm/imx-common/sys_proto.h" to avoid duplicated function prototypes and marco definitions for different i.MX SoCs.This patch do not remove the
sys_proto.hfor different i.MX SoCs, because we need to modify lots of driver code and others. This patch remove duplicated macros and prototypes and incude "sys_proto.h" of imx-common for eachsys_proto.hof different i.MX platforms. Then later we should avoid add stuff insys_proto.hof each platform, and modify driver to include commonsys_proto.h.Signed-off-by Peng Fan <[email protected]>Cc Stefano Babic <[email protected]>Reviewed-by Stefano Babic <[email protected]>---
Changes v2:
Fix mx35 build error.arch/arm/include/asm/arch-mx31/sys_proto.h | 7 ++--- arch/arm/include/asm/arch-mx35/sys_proto.h | 12 ++++---- arch/arm/include/asm/arch-mx5/sys_proto.h | 22 +------------- arch/arm/include/asm/arch-mx6/sys_proto.h | 45 +--------------------------- arch/arm/include/asm/arch-mxs/sys_proto.h | 15 ++-------- arch/arm/include/asm/imx-common/sys_proto.h | 46 +++++++++++++++++++++++++++++ 6 files changed, 60 insertions(+), 87 deletions(-) create mode 100644 arch/arm/include/asm/imx-common/sys_proto.harch/arm/include/asm/arch-mx31/sys_proto.h +3
-4@@ -5,10 +5,10 @@* SPDX-License-Identifier: GPL-2.0+ */ -#ifndef _SYS_PROTO_H_ -#define _SYS_PROTO_H_ +#ifndef _MX31_SYS_PROTO_H_ +#define _MX31_SYS_PROTO_H_ -#include "../arch-imx/cpu.h" +#include <asm/imx-common/sys_proto.h> struct mxc_weimcs { u32 upper;@@ -18,5 +18,4 @@ struct mxc_weimcs {void mxc_setup_weimcs (int cs,const struct mxc_weimcs *weimcs);int mxc_mmc_init (bd_t *bis); -u32 get_cpu_rev (void );#endif arch/arm/include/asm/arch-mx35/sys_proto.h +6
-6@@ -5,12 +5,12 @@* SPDX-License-Identifier: GPL-2.0+ */ -#ifndef _SYS_PROTO_H_ -#define _SYS_PROTO_H_ +#ifndef _MX35_SYS_PROTO_H_ +#define _MX35_SYS_PROTO_H_ -u32 get_cpu_rev (void ); -void mx3_setup_sdram_bank (u32 start_address,u32 ddr2_config, -u32 row,u32 col,u32 dsize,u32 refresh); -#define is_soc_rev (rev) ((get_cpu_rev() & 0xFF) - rev) +#include <asm/imx-common/sys_proto.h> + +void mx3_setup_sdram_bank (u32 start_address,u32 ddr2_config,u32 row, +u32 col,u32 dsize,u32 refresh);#endif arch/arm/include/asm/arch-mx5/sys_proto.h +1
-21@@ -5,24 +5,4 @@* SPDX-License-Identifier: GPL-2.0+ */ -#ifndef _SYS_PROTO_H_ -#define _SYS_PROTO_H_ - -#include "../arch-imx/cpu.h" - -#define is_soc_rev (rev) ((get_cpu_rev() & 0xFF) - rev) -u32 get_cpu_rev (void ); -unsigned imx_ddr_size (void ); -void sdelay (unsigned long ); -void set_chipselect_size (int const ); - -/* -* Initializes on-chip ethernet controllers. -* to override, implement board_eth_init() -*/ - -int fecmxc_initialize (bd_t *bis); -u32 get_ahb_clk (void ); -u32 get_periph_clk (void ); - -#endif +#include <asm/imx-common/sys_proto.h> arch/arm/include/asm/arch-mx6/sys_proto.h +1
-44@@ -5,47 +5,4 @@* SPDX-License-Identifier: GPL-2.0+ */ -#ifndef _SYS_PROTO_H_ -#define _SYS_PROTO_H_ - -#include <asm/imx-common/regs-common.h> -#include "../arch-imx/cpu.h" - -#define soc_rev () (get_cpu_rev() & 0xFF) -#define is_soc_rev (rev) (soc_rev() == rev) - -u32 get_nr_cpus (void ); -u32 get_cpu_rev (void ); -u32 get_cpu_speed_grade_hz (void ); -u32 get_cpu_temp_grade (int *minc,int *maxc); - -/* returns MXC_CPU_ value */ -#define cpu_type (rev) (((rev) >> 12) & 0xff) - -/* both macros return/take MXC_CPU_ constants */ -#define get_cpu_type () (cpu_type(get_cpu_rev())) -#define is_cpu_type (cpu) (get_cpu_type() == cpu) - -const char *get_imx_type (u32 imxtype); -unsigned imx_ddr_size (void ); -void set_chipselect_size (int const ); - -#define is_mx6dqp () (is_cpu_type(MXC_CPU_MX6QP) || is_cpu_type(MXC_CPU_MX6DP)) - -/* -* Initializes on-chip ethernet controllers. -* to override, implement board_eth_init() -*/ - -int fecmxc_initialize (bd_t *bis); -u32 get_ahb_clk (void ); -u32 get_periph_clk (void ); - -int mxs_reset_block (struct mxs_register_32 *reg); -int mxs_wait_mask_set (struct mxs_register_32 *reg, -uint32_t mask, -unsigned int timeout); -int mxs_wait_mask_clr (struct mxs_register_32 *reg, -uint32_t mask, -unsigned int timeout); -#endif +#include <asm/imx-common/sys_proto.h> arch/arm/include/asm/arch-mxs/sys_proto.h +3
-12@@ -7,19 +7,10 @@* SPDX-License-Identifier: GPL-2.0+ */ -#ifndef __SYS_PROTO_H__ -#define __SYS_PROTO_H__ +#ifndef __MXS_SYS_PROTO_H__ +#define __MXS_SYS_PROTO_H__ -#include <asm/imx-common/regs-common.h> -#include <../arch-imx/cpu.h> - -int mxs_reset_block (struct mxs_register_32 *reg); -int mxs_wait_mask_set (struct mxs_register_32 *reg, -uint32_t mask, -unsigned int timeout); -int mxs_wait_mask_clr (struct mxs_register_32 *reg, -uint32_t mask, -unsigned int timeout); +#include <asm/imx-common/sys_proto.h> int mxsmmc_initialize (bd_t *bis,int id,int (*wp)(int ),int (*cd)(int ));arch/arm/include/asm/imx-common/sys_proto.h new file +36
-0@@ -0,0 +1,46 @@ +/* +* (C) Copyright 2009 +* Stefano Babic, DENX Software Engineering, sbabic at denx.de. +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#ifndef _SYS_PROTO_H_ +#define _SYS_PROTO_H_ + +#include <asm/imx-common/regs-common.h> +#include <common.h> +#include "../arch-imx/cpu.h" + +#define soc_rev () (get_cpu_rev() & 0xFF) +#define is_soc_rev (rev) (soc_rev() == rev) + +/* returns MXC_CPU_ value */ +#define cpu_type (rev) (((rev) >> 12) & 0xff) +/* both macros return/take MXC_CPU_ constants */ +#define get_cpu_type () (cpu_type(get_cpu_rev())) +#define is_cpu_type (cpu) (get_cpu_type() == cpu) + +#define is_mx6dqp () (is_cpu_type(MXC_CPU_MX6QP) || is_cpu_type(MXC_CPU_MX6DP)) + +u32 get_nr_cpus (void ); +u32 get_cpu_rev (void ); +u32 get_cpu_speed_grade_hz (void ); +u32 get_cpu_temp_grade (int *minc,int *maxc); +const char *get_imx_type (u32 imxtype); +u32 imx_ddr_size (void ); +void sdelay (unsigned long ); +void set_chipselect_size (int const ); + +/* +* Initializes on-chip ethernet controllers.
arch/arm/include/asm/imx-common/sys_proto.h line 46
Quoted 10 lines
arch/arm/include/asm/imx-common/sys_proto.h new file +10
-0+* to override, implement board_eth_init() +*/ +int fecmxc_initialize (bd_t *bis); +u32 get_ahb_clk (void ); +u32 get_periph_clk (void ); + +int mxs_reset_block (struct mxs_register_32 *reg); +int mxs_wait_mask_set (struct mxs_register_32 *reg,u32 mask,u32 timeout); +int mxs_wait_mask_clr (struct mxs_register_32 *reg,u32 mask,u32 timeout); +#endif
Applied to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== 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: sbabic at denx.de =====================================================================
PATCH v2 1/5 imx: add cpu type for i.MX2 and i.MX3
In reply to Peng FanQuoted 21 lines · Peng Fan
Add cpu types for i.MX2/3.
Signed-off-by Peng Fan <[email protected]>Cc Stefano Babic <[email protected]>Reviewed-by Stefano Babic <[email protected]>---
Changes v2:
Add mx27 cpu type.arch/arm/include/asm/arch-imx/cpu.h | 6 ++++++ 1 file changed, 6 insertions(+)arch/arm/include/asm/arch-imx/cpu.h +0
-0@@ -4,6 +4,12 @@* SPDX-License-Identifier: GPL-2.0+ */
arch/arm/include/asm/arch-imx/cpu.h line 15
Quoted 10 lines
arch/arm/include/asm/arch-imx/cpu.h +6
-0+#define MXC_CPU_MX23 0x23 +#define MXC_CPU_MX25 0x25 +#define MXC_CPU_MX27 0x27 +#define MXC_CPU_MX28 0x28 +#define MXC_CPU_MX31 0x31 +#define MXC_CPU_MX35 0x35#define MXC_CPU_MX51 0x51#define MXC_CPU_MX53 0x53#define MXC_CPU_MX6SL 0x60
Applied to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== 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: sbabic at denx.de =====================================================================