e91a3ca
%global candidate rc1
cd59145
db63f3b
Name:      uboot-tools
e91a3ca
Version:   2018.07
177a339
Release:   0.2%{?candidate:.%{candidate}}%{?dist}
db63f3b
Summary:   U-Boot utilities
db63f3b
License:   GPLv2+ BSD LGPL-2.1+ LGPL-2.0+
db63f3b
URL:       http://www.denx.de/wiki/U-Boot
00b978c
db63f3b
Source0:   ftp://ftp.denx.de/pub/u-boot/u-boot-%{version}%{?candidate:-%{candidate}}.tar.bz2
e5757f3
Source1:   arm-boards
e5757f3
Source2:   arm-chromebooks
e5757f3
Source3:   aarch64-boards
e5757f3
Source4:   aarch64-chromebooks
262b414
Source5:   10-devicetree.install
50452b4
d1eb73c
# Fedoraisms patches
5b6fc3b
Patch1:    uefi-use-Fedora-specific-path-name.patch
d1eb73c
d1eb73c
# general fixes
5b6fc3b
Patch2:    uefi-distro-load-FDT-from-any-partition-on-boot-device.patch
d1eb73c
Patch3:    usb-kbd-fixes.patch
fb6a349
fb6a349
# Board fixes and enablement
177a339
Patch10:   sunxi-fix-eMMC-stability-issues-on-A64.patch
177a339
Patch11:   mx6cuboxi-consolidate-board-detection-and-add-som-revision-checking.patch
d8dcaea
Patch12:   dragonboard-fixes.patch
18c86f4
Patch13:   rockchip-make_fit_atf-fix-warning-unit_address_vs_reg.patch
177a339
Patch14:   rockchip-make_fit_atf-use-elf-entry-point.patch
177a339
Patch15:   tegra186-jetson-tx2-disable-onboard-emmc.patch
177a339
Patch16:   tegra-nyan-big-Update-CONFIG_SYS_TEXT-to-the-default.patch
b408405
#Patch19:   rpi-Enable-using-the-DT-provided-by-the-Raspberry-Pi.patch
ffcc253
ffcc253
# Patch99:   mvebu-enable-generic-distro-boot-config.patch
c5f597c
c5f597c
BuildRequires:  bc
c5f597c
BuildRequires:  dtc
6deb24c
BuildRequires:  gcc make
e91a3ca
BuildRequires:  flex bison
6deb24c
BuildRequires:  git-core
8018212
BuildRequires:  openssl-devel
e5757f3
BuildRequires:  python2-devel
e5757f3
BuildRequires:  python2-setuptools
e5757f3
BuildRequires:  python2-libfdt
d61be86
BuildRequires:  python2-pyelftools
00dab5f
BuildRequires:  SDL-devel
e5757f3
BuildRequires:  swig
e5757f3
%ifarch %{arm} aarch64
e5757f3
BuildRequires:  vboot-utils
e5757f3
%endif
c199aaa
%ifarch aarch64
c199aaa
BuildRequires:  arm-trusted-firmware-armv8
c199aaa
%endif
e51ab96
100bc5a
Requires:       dtc
262b414
Requires:       systemd
062ad92
5c9ad74
%description
5c9ad74
This package contains a few U-Boot utilities - mkimage for creating boot images
5c9ad74
and fw_printenv/fw_setenv for manipulating the boot environment variables.
5c9ad74
e55ef91
%ifarch aarch64
018a362
%package     -n uboot-images-armv8
e5757f3
Summary:     u-boot bootloader images for aarch64 boards
e55ef91
Requires:    uboot-tools
1ed2cd2
BuildArch:   noarch
e55ef91
018a362
%description -n uboot-images-armv8
e5757f3
u-boot bootloader binaries for aarch64 boards
e55ef91
%endif
e55ef91
062ad92
%ifarch %{arm}
07dc9b8
%package     -n uboot-images-armv7
018a362
Summary:     u-boot bootloader images for armv7 boards
ac05fc2
Requires:    uboot-tools
1ed2cd2
BuildArch:   noarch
ac05fc2
07dc9b8
%description -n uboot-images-armv7
07dc9b8
u-boot bootloader binaries for armv7 boards
2c521c5
%endif
1b14295
2c521c5
%ifarch %{arm} aarch64
c199aaa
%package     -n uboot-images-elf
2c521c5
Summary:     u-boot bootloader images for armv7 boards
2c521c5
Requires:    uboot-tools
c199aaa
Obsoletes:   uboot-images-qemu
c199aaa
Provides:    uboot-images-qemu
2c521c5
c199aaa
%description -n uboot-images-elf
c199aaa
u-boot bootloader ELF binaries for use with qemu and other platforms
062ad92
%endif
062ad92
5c9ad74
%prep
584544f
%setup -q -n u-boot-%{version}%{?candidate:-%{candidate}}
e55ef91
9a63218
git init
9a63218
git config --global gc.auto 0
50452b4
git config user.email "noone@example.com" 
50452b4
git config user.name "no one" 
50452b4
git add . 
50452b4
git commit -a -q -m "%{version} baseline" 
50452b4
git am %{patches} 
50452b4
git config --unset user.email 
50452b4
git config --unset user.name 
64a5c15
rm -rf .git
64a5c15
e5757f3
cp %SOURCE1 %SOURCE2 %SOURCE3 %SOURCE4 .
e5757f3
22628c2
%build
062ad92
mkdir builds
5c9ad74
e5757f3
%ifarch aarch64 %{arm}
e5757f3
for board in $(cat %{_arch}-boards)
1ed2cd2
do
e5757f3
  echo "Building board: $board"
e5757f3
  mkdir builds/$(echo $board)/
08fc177
  # ATF selection, needs improving, suggestions of ATF SoC to Board matrix welcome
00dab5f
  sun50i=(pine64_plus a64-olinuxino bananapi_m64 nanopi_a64 nanopi_neo2 orangepi_pc2 orangepi_prime orangepi_win orangepi_zero_plus2 sopine_baseboard)
08fc177
  if [[ " ${sun50i[*]} " == *" $board "* ]]; then
08fc177
    echo "Board: $board using sun50iw1p1"
d61be86
    cp /usr/share/arm-trusted-firmware/sun50iw1p1/* builds/$(echo $board)/
e5757f3
  fi
d61be86
  rk3399=(evb-rk3399 firefly-rk3399)
00b978c
  if [[ " ${rk3399[*]} " == *" $board "* ]]; then
00b978c
    echo "Board: $board using rk3399"
d61be86
    cp /usr/share/arm-trusted-firmware/rk3399/* builds/$(echo $board)/
00b978c
  fi
00b978c
  # End ATF
e5757f3
  make $(echo $board)_defconfig O=builds/$(echo $board)/
e5757f3
  make HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" %{?_smp_mflags} V=1 O=builds/$(echo $board)/
d61be86
  rk33xx=(evb-rk3399 firefly-rk3399)
d61be86
  if [[ " ${rk33xx[*]} " == *" $board "* ]]; then
d61be86
    echo "Board: $board using rk33xx"
d61be86
    make HOSTCC="gcc $RPM_OPT_FLAGS" CROSS_COMPILE="" u-boot.itb V=1 O=builds/$(echo $board)/
d8dcaea
    builds/$(echo $board)/tools/mkimage -n rk3399 -T rksd  -d builds/$(echo $board)/spl/u-boot-spl.bin builds/$(echo $board)/spl_sd.img
d8dcaea
    builds/$(echo $board)/tools/mkimage -n rk3399 -T rkspi -d builds/$(echo $board)/spl/u-boot-spl.bin builds/$(echo $board)/spl_spi.img
d61be86
  fi
1ed2cd2
done
b28585a
062ad92
%endif
cef7316
1ed2cd2
make HOSTCC="gcc $RPM_OPT_FLAGS" %{?_smp_mflags} CROSS_COMPILE="" defconfig V=1 O=builds/
1ed2cd2
make HOSTCC="gcc $RPM_OPT_FLAGS" %{?_smp_mflags} CROSS_COMPILE="" tools-all V=1 O=builds/
5c9ad74
5c9ad74
%install
5c9ad74
mkdir -p $RPM_BUILD_ROOT%{_bindir}
5c9ad74
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}
5e75bee
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
1ed2cd2
mkdir -p $RPM_BUILD_ROOT%{_datadir}/uboot/
47938e1
e55ef91
%ifarch aarch64
e5757f3
for board in $(cat %{_arch}-boards)
980e20b
do
980e20b
mkdir -p $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/
c199aaa
 for file in spl/*spl.bin u-boot.bin u-boot.dtb u-boot-dtb.img u-boot.img u-boot.itb spl/sunxi-spl.bin
980e20b
 do
980e20b
  if [ -f builds/$(echo $board)/$(echo $file) ]; then
980e20b
    install -p -m 0644 builds/$(echo $board)/$(echo $file) $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/
980e20b
  fi
980e20b
 done
980e20b
done
e55ef91
%endif
e55ef91
47938e1
%ifarch %{arm}
e5757f3
for board in $(cat %{_arch}-boards)
4bad927
do
4bad927
mkdir -p $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/
98d8374
 for file in MLO SPL spl/arndale-spl.bin spl/origen-spl.bin spl/smdkv310-spl.bin spl/*spl.bin u-boot.bin u-boot.dtb u-boot-dtb-tegra.bin u-boot.img u-boot.imx u-boot-nodtb-tegra.bin u-boot-spl.kwb u-boot-sunxi-with-spl.bin
35c9612
 do
35c9612
  if [ -f builds/$(echo $board)/$(echo $file) ]; then
6392274
    install -p -m 0644 builds/$(echo $board)/$(echo $file) $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/
35c9612
  fi
35c9612
 done
df9dafb
4bad927
done
ac05fc2
32784ad
# Bit of a hack to remove binaries we don't use as they're large
e5757f3
for board in $(cat %{_arch}-boards)
32784ad
do
32784ad
  if [ -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot-sunxi-with-spl.bin ]; then
32784ad
    rm -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.*
32784ad
  fi
32784ad
  if [ -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/MLO ]; then
32784ad
    rm -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.bin
32784ad
  fi
32784ad
  if [ -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/SPL ]; then
32784ad
    rm -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.bin
32784ad
  fi
32784ad
  if [ -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.imx ]; then
32784ad
    rm -f $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/u-boot.bin
32784ad
  fi
32784ad
done
1ed2cd2
%endif
07dc9b8
980e20b
%ifarch aarch64
e5757f3
for board in $(cat %{_arch}-boards)
980e20b
do
980e20b
mkdir -p $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/
d8dcaea
 for file in MLO SPL spl/arndale-spl.bin spl/origen-spl.bin spl/smdkv310-spl.bin u-boot.bin u-boot.dtb u-boot-dtb-tegra.bin u-boot.img u-boot.imx u-boot-nodtb-tegra.bin u-boot-spl.kwb u-boot-sunxi-with-spl.bin spl_sd.img spl_spi.img
980e20b
 do
980e20b
  if [ -f builds/$(echo $board)/$(echo $file) ]; then
980e20b
    install -p -m 0644 builds/$(echo $board)/$(echo $file) $RPM_BUILD_ROOT%{_datadir}/uboot/$(echo $board)/
980e20b
  fi
980e20b
 done
980e20b
done
980e20b
%endif
980e20b
c199aaa
# ELF binaries
2c521c5
%ifarch %{arm}
2c521c5
for board in vexpress_ca15_tc2 vexpress_ca9x4
2c521c5
do
c199aaa
mkdir -p $RPM_BUILD_ROOT%{_datadir}/uboot/elf/$(echo $board)/
2c521c5
 for file in u-boot
2c521c5
 do
2c521c5
  if [ -f builds/$(echo $board)/$(echo $file) ]; then
c199aaa
    install -p -m 0644 builds/$(echo $board)/$(echo $file) $RPM_BUILD_ROOT%{_datadir}/uboot/elf/$(echo $board)/
2c521c5
  fi
2c521c5
 done
2c521c5
done
2c521c5
%endif
2c521c5
2c521c5
%ifarch aarch64
e5757f3
for board in $(cat %{_arch}-boards)
2c521c5
do
c199aaa
mkdir -p $RPM_BUILD_ROOT%{_datadir}/uboot/elf/$(echo $board)/
2c521c5
 for file in u-boot
2c521c5
 do
2c521c5
  if [ -f builds/$(echo $board)/$(echo $file) ]; then
c199aaa
    install -p -m 0644 builds/$(echo $board)/$(echo $file) $RPM_BUILD_ROOT%{_datadir}/uboot/elf/$(echo $board)/
2c521c5
  fi
2c521c5
 done
2c521c5
done
2c521c5
%endif
2c521c5
c199aaa
for tool in bmp_logo dumpimage easylogo/easylogo 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
f5cbc6d
do
1ed2cd2
install -p -m 0755 builds/tools/$tool $RPM_BUILD_ROOT%{_bindir}
f5cbc6d
done
5e75bee
install -p -m 0644 doc/mkimage.1 $RPM_BUILD_ROOT%{_mandir}/man1
5e75bee
1ed2cd2
install -p -m 0755 builds/tools/env/fw_printenv $RPM_BUILD_ROOT%{_bindir}
5c9ad74
( cd $RPM_BUILD_ROOT%{_bindir}; ln -sf fw_printenv fw_setenv )
5c9ad74
5c9ad74
install -p -m 0644 tools/env/fw_env.config $RPM_BUILD_ROOT%{_sysconfdir}
5c9ad74
262b414
# systemd kernel-install script for device tree
262b414
mkdir -p $RPM_BUILD_ROOT/lib/kernel/install.d/
262b414
install -p -m 0755 %{SOURCE5} $RPM_BUILD_ROOT/lib/kernel/install.d/
262b414
140b8ce
# Copy sone useful docs over
c199aaa
mkdir -p builds/docs
c199aaa
cp -p board/amlogic/odroid-c2/README builds/docs/README.odroid-c2
c199aaa
cp -p board/hisilicon/hikey/README builds/docs/README.hikey
c199aaa
cp -p board/hisilicon/hikey/README builds/docs/README.hikey
c199aaa
cp -p board/Marvell/db-88f6820-gp/README builds/docs/README.mvebu-db-88f6820
c199aaa
cp -p board/rockchip/evb_rk3399/README builds/docs/README.evb_rk3399
c199aaa
cp -p board/solidrun/clearfog/README builds/docs/README.clearfog
c199aaa
cp -p board/solidrun/mx6cuboxi/README builds/docs/README.mx6cuboxi
e5757f3
cp -p board/sunxi/README.sunxi64 builds/docs/README.sunxi64
c199aaa
cp -p board/sunxi/README.nand builds/docs/README.sunxi-nand
c199aaa
cp -p board/ti/am335x/README builds/docs/README.am335x
c199aaa
cp -p board/ti/omap5_uevm/README builds/docs/README.omap5_uevm
c199aaa
cp -p board/udoo/README builds/docs/README.udoo
c199aaa
cp -p board/wandboard/README builds/docs/README.wandboard
c199aaa
cp -p board/warp/README builds/docs/README.warp
c199aaa
cp -p board/warp7/README builds/docs/README.warp7
5c9ad74
5c9ad74
%files
140b8ce
%doc README doc/README.imximage doc/README.kwbimage doc/README.distro doc/README.gpt
1e40ecd
%doc doc/README.odroid doc/README.rockchip doc/README.uefi doc/uImage.FIT doc/README.arm64
910ee5c
%doc doc/README.chromium builds/docs/*
1ed2cd2
%{_bindir}/*
5e75bee
%{_mandir}/man1/mkimage.1*
262b414
/lib/kernel/install.d/10-devicetree.install
d98e5a7
%dir %{_datadir}/uboot/
5c9ad74
%config(noreplace) %{_sysconfdir}/fw_env.config
e55ef91
e55ef91
%ifarch aarch64
07dc9b8
%files -n uboot-images-armv8
1ed2cd2
%{_datadir}/uboot/*
c199aaa
%exclude %{_datadir}/uboot/elf
e55ef91
%endif
e55ef91
062ad92
%ifarch %{arm}
07dc9b8
%files -n uboot-images-armv7
1ed2cd2
%{_datadir}/uboot/*
c199aaa
%exclude %{_datadir}/uboot/elf
2c521c5
%endif
2c521c5
2c521c5
%ifarch %{arm} aarch64
c199aaa
%files -n uboot-images-elf
c199aaa
%{_datadir}/uboot/elf
062ad92
%endif
5c9ad74
5c9ad74
%changelog
177a339
* Fri Jun  8 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.07-0.2-rc1
177a339
- Update sunxi MMC patch series, Tegra Nyan patch, SolidRun i.MX6 SoM rev 1.5 patch
177a339
e91a3ca
* Tue Jun  5 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.07-0.1-rc1
e91a3ca
- 2018.07 RC1
e91a3ca
- Enable Turris Mox, BananaPi m2 Berry, some Libretech boards
e91a3ca
b408405
* Mon May  7 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.05-1
b408405
- 2018.05 GA
b408405
faff36c
* Wed May  2 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.05-0.5-rc3
faff36c
- Build Xilnix ZynqMP zcu100 (96boards Ultra96)
faff36c
18c86f4
* Tue May  1 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.05-0.4-rc3
18c86f4
- 2018.05 RC3
18c86f4
d8dcaea
* Thu Apr 26 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.05-0.3-rc2
d8dcaea
- uEFI improvements
d8dcaea
- Fixes for Rockchips rk33xx 64 bit devices
d8dcaea
- Build AllWinner 64 bit devices against new ATF
d8dcaea
a23bba7
* Tue Apr 17 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.05-0.2-rc2
a23bba7
- 2018.05 RC2
a23bba7
- Enable Raspberry Pi option to use firmware DT
a23bba7
a23bba7
* Sun Apr  8 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.05-0.1-rc1
e6c2070
- 2018.05 RC1
e6c2070
ffcc253
* Fri Apr  6 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-4
ffcc253
- Improvements for Raspberry Pi, AllWinner MMC perf, mvebu devices
ffcc253
7cac5dd
* Tue Mar 20 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-3
7cac5dd
- Fix issue with certain MMC cards on Raspberry Pi
7cac5dd
d7be359
* Fri Mar 16 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-2
d7be359
- Add support for Raspberry Pi 3+
d7be359
45ad967
* Tue Mar 13 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-1
45ad967
- 2018.03 GA
45ad967
d57c7e5
* Fri Mar  9 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.11.rc4
d57c7e5
- Enable support for Jetson TX2
d57c7e5
69973d4
* Thu Mar  8 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.10.rc4
69973d4
- Fix for Raspberry Pi 2 boot
69973d4
6deb24c
* Wed Mar  7 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.9.rc4
64787aa
- 2018.03 RC4
6deb24c
- Fixes for Raspberry Pi 3 boot
6deb24c
- Minor kernel install fixes
6deb24c
- Enable am335x_evm_usbspl for Beagle Pocket
64787aa
- DragonBoard patch rebase
64787aa
f59d42b
* Sun Mar  4 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.8.rc3
f59d42b
- Add support for SoM rev 1.5 to mx6cuboxi
94d0fce
- Rebuild for new ATF 1.5 rc0 release
f59d42b
d61be86
* Sun Feb 25 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.7.rc3
d61be86
- Build 64 bit Rockchips FIT images with ARM Trusted Firmware
d61be86
7cba8b3
* Tue Feb 20 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.6.rc3
7cba8b3
- 2018.03 RC3
7cba8b3
d61be86
* Fri Feb 16 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.5.rc2
38866e0
- A few upstream fixes
38866e0
d61be86
* Thu Feb 15 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.4.rc2
bcd4bd3
- Fix for GBps network on some AllWinner devices
bcd4bd3
ddd1aa1
* Tue Feb 13 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.3.rc2
ddd1aa1
- 2018.03 RC2
ddd1aa1
5b6fc3b
* Wed Feb  7 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.2.rc1
5b6fc3b
- Update uEFI patches
5b6fc3b
ad338c0
* Tue Jan 30 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.03-0.1.rc1
ad338c0
- 2018.03 RC1
ad338c0
ffcdd29
* Tue Jan  9 2018 Peter Robinson <pbrobinson@fedoraproject.org> 2018.01-1
ffcdd29
- 2018.01