diff --git a/device/testing/device-amlogic-tvbox/APKBUILD b/device/testing/device-amlogic-tvbox/APKBUILD index 11ae44545..99c412988 100644 --- a/device/testing/device-amlogic-tvbox/APKBUILD +++ b/device/testing/device-amlogic-tvbox/APKBUILD @@ -2,19 +2,21 @@ # Maintainer: Ferass El Hafidi pkgname=device-amlogic-tvbox pkgdesc="Amlogic TV box" -pkgver=6 +pkgver=7 pkgrel=0 url="https://postmarketos.org" license="MIT" arch="aarch64" options="!check !archcheck" depends=" + dtc postmarketos-base soc-amlogic-s905 u-boot-tools " makedepends="devicepkg-dev" source=" + boot-image.its deviceinfo modules-initfs " @@ -34,21 +36,36 @@ package() { devicepkg_package $startdir $pkgname } +aml_boot_prep() { + # uEnv.ini: Used to set kernel cmdline, and DTB if booting a legacy uImage + mkdir -p "$2"/boot/ + echo "bootargs=console=tty0 console=ttyAML0,115200n8" > "$2"/boot/uEnv.ini + echo "pmos_env_dtb=$1" >> "$2"/boot/uEnv.ini + + # FIT image used to boot Amlogic devices if their vendor U-Boot build supports it + mkdir -p "$2"/usr/share/u-boot/amlogic-tvbox + sed "s@\\[\\[\\[DEVICETREE\\]\\]\\]@/boot/dtbs/amlogic/$1@" "$srcdir/boot-image.its" > "$2"/usr/share/u-boot/amlogic-tvbox/boot-image.its + chmod 644 "$2"/usr/share/u-boot/amlogic-tvbox/boot-image.its # Perms fixup +} + kernel_p201() { pkgdesc="Kernel for Amlogic P201-based TV box (S905)" depends="linux-postmarketos-amlogic u-boot-amlogic-s905-tv" + aml_boot_prep "meson-gxbb-p201.dtb" "$subpkgdir" devicepkg_subpackage_kernel $startdir $pkgname $subpkgname } kernel_p212() { pkgdesc="Kernel for Amlogic P212-based TV box (S905X)" depends="linux-postmarketos-amlogic u-boot-amlogic-s905x-tv" + aml_boot_prep "meson-gxl-s905x-p212.dtb" "$subpkgdir" devicepkg_subpackage_kernel $startdir $pkgname $subpkgname } kernel_p241() { pkgdesc="Kernel for Amlogic P241-based TV box (S805X/S805Y)" depends="linux-postmarketos-amlogic u-boot-amlogic-s905x-tv" + aml_boot_prep "meson-gxl-s805x-p241.dtb" "$subpkgdir" devicepkg_subpackage_kernel $startdir $pkgname $subpkgname } @@ -62,10 +79,12 @@ kernel_videostrong_kii_pro() { pkgdesc="Kernel for Videostrong KII Pro (S905)" depends="linux-postmarketos-amlogic u-boot-amlogic-s905-tv" _pmb_recommends="firmware-videostrong-kii-pro" + aml_boot_prep "meson-gxbb-kii-pro.dtb" "$subpkgdir" devicepkg_subpackage_kernel $startdir $pkgname $subpkgname } sha512sums=" -1ae8e02447cf9b84ee1fa23d81ff64911390a12ff298220f0ee400f7eef5dc4a35200cb174ceb04e8a63b35eb2afebf9ada1dbed084fa10dd9fb7d7886a3356e deviceinfo +17e803e341c362f54df2116125549ededc41deb89cd6f57974133e18053b30af35fc2b60cdb732b10efadf95234f154bdd7b32410c139f0166adfe9b4ffe02dd boot-image.its +ef92eb6a536f2f21866515412fc560c6ea62aee5fc8ace8de04e6e6c0a9bbdcd4dcefdd4ed05d489bf50cdd4f3ef9690c0670878f7008590b737035874139897 deviceinfo 52948c2884a6f6384e12b7a598f70878526d0d3293c214425170145231144ec7de805c038641741a4a5d75b50e554f6a3fa3769784a674217ed032f9b6a233c8 modules-initfs " diff --git a/device/testing/device-amlogic-tvbox/boot-image.its b/device/testing/device-amlogic-tvbox/boot-image.its new file mode 100644 index 000000000..1c2003ab9 --- /dev/null +++ b/device/testing/device-amlogic-tvbox/boot-image.its @@ -0,0 +1,45 @@ +/dts-v1/; + +/ { + description = "Amlogic Generic TV Box FIT Image"; + #address-cells = <1>; + + images { + kernel { + description = "Kernel"; + data = /incbin/("vmlinuz"); + type = "kernel"; + arch = "arm64"; + os = "linux"; + compression = "none"; + load = <0x1080000>; + entry = <0x1080000>; + }; + fdt { + description = "DTB"; + data = /incbin/("[[[DEVICETREE]]]"); + type = "flat_dt"; + compression = "none"; + arch = "arm64"; + }; + initrd { + description = "Initramfs image"; + data = /incbin/("initramfs"); + type = "ramdisk"; + arch = "arm64"; + os = "linux"; + }; + + }; + + configurations { + default = "standard"; + standard { + description = "Standard Boot"; + kernel = "kernel"; + fdt = "fdt"; + ramdisk = "initrd"; + }; + }; + +}; diff --git a/device/testing/device-amlogic-tvbox/deviceinfo b/device/testing/device-amlogic-tvbox/deviceinfo index b9058ebbd..a656101cf 100644 --- a/device/testing/device-amlogic-tvbox/deviceinfo +++ b/device/testing/device-amlogic-tvbox/deviceinfo @@ -31,6 +31,10 @@ deviceinfo_kernel_cmdline="console=ttyAML0,115200n8" # can just use extlinux. deviceinfo_generate_extlinux_config="true" +# For other devices where a FIT image is supported, generate one +deviceinfo_generate_uboot_fit_images="true" +deviceinfo_uboot_boardname="amlogic-tvbox" + # For the rest, generate a uImage. deviceinfo_generate_legacy_uboot_initfs="true" deviceinfo_legacy_uboot_load_address="0x1080000"