armvirt: add EFI support
[openwrt/staging/stintel.git] / target / linux / armvirt / base-files / lib / preinit / 01_sysinfo_acpi
1 # SPDX-License-Identifier: GPL-2.0-or-later
2
3 sanitize_name_arm64() {
4 sed -e '
5 y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
6 s/[^a-z0-9_-]\+/-/g;
7 s/^-//;
8 s/-$//;
9 ' "$@"
10 }
11
12 do_sysinfo_arm64() {
13 local vendor product file
14
15 for file in sys_vendor board_vendor; do
16 vendor="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
17 case "$vendor" in
18 empty | \
19 System\ manufacturer | \
20 To\ [bB]e\ [fF]illed\ [bB]y\ O\.E\.M\.)
21 continue
22 ;;
23 esac
24 [ -n "$vendor" ] && break
25 done
26
27 for file in product_name board_name; do
28 product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
29 case "$vendor:$product" in
30 ?*:empty | \
31 ?*:System\ Product\ Name | \
32 ?*:To\ [bB]e\ [fF]illed\ [bB]y\ O\.E\.M\.)
33 continue
34 ;;
35 ?*:?*)
36 break
37 ;;
38 esac
39 done
40
41 [ -d "/sys/firmware/devicetree/base" ] && return
42
43 [ -n "$vendor" -a -n "$product" ] || return
44
45 mkdir -p /tmp/sysinfo
46
47 echo "$vendor $product" > /tmp/sysinfo/model
48
49 sanitize_name_arm64 /tmp/sysinfo/model > /tmp/sysinfo/board_name
50 }
51
52 boot_hook_add preinit_main do_sysinfo_arm64