* [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3
@ 2015-08-13 2:55 Peng Fan
2015-08-13 2:55 ` [U-Boot] [PATCH V2 2/5] imx: mx27 implement get_cpu_rev Peng Fan
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Peng Fan @ 2015-08-13 2:55 UTC (permalink / raw)
To: u-boot
Add cpu types for i.MX2/3.
Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
Reviewed-by: Stefano Babic <sbabic@denx.de>
---
Changes v2:
Add mx27 cpu type.
arch/arm/include/asm/arch-imx/cpu.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm/include/asm/arch-imx/cpu.h b/arch/arm/include/asm/arch-imx/cpu.h
index c7f9fff..be13b96 100644
--- a/arch/arm/include/asm/arch-imx/cpu.h
+++ b/arch/arm/include/asm/arch-imx/cpu.h
@@ -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
--
1.8.4
^ permalink raw reply related [flat|nested] 10+ messages in thread* [U-Boot] [PATCH V2 2/5] imx: mx27 implement get_cpu_rev 2015-08-13 2:55 [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 Peng Fan @ 2015-08-13 2:55 ` Peng Fan 2015-08-23 15:23 ` Stefano Babic 2015-08-13 2:55 ` [U-Boot] [PATCH V2 3/5] imx: mx31 use new formula for get_cpu_rev Peng Fan ` (3 subsequent siblings) 4 siblings, 1 reply; 10+ messages in thread From: Peng Fan @ 2015-08-13 2:55 UTC (permalink / raw) To: u-boot Implement get_cpu_rev to support runtime check using is_cpu_type. Signed-off-by: Peng Fan <Peng.Fan@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Reviewed-by: Stefano Babic <sbabic@denx.de> --- Changes v2: New patch. arch/arm/cpu/arm926ejs/mx27/generic.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm/cpu/arm926ejs/mx27/generic.c b/arch/arm/cpu/arm926ejs/mx27/generic.c index 5ee9f07..b713c84 100644 --- a/arch/arm/cpu/arm926ejs/mx27/generic.c +++ b/arch/arm/cpu/arm926ejs/mx27/generic.c @@ -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) { -- 1.8.4 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH V2 2/5] imx: mx27 implement get_cpu_rev 2015-08-13 2:55 ` [U-Boot] [PATCH V2 2/5] imx: mx27 implement get_cpu_rev Peng Fan @ 2015-08-23 15:23 ` Stefano Babic 0 siblings, 0 replies; 10+ messages in thread From: Stefano Babic @ 2015-08-23 15:23 UTC (permalink / raw) To: u-boot On 13/08/2015 04:55, Peng Fan wrote: > Implement get_cpu_rev to support runtime check using is_cpu_type. > > Signed-off-by: Peng Fan <Peng.Fan@freescale.com> > Cc: Stefano Babic <sbabic@denx.de> > Reviewed-by: Stefano Babic <sbabic@denx.de> > --- > > Changes v2: > New patch. > > arch/arm/cpu/arm926ejs/mx27/generic.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/arm/cpu/arm926ejs/mx27/generic.c b/arch/arm/cpu/arm926ejs/mx27/generic.c > index 5ee9f07..b713c84 100644 > --- a/arch/arm/cpu/arm926ejs/mx27/generic.c > +++ b/arch/arm/cpu/arm926ejs/mx27/generic.c > @@ -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) > { > 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: sbabic at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH V2 3/5] imx: mx31 use new formula for get_cpu_rev 2015-08-13 2:55 [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 Peng Fan 2015-08-13 2:55 ` [U-Boot] [PATCH V2 2/5] imx: mx27 implement get_cpu_rev Peng Fan @ 2015-08-13 2:55 ` Peng Fan 2015-08-23 15:23 ` Stefano Babic 2015-08-13 2:55 ` [U-Boot] [PATCH V2 4/5] imx: mxs: reimplement get_cpu_rev Peng Fan ` (2 subsequent siblings) 4 siblings, 1 reply; 10+ messages in thread From: Peng Fan @ 2015-08-13 2:55 UTC (permalink / raw) To: u-boot 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 <Peng.Fan@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Reviewed-by: Stefano Babic <sbabic@denx.de> --- 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(-) diff --git a/arch/arm/cpu/arm1136/mx31/generic.c b/arch/arm/cpu/arm1136/mx31/generic.c index 060d46b..fe96670 100644 --- a/arch/arm/cpu/arm1136/mx31/generic.c +++ b/arch/arm/cpu/arm1136/mx31/generic.c @@ -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; } diff --git a/arch/arm/include/asm/arch-mx31/sys_proto.h b/arch/arm/include/asm/arch-mx31/sys_proto.h index b0dfcba..1626442 100644 --- a/arch/arm/include/asm/arch-mx31/sys_proto.h +++ b/arch/arm/include/asm/arch-mx31/sys_proto.h @@ -8,6 +8,8 @@ #ifndef _SYS_PROTO_H_ #define _SYS_PROTO_H_ +#include "../arch-imx/cpu.h" + struct mxc_weimcs { u32 upper; u32 lower; -- 1.8.4 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH V2 3/5] imx: mx31 use new formula for get_cpu_rev 2015-08-13 2:55 ` [U-Boot] [PATCH V2 3/5] imx: mx31 use new formula for get_cpu_rev Peng Fan @ 2015-08-23 15:23 ` Stefano Babic 0 siblings, 0 replies; 10+ messages in thread From: Stefano Babic @ 2015-08-23 15:23 UTC (permalink / raw) To: u-boot On 13/08/2015 04:55, Peng Fan wrote: > 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 <Peng.Fan@freescale.com> > Cc: Stefano Babic <sbabic@denx.de> > Reviewed-by: Stefano Babic <sbabic@denx.de> > --- > > 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(-) > > diff --git a/arch/arm/cpu/arm1136/mx31/generic.c b/arch/arm/cpu/arm1136/mx31/generic.c > index 060d46b..fe96670 100644 > --- a/arch/arm/cpu/arm1136/mx31/generic.c > +++ b/arch/arm/cpu/arm1136/mx31/generic.c > @@ -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; > } > diff --git a/arch/arm/include/asm/arch-mx31/sys_proto.h b/arch/arm/include/asm/arch-mx31/sys_proto.h > index b0dfcba..1626442 100644 > --- a/arch/arm/include/asm/arch-mx31/sys_proto.h > +++ b/arch/arm/include/asm/arch-mx31/sys_proto.h > @@ -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 -- ===================================================================== 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 ===================================================================== ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH V2 4/5] imx: mxs: reimplement get_cpu_rev 2015-08-13 2:55 [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 Peng Fan 2015-08-13 2:55 ` [U-Boot] [PATCH V2 2/5] imx: mx27 implement get_cpu_rev Peng Fan 2015-08-13 2:55 ` [U-Boot] [PATCH V2 3/5] imx: mx31 use new formula for get_cpu_rev Peng Fan @ 2015-08-13 2:55 ` Peng Fan 2015-08-23 15:23 ` Stefano Babic 2015-08-13 2:55 ` [U-Boot] [PATCH V2 5/5] imx-common: consolidate macros and prototypes into sys_proto.h Peng Fan 2015-08-23 15:23 ` [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 Stefano Babic 4 siblings, 1 reply; 10+ messages in thread From: Peng Fan @ 2015-08-13 2:55 UTC (permalink / raw) To: u-boot Rewrite 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. Signed-off-by: Peng Fan <Peng.Fan@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Reviewed-by: Stefano Babic <sbabic@denx.de> --- 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(-) diff --git a/arch/arm/cpu/arm926ejs/mxs/mxs.c b/arch/arm/cpu/arm926ejs/mxs/mxs.c index ef130ae..30dbf5e 100644 --- a/arch/arm/cpu/arm926ejs/mxs/mxs.c +++ b/arch/arm/cpu/arm926ejs/mxs/mxs.c @@ -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; diff --git a/arch/arm/include/asm/arch-mxs/sys_proto.h b/arch/arm/include/asm/arch-mxs/sys_proto.h index 4678723..d6e9fdb 100644 --- a/arch/arm/include/asm/arch-mxs/sys_proto.h +++ b/arch/arm/include/asm/arch-mxs/sys_proto.h @@ -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, -- 1.8.4 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH V2 4/5] imx: mxs: reimplement get_cpu_rev 2015-08-13 2:55 ` [U-Boot] [PATCH V2 4/5] imx: mxs: reimplement get_cpu_rev Peng Fan @ 2015-08-23 15:23 ` Stefano Babic 0 siblings, 0 replies; 10+ messages in thread From: Stefano Babic @ 2015-08-23 15:23 UTC (permalink / raw) To: u-boot On 13/08/2015 04:55, Peng Fan wrote: > Rewrite 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. > > Signed-off-by: Peng Fan <Peng.Fan@freescale.com> > Cc: Stefano Babic <sbabic@denx.de> > Reviewed-by: Stefano Babic <sbabic@denx.de> > --- > > 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(-) > > diff --git a/arch/arm/cpu/arm926ejs/mxs/mxs.c b/arch/arm/cpu/arm926ejs/mxs/mxs.c > index ef130ae..30dbf5e 100644 > --- a/arch/arm/cpu/arm926ejs/mxs/mxs.c > +++ b/arch/arm/cpu/arm926ejs/mxs/mxs.c > @@ -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; > diff --git a/arch/arm/include/asm/arch-mxs/sys_proto.h b/arch/arm/include/asm/arch-mxs/sys_proto.h > index 4678723..d6e9fdb 100644 > --- a/arch/arm/include/asm/arch-mxs/sys_proto.h > +++ b/arch/arm/include/asm/arch-mxs/sys_proto.h > @@ -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 -- ===================================================================== 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 ===================================================================== ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH V2 5/5] imx-common: consolidate macros and prototypes into sys_proto.h 2015-08-13 2:55 [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 Peng Fan ` (2 preceding siblings ...) 2015-08-13 2:55 ` [U-Boot] [PATCH V2 4/5] imx: mxs: reimplement get_cpu_rev Peng Fan @ 2015-08-13 2:55 ` Peng Fan 2015-08-23 15:24 ` Stefano Babic 2015-08-23 15:23 ` [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 Stefano Babic 4 siblings, 1 reply; 10+ messages in thread From: Peng Fan @ 2015-08-13 2:55 UTC (permalink / raw) To: u-boot 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.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. Signed-off-by: Peng Fan <Peng.Fan@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Reviewed-by: Stefano Babic <sbabic@denx.de> --- 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 diff --git a/arch/arm/include/asm/arch-mx31/sys_proto.h b/arch/arm/include/asm/arch-mx31/sys_proto.h index 1626442..674b25c 100644 --- a/arch/arm/include/asm/arch-mx31/sys_proto.h +++ b/arch/arm/include/asm/arch-mx31/sys_proto.h @@ -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 diff --git a/arch/arm/include/asm/arch-mx35/sys_proto.h b/arch/arm/include/asm/arch-mx35/sys_proto.h index 35c0352..0979fda 100644 --- a/arch/arm/include/asm/arch-mx35/sys_proto.h +++ b/arch/arm/include/asm/arch-mx35/sys_proto.h @@ -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 diff --git a/arch/arm/include/asm/arch-mx5/sys_proto.h b/arch/arm/include/asm/arch-mx5/sys_proto.h index b06c77f..16c9b76 100644 --- a/arch/arm/include/asm/arch-mx5/sys_proto.h +++ b/arch/arm/include/asm/arch-mx5/sys_proto.h @@ -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> diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h index eee8ca8..16c9b76 100644 --- a/arch/arm/include/asm/arch-mx6/sys_proto.h +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h @@ -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> diff --git a/arch/arm/include/asm/arch-mxs/sys_proto.h b/arch/arm/include/asm/arch-mxs/sys_proto.h index d6e9fdb..20ff101 100644 --- a/arch/arm/include/asm/arch-mxs/sys_proto.h +++ b/arch/arm/include/asm/arch-mxs/sys_proto.h @@ -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)); diff --git a/arch/arm/include/asm/imx-common/sys_proto.h b/arch/arm/include/asm/imx-common/sys_proto.h new file mode 100644 index 0000000..6954ee9 --- /dev/null +++ b/arch/arm/include/asm/imx-common/sys_proto.h @@ -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. + * 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 -- 1.8.4 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH V2 5/5] imx-common: consolidate macros and prototypes into sys_proto.h 2015-08-13 2:55 ` [U-Boot] [PATCH V2 5/5] imx-common: consolidate macros and prototypes into sys_proto.h Peng Fan @ 2015-08-23 15:24 ` Stefano Babic 0 siblings, 0 replies; 10+ messages in thread From: Stefano Babic @ 2015-08-23 15:24 UTC (permalink / raw) To: u-boot On 13/08/2015 04:55, Peng Fan wrote: > 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.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. > > Signed-off-by: Peng Fan <Peng.Fan@freescale.com> > Cc: Stefano Babic <sbabic@denx.de> > Reviewed-by: Stefano Babic <sbabic@denx.de> > --- > > 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 > > diff --git a/arch/arm/include/asm/arch-mx31/sys_proto.h b/arch/arm/include/asm/arch-mx31/sys_proto.h > index 1626442..674b25c 100644 > --- a/arch/arm/include/asm/arch-mx31/sys_proto.h > +++ b/arch/arm/include/asm/arch-mx31/sys_proto.h > @@ -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 > diff --git a/arch/arm/include/asm/arch-mx35/sys_proto.h b/arch/arm/include/asm/arch-mx35/sys_proto.h > index 35c0352..0979fda 100644 > --- a/arch/arm/include/asm/arch-mx35/sys_proto.h > +++ b/arch/arm/include/asm/arch-mx35/sys_proto.h > @@ -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 > diff --git a/arch/arm/include/asm/arch-mx5/sys_proto.h b/arch/arm/include/asm/arch-mx5/sys_proto.h > index b06c77f..16c9b76 100644 > --- a/arch/arm/include/asm/arch-mx5/sys_proto.h > +++ b/arch/arm/include/asm/arch-mx5/sys_proto.h > @@ -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> > diff --git a/arch/arm/include/asm/arch-mx6/sys_proto.h b/arch/arm/include/asm/arch-mx6/sys_proto.h > index eee8ca8..16c9b76 100644 > --- a/arch/arm/include/asm/arch-mx6/sys_proto.h > +++ b/arch/arm/include/asm/arch-mx6/sys_proto.h > @@ -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> > diff --git a/arch/arm/include/asm/arch-mxs/sys_proto.h b/arch/arm/include/asm/arch-mxs/sys_proto.h > index d6e9fdb..20ff101 100644 > --- a/arch/arm/include/asm/arch-mxs/sys_proto.h > +++ b/arch/arm/include/asm/arch-mxs/sys_proto.h > @@ -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)); > > diff --git a/arch/arm/include/asm/imx-common/sys_proto.h b/arch/arm/include/asm/imx-common/sys_proto.h > new file mode 100644 > index 0000000..6954ee9 > --- /dev/null > +++ b/arch/arm/include/asm/imx-common/sys_proto.h > @@ -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. > + * 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 -- ===================================================================== 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 ===================================================================== ^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 2015-08-13 2:55 [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 Peng Fan ` (3 preceding siblings ...) 2015-08-13 2:55 ` [U-Boot] [PATCH V2 5/5] imx-common: consolidate macros and prototypes into sys_proto.h Peng Fan @ 2015-08-23 15:23 ` Stefano Babic 4 siblings, 0 replies; 10+ messages in thread From: Stefano Babic @ 2015-08-23 15:23 UTC (permalink / raw) To: u-boot On 13/08/2015 04:55, Peng Fan wrote: > Add cpu types for i.MX2/3. > > Signed-off-by: Peng Fan <Peng.Fan@freescale.com> > Cc: Stefano Babic <sbabic@denx.de> > Reviewed-by: Stefano Babic <sbabic@denx.de> > --- > > Changes v2: > Add mx27 cpu type. > > arch/arm/include/asm/arch-imx/cpu.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/arm/include/asm/arch-imx/cpu.h b/arch/arm/include/asm/arch-imx/cpu.h > index c7f9fff..be13b96 100644 > --- a/arch/arm/include/asm/arch-imx/cpu.h > +++ b/arch/arm/include/asm/arch-imx/cpu.h > @@ -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 > 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: sbabic at denx.de ===================================================================== ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-08-23 15:24 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-08-13 2:55 [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 Peng Fan 2015-08-13 2:55 ` [U-Boot] [PATCH V2 2/5] imx: mx27 implement get_cpu_rev Peng Fan 2015-08-23 15:23 ` Stefano Babic 2015-08-13 2:55 ` [U-Boot] [PATCH V2 3/5] imx: mx31 use new formula for get_cpu_rev Peng Fan 2015-08-23 15:23 ` Stefano Babic 2015-08-13 2:55 ` [U-Boot] [PATCH V2 4/5] imx: mxs: reimplement get_cpu_rev Peng Fan 2015-08-23 15:23 ` Stefano Babic 2015-08-13 2:55 ` [U-Boot] [PATCH V2 5/5] imx-common: consolidate macros and prototypes into sys_proto.h Peng Fan 2015-08-23 15:24 ` Stefano Babic 2015-08-23 15:23 ` [U-Boot] [PATCH V2 1/5] imx: add cpu type for i.MX2 and i.MX3 Stefano Babic
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox