new attempt of firmware loader

This commit is contained in:
Miguel Fuertes committed 2025-09-19 14:47:30 +02:00
1 parent 42a3be4b8f
commit c5bbe1b7db
5 files changed
+17 -39

No files matched your search

+4 -2
View File
@@ -23,12 +23,14 @@ define Build/Configure
endef
define Build/Compile
@echo "" >> $(PKG_BUILD_DIR)/msm-firmware-loader.sh
@echo "# Custom remoteproc restart after firmware path is set:" >> $(PKG_BUILD_DIR)/msm-firmware-loader.sh
cat ./files/remoteproc-restart-extra.addon >> $(PKG_BUILD_DIR)/msm-firmware-loader.sh
endef
define Package/$(PKG_NAME)/install
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./msm-firmware-loader.init $(1)/etc/init.d/msm-firmware-loader
$(INSTALL_BIN) ./remoteproc-start.init $(1)/etc/init.d/remoteproc-start
$(INSTALL_BIN) ./files/msm-firmware-loader.init $(1)/etc/init.d/msm-firmware-loader
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/msm-firmware-loader.sh $(1)/usr/sbin/msm-firmware-loader
@@ -0,0 +1,13 @@
# Wait a bit for firmware path to be fully processed
sleep 3
# Now restart remoteproc so it can find the new firmware
logger -t msm-firmware-loader "Firmware path set, restarting remoteproc devices"
echo stop > /sys/class/remoteproc/remoteproc0/state 2>/dev/null || true
echo stop > /sys/class/remoteproc/remoteproc1/state 2>/dev/null || true
sleep 2
echo start > /sys/class/remoteproc/remoteproc0/state 2>/dev/null || true
echo start > /sys/class/remoteproc/remoteproc1/state 2>/dev/null || true
logger -t msm-firmware-loader "Remoteproc restart completed"
@@ -1,18 +0,0 @@
#!/bin/sh
# /etc/hotplug.d/firmware/05-msm-loader
[ "$ACTION" = "add" ] || exit 0
case "$FIRMWARE" in
wcnss.mdt|modem.mdt|mba.mbn|venus.mdt) : ;;
*) exit 0 ;;
esac
READY="/lib/firmware/.ready"
if [ ! -e "$READY" ]; then
/usr/sbin/msm-firmware-loader 2>&1 || true
touch "$READY"
fi
exit 0
@@ -1,19 +0,0 @@
#!/bin/sh /etc/rc.common
USE_PROCD=1
START=99
STOP=10
NAME=remoteproc-autostart
start_service() {
procd_open_instance rproc
procd_set_param command /bin/sh -c '
echo start > /sys/class/remoteproc/remoteproc0/state 2>/dev/null || true
echo start > /sys/class/remoteproc/remoteproc1/state 2>/dev/null || true
wifi reload 2>/dev/null || true
'
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}