[PATCH] loongarch: Disable FIX_EARLYCON_MEM when ARCH_IOREMAP is enabled

Jiaxun Yang posted 1 patch 1 year, 1 month ago
There is a newer version of this series
arch/loongarch/Kconfig              | 2 +-
arch/loongarch/include/asm/fixmap.h | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
[PATCH] loongarch: Disable FIX_EARLYCON_MEM when ARCH_IOREMAP is enabled
Posted by Jiaxun Yang 1 year, 1 month ago
When ARCH_IOREMAP is enabled, we are using always accessible DMW
for ioremap. It makes no sense to create a dedicated mapping for
earlycon given that we can access the region via DMW.

Disable FIX_EARLYCON_MEM when ARCH_IOREMAP is selected. This can
ease debugging for early mapping issues.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
---
 arch/loongarch/Kconfig              | 2 +-
 arch/loongarch/include/asm/fixmap.h | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
index 1c4d13aa677e2e04b9791882fba7523f93d6a69d..ad8a8cf75343799ea626be52f521fa75e7cbe07b 100644
--- a/arch/loongarch/Kconfig
+++ b/arch/loongarch/Kconfig
@@ -246,7 +246,7 @@ config MACH_LOONGSON64
 	def_bool 64BIT
 
 config FIX_EARLYCON_MEM
-	def_bool y
+	def_bool !ARCH_IOREMAP
 
 config PGTABLE_2LEVEL
 	bool
diff --git a/arch/loongarch/include/asm/fixmap.h b/arch/loongarch/include/asm/fixmap.h
index d2e55ae55bb9c499b9a685509bc26d663054b58e..905dc7a5f9fa52ac924fe832749f39283c28a9f8 100644
--- a/arch/loongarch/include/asm/fixmap.h
+++ b/arch/loongarch/include/asm/fixmap.h
@@ -12,7 +12,9 @@
 
 enum fixed_addresses {
 	FIX_HOLE,
+#ifdef CONFIG_FIX_EARLYCON_MEM
 	FIX_EARLYCON_MEM_BASE,
+#endif
 	__end_of_fixed_addresses
 };
 

---
base-commit: 8155b4ef3466f0e289e8fcc9e6e62f3f4dceeac2
change-id: 20250102-la-earlycon-fixed-map-d6a48bd5b831

Best regards,
-- 
Jiaxun Yang <jiaxun.yang@flygoat.com>
Re: [PATCH] loongarch: Disable FIX_EARLYCON_MEM when ARCH_IOREMAP is enabled
Posted by Huacai Chen 1 year, 1 month ago
Hi, Jiaxun,

On Thu, Jan 2, 2025 at 10:34 PM Jiaxun Yang <jiaxun.yang@flygoat.com> wrote:
>
> When ARCH_IOREMAP is enabled, we are using always accessible DMW
> for ioremap. It makes no sense to create a dedicated mapping for
> earlycon given that we can access the region via DMW.
>
> Disable FIX_EARLYCON_MEM when ARCH_IOREMAP is selected. This can
> ease debugging for early mapping issues.
Fixmap has nothing to do with IOREMAP, whether you use ARCH_IOREMAP or
GENERIC_IOREMAP, earlycon is mapped by fixmap rather than ioremap().

Huacai

>
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
> ---
>  arch/loongarch/Kconfig              | 2 +-
>  arch/loongarch/include/asm/fixmap.h | 2 ++
>  2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
> index 1c4d13aa677e2e04b9791882fba7523f93d6a69d..ad8a8cf75343799ea626be52f521fa75e7cbe07b 100644
> --- a/arch/loongarch/Kconfig
> +++ b/arch/loongarch/Kconfig
> @@ -246,7 +246,7 @@ config MACH_LOONGSON64
>         def_bool 64BIT
>
>  config FIX_EARLYCON_MEM
> -       def_bool y
> +       def_bool !ARCH_IOREMAP
>
>  config PGTABLE_2LEVEL
>         bool
> diff --git a/arch/loongarch/include/asm/fixmap.h b/arch/loongarch/include/asm/fixmap.h
> index d2e55ae55bb9c499b9a685509bc26d663054b58e..905dc7a5f9fa52ac924fe832749f39283c28a9f8 100644
> --- a/arch/loongarch/include/asm/fixmap.h
> +++ b/arch/loongarch/include/asm/fixmap.h
> @@ -12,7 +12,9 @@
>
>  enum fixed_addresses {
>         FIX_HOLE,
> +#ifdef CONFIG_FIX_EARLYCON_MEM
>         FIX_EARLYCON_MEM_BASE,
> +#endif
>         __end_of_fixed_addresses
>  };
>
>
> ---
> base-commit: 8155b4ef3466f0e289e8fcc9e6e62f3f4dceeac2
> change-id: 20250102-la-earlycon-fixed-map-d6a48bd5b831
>
> Best regards,
> --
> Jiaxun Yang <jiaxun.yang@flygoat.com>
>