#global candidate rc0 # Binaries not used in standard manner so debuginfo is useless %global debug_package %{nil} %global rel 1 Name: arm-trusted-firmware Version: 2.8 Release: %mkrel %{rel}%{?candidate:.%{candidate}} Summary: ARM Trusted Firmware Group: System/Kernel and hardware License: BSD URL: https://github.com/ARM-software/arm-trusted-firmware/wiki Source0: https://github.com/ARM-software/arm-trusted-firmware/archive/v%{version}%{?candidate:-%{candidate}}.tar.gz#/%{name}-%{version}%{?candidate:-%{candidate}}.tar.gz Source1: aarch64-bl31 Patch0: atf-2.8-fix-linking.patch # At the moment we're only building on aarch64 ExclusiveArch: aarch64 BuildRequires: dtc BuildRequires: gcc # This is needed for rk3399 which while aarch64 has an onboard Cortex-M0 base PMU BuildRequires: gcc-arm-linux-gnu %description ARM Trusted firmware is a reference implementation of secure world software for ARMv8-A including Exception Level 3 (EL3) software. It provides a number of standard ARM interfaces like Power State Coordination (PSCI), Trusted Board Boot Requirements (TBBR) and Secure Monitor. Note: the contents of this package are generally just consumed by bootloaders such as u-boot. As such the binaries aren't of general interest to users. %ifarch aarch64 %package -n arm-trusted-firmware-armv8 Summary: ARM Trusted Firmware for ARMv8-A %description -n arm-trusted-firmware-armv8 ARM Trusted Firmware binaries for various ARMv8-A SoCs. Note: the contents of this package are generally just consumed by bootloaders such as u-boot. As such the binaries aren't of general interest to users. %endif %prep %autosetup -n %{name}-%{version}%{?candidate:-%{candidate}} -p1 cp %SOURCE1 . # Fix the name of the cross compile for the rk3399 Cortex-M0 PMU sed -i 's/arm-none-eabi-/arm-linux-gnu-/' plat/rockchip/rk3399/drivers/m0/Makefile %build %undefine _auto_set_build_flags %ifarch aarch64 for soc in $(cat %{_arch}-bl31) do # At the moment we're only making the secure firmware (bl31) make HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" PLAT=$(echo $soc) bl31 done %endif %install mkdir -p %{buildroot}%{_datadir}/%{name} %ifarch aarch64 # At the moment we just support adding bl31.bin for soc in $(cat %{_arch}-bl31) do mkdir -p %{buildroot}%{_datadir}/%{name}/$(echo $soc)/ for file in bl31.bin do if [ -f build/$(echo $soc)/release/$(echo $file) ]; then install -p -m 0644 build/$(echo $soc)/release/$(echo $file) /%{buildroot}%{_datadir}/%{name}/$(echo $soc)/ fi done done # Rockchips wants the bl31.elf, plus rk3399 wants power management co-processor bits for soc in rk3399 rk3368 rk3328 do mkdir -p %{buildroot}%{_datadir}/%{name}/$(echo $soc)/ for file in bl31/bl31.elf m0/rk3399m0.bin m0/rk3399m0.elf do if [ -f build/$(echo $soc)/release/$(echo $file) ]; then install -p -m 0644 build/$(echo $soc)/release/$(echo $file) /%{buildroot}%{_datadir}/%{name}/$(echo $soc)/ fi done done %endif %ifarch aarch64 %files -n arm-trusted-firmware-armv8 %license license.rst %doc readme.rst %{_datadir}/%{name} %endif %changelog * Sat Mar 25 2023 pterjan <pterjan> 2.8-1.mga9 + Revision: 1950338 - Add missing group - Update to 2.8 and sync with Fedora + wally <wally> - imported package arm-trusted-firmware based on .spec from Fedora