Last active 1741117091

Adrian's Avatar Adrian revised this gist 1741117091. Go to revision

1 file changed, 1 deletion

gistfile1.txt

@@ -49,6 +49,5 @@ ln -s "$BASEDIR"/mnt/vendor/etc/sensors/sns_reg_config "$HEXAGONFSDIR"/sensors/s
49 49 # Since that is device-specific, let's check if we have a directory for this device.
50 50 if [ -d "$SOCINFODIR"/"$DEVICE" ]
51 51 then
52 - set -ex
53 52 ln -s "$SOCINFODIR"/"$DEVICE" "$HEXAGONFSDIR"/socinfo
54 53 fi

Adrian's Avatar Adrian revised this gist 1741116797. Go to revision

1 file changed, 54 insertions

gistfile1.txt(file created)

@@ -0,0 +1,54 @@
1 + #!/bin/sh
2 + # SPDX-License-Identifier: MIT
3 +
4 + #
5 + # This script is responsible for loading firmware blobs for the HexagonFS
6 + # on qcom devices. It assumes to be run after msm-firmware-loader.
7 + #
8 +
9 + # Base directory that msm-firmware-loader uses.
10 + BASEDIR="/lib/firmware/msm-firmware-loader"
11 +
12 + # HexagonFS base directory.
13 + HEXAGONFSDIR="/usr/share/qcom"
14 +
15 + # socinfo file base directory.
16 + SOCINFODIR="/usr/share/hexagonfs-firmware-loader"
17 +
18 + # Preparations:
19 +
20 + mount -o mode=755,nodev,noexec,nosuid,uid=fastrpc,gid=fastrpc -t tmpfs none "$HEXAGONFSDIR"
21 +
22 + mkdir "$HEXAGONFSDIR/sensors"
23 +
24 + # Get the device codename (in the form of vendor-device) from the compatible
25 + # in the devicetree.
26 + DEVICE=$(tr '\0,' '\n-' < /sys/firmware/devicetree/base/compatible | head -n1)
27 +
28 + # Symlink the files and directories from msm-firmware-loader mounts:
29 +
30 + ln -s "$BASEDIR"/mnt/vendor/etc/acdbdata "$HEXAGONFSDIR"/acdb
31 +
32 + # Some devices have a dsp partition, others have /vendor/dsp.
33 + # The ones with dsp partition have a mount point for it at /vendor/dsp, but
34 + # we don't mount it there, so we need to fall back to /vendor/dsp.
35 + if [ -d "$BASEDIR"/mnt/dsp ]
36 + then
37 + ln -s "$BASEDIR"/mnt/dsp "$HEXAGONFSDIR"/dsp
38 + else
39 + ln -s "$BASEDIR"/mnt/vendor/dsp "$HEXAGONFSDIR"/dsp
40 + fi
41 +
42 + ln -s "$BASEDIR"/mnt/vendor/etc/sensors/config "$HEXAGONFSDIR"/sensors/config
43 +
44 + ln -s "$BASEDIR"/mnt/persist/sensors/registry/registry "$HEXAGONFSDIR"/sensors/registry
45 +
46 + ln -s "$BASEDIR"/mnt/vendor/etc/sensors/sns_reg_config "$HEXAGONFSDIR"/sensors/sns_reg.conf
47 +
48 + # Some devices (hey, Xiaomi!) require a bunch of files from /sys/devices/soc0.
49 + # Since that is device-specific, let's check if we have a directory for this device.
50 + if [ -d "$SOCINFODIR"/"$DEVICE" ]
51 + then
52 + set -ex
53 + ln -s "$SOCINFODIR"/"$DEVICE" "$HEXAGONFSDIR"/socinfo
54 + fi
Newer Older