aboutsummaryrefslogtreecommitdiff
path: root/sysutils/u-boot-rpi/Makefile
blob: 05256bd0e17610f4719a1b6946ad3eea4b1fc5a4 (plain) (blame)
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
# $FreeBSD$

PORTNAME=	u-boot
PORTVERSION=	2016.01
CATEGORIES=	sysutils
MASTER_SITES=	ftp://ftp.denx.de/pub/u-boot/ \
		LOCAL/ian/:bootfiles
PKGNAMESUFFIX=	-rpi
DISTFILES=	${DISTNAME}${EXTRACT_SUFX} \
		rpi-boot-files-2016.01.tar.bz2:bootfiles

MAINTAINER=	ian@FreeBSD.org
COMMENT=	Cross-build U-Boot loader for Raspberry Pi

LICENSE=	GPLv2

BUILD_DEPENDS=	arm-none-eabi-gcc:devel/arm-none-eabi-gcc

NO_ARCH=	yes

USES=		gmake tar:bzip2
SSP_UNSAFE=	yes # cross-LD does not support -fstack-protector

WRK_BOOTFILES=	${WRKDIR}/rpi-boot-files

U_BOOT_DIR=	share/u-boot/${PORTNAME}${PKGNAMESUFFIX}
PLIST_FILES=	${U_BOOT_DIR}/u-boot.img \
		${U_BOOT_DIR}/LICENCE.broadcom \
		${U_BOOT_DIR}/README-BootDetails \
		${U_BOOT_DIR}/bootcode.bin \
		${U_BOOT_DIR}/config.txt \
		${U_BOOT_DIR}/fixup.dat \
		${U_BOOT_DIR}/fixup_cd.dat \
		${U_BOOT_DIR}/start.elf \
		${U_BOOT_DIR}/start_cd.elf

MAKE_ARGS+=	ARCH=arm \
		CROSS_COMPILE=arm-none-eabi-

do-configure:
	(cd ${WRKSRC}; ${GMAKE} rpi_defconfig)

# The output of the u-boot build process is u-boot.bin.  We have to put a
# standard (for the RPi) image header on the front of it, and the resulting
# file is named u-boot.img.  Also copy the entire contents of the bootfiles
# distribution (these are proprietary binary files required to boot).
IMGFILE=${STAGEDIR}/${PREFIX}/${U_BOOT_DIR}/u-boot.img
do-install:
	${MKDIR} ${STAGEDIR}/${PREFIX}/${U_BOOT_DIR}
	${GZCAT} ${FILESDIR}/imgprefix.bin.gz >${IMGFILE}
	${CAT} ${WRKSRC}/u-boot.bin >>${IMGFILE}
	${CP} ${WRK_BOOTFILES}/* ${STAGEDIR}/${PREFIX}/${U_BOOT_DIR}/

.include <bsd.port.mk>