Linux-MIPS Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH 0/3] Avoid build error, clean up numa.c and add /proc/boardinfo
@ 2020-10-09 10:57 Tiezhu Yang
  2020-10-09 10:57 ` [PATCH 1/3] MIPS: Loongson64: Select SMP in Kconfig to avoid build error Tiezhu Yang
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Tiezhu Yang @ 2020-10-09 10:57 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Huacai Chen, Jiaxun Yang
  Cc: linux-mips, linux-kernel, Xuefeng Li

Tiezhu Yang (3):
  MIPS: Loongson64: Select SMP in Kconfig to avoid build error
  MIPS: Loongson64: Clean up numa.c
  MIPS: Loongson64: Add /proc/boardinfo

 arch/mips/Kconfig                                  |  1 +
 arch/mips/configs/loongson3_defconfig              |  1 -
 arch/mips/include/asm/mach-loongson64/boot_param.h |  4 +++
 arch/mips/include/asm/mach-loongson64/mmzone.h     |  6 +---
 arch/mips/loongson64/Makefile                      |  2 +-
 arch/mips/loongson64/boardinfo.c                   | 40 ++++++++++++++++++++++
 arch/mips/loongson64/env.c                         | 10 ++++++
 arch/mips/loongson64/numa.c                        | 29 ++--------------
 8 files changed, 60 insertions(+), 33 deletions(-)
 create mode 100644 arch/mips/loongson64/boardinfo.c

-- 
2.1.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] MIPS: Loongson64: Select SMP in Kconfig to avoid build error
  2020-10-09 10:57 [PATCH 0/3] Avoid build error, clean up numa.c and add /proc/boardinfo Tiezhu Yang
@ 2020-10-09 10:57 ` Tiezhu Yang
  2020-10-09 10:57 ` [PATCH 2/3] MIPS: Loongson64: Clean up numa.c Tiezhu Yang
  2020-10-09 10:57 ` [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo Tiezhu Yang
  2 siblings, 0 replies; 9+ messages in thread
From: Tiezhu Yang @ 2020-10-09 10:57 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Huacai Chen, Jiaxun Yang
  Cc: linux-mips, linux-kernel, Xuefeng Li

In the current code, CONFIG_SMP can be set as N by user on the Loongson
platform, then there exists the following build error under !CONFIG_SMP:

  CC      arch/mips/kernel/asm-offsets.s
In file included from ./include/linux/gfp.h:9:0,
                 from ./include/linux/xarray.h:14,
                 from ./include/linux/radix-tree.h:18,
                 from ./include/linux/fs.h:15,
                 from ./include/linux/compat.h:17,
                 from arch/mips/kernel/asm-offsets.c:12:
./include/linux/topology.h: In function 'numa_node_id':
./include/linux/topology.h:119:2: error: implicit declaration of function 'cpu_logical_map' [-Werror=implicit-function-declaration]
  return cpu_to_node(raw_smp_processor_id());
  ^
cc1: some warnings being treated as errors
scripts/Makefile.build:117: recipe for target 'arch/mips/kernel/asm-offsets.s' failed
make[1]: *** [arch/mips/kernel/asm-offsets.s] Error 1

Select SMP in Kconfig to avoid the above build error and then remove
CONFIG_SMP=y in loongson3_defconfig.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/mips/Kconfig                     | 1 +
 arch/mips/configs/loongson3_defconfig | 1 -
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index b557fa5..75f26d1 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -488,6 +488,7 @@ config MACH_LOONGSON64
 	select SYS_SUPPORTS_ZBOOT
 	select ZONE_DMA32
 	select NUMA
+	select SMP
 	select COMMON_CLK
 	select USE_OF
 	select BUILTIN_DTB
diff --git a/arch/mips/configs/loongson3_defconfig b/arch/mips/configs/loongson3_defconfig
index a5005c8..38a817e 100644
--- a/arch/mips/configs/loongson3_defconfig
+++ b/arch/mips/configs/loongson3_defconfig
@@ -30,7 +30,6 @@ CONFIG_EMBEDDED=y
 CONFIG_PERF_EVENTS=y
 CONFIG_MACH_LOONGSON64=y
 CONFIG_CPU_HAS_MSA=y
-CONFIG_SMP=y
 CONFIG_NR_CPUS=16
 CONFIG_HZ_256=y
 CONFIG_KEXEC=y
-- 
2.1.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 2/3] MIPS: Loongson64: Clean up numa.c
  2020-10-09 10:57 [PATCH 0/3] Avoid build error, clean up numa.c and add /proc/boardinfo Tiezhu Yang
  2020-10-09 10:57 ` [PATCH 1/3] MIPS: Loongson64: Select SMP in Kconfig to avoid build error Tiezhu Yang
@ 2020-10-09 10:57 ` Tiezhu Yang
  2020-10-10  8:06   ` Jiaxun Yang
  2020-10-09 10:57 ` [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo Tiezhu Yang
  2 siblings, 1 reply; 9+ messages in thread
From: Tiezhu Yang @ 2020-10-09 10:57 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Huacai Chen, Jiaxun Yang
  Cc: linux-mips, linux-kernel, Xuefeng Li

(1) Replace nid_to_addroffset() with nid_to_addrbase() and then remove the
related useless code.

(2) Since end_pfn = start_pfn + node_psize, use "node_psize" instead of
"end_pfn - start_pfn" to avoid the redundant calculation.

(3) After commit 6fbde6b492df ("MIPS: Loongson64: Move files to the
top-level directory"), CONFIG_ZONE_DMA32 is always set for Loongson64
due to MACH_LOONGSON64 selects ZONE_DMA32, so no need to use ifdef any
more, just remove it.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/mips/include/asm/mach-loongson64/mmzone.h |  6 +-----
 arch/mips/loongson64/numa.c                    | 29 +++-----------------------
 2 files changed, 4 insertions(+), 31 deletions(-)

diff --git a/arch/mips/include/asm/mach-loongson64/mmzone.h b/arch/mips/include/asm/mach-loongson64/mmzone.h
index 3a25dbd..c3f0f7a 100644
--- a/arch/mips/include/asm/mach-loongson64/mmzone.h
+++ b/arch/mips/include/asm/mach-loongson64/mmzone.h
@@ -11,13 +11,9 @@
 
 #include <boot_param.h>
 #define NODE_ADDRSPACE_SHIFT 44
-#define NODE0_ADDRSPACE_OFFSET 0x000000000000UL
-#define NODE1_ADDRSPACE_OFFSET 0x100000000000UL
-#define NODE2_ADDRSPACE_OFFSET 0x200000000000UL
-#define NODE3_ADDRSPACE_OFFSET 0x300000000000UL
 
 #define pa_to_nid(addr)  (((addr) & 0xf00000000000) >> NODE_ADDRSPACE_SHIFT)
-#define nid_to_addrbase(nid) ((nid) << NODE_ADDRSPACE_SHIFT)
+#define nid_to_addrbase(nid) ((unsigned long)(nid) << NODE_ADDRSPACE_SHIFT)
 
 extern struct pglist_data *__node_data[];
 
diff --git a/arch/mips/loongson64/numa.c b/arch/mips/loongson64/numa.c
index ea8bb1b..cf9459f 100644
--- a/arch/mips/loongson64/numa.c
+++ b/arch/mips/loongson64/numa.c
@@ -98,27 +98,6 @@ static void __init init_topology_matrix(void)
 	}
 }
 
-static unsigned long nid_to_addroffset(unsigned int nid)
-{
-	unsigned long result;
-	switch (nid) {
-	case 0:
-	default:
-		result = NODE0_ADDRSPACE_OFFSET;
-		break;
-	case 1:
-		result = NODE1_ADDRSPACE_OFFSET;
-		break;
-	case 2:
-		result = NODE2_ADDRSPACE_OFFSET;
-		break;
-	case 3:
-		result = NODE3_ADDRSPACE_OFFSET;
-		break;
-	}
-	return result;
-}
-
 static void __init szmem(unsigned int node)
 {
 	u32 i, mem_type;
@@ -146,7 +125,7 @@ static void __init szmem(unsigned int node)
 			pr_info("       start_pfn:0x%llx, end_pfn:0x%llx, num_physpages:0x%lx\n",
 				start_pfn, end_pfn, num_physpages);
 			memblock_add_node(PFN_PHYS(start_pfn),
-				PFN_PHYS(end_pfn - start_pfn), node);
+				PFN_PHYS(node_psize), node);
 			break;
 		case SYSTEM_RAM_HIGH:
 			start_pfn = ((node_id << 44) + mem_start) >> PAGE_SHIFT;
@@ -158,7 +137,7 @@ static void __init szmem(unsigned int node)
 			pr_info("       start_pfn:0x%llx, end_pfn:0x%llx, num_physpages:0x%lx\n",
 				start_pfn, end_pfn, num_physpages);
 			memblock_add_node(PFN_PHYS(start_pfn),
-				PFN_PHYS(end_pfn - start_pfn), node);
+				PFN_PHYS(node_psize), node);
 			break;
 		case SYSTEM_RAM_RESERVED:
 			pr_info("Node%d: mem_type:%d, mem_start:0x%llx, mem_size:0x%llx MB\n",
@@ -175,7 +154,7 @@ static void __init node_mem_init(unsigned int node)
 	unsigned long node_addrspace_offset;
 	unsigned long start_pfn, end_pfn;
 
-	node_addrspace_offset = nid_to_addroffset(node);
+	node_addrspace_offset = nid_to_addrbase(node);
 	pr_info("Node%d's addrspace_offset is 0x%lx\n",
 			node, node_addrspace_offset);
 
@@ -242,9 +221,7 @@ void __init paging_init(void)
 	unsigned long zones_size[MAX_NR_ZONES] = {0, };
 
 	pagetable_init();
-#ifdef CONFIG_ZONE_DMA32
 	zones_size[ZONE_DMA32] = MAX_DMA32_PFN;
-#endif
 	zones_size[ZONE_NORMAL] = max_low_pfn;
 	free_area_init(zones_size);
 }
-- 
2.1.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo
  2020-10-09 10:57 [PATCH 0/3] Avoid build error, clean up numa.c and add /proc/boardinfo Tiezhu Yang
  2020-10-09 10:57 ` [PATCH 1/3] MIPS: Loongson64: Select SMP in Kconfig to avoid build error Tiezhu Yang
  2020-10-09 10:57 ` [PATCH 2/3] MIPS: Loongson64: Clean up numa.c Tiezhu Yang
@ 2020-10-09 10:57 ` Tiezhu Yang
  2020-10-10  8:01   ` Jiaxun Yang
  2020-10-16 13:11   ` Pavel Machek
  2 siblings, 2 replies; 9+ messages in thread
From: Tiezhu Yang @ 2020-10-09 10:57 UTC (permalink / raw)
  To: Thomas Bogendoerfer, Huacai Chen, Jiaxun Yang
  Cc: linux-mips, linux-kernel, Xuefeng Li

Add /proc/boardinfo to get mainboard and BIOS info easily on the Loongson
platform, this is useful to point out the current used mainboard type and
BIOS version when there exists problems related with hardware or firmware.

E.g. with this patch:

[loongson@linux ~]$ cat /proc/boardinfo
Board Info
Manufacturer            : LEMOTE
Board Name              : LEMOTE-LS3A4000-7A1000-1w-V01-pc
Family                  : LOONGSON3

BIOS Info
Vendor                  : Kunlun
Version                 : Kunlun-A1901-V4.1.3-20200414093938
ROM Size                : 4 KB
Release Date            : 2020-04-14

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/mips/include/asm/mach-loongson64/boot_param.h |  4 +++
 arch/mips/loongson64/Makefile                      |  2 +-
 arch/mips/loongson64/boardinfo.c                   | 40 ++++++++++++++++++++++
 arch/mips/loongson64/env.c                         | 10 ++++++
 4 files changed, 55 insertions(+), 1 deletion(-)
 create mode 100644 arch/mips/loongson64/boardinfo.c

diff --git a/arch/mips/include/asm/mach-loongson64/boot_param.h b/arch/mips/include/asm/mach-loongson64/boot_param.h
index afc92b7..4592841 100644
--- a/arch/mips/include/asm/mach-loongson64/boot_param.h
+++ b/arch/mips/include/asm/mach-loongson64/boot_param.h
@@ -228,6 +228,10 @@ struct loongson_system_configuration {
 extern struct efi_memory_map_loongson *loongson_memmap;
 extern struct loongson_system_configuration loongson_sysconf;
 
+extern struct board_devices *eboard;
+extern struct interface_info *einter;
+extern struct loongson_special_attribute *especial;
+
 extern u32 node_id_offset;
 extern void ls7a_early_config(void);
 extern void rs780e_early_config(void);
diff --git a/arch/mips/loongson64/Makefile b/arch/mips/loongson64/Makefile
index 39c06f5..bc77b5a 100644
--- a/arch/mips/loongson64/Makefile
+++ b/arch/mips/loongson64/Makefile
@@ -3,7 +3,7 @@
 # Makefile for Loongson-3 family machines
 #
 obj-$(CONFIG_MACH_LOONGSON64) += cop2-ex.o platform.o dma.o \
-				setup.o init.o env.o time.o reset.o \
+				setup.o init.o env.o time.o reset.o boardinfo.o\
 
 obj-$(CONFIG_SMP)	+= smp.o
 obj-$(CONFIG_NUMA)	+= numa.o
diff --git a/arch/mips/loongson64/boardinfo.c b/arch/mips/loongson64/boardinfo.c
new file mode 100644
index 0000000..2e8086b
--- /dev/null
+++ b/arch/mips/loongson64/boardinfo.c
@@ -0,0 +1,40 @@
+// SPDX-License-Identifier: GPL-2.0
+#include <linux/fs.h>
+#include <linux/init.h>
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+#include <linux/module.h>
+#include <boot_param.h>
+
+static int loongson_boardinfo_proc_show(struct seq_file *m, void *v)
+{
+	char board_manufacturer[64] = {0};
+	char *tmp_board_manufacturer = board_manufacturer;
+	char bios_vendor[64] = {0};
+	char *tmp_bios_vendor = bios_vendor;
+
+	strcpy(board_manufacturer, eboard->name);
+	strcpy(bios_vendor, einter->description);
+
+	seq_puts(m, "Board Info\n");
+	seq_printf(m, "Manufacturer\t\t: %s\n", strsep(&tmp_board_manufacturer, "-"));
+	seq_printf(m, "Board Name\t\t: %s\n", eboard->name);
+	seq_puts(m, "Family\t\t\t: LOONGSON3\n");
+	seq_puts(m, "\n");
+
+	seq_puts(m, "BIOS Info\n");
+	seq_printf(m, "Vendor\t\t\t: %s\n", strsep(&tmp_bios_vendor, "-"));
+	seq_printf(m, "Version\t\t\t: %s\n", einter->description);
+	seq_printf(m, "ROM Size\t\t: %d KB\n", einter->size);
+	seq_printf(m, "Release Date\t\t: %s\n", especial->special_name);
+
+	return 0;
+}
+
+static int __init proc_boardinfo_init(void)
+{
+	proc_create_single("boardinfo", 0, NULL, loongson_boardinfo_proc_show);
+	return 0;
+}
+
+module_init(proc_boardinfo_init);
diff --git a/arch/mips/loongson64/env.c b/arch/mips/loongson64/env.c
index 134cb8e..51a5d05 100644
--- a/arch/mips/loongson64/env.c
+++ b/arch/mips/loongson64/env.c
@@ -28,6 +28,10 @@ EXPORT_SYMBOL(cpu_clock_freq);
 struct efi_memory_map_loongson *loongson_memmap;
 struct loongson_system_configuration loongson_sysconf;
 
+struct board_devices *eboard;
+struct interface_info *einter;
+struct loongson_special_attribute *especial;
+
 u64 loongson_chipcfg[MAX_PACKAGES] = {0xffffffffbfc00180};
 u64 loongson_chiptemp[MAX_PACKAGES];
 u64 loongson_freqctrl[MAX_PACKAGES];
@@ -57,6 +61,12 @@ 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);
+	einter = (struct interface_info *)
+		((u64)loongson_p + loongson_p->interface_offset);
+	especial = (struct loongson_special_attribute *)
+		((u64)loongson_p + loongson_p->special_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


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo
  2020-10-09 10:57 ` [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo Tiezhu Yang
@ 2020-10-10  8:01   ` Jiaxun Yang
  2020-10-10 23:40     ` Tiezhu Yang
  2020-10-16 13:11   ` Pavel Machek
  1 sibling, 1 reply; 9+ messages in thread
From: Jiaxun Yang @ 2020-10-10  8:01 UTC (permalink / raw)
  To: Tiezhu Yang, Thomas Bogendoerfer, Huacai Chen
  Cc: linux-mips, linux-kernel, Xuefeng Li



在 2020/10/9 下午6:57, Tiezhu Yang 写道:
> Add /proc/boardinfo to get mainboard and BIOS info easily on the Loongson
> platform, this is useful to point out the current used mainboard type and
> BIOS version when there exists problems related with hardware or firmware.

Hi Tiezhu,

You're touching Kernel userspace API and I believe it should be 
documented. Also linux-api list
should be informed.

Also I'd like to know if it's really useful for mainline kernel.
For user who wants to check board information, dmidecode is already 
useful enough.

Thanks.

- Jiaxun

>
> E.g. with this patch:
>
> [loongson@linux ~]$ cat /proc/boardinfo
> Board Info
> Manufacturer            : LEMOTE
> Board Name              : LEMOTE-LS3A4000-7A1000-1w-V01-pc
> Family                  : LOONGSON3
>
> BIOS Info
> Vendor                  : Kunlun
> Version                 : Kunlun-A1901-V4.1.3-20200414093938
> ROM Size                : 4 KB
> Release Date            : 2020-04-14
>
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] MIPS: Loongson64: Clean up numa.c
  2020-10-09 10:57 ` [PATCH 2/3] MIPS: Loongson64: Clean up numa.c Tiezhu Yang
@ 2020-10-10  8:06   ` Jiaxun Yang
  0 siblings, 0 replies; 9+ messages in thread
From: Jiaxun Yang @ 2020-10-10  8:06 UTC (permalink / raw)
  To: Tiezhu Yang, Thomas Bogendoerfer, Huacai Chen
  Cc: linux-mips, linux-kernel, Xuefeng Li



在 2020/10/9 下午6:57, Tiezhu Yang 写道:
> (1) Replace nid_to_addroffset() with nid_to_addrbase() and then remove the
> related useless code.
>
> (2) Since end_pfn = start_pfn + node_psize, use "node_psize" instead of
> "end_pfn - start_pfn" to avoid the redundant calculation.
>
> (3) After commit 6fbde6b492df ("MIPS: Loongson64: Move files to the
> top-level directory"), CONFIG_ZONE_DMA32 is always set for Loongson64
> due to MACH_LOONGSON64 selects ZONE_DMA32, so no need to use ifdef any
> more, just remove it.
>
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>

Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>

> ---
>   arch/mips/include/asm/mach-loongson64/mmzone.h |  6 +-----
>   arch/mips/loongson64/numa.c                    | 29 +++-----------------------
>   2 files changed, 4 insertions(+), 31 deletions(-)
>
> diff --git a/arch/mips/include/asm/mach-loongson64/mmzone.h b/arch/mips/include/asm/mach-loongson64/mmzone.h
> index 3a25dbd..c3f0f7a 100644
> --- a/arch/mips/include/asm/mach-loongson64/mmzone.h
> +++ b/arch/mips/include/asm/mach-loongson64/mmzone.h
> @@ -11,13 +11,9 @@
>   
>   #include <boot_param.h>
>   #define NODE_ADDRSPACE_SHIFT 44
> -#define NODE0_ADDRSPACE_OFFSET 0x000000000000UL
> -#define NODE1_ADDRSPACE_OFFSET 0x100000000000UL
> -#define NODE2_ADDRSPACE_OFFSET 0x200000000000UL
> -#define NODE3_ADDRSPACE_OFFSET 0x300000000000UL
>   
>   #define pa_to_nid(addr)  (((addr) & 0xf00000000000) >> NODE_ADDRSPACE_SHIFT)
> -#define nid_to_addrbase(nid) ((nid) << NODE_ADDRSPACE_SHIFT)
> +#define nid_to_addrbase(nid) ((unsigned long)(nid) << NODE_ADDRSPACE_SHIFT)
>   
>   extern struct pglist_data *__node_data[];
>   
> diff --git a/arch/mips/loongson64/numa.c b/arch/mips/loongson64/numa.c
> index ea8bb1b..cf9459f 100644
> --- a/arch/mips/loongson64/numa.c
> +++ b/arch/mips/loongson64/numa.c
> @@ -98,27 +98,6 @@ static void __init init_topology_matrix(void)
>   	}
>   }
>   
> -static unsigned long nid_to_addroffset(unsigned int nid)
> -{
> -	unsigned long result;
> -	switch (nid) {
> -	case 0:
> -	default:
> -		result = NODE0_ADDRSPACE_OFFSET;
> -		break;
> -	case 1:
> -		result = NODE1_ADDRSPACE_OFFSET;
> -		break;
> -	case 2:
> -		result = NODE2_ADDRSPACE_OFFSET;
> -		break;
> -	case 3:
> -		result = NODE3_ADDRSPACE_OFFSET;
> -		break;
> -	}
> -	return result;
> -}
> -
>   static void __init szmem(unsigned int node)
>   {
>   	u32 i, mem_type;
> @@ -146,7 +125,7 @@ static void __init szmem(unsigned int node)
>   			pr_info("       start_pfn:0x%llx, end_pfn:0x%llx, num_physpages:0x%lx\n",
>   				start_pfn, end_pfn, num_physpages);
>   			memblock_add_node(PFN_PHYS(start_pfn),
> -				PFN_PHYS(end_pfn - start_pfn), node);
> +				PFN_PHYS(node_psize), node);
>   			break;
>   		case SYSTEM_RAM_HIGH:
>   			start_pfn = ((node_id << 44) + mem_start) >> PAGE_SHIFT;
> @@ -158,7 +137,7 @@ static void __init szmem(unsigned int node)
>   			pr_info("       start_pfn:0x%llx, end_pfn:0x%llx, num_physpages:0x%lx\n",
>   				start_pfn, end_pfn, num_physpages);
>   			memblock_add_node(PFN_PHYS(start_pfn),
> -				PFN_PHYS(end_pfn - start_pfn), node);
> +				PFN_PHYS(node_psize), node);
>   			break;
>   		case SYSTEM_RAM_RESERVED:
>   			pr_info("Node%d: mem_type:%d, mem_start:0x%llx, mem_size:0x%llx MB\n",
> @@ -175,7 +154,7 @@ static void __init node_mem_init(unsigned int node)
>   	unsigned long node_addrspace_offset;
>   	unsigned long start_pfn, end_pfn;
>   
> -	node_addrspace_offset = nid_to_addroffset(node);
> +	node_addrspace_offset = nid_to_addrbase(node);
>   	pr_info("Node%d's addrspace_offset is 0x%lx\n",
>   			node, node_addrspace_offset);
>   
> @@ -242,9 +221,7 @@ void __init paging_init(void)
>   	unsigned long zones_size[MAX_NR_ZONES] = {0, };
>   
>   	pagetable_init();
> -#ifdef CONFIG_ZONE_DMA32
>   	zones_size[ZONE_DMA32] = MAX_DMA32_PFN;
> -#endif
>   	zones_size[ZONE_NORMAL] = max_low_pfn;
>   	free_area_init(zones_size);
>   }

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo
  2020-10-10  8:01   ` Jiaxun Yang
@ 2020-10-10 23:40     ` Tiezhu Yang
  0 siblings, 0 replies; 9+ messages in thread
From: Tiezhu Yang @ 2020-10-10 23:40 UTC (permalink / raw)
  To: Jiaxun Yang, Thomas Bogendoerfer, Huacai Chen
  Cc: linux-mips, linux-kernel, Xuefeng Li

On 10/10/2020 04:01 PM, Jiaxun Yang wrote:
>
>
> 在 2020/10/9 下午6:57, Tiezhu Yang 写道:
>> Add /proc/boardinfo to get mainboard and BIOS info easily on the 
>> Loongson
>> platform, this is useful to point out the current used mainboard type 
>> and
>> BIOS version when there exists problems related with hardware or 
>> firmware.
>
> Hi Tiezhu,
>
> You're touching Kernel userspace API and I believe it should be 
> documented. Also linux-api list
> should be informed.

[RESEND due to the following reason:
Can not connect to recipient's server because of unstable
network or firewall filter. rcpt handle timeout,last handle
info: Host vger.kernel.org(23.128.96.18) command RCPT TO
respond timeout or disconnected]

Hi Jiaxun,

Thanks for your suggestion. I will do it as soon as possible and then 
send v2.

>
> Also I'd like to know if it's really useful for mainline kernel.
> For user who wants to check board information, dmidecode is already 
> useful enough.

There is no SMBIOS and dmidecode can see nothing on some machines, like 
this:
[root@linux loongson]# dmidecode
# dmidecode 2.12
# No SMBIOS nor DMI entry point found, sorry.

So I think it is useful.

Thanks,
Tiezhu Yang

>
> Thanks.
>
> - Jiaxun
>
>>
>> E.g. with this patch:
>>
>> [loongson@linux ~]$ cat /proc/boardinfo
>> Board Info
>> Manufacturer            : LEMOTE
>> Board Name              : LEMOTE-LS3A4000-7A1000-1w-V01-pc
>> Family                  : LOONGSON3
>>
>> BIOS Info
>> Vendor                  : Kunlun
>> Version                 : Kunlun-A1901-V4.1.3-20200414093938
>> ROM Size                : 4 KB
>> Release Date            : 2020-04-14
>>
>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
>> ---
>>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo
  2020-10-09 10:57 ` [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo Tiezhu Yang
  2020-10-10  8:01   ` Jiaxun Yang
@ 2020-10-16 13:11   ` Pavel Machek
  2020-10-17  1:23     ` Tiezhu Yang
  1 sibling, 1 reply; 9+ messages in thread
From: Pavel Machek @ 2020-10-16 13:11 UTC (permalink / raw)
  To: Tiezhu Yang
  Cc: Thomas Bogendoerfer, Huacai Chen, Jiaxun Yang, linux-mips,
	linux-kernel, Xuefeng Li


[-- Attachment #1: Type: text/plain, Size: 811 bytes --]

Hi!

> Add /proc/boardinfo to get mainboard and BIOS info easily on the Loongson
> platform, this is useful to point out the current used mainboard type and
> BIOS version when there exists problems related with hardware or firmware.
> 
> E.g. with this patch:
> 
> [loongson@linux ~]$ cat /proc/boardinfo
> Board Info
> Manufacturer            : LEMOTE
> Board Name              : LEMOTE-LS3A4000-7A1000-1w-V01-pc
> Family                  : LOONGSON3
> 
> BIOS Info
> Vendor                  : Kunlun
> Version                 : Kunlun-A1901-V4.1.3-20200414093938
> ROM Size                : 4 KB
> Release Date            : 2020-04-14

Please put this into /sys somewhere, with usual rules. This is hard to
extend/parse.

								Pavel

-- 
http://www.livejournal.com/~pavelmachek

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo
  2020-10-16 13:11   ` Pavel Machek
@ 2020-10-17  1:23     ` Tiezhu Yang
  0 siblings, 0 replies; 9+ messages in thread
From: Tiezhu Yang @ 2020-10-17  1:23 UTC (permalink / raw)
  To: Pavel Machek
  Cc: Thomas Bogendoerfer, Huacai Chen, Jiaxun Yang, linux-mips,
	linux-kernel, Xuefeng Li

On 10/16/2020 09:11 PM, Pavel Machek wrote:
> Hi!
>
>> Add /proc/boardinfo to get mainboard and BIOS info easily on the Loongson
>> platform, this is useful to point out the current used mainboard type and
>> BIOS version when there exists problems related with hardware or firmware.
>>
>> E.g. with this patch:
>>
>> [loongson@linux ~]$ cat /proc/boardinfo
>> Board Info
>> Manufacturer            : LEMOTE
>> Board Name              : LEMOTE-LS3A4000-7A1000-1w-V01-pc
>> Family                  : LOONGSON3
>>
>> BIOS Info
>> Vendor                  : Kunlun
>> Version                 : Kunlun-A1901-V4.1.3-20200414093938
>> ROM Size                : 4 KB
>> Release Date            : 2020-04-14
> Please put this into /sys somewhere, with usual rules. This is hard to
> extend/parse.

Hi Pavel,

Thanks for your suggestion. I submitted a new version some days ago.

[1/2] MIPS: Loongson64: Add /sys/firmware/lefi/boardinfo
https://lore.kernel.org/patchwork/patch/1320574/

[2/2] Documentation: ABI: Add /sys/firmware/lefi/boardinfo description 
for Loongson64
https://lore.kernel.org/patchwork/patch/1320573/

Thanks,
Tiezhu

>
> 								Pavel
>


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, back to index

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-09 10:57 [PATCH 0/3] Avoid build error, clean up numa.c and add /proc/boardinfo Tiezhu Yang
2020-10-09 10:57 ` [PATCH 1/3] MIPS: Loongson64: Select SMP in Kconfig to avoid build error Tiezhu Yang
2020-10-09 10:57 ` [PATCH 2/3] MIPS: Loongson64: Clean up numa.c Tiezhu Yang
2020-10-10  8:06   ` Jiaxun Yang
2020-10-09 10:57 ` [PATCH 3/3] MIPS: Loongson64: Add /proc/boardinfo Tiezhu Yang
2020-10-10  8:01   ` Jiaxun Yang
2020-10-10 23:40     ` Tiezhu Yang
2020-10-16 13:11   ` Pavel Machek
2020-10-17  1:23     ` Tiezhu Yang

Linux-MIPS Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-mips/0 linux-mips/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-mips linux-mips/ https://lore.kernel.org/linux-mips \
		linux-mips@vger.kernel.org
	public-inbox-index linux-mips

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-mips


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git