From 3d00a8089ed6fd5875be75733adc2da3768ba252 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Wed, 8 Jan 2020 19:37:35 +0100 Subject: kernels: add linux-libre-aarch64 Some System On a Chip (SOC) have 64bit ARM CPUs that are also capable of running arm 32bit applications. Since: - Parabola doesn't have an aarch64 package repository yet - The devicetree of devices using such System On a Chip are not compiled when using the armv7 defconfig - Drivers or other platform support code for such hardware might also not be compiled in with the armv7 defconfig - This approach has already been tested with the linux-libre-x86_64 kenrel It's then a good idea to add support for such devices by adding an arrch64 kernel as the maintenance and work is minimal. The downside is that the external kernel modules that are either compiled against the kernel or using DKMS will not work by default. It's however still possible to compile them by hand by using ARCH= and CROSS_COMPILE= as it is done for this kernel, so it should be relatively easy to add support for the non-dkms modules. As for DKMS, someone would need to look into it to understand how to pass it the make flags (ARCH= and CROSS_COMPILE=) that are required to automatically build modules. Signed-off-by: Denis 'GNUtoo' Carikli --- kernels/linux-libre-arm64/kernel.its | 217 +++++++++++++++++++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 kernels/linux-libre-arm64/kernel.its (limited to 'kernels/linux-libre-arm64/kernel.its') diff --git a/kernels/linux-libre-arm64/kernel.its b/kernels/linux-libre-arm64/kernel.its new file mode 100644 index 000000000..66114a49e --- /dev/null +++ b/kernels/linux-libre-arm64/kernel.its @@ -0,0 +1,217 @@ +/dts-v1/; + +/ { + description = "Chrome OS kernel image with one or more FDT blobs"; + #address-cells = <1>; + images { + kernel@1 { + description = "kernel"; + data = /incbin/("arch/arm/boot/zImage"); + type = "kernel_noload"; + arch = "arm"; + os = "linux"; + compression = "none"; + load = <0>; + entry = <0>; + }; + fdt@1 { + description = "exynos5250-snow.dtb"; + data = /incbin/("arch/arm/boot/dts/exynos5250-snow.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@2 { + description = "exynos5250-snow-rev5.dtb"; + data = /incbin/("arch/arm/boot/dts/exynos5250-snow-rev5.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@3 { + description = "exynos5250-spring.dtb"; + data = /incbin/("arch/arm/boot/dts/exynos5250-spring.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@4 { + description = "exynos5800-peach-pi.dtb"; + data = /incbin/("arch/arm/boot/dts/exynos5800-peach-pi.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1{ + algo = "sha1"; + }; + }; + fdt@5 { + description = "exynos5420-peach-pit.dtb"; + data = /incbin/("arch/arm/boot/dts/exynos5420-peach-pit.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@6 { + description = "rk3288-veyron-brain.dtb"; + data = /incbin/("arch/arm/boot/dts/rk3288-veyron-brain.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@7 { + description = "rk3288-veyron-jaq.dtb"; + data = /incbin/("arch/arm/boot/dts/rk3288-veyron-jaq.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@8 { + description = "rk3288-veyron-jerry.dtb"; + data = /incbin/("arch/arm/boot/dts/rk3288-veyron-jerry.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@9 { + description = "rk3288-veyron-mickey.dtb"; + data = /incbin/("arch/arm/boot/dts/rk3288-veyron-mickey.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@10 { + description = "rk3288-veyron-minnie.dtb"; + data = /incbin/("arch/arm/boot/dts/rk3288-veyron-minnie.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@11 { + description = "rk3288-veyron-pinky.dtb"; + data = /incbin/("arch/arm/boot/dts/rk3288-veyron-pinky.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1{ + algo = "sha1"; + }; + }; + fdt@12 { + description = "rk3288-veyron-speedy.dtb"; + data = /incbin/("arch/arm/boot/dts/rk3288-veyron-speedy.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@13 { + description = "tegra124-nyan-big.dtb"; + data = /incbin/("arch/arm/boot/dts/tegra124-nyan-big.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + fdt@14 { + description = "tegra124-nyan-blaze.dtb"; + data = /incbin/("arch/arm/boot/dts/tegra124-nyan-blaze.dtb"); + type = "flat_dt"; + arch = "arm"; + compression = "none"; + hash@1 { + algo = "sha1"; + }; + }; + }; + configurations { + default = "conf@1"; + conf@1 { + kernel = "kernel@1"; + fdt = "fdt@1"; + }; + conf@2 { + kernel = "kernel@1"; + fdt = "fdt@2"; + }; + conf@3 { + kernel = "kernel@1"; + fdt = "fdt@3"; + }; + conf@4 { + kernel = "kernel@1"; + fdt = "fdt@4"; + }; + conf@5 { + kernel = "kernel@1"; + fdt = "fdt@5"; + }; + conf@6 { + kernel = "kernel@1"; + fdt = "fdt@6"; + }; + conf@7 { + kernel = "kernel@1"; + fdt = "fdt@7"; + }; + conf@8 { + kernel = "kernel@1"; + fdt = "fdt@8"; + }; + conf@9 { + kernel = "kernel@1"; + fdt = "fdt@9"; + }; + conf@10 { + kernel = "kernel@1"; + fdt = "fdt@10"; + }; + conf@11 { + kernel = "kernel@1"; + fdt = "fdt@11"; + }; + conf@12 { + kernel = "kernel@1"; + fdt = "fdt@12"; + }; + conf@13 { + kernel = "kernel@1"; + fdt = "fdt@13"; + }; + conf@14 { + kernel = "kernel@1"; + fdt = "fdt@14"; + }; + }; +}; -- cgit v1.2.3