åå:[PATCH 3/6] MIPS: Loongson: Use firmware arguments to get board name

From: Jiaxun Yang
Date: Mon Mar 09 2020 - 04:37:28 EST




---- å ææä, 2020-03-09 16:23:23 Tiezhu Yang <yangtiezhu@xxxxxxxxxxx> æå ----
> In order to distinguish various types of bridge chip such as AMD RS780E
> or Loongson 7A1000, we can use firmware arguments to get board name.
>
Hi Tiezhu,

Thanks for your contribution.
Your series is sightly conflict with my "modernize" series. But that's fine,
if your code can meet mainline requirement, I'm going to adjust my works.

See my comments bellow.

> Signed-off-by: Tiezhu Yang <yangtiezhu@xxxxxxxxxxx>
> ---
> arch/mips/include/asm/mach-loongson64/boot_param.h | 1 +
> arch/mips/loongson64/env.c | 5 +++++
> 2 files changed, 6 insertions(+)
>
> diff --git a/arch/mips/include/asm/mach-loongson64/boot_param.h b/arch/mips/include/asm/mach-loongson64/boot_param.h
> index 8c286be..225a563 100644
> --- a/arch/mips/include/asm/mach-loongson64/boot_param.h
> +++ b/arch/mips/include/asm/mach-loongson64/boot_param.h
> @@ -217,5 +217,6 @@ struct loongson_system_configuration {
>
> extern struct efi_memory_map_loongson *loongson_memmap;
> extern struct loongson_system_configuration loongson_sysconf;
> +extern struct board_devices *eboard;
>
> #endif
> diff --git a/arch/mips/loongson64/env.c b/arch/mips/loongson64/env.c
> index 0daeb7b..a244a8c 100644
> --- a/arch/mips/loongson64/env.c
> +++ b/arch/mips/loongson64/env.c
> @@ -24,6 +24,9 @@ EXPORT_SYMBOL(cpu_clock_freq);
> struct efi_memory_map_loongson *loongson_memmap;
> struct loongson_system_configuration loongson_sysconf;
>
> +struct board_devices *eboard;
> +EXPORT_SYMBOL(eboard);

Can we make it as a part of struct loongson_sysconf and export that struct?
Memory of struct eboard is not managed by kernel, we shouldn't export such symbol.

Also I noticed that you're checking PCH type repeatly in other subsystems. Can you just
determine the PCH type here?

> +
> u64 loongson_chipcfg[MAX_PACKAGES] = {0xffffffffbfc00180};
> u64 loongson_chiptemp[MAX_PACKAGES];
> u64 loongson_freqctrl[MAX_PACKAGES];
> @@ -51,6 +54,8 @@ void __init prom_init_env(void)
> ((u64)loongson_p + loongson_p->system_offset);
> ecpu = (struct efi_cpuinfo_loongson *)
> ((u64)loongson_p + loongson_p->cpu_offset);
> + eboard = (struct board_devices *)
> + ((u64)loongson_p + loongson_p->boarddev_table_offset);
> eirq_source = (struct irq_source_routing_table *)
> ((u64)loongson_p + loongson_p->irq_offset);
> loongson_memmap = (struct efi_memory_map_loongson *)
> --
> 2.1.0
>
>