From 106d558853661bac5db90d43e8c848f61d68d507 Mon Sep 17 00:00:00 2001 From: Matt Madison Date: Sat, 4 May 2024 02:51:47 -0700 Subject: [PATCH] initrdscripts: updates for L4T R36.3 * More drivers are now kernel modules * Switch from ECID to module serial number for forming USB device ID when flashing Signed-off-by: Matt Madison --- .../tegra-flash-init/init-flash.sh | 25 ++++++++++++++++--- .../tegra-flash-init/program-boot-device.sh | 5 +--- .../initrdscripts/tegra-flash-init_1.0.bb | 7 ++++-- .../tegra-minimal-init/init-boot.sh | 7 ++++++ .../initrdscripts/tegra-minimal-init_1.0.bb | 2 +- 5 files changed, 36 insertions(+), 10 deletions(-) diff --git a/recipes-core/initrdscripts/tegra-flash-init/init-flash.sh b/recipes-core/initrdscripts/tegra-flash-init/init-flash.sh index c1cd4cfc..c4f1bedc 100644 --- a/recipes-core/initrdscripts/tegra-flash-init/init-flash.sh +++ b/recipes-core/initrdscripts/tegra-flash-init/init-flash.sh @@ -2,18 +2,37 @@ PATH=/sbin:/bin:/usr/sbin:/usr/bin mount -t proc proc -o nosuid,nodev,noexec /proc mount -t devtmpfs none -o nosuid /dev +mkdir -m 1777 /dev/shm +mkdir -m 0755 /dev/pts +mount -t devpts devpts /dev/pts mount -t sysfs sysfs -o nosuid,nodev,noexec /sys + +find /lib/modules -name 'usb_f_*.ko' -type f | while read m; do + modprobe -v "$m" +done + +find /sys -name modalias | while read m; do + modalias=$(cat "$m") + modprobe -v "$modalias" 2> /dev/null +done + +MODULES_TO_LOAD="nvme typec ucsi-ccg tegra-mce watchdog-tegra-t18x" + +for m in $MODULES_TO_LOAD; do + modprobe -v "$m" +done + mount -t configfs configfs -o nosuid,nodev,noexec /sys/kernel/config -[ ! /usr/sbin/wd_keepalive ] || /usr/sbin/wd_keepalive & +[ ! -e /usr/sbin/wd_keepalive ] || /usr/sbin/wd_keepalive & -sernum=$(cat /sys/devices/platform/efuse-burn/ecid 2>/dev/null) -[ -n "$sernum" ] || sernum=$(cat /sys/module/tegra_fuse/parameters/tegra_chip_uid 2>/dev/null) +sernum=$(cat /proc/device-tree/serial-number) if [ -n "$sernum" ]; then # Restricted to 8 characters for the ID_MODEL tag sernum=$(printf "%x" "$sernum" | tail -c8) fi [ -n "$sernum" ] || sernum="UNKNOWN" +echo "Serial number: $sernum" UDC=$(ls -1 /sys/class/udc | head -n 1) wait_for_storage() { diff --git a/recipes-core/initrdscripts/tegra-flash-init/program-boot-device.sh b/recipes-core/initrdscripts/tegra-flash-init/program-boot-device.sh index e73e0264..6e13260a 100644 --- a/recipes-core/initrdscripts/tegra-flash-init/program-boot-device.sh +++ b/recipes-core/initrdscripts/tegra-flash-init/program-boot-device.sh @@ -26,10 +26,7 @@ program_spi_partition() { # Multiple copies of the BCT get installed at erase-block boundaries # within the defined BCT partition if [ "$partname" = "BCT" ]; then - local slotsize=$(cat /sys/class/mtd/mtd0/erasesize) - if [ -z "$slotsize" ]; then - return 1 - fi + local slotsize=16384 local rounded_slot_size=$(expr \( \( $slotsize \+ 511 \) / 512 \) \* 512) local curr_offset=$(expr $part_offset \+ $rounded_slot_size) local copycount=$(expr $part_size / $rounded_slot_size) diff --git a/recipes-core/initrdscripts/tegra-flash-init_1.0.bb b/recipes-core/initrdscripts/tegra-flash-init_1.0.bb index 267cdc29..4e1909d8 100644 --- a/recipes-core/initrdscripts/tegra-flash-init_1.0.bb +++ b/recipes-core/initrdscripts/tegra-flash-init_1.0.bb @@ -29,5 +29,8 @@ do_install() { } FILES:${PN} = "/" -RDEPENDS:${PN} = "util-linux-blkdiscard tegra-flash-reboot mtd-utils e2fsprogs-mke2fs libusbgx-tegra-initrd-flash watchdog-keepalive gptfdisk" -RRECOMMENDS:${PN} = "kernel-module-spi-tegra114 kernel-module-loop" +RDEPENDS:${PN} = "util-linux-blkdiscard tegra-flash-reboot mtd-utils e2fsprogs-mke2fs libusbgx-tegra-initrd-flash watchdog-keepalive gptfdisk tegra-firmware kmod" +RRECOMMENDS:${PN} = "kernel-module-loop \ + kernel-module-libcomposite \ + kernel-module-usb-f-mass-storage \ +" diff --git a/recipes-core/initrdscripts/tegra-minimal-init/init-boot.sh b/recipes-core/initrdscripts/tegra-minimal-init/init-boot.sh index 35265c57..6a032d35 100644 --- a/recipes-core/initrdscripts/tegra-minimal-init/init-boot.sh +++ b/recipes-core/initrdscripts/tegra-minimal-init/init-boot.sh @@ -5,6 +5,13 @@ mount -t devtmpfs none -o nosuid /dev mount -t sysfs sysfs -o nosuid,nodev,noexec /sys mount -t efivarfs efivarfs -o nosuid,nodev,noexec /sys/firmware/efi/efivars +find /sys -name modalias | while read m; do + modalias=$(cat "$m") + modprobe -v "$modalias" 2> /dev/null +done + +modprobe -v nvme + rootdev="" opt="rw" wait="" diff --git a/recipes-core/initrdscripts/tegra-minimal-init_1.0.bb b/recipes-core/initrdscripts/tegra-minimal-init_1.0.bb index 41414ed0..0f9b69ed 100644 --- a/recipes-core/initrdscripts/tegra-minimal-init_1.0.bb +++ b/recipes-core/initrdscripts/tegra-minimal-init_1.0.bb @@ -25,5 +25,5 @@ do_install() { sed -i -e "s#@@TNSPEC_BOOTDEV@@#${TNSPEC_BOOTDEV}#g" ${D}${sysconfdir}/platform-preboot } -RDEPENDS:${PN} = "util-linux-blkid" +RDEPENDS:${PN} = "util-linux-blkid kmod" FILES:${PN} = "/"