mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2025-02-21 06:56:12 +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
|