summaryrefslogtreecommitdiff
path: root/libre/uboot4extlinux-omap3/PKGBUILD
blob: 786e33996831b222b3ffc67d599b9c5d20c38510 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# U-Boot: BeagleBoard
# Maintainer: André Silva <emulatorman@hyperbola.info>
# Contributor: Jookia <166291@gmail.com>
# Contributor: Márcio Silva <coadde@hyperbola.info>

pkgbase=uboot4extlinux-omap3
pkgname=('uboot4extlinux-omap3_beagle')
pkgver=2020.04
pkgrel=1
arch=('armv7h')
url="http://git.denx.de/u-boot.git/"
license=('GPL')
makedepends=('bc' 'bison' 'dtc' 'flex' 'python' 'python2' 'swig')
backup=(boot/extlinux/extlinux.conf)
source=("ftp://ftp.denx.de/pub/u-boot/u-boot-${pkgver}.tar.bz2"
        '0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch'
        'extlinux.conf')
sha256sums=('fe732aaf037d9cc3c0909bad8362af366ae964bbdac6913a34081ff4ad565372'
            'SKIP'
            'SKIP')

boards=('omap3_beagle')

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

  # The default is 0x300 512b blocks which forces u-boot.img to be locarted at
  # 384k on the microSD. As u-boot.img is big, it often goes over the 1MB empty
  # space that is created by default when partitioning block devices. That
  # corrupts the first partition. Using 0x200 leaves more space to u-boot.img
  # and is well aligned to 128k.
  echo 'CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x200' >> configs/omap3_beagle_defconfig

  # See the 0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch for
  # rationale for this configuration
  echo '# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set' >> configs/omap3_beagle_defconfig

  # We want to enable users to use both RAW mode and filesystems to install
  # u-boot, but as filesystems are more complicated due to constraints that
  # need to be respected for it to work we default to raw block. This patch
  # restores the ability of using RAW block mode. RAW partitions have not been
  # tested yet and may or may not work but they have constraints as well.
  patch -Np1 -i ../0001-omap34xx-SPL-enable-MMC-raw-boot-with-u-boot.img.patch
}

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

  unset CFLAGS CXXFLAGS LDFLAGS

  for i in ${boards[@]}; do
    mkdir -p ../bin_${i}
    make distclean
    make ${i}_defconfig
    echo 'CONFIG_IDENT_STRING=" Parabola GNU/Linux-libre"' >> .config
    make EXTRAVERSION=-${pkgrel}
    mv -f MLO u-boot.img ../bin_${i}
  done
}

package_uboot4extlinux-omap3_beagle() {
  pkgdesc="U-Boot with Extlinux support for various BeagleBoards"

  install=${pkgbase}.install
  provides=('uboot4extlinux-omap3')
  conflicts=('grub-omap3_beagle'
             'grub-omap3_beagle_xm'
             'grub-omap3_beagle_xm_ab'
             'uboot-omap3_beagle')

  install -d "${pkgdir}"/boot/extlinux
  install -d "${pkgdir}"/boot/u-boot/images/

  install -Dm644 \
	bin_omap3_beagle/MLO \
	bin_omap3_beagle/u-boot.img \
	"${pkgdir}"/boot/u-boot/images/

  install -Dm644 extlinux.conf "${pkgdir}"/boot/extlinux

  # Package documentation as well
  install -d "${pkgdir}"/usr/share/doc/u-boot
  # The README might be converted to ReStructuredText at some point and be moved because of that
  install -Dm644 u-boot-${pkgver}/doc/README.omap3 "${pkgdir}"/usr/share/doc/u-boot/
}