diff --git a/aarch64-boards b/aarch64-boards new file mode 100644 index 0000000000000000000000000000000000000000..a38107cac202f2e7b2f07354b432bb955cfb22a9 --- /dev/null +++ b/aarch64-boards @@ -0,0 +1,86 @@ +a64-olinuxino +amarula_a64_relic +apple_m1 +bananapi_m2_plus_h5 +bananapi_m64 +beelink_gs1 +dragonboard410c +dragonboard820c +evb-rk3328 +evb-rk3399 +ficus-rk3399 +firefly-rk3399 +geekbox +hikey +khadas-edge-captain-rk3399 +khadas-edge-rk3399 +khadas-edge-v-rk3399 +khadas-vim +khadas-vim2 +khadas-vim3 +khadas-vim3l +leez-rk3399 +libretech-ac +libretech_all_h3_cc_h5 +libretech_all_h3_it_h5 +libretech_all_h5_cc_h5 +libretech-cc +mvebu_espressobin-88f3720 +mvebu_mcbin-88f8040 +nanopc-t4-rk3399 +nanopi_a64 +nanopi-k2 +nanopi-m4-2gb-rk3399 +nanopi-m4b-rk3399 +nanopi-m4-rk3399 +nanopi_neo2 +nanopi-neo4-rk3399 +nanopi_neo_plus2 +nanopi_r1s_h5 +nanopi-r2s-rk3328 +nanopi-r4s-rk3399 +odroid-c2 +orangepi_3 +orangepi_lite2 +orangepi_one_plus +orangepi_pc2 +orangepi_prime +orangepi-rk3399 +orangepi_win +orangepi_zero2 +orangepi_zero_plus +orangepi_zero_plus2 +p212 +p2371-2180 +p2771-0000-500 +p3450-0000 +pine64-lts +pine64_plus +pinebook +pinebook-pro-rk3399 +pinephone-pro-rk3399 +pine_h64 +pinephone +pinetab +poplar +puma-rk3399 +roc-cc-rk3328 +rock64-rk3328 +rock960-rk3399 +rock-pi-4c-rk3399 +rock-pi-4-rk3399 +rock-pi-e-rk3328 +rock-pi-n10-rk3399pro +rockpro64-rk3399 +roc-pc-mezzanine-rk3399 +roc-pc-rk3399 +rpi_3 +rpi_4 +rpi_arm64 +starqltechn +sopine_baseboard +tanix_tx6 +teres_i +turris_mox +vexpress_aemv8a_juno +xilinx_zynqmp_virt diff --git a/u-boot-2022.04.tar.bz2 b/u-boot-2022.04.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..6fd11178296b16d66f7408adf22ab7a5bbe88f9b Binary files /dev/null and b/u-boot-2022.04.tar.bz2 differ diff --git a/uboot-tools.spec b/uboot-tools.spec new file mode 100644 index 0000000000000000000000000000000000000000..6e2d8e17bf4f926afd3fb33d1c74ba078f395a9c --- /dev/null +++ b/uboot-tools.spec @@ -0,0 +1,211 @@ +%define anolis_release 1 +%bcond_without toolsonly + +Name: uboot-tools +Version: 2022.04 +Release: %{anolis_release}%{?dist} +Summary: U-Boot utilities +License: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+ +URL: http://www.denx.de/wiki/U-Boot + +ExcludeArch: s390x +Source0: https://ftp.denx.de/pub/u-boot/u-boot-%{version}%{?candidate:-%{candidate}}.tar.bz2 +Source1: aarch64-boards + +BuildRequires: bc +BuildRequires: bison +BuildRequires: dtc +BuildRequires: flex +BuildRequires: gcc +BuildRequires: gnutls-devel +BuildRequires: libuuid-devel +BuildRequires: make +BuildRequires: ncurses-devel +BuildRequires: openssl-devel +BuildRequires: perl-interpreter +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-libfdt +BuildRequires: SDL-devel +BuildRequires: swig +%ifarch aarch64 +BuildRequires: arm-trusted-firmware-armv8 +%endif +Requires: dtc + +%description +This package contains a few U-Boot utilities - mkimage for creating boot images +and fw_printenv/fw_setenv for manipulating the boot environment variables. + +%if %{with toolsonly} +%ifarch aarch64 +%package -n uboot-images-armv8 +Summary: U-Boot firmware images for aarch64 boards +BuildArch: noarch + +%description -n uboot-images-armv8 +U-Boot firmware binaries for aarch64 boards +%endif + +%endif + +%prep +%autosetup -p1 -n u-boot-%{version}%{?candidate:-%{candidate}} + +cp %SOURCE1 . + +%build +mkdir builds + +%make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" tools-only_defconfig O=builds/ +%make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" tools-all O=builds/ + +%if %{with toolsonly} +# U-Boot device firmwares don't currently support LTO +%define _lto_cflags %{nil} + +%ifarch aarch64 +for board in $(cat %{_arch}-boards) +do + echo "Building board: $board" + mkdir builds/$(echo $board)/ + + # ATF selection, needs improving, suggestions of ATF SoC to Board matrix welcome + sun50i=(a64-olinuxino amarula_a64_relic bananapi_m2_plus_h5 bananapi_m64 libretech_all_h3_cc_h5 nanopi_a64 nanopi_neo2 nanopi_neo_plus2 orangepi_pc2 orangepi_prime orangepi_win orangepi_zero_plus orangepi_zero_plus2 pine64-lts pine64_plus pinebook pinephone pinetab sopine_baseboard teres_i) + if [[ " ${sun50i[*]} " == *" $board "* ]]; then + echo "Board: $board using sun50i_a64" + cp /usr/share/arm-trusted-firmware/sun50i_a64/* builds/$(echo $board)/ + fi + sun50h6=(beelink_gs1 orangepi_3 orangepi_lite2 orangepi_one_plus orangepi_zero2 pine_h64 tanix_tx6) + if [[ " ${sun50h6[*]} " == *" $board "* ]]; then + echo "Board: $board using sun50i_h6" + cp /usr/share/arm-trusted-firmware/sun50i_h6/* builds/$(echo $board)/ + fi + rk3328=(evb-rk3328 nanopi-r2s-rk3328 rock64-rk3328 rock-pi-e-rk3328 roc-cc-rk3328) + if [[ " ${rk3328[*]} " == *" $board "* ]]; then + echo "Board: $board using rk3328" + cp /usr/share/arm-trusted-firmware/rk3328/* builds/$(echo $board)/ + fi + rk3399=(evb-rk3399 ficus-rk3399 firefly-rk3399 khadas-edge-captain-rk3399 khadas-edge-rk3399 khadas-edge-v-rk3399 leez-rk3399 nanopc-t4-rk3399 nanopi-m4-2gb-rk3399 nanopi-m4b-rk3399 nanopi-m4-rk3399 nanopi-neo4-rk3399 nanopi-r4s-rk3399 orangepi-rk3399 pinebook-pro-rk3399 pinephone-pro-rk3399 puma-rk3399 rock960-rk3399 rock-pi-4c-rk3399 rock-pi-4-rk3399 rock-pi-n10-rk3399pro rockpro64-rk3399 roc-pc-mezzanine-rk3399 roc-pc-rk3399) + if [[ " ${rk3399[*]} " == *" $board "* ]]; then + echo "Board: $board using rk3399" + cp /usr/share/arm-trusted-firmware/rk3399/* builds/$(echo $board)/ + fi + # End ATF + + make $(echo $board)_defconfig O=builds/$(echo $board)/ + %make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" O=builds/$(echo $board)/ + + # build spi images for rockchip boards with SPI flash + rkspi=(evb-rk3399 khadas-edge-captain-rk3399 khadas-edge-rk3399 khadas-edge-v-rk3399 nanopc-t4-rk3399 pinebook-pro-rk3399 pinephone-pro-rk3399 rockpro64-rk3399 roc-pc-mezzanine-rk3399 roc-pc-rk3399) + if [[ " ${rkspi[*]} " == *" $board "* ]]; then + echo "Board: $board with SPI flash" + builds/$(echo $board)/tools/mkimage -n rk3399 -T rkspi -d builds/$(echo $board)/tpl/u-boot-tpl.bin:builds/$(echo $board)/spl/u-boot-spl.bin builds/$(echo $board)/idbloader.spi + fi + # build spi, and uart images for mvebu boards + # mvebu=(clearfog helios4 turris_omnia) + if [[ " ${mvebu[*]} " == *" $board "* ]]; then + for target in spi uart + do + echo "Board: $board Target: $target" + sed -i -e '/CONFIG_MVEBU_SPL_BOOT_DEVICE_/d' configs/$(echo $board)_defconfig + echo CONFIG_MVEBU_SPL_BOOT_DEVICE_${target^^}=y >> configs/$(echo $board)_defconfig + make $(echo $board)_defconfig O=builds/$(echo $board-$target)/ + %make_build HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" O=builds/$(echo $board-$target)/ + done + fi +done + +%endif +%endif + +%install +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_mandir}/man1 +mkdir -p %{buildroot}%{_datadir}/uboot/ + +%if %{with toolsonly} +%ifarch aarch64 +for board in $(ls builds) +do + mkdir -p %{buildroot}%{_datadir}/uboot/$(echo $board)/ + for file in u-boot.bin u-boot.dtb u-boot.img u-boot-dtb.img u-boot.itb u-boot-sunxi-with-spl.bin u-boot-rockchip.bin idbloader.img idbloader.spi spl/boot.bin spl/sunxi-spl.bin + do + if [ -f builds/$(echo $board)/$(echo $file) ]; then + install -p -m 0644 builds/$(echo $board)/$(echo $file) %{buildroot}%{_datadir}/uboot/$(echo $board)/ + fi + done +done +%endif + +# Bit of a hack to remove binaries we don't use as they're large +%ifarch aarch64 +for board in $(ls builds) +do + rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot.dtb + if [ -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot-sunxi-with-spl.bin ]; then + rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot{,-dtb}.* + fi + if [ -f %{buildroot}%{_datadir}/uboot/$(echo $board)/MLO ]; then + rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot.bin + fi + if [ -f %{buildroot}%{_datadir}/uboot/$(echo $board)/SPL ]; then + rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot.bin + fi + if [ -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot.imx ]; then + rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot.bin + fi + if [ -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot-spl.kwb ]; then + rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot.* + rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot-spl.bin + fi + if [ -f %{buildroot}%{_datadir}/uboot/$(echo $board)/idbloader.img ]; then + rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot.bin + rm -f %{buildroot}%{_datadir}/uboot/$(echo $board)/u-boot{,-dtb}.img + fi +done +%endif +%endif + +for tool in bmp_logo dumpimage env/fw_printenv fit_check_sign fit_info gdb/gdbcont gdb/gdbsend gen_eth_addr gen_ethaddr_crc img2srec mkenvimage mkimage mksunxiboot ncb proftool sunxi-spl-image-builder ubsha1 xway-swap-bytes kwboot +do +install -p -m 0755 builds/tools/$tool %{buildroot}%{_bindir} +done +install -p -m 0644 doc/mkimage.1 %{buildroot}%{_mandir}/man1 + +install -p -m 0755 builds/tools/env/fw_printenv %{buildroot}%{_bindir} +( cd %{buildroot}%{_bindir}; ln -sf fw_printenv fw_setenv ) + +# Copy some useful docs over +mkdir -p builds/docs +cp -p board/hisilicon/hikey/README builds/docs/README.hikey +cp -p board/Marvell/db-88f6820-gp/README builds/docs/README.mvebu-db-88f6820 +cp -p board/rockchip/evb_rk3399/README builds/docs/README.evb_rk3399 +cp -p board/solidrun/clearfog/README builds/docs/README.clearfog +cp -p board/solidrun/mx6cuboxi/README builds/docs/README.mx6cuboxi +cp -p board/sunxi/README.sunxi64 builds/docs/README.sunxi64 +cp -p board/sunxi/README.nand builds/docs/README.sunxi-nand +cp -p board/ti/omap5_uevm/README builds/docs/README.omap5_uevm +cp -p board/udoo/README builds/docs/README.udoo +cp -p board/wandboard/README builds/docs/README.wandboard +cp -p board/warp/README builds/docs/README.warp +cp -p board/warp7/README builds/docs/README.warp7 + +%files +%doc README doc/README.kwbimage doc/develop/distro.rst doc/README.gpt +%doc doc/README.odroid doc/README.rockchip doc/develop/uefi doc/uImage.FIT doc/arch/arm64.rst +%doc builds/docs/* doc/board/amlogic/ doc/board/rockchip/ doc/board/ti/am335x_evm.rst +%{_bindir}/* +%{_mandir}/man1/mkimage.1* +%dir %{_datadir}/uboot/ + +%if %{with toolsonly} +%ifarch aarch64 +%files -n uboot-images-armv8 +%{_datadir}/uboot/* +%endif +%endif + +%changelog +* Wed Apr 13 2022 Chunmei Xu - 2022.04-1 +- init from upstream