* [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse
@ 2022-12-13 4:46 Marek Vasut
2022-12-13 4:46 ` [PATCH 2/2] ARM: imx: bootaux: Fix LTO -Wlto-type-mismatch Marek Vasut
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Marek Vasut @ 2022-12-13 4:46 UTC (permalink / raw)
To: u-boot
Cc: Marek Vasut, NXP i.MX U-Boot Team, Fabio Estevam,
Marek Behún, Peng Fan, Stefano Babic
There are no CONFIG_{TOOLS_,SPL_,TPL_,}IMX8M macros, nor is there one for
ARM64. Use plain IS_ENABLED(CONFIG_IMX8M) and IS_ENABLED(CONFIG_ARM64) to
avoid expanding the {TOOLS_,SPL_,TPL_,} part.
Fixes: 56c2dbdabab5 ("imx: bootaux: cleanup code")
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: "NXP i.MX U-Boot Team" <uboot-imx@nxp.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Marek Behún <kabel@kernel.org>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
---
arch/arm/mach-imx/imx_bootaux.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-imx/imx_bootaux.c b/arch/arm/mach-imx/imx_bootaux.c
index 8115bf40f1a..433c1f80cee 100644
--- a/arch/arm/mach-imx/imx_bootaux.c
+++ b/arch/arm/mach-imx/imx_bootaux.c
@@ -15,7 +15,7 @@
#include <cpu_func.h>
/* Just to avoid build error */
-#if CONFIG_IS_ENABLED(IMX8M)
+#if IS_ENABLED(CONFIG_IMX8M)
#define SRC_M4C_NON_SCLR_RST_MASK BIT(0)
#define SRC_M4_ENABLE_MASK BIT(0)
#define SRC_M4_REG_OFFSET 0
@@ -106,7 +106,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong addr)
if (!pc)
return CMD_RET_FAILURE;
- if (!CONFIG_IS_ENABLED(ARM64))
+ if (!IS_ENABLED(CONFIG_ARM64))
stack = 0x0;
} else {
/*
@@ -128,7 +128,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong addr)
flush_dcache_all();
/* Enable M4 */
- if (CONFIG_IS_ENABLED(IMX8M)) {
+ if (IS_ENABLED(CONFIG_IMX8M)) {
arm_smccc_smc(IMX_SIP_SRC, IMX_SIP_SRC_M4_START, 0, 0, 0, 0, 0, 0, NULL);
} else {
clrsetbits_le32(SRC_BASE_ADDR + SRC_M4_REG_OFFSET,
@@ -143,7 +143,7 @@ int arch_auxiliary_core_check_up(u32 core_id)
struct arm_smccc_res res;
unsigned int val;
- if (CONFIG_IS_ENABLED(IMX8M)) {
+ if (IS_ENABLED(CONFIG_IMX8M)) {
arm_smccc_smc(IMX_SIP_SRC, IMX_SIP_SRC_M4_STARTED, 0, 0, 0, 0, 0, 0, &res);
return res.a0;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] ARM: imx: bootaux: Fix LTO -Wlto-type-mismatch
2022-12-13 4:46 [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse Marek Vasut
@ 2022-12-13 4:46 ` Marek Vasut
2022-12-13 7:41 ` Peng Fan
2023-01-31 9:51 ` sbabic
2022-12-13 7:41 ` [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse Peng Fan
2023-01-31 9:51 ` sbabic
2 siblings, 2 replies; 6+ messages in thread
From: Marek Vasut @ 2022-12-13 4:46 UTC (permalink / raw)
To: u-boot
Cc: Marek Vasut, NXP i.MX U-Boot Team, Fabio Estevam,
Marek Behún, Peng Fan, Stefano Babic
Commit 56c2dbdabab5 ("imx: bootaux: cleanup code") introduces the
following LTO related warning:
"
arch/arm/mach-imx/imx_bootaux.c:24:31: warning: type of ‘hostmap’ does not match original declaration [-Wlto-type-mismatch]
24 | const __weak struct rproc_att hostmap[] = { };
| ^
arch/arm/mach-imx/imx8m/soc.c:1590:24: note: array types have different bounds
1590 | const struct rproc_att hostmap[] = {
| ^
arch/arm/mach-imx/imx8m/soc.c:1590:24: note: ‘hostmap’ was previously declared here
../aarch64-linux-gnu/bin/ld: warning: u-boot has a LOAD segment with RWX permissions
"
This is because the weak empty array of structures "hostmap" is eventually
replaced by non-empty array of structures with different number of elements.
Fix this by avoiding weak variable size array, instead use a weak function
which returns single pointer to the array.
Fixes: 56c2dbdabab5 ("imx: bootaux: cleanup code")
Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: "NXP i.MX U-Boot Team" <uboot-imx@nxp.com>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Marek Behún <kabel@kernel.org>
Cc: Peng Fan <peng.fan@nxp.com>
Cc: Stefano Babic <sbabic@denx.de>
---
arch/arm/include/asm/mach-imx/sys_proto.h | 2 ++
arch/arm/mach-imx/imx8m/soc.c | 5 +++++
arch/arm/mach-imx/imx_bootaux.c | 7 +++++--
arch/arm/mach-imx/mx7/soc.c | 5 +++++
4 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h
index dd0d3f29333..27fdc16cd50 100644
--- a/arch/arm/include/asm/mach-imx/sys_proto.h
+++ b/arch/arm/include/asm/mach-imx/sys_proto.h
@@ -149,6 +149,8 @@ struct rproc_att {
u32 size; /* size of reg range */
};
+const struct rproc_att *imx_bootaux_get_hostmap(void);
+
struct rom_api {
u16 ver;
u16 tag;
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
index a4863281e36..5e92f8143cf 100644
--- a/arch/arm/mach-imx/imx8m/soc.c
+++ b/arch/arm/mach-imx/imx8m/soc.c
@@ -1610,4 +1610,9 @@ const struct rproc_att hostmap[] = {
{ 0x40000000, 0x40000000, 0x80000000 },
{ /* sentinel */ }
};
+
+const struct rproc_att *imx_bootaux_get_hostmap(void)
+{
+ return hostmap;
+}
#endif
diff --git a/arch/arm/mach-imx/imx_bootaux.c b/arch/arm/mach-imx/imx_bootaux.c
index 433c1f80cee..888c53d6901 100644
--- a/arch/arm/mach-imx/imx_bootaux.c
+++ b/arch/arm/mach-imx/imx_bootaux.c
@@ -21,11 +21,14 @@
#define SRC_M4_REG_OFFSET 0
#endif
-const __weak struct rproc_att hostmap[] = { };
+__weak const struct rproc_att *imx_bootaux_get_hostmap(void)
+{
+ return NULL;
+}
static const struct rproc_att *get_host_mapping(unsigned long auxcore)
{
- const struct rproc_att *mmap = hostmap;
+ const struct rproc_att *mmap = imx_bootaux_get_hostmap();
while (mmap && mmap->size) {
if (mmap->da <= auxcore &&
diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
index 02af0d568f2..689dbefe8ee 100644
--- a/arch/arm/mach-imx/mx7/soc.c
+++ b/arch/arm/mach-imx/mx7/soc.c
@@ -224,6 +224,11 @@ const struct rproc_att hostmap[] = {
{ 0x80000000, 0x80000000, 0x60000000 }, /* DDRC */
{ /* sentinel */ }
};
+
+const struct rproc_att *imx_bootaux_get_hostmap(void)
+{
+ return hostmap;
+}
#endif
#if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT)
--
2.35.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse
2022-12-13 4:46 [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse Marek Vasut
2022-12-13 4:46 ` [PATCH 2/2] ARM: imx: bootaux: Fix LTO -Wlto-type-mismatch Marek Vasut
@ 2022-12-13 7:41 ` Peng Fan
2023-01-31 9:51 ` sbabic
2 siblings, 0 replies; 6+ messages in thread
From: Peng Fan @ 2022-12-13 7:41 UTC (permalink / raw)
To: Marek Vasut, u-boot
Cc: NXP i.MX U-Boot Team, Fabio Estevam, Marek Behún, Peng Fan,
Stefano Babic
On 12/13/2022 12:46 PM, Marek Vasut wrote:
> There are no CONFIG_{TOOLS_,SPL_,TPL_,}IMX8M macros, nor is there one for
> ARM64. Use plain IS_ENABLED(CONFIG_IMX8M) and IS_ENABLED(CONFIG_ARM64) to
> avoid expanding the {TOOLS_,SPL_,TPL_,} part.
>
> Fixes: 56c2dbdabab5 ("imx: bootaux: cleanup code")
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: "NXP i.MX U-Boot Team" <uboot-imx@nxp.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Marek Behún <kabel@kernel.org>
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
> arch/arm/mach-imx/imx_bootaux.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/mach-imx/imx_bootaux.c b/arch/arm/mach-imx/imx_bootaux.c
> index 8115bf40f1a..433c1f80cee 100644
> --- a/arch/arm/mach-imx/imx_bootaux.c
> +++ b/arch/arm/mach-imx/imx_bootaux.c
> @@ -15,7 +15,7 @@
> #include <cpu_func.h>
>
> /* Just to avoid build error */
> -#if CONFIG_IS_ENABLED(IMX8M)
> +#if IS_ENABLED(CONFIG_IMX8M)
> #define SRC_M4C_NON_SCLR_RST_MASK BIT(0)
> #define SRC_M4_ENABLE_MASK BIT(0)
> #define SRC_M4_REG_OFFSET 0
> @@ -106,7 +106,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong addr)
> if (!pc)
> return CMD_RET_FAILURE;
>
> - if (!CONFIG_IS_ENABLED(ARM64))
> + if (!IS_ENABLED(CONFIG_ARM64))
> stack = 0x0;
> } else {
> /*
> @@ -128,7 +128,7 @@ int arch_auxiliary_core_up(u32 core_id, ulong addr)
> flush_dcache_all();
>
> /* Enable M4 */
> - if (CONFIG_IS_ENABLED(IMX8M)) {
> + if (IS_ENABLED(CONFIG_IMX8M)) {
> arm_smccc_smc(IMX_SIP_SRC, IMX_SIP_SRC_M4_START, 0, 0, 0, 0, 0, 0, NULL);
> } else {
> clrsetbits_le32(SRC_BASE_ADDR + SRC_M4_REG_OFFSET,
> @@ -143,7 +143,7 @@ int arch_auxiliary_core_check_up(u32 core_id)
> struct arm_smccc_res res;
> unsigned int val;
>
> - if (CONFIG_IS_ENABLED(IMX8M)) {
> + if (IS_ENABLED(CONFIG_IMX8M)) {
> arm_smccc_smc(IMX_SIP_SRC, IMX_SIP_SRC_M4_STARTED, 0, 0, 0, 0, 0, 0, &res);
> return res.a0;
> }
Reviewed-by: Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] ARM: imx: bootaux: Fix LTO -Wlto-type-mismatch
2022-12-13 4:46 ` [PATCH 2/2] ARM: imx: bootaux: Fix LTO -Wlto-type-mismatch Marek Vasut
@ 2022-12-13 7:41 ` Peng Fan
2023-01-31 9:51 ` sbabic
1 sibling, 0 replies; 6+ messages in thread
From: Peng Fan @ 2022-12-13 7:41 UTC (permalink / raw)
To: Marek Vasut, u-boot
Cc: NXP i.MX U-Boot Team, Fabio Estevam, Marek Behún, Peng Fan,
Stefano Babic
On 12/13/2022 12:46 PM, Marek Vasut wrote:
> Commit 56c2dbdabab5 ("imx: bootaux: cleanup code") introduces the
> following LTO related warning:
>
> "
> arch/arm/mach-imx/imx_bootaux.c:24:31: warning: type of ‘hostmap’ does not match original declaration [-Wlto-type-mismatch]
> 24 | const __weak struct rproc_att hostmap[] = { };
> | ^
> arch/arm/mach-imx/imx8m/soc.c:1590:24: note: array types have different bounds
> 1590 | const struct rproc_att hostmap[] = {
> | ^
> arch/arm/mach-imx/imx8m/soc.c:1590:24: note: ‘hostmap’ was previously declared here
> ../aarch64-linux-gnu/bin/ld: warning: u-boot has a LOAD segment with RWX permissions
> "
>
> This is because the weak empty array of structures "hostmap" is eventually
> replaced by non-empty array of structures with different number of elements.
> Fix this by avoiding weak variable size array, instead use a weak function
> which returns single pointer to the array.
>
> Fixes: 56c2dbdabab5 ("imx: bootaux: cleanup code")
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: "NXP i.MX U-Boot Team" <uboot-imx@nxp.com>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Marek Behún <kabel@kernel.org>
> Cc: Peng Fan <peng.fan@nxp.com>
> Cc: Stefano Babic <sbabic@denx.de>
> ---
> arch/arm/include/asm/mach-imx/sys_proto.h | 2 ++
> arch/arm/mach-imx/imx8m/soc.c | 5 +++++
> arch/arm/mach-imx/imx_bootaux.c | 7 +++++--
> arch/arm/mach-imx/mx7/soc.c | 5 +++++
> 4 files changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h
> index dd0d3f29333..27fdc16cd50 100644
> --- a/arch/arm/include/asm/mach-imx/sys_proto.h
> +++ b/arch/arm/include/asm/mach-imx/sys_proto.h
> @@ -149,6 +149,8 @@ struct rproc_att {
> u32 size; /* size of reg range */
> };
>
> +const struct rproc_att *imx_bootaux_get_hostmap(void);
> +
> struct rom_api {
> u16 ver;
> u16 tag;
> diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
> index a4863281e36..5e92f8143cf 100644
> --- a/arch/arm/mach-imx/imx8m/soc.c
> +++ b/arch/arm/mach-imx/imx8m/soc.c
> @@ -1610,4 +1610,9 @@ const struct rproc_att hostmap[] = {
> { 0x40000000, 0x40000000, 0x80000000 },
> { /* sentinel */ }
> };
> +
> +const struct rproc_att *imx_bootaux_get_hostmap(void)
> +{
> + return hostmap;
> +}
> #endif
> diff --git a/arch/arm/mach-imx/imx_bootaux.c b/arch/arm/mach-imx/imx_bootaux.c
> index 433c1f80cee..888c53d6901 100644
> --- a/arch/arm/mach-imx/imx_bootaux.c
> +++ b/arch/arm/mach-imx/imx_bootaux.c
> @@ -21,11 +21,14 @@
> #define SRC_M4_REG_OFFSET 0
> #endif
>
> -const __weak struct rproc_att hostmap[] = { };
> +__weak const struct rproc_att *imx_bootaux_get_hostmap(void)
> +{
> + return NULL;
> +}
>
> static const struct rproc_att *get_host_mapping(unsigned long auxcore)
> {
> - const struct rproc_att *mmap = hostmap;
> + const struct rproc_att *mmap = imx_bootaux_get_hostmap();
>
> while (mmap && mmap->size) {
> if (mmap->da <= auxcore &&
> diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c
> index 02af0d568f2..689dbefe8ee 100644
> --- a/arch/arm/mach-imx/mx7/soc.c
> +++ b/arch/arm/mach-imx/mx7/soc.c
> @@ -224,6 +224,11 @@ const struct rproc_att hostmap[] = {
> { 0x80000000, 0x80000000, 0x60000000 }, /* DDRC */
> { /* sentinel */ }
> };
> +
> +const struct rproc_att *imx_bootaux_get_hostmap(void)
> +{
> + return hostmap;
> +}
> #endif
>
> #if !CONFIG_IS_ENABLED(SKIP_LOWLEVEL_INIT)
Reviewed-by: Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse
2022-12-13 4:46 [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse Marek Vasut
2022-12-13 4:46 ` [PATCH 2/2] ARM: imx: bootaux: Fix LTO -Wlto-type-mismatch Marek Vasut
2022-12-13 7:41 ` [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse Peng Fan
@ 2023-01-31 9:51 ` sbabic
2 siblings, 0 replies; 6+ messages in thread
From: sbabic @ 2023-01-31 9:51 UTC (permalink / raw)
To: Marek Vasut, u-boot
> There are no CONFIG_{TOOLS_,SPL_,TPL_,}IMX8M macros, nor is there one for
> ARM64. Use plain IS_ENABLED(CONFIG_IMX8M) and IS_ENABLED(CONFIG_ARM64) to
> avoid expanding the {TOOLS_,SPL_,TPL_,} part.
> Fixes: 56c2dbdabab5 ("imx: bootaux: cleanup code")
> Signed-off-by: Marek Vasut <marex@denx.de>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, 82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] ARM: imx: bootaux: Fix LTO -Wlto-type-mismatch
2022-12-13 4:46 ` [PATCH 2/2] ARM: imx: bootaux: Fix LTO -Wlto-type-mismatch Marek Vasut
2022-12-13 7:41 ` Peng Fan
@ 2023-01-31 9:51 ` sbabic
1 sibling, 0 replies; 6+ messages in thread
From: sbabic @ 2023-01-31 9:51 UTC (permalink / raw)
To: Marek Vasut, u-boot
> Commit 56c2dbdabab5 ("imx: bootaux: cleanup code") introduces the
> following LTO related warning:
> "
> arch/arm/mach-imx/imx_bootaux.c:24:31: warning: type of ‘hostmap’ does not match original declaration [-Wlto-type-mismatch]
> 24 | const __weak struct rproc_att hostmap[] = { };
> | ^
> arch/arm/mach-imx/imx8m/soc.c:1590:24: note: array types have different bounds
> 1590 | const struct rproc_att hostmap[] = {
> | ^
> arch/arm/mach-imx/imx8m/soc.c:1590:24: note: ‘hostmap’ was previously declared here
> ../aarch64-linux-gnu/bin/ld: warning: u-boot has a LOAD segment with RWX permissions
> "
> This is because the weak empty array of structures "hostmap" is eventually
> replaced by non-empty array of structures with different number of elements.
> Fix this by avoiding weak variable size array, instead use a weak function
> which returns single pointer to the array.
> Fixes: 56c2dbdabab5 ("imx: bootaux: cleanup code")
> Signed-off-by: Marek Vasut <marex@denx.de>
> Reviewed-by: Peng Fan <peng.fan@nxp.com>
Applied to u-boot-imx, master, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, 82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic@denx.de
=====================================================================
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-01-31 9:57 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-13 4:46 [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse Marek Vasut
2022-12-13 4:46 ` [PATCH 2/2] ARM: imx: bootaux: Fix LTO -Wlto-type-mismatch Marek Vasut
2022-12-13 7:41 ` Peng Fan
2023-01-31 9:51 ` sbabic
2022-12-13 7:41 ` [PATCH 1/2] ARM: imx: bootaux: Fix macro misuse Peng Fan
2023-01-31 9:51 ` sbabic
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.