From ad560591e122f82f9144cf7ddc8d095efa7790ca Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Sat, 18 Feb 2023 21:31:53 -0800 Subject: [PATCH] deviceinfo: parse only required variables This greatly reduces the chance accidentally adding dependencies to the other (currently unused) variables later on. Getting away from depending on deviceinfo has a lot of benefits, but mainly it helps offload device-specific boot configuration to boot-deploy. Handling those complexities in a shell script is often nicer. Also, reducing the need to handle variables that contain lists means that this app doesn't have to worry about how to merge/handle multiple versions of those. That might be useful later if mkinitfs has to read deviceinfo config from multiple deviceinfo files. For example, trying to figure out how to merge these two things is... ehhh... a_modules_initfs="abc bar banana bazz" b_modules_initfs="foo bar bazz bar2 guava" --- pkgs/deviceinfo/deviceinfo.go | 29 ++++------------------------- pkgs/deviceinfo/deviceinfo_test.go | 8 +------- 2 files changed, 5 insertions(+), 32 deletions(-) diff --git a/pkgs/deviceinfo/deviceinfo.go b/pkgs/deviceinfo/deviceinfo.go index 90ca8fd..3d43060 100644 --- a/pkgs/deviceinfo/deviceinfo.go +++ b/pkgs/deviceinfo/deviceinfo.go @@ -14,31 +14,10 @@ import ( ) type DeviceInfo struct { - AppendDtb string - Arch string - UbootBoardname string - BootimgAppendSEAndroidEnforce string - BootimgBlobpack string - BootimgDtbSecond string - BootimgMtkMkimage string - BootimgPxa string - BootimgQcdt string - Dtb string - FlashKernelOnUpdate string - FlashOffsetBase string - FlashOffsetKernel string - FlashOffsetRamdisk string - FlashOffsetSecond string - FlashOffsetTags string - FlashPagesize string - GenerateBootimg string - GenerateLegacyUbootInitfs string - InitfsCompression string - KernelCmdline string - LegacyUbootLoadAddress string - MesaDriver string - MkinitfsPostprocess string - ModulesInitfs string + InitfsCompression string + MesaDriver string + ModulesInitfs string + UbootBoardname string } func ReadDeviceinfo(file string) (DeviceInfo, error) { diff --git a/pkgs/deviceinfo/deviceinfo_test.go b/pkgs/deviceinfo/deviceinfo_test.go index 75960c4..df5bb6f 100644 --- a/pkgs/deviceinfo/deviceinfo_test.go +++ b/pkgs/deviceinfo/deviceinfo_test.go @@ -43,15 +43,9 @@ func TestUnmarshal(t *testing.T) { {"ModulesInitfs", "deviceinfo_modules_initfs=\"panfrost foo bar bazz\"\n", "panfrost foo bar bazz"}, {"ModulesInitfs", "deviceinfo_modules_initfs=\"panfrost foo bar bazz\"", "panfrost foo bar bazz"}, // line with multiple '=' - {"KernelCmdline", - "deviceinfo_kernel_cmdline=\"PMOS_NO_OUTPUT_REDIRECT fw_devlink=off nvme_core.default_ps_max_latency_us=5500 pcie_aspm.policy=performance\"\n", - "PMOS_NO_OUTPUT_REDIRECT fw_devlink=off nvme_core.default_ps_max_latency_us=5500 pcie_aspm.policy=performance"}, + {"InitfsCompression", "deviceinfo_initfs_compression=zstd:--foo=1 -T0 --bar=bazz", "zstd:--foo=1 -T0 --bar=bazz"}, // empty option {"ModulesInitfs", "deviceinfo_modules_initfs=\"\"\n", ""}, - {"Dtb", "deviceinfo_dtb=\"freescale/imx8mq-librem5-r2 freescale/imx8mq-librem5-r3 freescale/imx8mq-librem5-r4\"\n", - "freescale/imx8mq-librem5-r2 freescale/imx8mq-librem5-r3 freescale/imx8mq-librem5-r4"}, - // valid deviceinfo line, just not used in this module - {"", "deviceinfo_codename=\"pine64-pinebookpro\"", ""}, // line with comment at the end {"MesaDriver", "deviceinfo_mesa_driver=\"panfrost\" # this is a nice driver", "panfrost"}, {"", "# this is a comment!\n", ""},