mirror of
				https://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:55:51 +00:00 
			
		
		
		
	Add target for Loongson LoongArch64-based boards. LoongArch is a new RISC ISA developed by Loongson. It's a bit like MIPS or RISC-V. LoongArch includes both 32-bit and 64-bit versions (LoongArch32/LoongArch64). Loongson 3A5000 and 3A6000 are the two existing CPUs of LoongArch64 and is used for PC products. It's BIOS supports ACPI and UEFI-only boot. These CPUs supports SMP and SMT. At present only LoongArch64 is supported by linux kernel. Toolchain requirement: binutils >= 2.40 gcc >= 13.1 For details, please check the following links: https://lwn.net/Articles/861951/ https://loongson.github.io/LoongArch-Documentation/README-EN.html Signed-off-by: Weijie Gao <hackpascal@gmail.com>
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # SPDX-License-Identifier: GPL-2.0-or-later
 | |
| 
 | |
| sanitize_name_loongarch64() {
 | |
| 	sed -e '
 | |
| 		y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
 | |
| 		s/[^a-z0-9_-]\+/-/g;
 | |
| 		s/^-//;
 | |
| 		s/-$//;
 | |
| 	' "$@"
 | |
| }
 | |
| 
 | |
| do_sysinfo_loongarch64() {
 | |
| 	local vendor product file
 | |
| 
 | |
| 	for file in sys_vendor board_vendor; do
 | |
| 		vendor="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
 | |
| 		case "$vendor" in
 | |
| 		empty | \
 | |
| 		System\ manufacturer | \
 | |
| 		To\ [bB]e\ [fF]illed\ [bB]y\ O\.E\.M\.)
 | |
| 			continue
 | |
| 			;;
 | |
| 		esac
 | |
| 		[ -n "$vendor" ] && break
 | |
| 	done
 | |
| 
 | |
| 	for file in product_name board_name; do
 | |
| 		product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
 | |
| 		case "$vendor:$product" in
 | |
| 		?*:empty | \
 | |
| 		?*:System\ Product\ Name | \
 | |
| 		?*:To\ [bB]e\ [fF]illed\ [bB]y\ O\.E\.M\.)
 | |
| 			continue
 | |
| 			;;
 | |
| 		?*:?*)
 | |
| 			break
 | |
| 			;;
 | |
| 		esac
 | |
| 	done
 | |
| 
 | |
| 	[ -d "/sys/firmware/devicetree/base" ] && return
 | |
| 
 | |
| 	[ -n "$vendor" -a -n "$product" ] || return
 | |
| 
 | |
| 	mkdir -p /tmp/sysinfo
 | |
| 
 | |
| 	echo "$vendor $product" > /tmp/sysinfo/model
 | |
| 
 | |
| 	sanitize_name_loongarch64 /tmp/sysinfo/model > /tmp/sysinfo/board_name
 | |
| }
 | |
| 
 | |
| boot_hook_add preinit_main do_sysinfo_loongarch64
 |