# U-Boot: Pine64
# Maintainer: Kevin Mihelich <kevin@archlinuxarm.org>

buildarch=8

pkgname=uboot-pine64
pkgver=2016.05rc1
pkgrel=1
pkgdesc="U-Boot for Pine64"
arch=('armv7h')
url='http://www.denx.de/wiki/U-Boot/WebHome'
license=('GPL')
backup=('boot/boot.txt' 'boot/boot.scr')
makedepends=('bc' 'dtc' 'git')
install=${pkgname}.install
source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver/rc/-rc}.tar.bz2"
        '0001-arch-linux-arm-modifications.patch'
        'https://archlinuxarm.org/builder/src/pine/bl31.bin'
        'https://archlinuxarm.org/builder/src/pine/boot0.bin'
        'https://archlinuxarm.org/builder/src/pine/pine64_image.c'
        'https://archlinuxarm.org/builder/src/pine/scp.bin'
        'boot.txt'
        'mkscr')
md5sums=('aa190afb64ae4f59d1a02d351e4ceedd'
         '77cad572cf8d40a7c9c0c6a1dccd1ccf'
         '7af966e1c846879b511d73210cc8147f'
         'cbad13361ebef9b9e0897e1d42c69ba7'
         '4c2b592d3bece0cbf118c9eee3cd1b8a'
         '9130de1a9cac42cc0ab8697dcb7b3ae5'
         '6400a8b8a70816865429404f24aafdef'
         '021623a04afd29ac3f368977140cfbfd')

prepare() {
  cd u-boot-${pkgver/rc/-rc}

  git apply ../0001-arch-linux-arm-modifications.patch
}

build() {
  cd u-boot-${pkgver/rc/-rc}

  unset CFLAGS
  unset CXXFLAGS
  unset CPPFLAGS

  make distclean 
  make pine64_plus_defconfig
  make EXTRAVERSION=-${pkgrel}
  gcc ../pine64_image.c -o pine64_image
}

package() {
  cd u-boot-${pkgver/rc/-rc}

  mkdir -p "${pkgdir}"/boot

  cat ../bl31.bin u-boot.bin > bl31uboot.bin
  ./pine64_image ../scp.bin bl31uboot.bin u-boot.img

  cp ../boot0.bin u-boot.img ../boot.txt "${pkgdir}"/boot

  sed -i 's|@@FDTFILE@@|allwinner/sun50i-a64-pine64-plus.dtb|' "${pkgdir}"/boot/boot.txt
  tools/mkimage -A arm -O linux -T script -C none -n "U-Boot boot script" -d "${pkgdir}"/boot/boot.txt "${pkgdir}"/boot/boot.scr
}