All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.