aboutsummaryrefslogtreecommitdiff
path: root/sysutils/u-boot-rpi3
diff options
context:
space:
mode:
authorDiane Bruce <db@FreeBSD.org>2018-04-03 20:46:57 +0000
committerDiane Bruce <db@FreeBSD.org>2018-04-03 20:46:57 +0000
commitc5044569dd80e0f67b908d9ddba9395d345290f3 (patch)
tree249becdef78868fa03511148cadbe11491c37243 /sysutils/u-boot-rpi3
parent84589af3e5a772ef49884f05dd8cb46b90a732bd (diff)
downloadports-c5044569dd80e0f67b908d9ddba9395d345290f3.tar.gz
ports-c5044569dd80e0f67b908d9ddba9395d345290f3.zip
Convert to use u-boot-master as per Phabricator D14630
Reassign to uboot team
Notes
Notes: svn path=/head/; revision=466377
Diffstat (limited to 'sysutils/u-boot-rpi3')
-rw-r--r--sysutils/u-boot-rpi3/Makefile78
-rw-r--r--sysutils/u-boot-rpi3/distinfo9
-rw-r--r--sysutils/u-boot-rpi3/files/patch-arch_arm_include_asm_system.h48
-rw-r--r--sysutils/u-boot-rpi3/files/patch-board_raspberrypi_rpi_lowlevel__init.S28
-rw-r--r--sysutils/u-boot-rpi3/files/patch-board_raspberrypi_rpi_rpi.c43
-rw-r--r--sysutils/u-boot-rpi3/files/patch-include_configs_rpi.h17
-rw-r--r--sysutils/u-boot-rpi3/files/patch-lib_efi__loader_efi__disk.c126
7 files changed, 8 insertions, 341 deletions
diff --git a/sysutils/u-boot-rpi3/Makefile b/sysutils/u-boot-rpi3/Makefile
index a87562a63b2e..28e9eeda20ee 100644
--- a/sysutils/u-boot-rpi3/Makefile
+++ b/sysutils/u-boot-rpi3/Makefile
@@ -1,75 +1,13 @@
# $FreeBSD$
-PORTNAME= u-boot
-PORTVERSION= 2017.01
-PORTREVISION= 1
-CATEGORIES= sysutils
-MASTER_SITES= ftp://ftp.denx.de/pub/u-boot/:uboot \
- LOCAL/db:bootfiles
-PKGNAMESUFFIX= -rpi3
-DISTFILES= u-boot-${PORTVERSION}.tar.bz2:uboot \
- rpi3-boot-files-2016.05.tar.bz2:bootfiles \
- rpi3-psci-monitor-master.tgz:pscimon
+MAINTAINER= uboot@FreeBSD.org
+MASTERDIR= ${.CURDIR}/../u-boot-master
-MAINTAINER= db@FreeBSD.org
-COMMENT= Cross-build U-Boot loader for RPi3
+MODEL= rpi3
+BOARD_CONFIG= rpi_3_defconfig
+FAMILY= rpi
+UBOOT_ARCH= aarch64
-LICENSE= GPLv2
+DEPENDS= ${LOCALBASE}/share/rpi-firmware/bootcode.bin:sysutils/rpi-firmware
-BUILD_DEPENDS= aarch64-none-elf-gcc:devel/aarch64-none-elf-gcc
-
-USE_GITHUB= nodefault
-GH_ACCOUNT= gonzoua:pscimon
-GH_PROJECT= rpi3-psci-monitor:pscimon
-GIT_TAG= 5782052
-GH_TAGNAME= ${GIT_TAG}:pscimon
-
-NO_ARCH= yes
-
-USES= gmake tar:bzip2
-SSP_UNSAFE= yes # cross-LD does not support -fstack-protector
-
-WRK_BOOTFILES= ${WRKDIR}/rpi3-boot-files-2016.05
-PSCI_MONITOR= rpi3-psci-monitor-${GIT_TAG}
-PSCI_DIR= ${WRKDIR}/${PSCI_MONITOR}
-
-U_BOOT_DIR= share/u-boot/${PORTNAME}${PKGNAMESUFFIX}
-PLIST_FILES= ${U_BOOT_DIR}/u-boot.bin \
- ${U_BOOT_DIR}/README \
- ${U_BOOT_DIR}/bootcode.bin \
- ${U_BOOT_DIR}/fixup.dat \
- ${U_BOOT_DIR}/fixup_cd.dat \
- ${U_BOOT_DIR}/fixup_db.dat \
- ${U_BOOT_DIR}/fixup_x.dat \
- ${U_BOOT_DIR}/start.elf \
- ${U_BOOT_DIR}/start_cd.elf \
- ${U_BOOT_DIR}/start_db.elf \
- ${U_BOOT_DIR}/start_x.elf \
- ${U_BOOT_DIR}/config.txt \
- ${U_BOOT_DIR}/LICENCE.broadcom \
- ${U_BOOT_DIR}/armstub8.bin
-MAKE_ARGS+= ARCH=arm \
- CROSS_COMPILE=aarch64-none-elf- \
- CONFIG_EFI=y
-
-do-configure:
- (cd ${WRKSRC}; ${GMAKE} rpi_3_defconfig)
-
-do-build:
- (cd ${WRKSRC}; ${GMAKE} ${MAKE_ARGS})
- (cd ${PSCI_DIR}; ${MAKE})
-
-# The output of the u-boot build process is u-boot.bin. Older firmware
-# versions require a standard header, but the recent versions (our case)
-# are capable of booting u-boot.bin directly. Also copy the entire
-# contents of the bootfiles distribution (these are proprietary binary
-# files required to boot).
-# Also include the armstub8.bin needed to go SMP on RPI3
-do-install:
- ${MKDIR} ${STAGEDIR}/${PREFIX}/${U_BOOT_DIR}
- ${INSTALL_DATA} ${WRKSRC}/u-boot.bin ${STAGEDIR}/${PREFIX}/${U_BOOT_DIR}/
- ${INSTALL_DATA} ${DESCR} ${STAGEDIR}/${PREFIX}/${U_BOOT_DIR}/README
- ${INSTALL_DATA} ${WRK_BOOTFILES}/* ${STAGEDIR}/${PREFIX}/${U_BOOT_DIR}
- ${INSTALL_DATA} ${PSCI_DIR}/pscimon.bin ${STAGEDIR}/${PREFIX}/${U_BOOT_DIR}/armstub8.bin
-
-.include <bsd.port.mk>
+.include "${MASTERDIR}/Makefile"
diff --git a/sysutils/u-boot-rpi3/distinfo b/sysutils/u-boot-rpi3/distinfo
deleted file mode 100644
index b972b3fd38f6..000000000000
--- a/sysutils/u-boot-rpi3/distinfo
+++ /dev/null
@@ -1,9 +0,0 @@
-TIMESTAMP = 1486166232
-SHA256 (u-boot-2017.01.tar.bz2) = 6c425175f93a4bcf2ec9faf5658ef279633dbd7856a293d95bd1ff516528ecf2
-SIZE (u-boot-2017.01.tar.bz2) = 12224884
-SHA256 (rpi3-boot-files-2016.05.tar.bz2) = 8d5a2e453c9140d989133bc7cd991456138f4eb6c9722cd9eee4af4c1722e216
-SIZE (rpi3-boot-files-2016.05.tar.bz2) = 6905733
-SHA256 (rpi3-psci-monitor-master.tgz) = 47bbda7baede4e0a018869e9a7a9a05e37de5f8255ce6b5939c90bbd4f42f5a2
-SIZE (rpi3-psci-monitor-master.tgz) = 5033
-SHA256 (gonzoua-rpi3-psci-monitor-5782052_GH0.tar.gz) = 0d1095492a31a6bcb726b688a75769959099bc4d1701c888e46711b1d528c3ae
-SIZE (gonzoua-rpi3-psci-monitor-5782052_GH0.tar.gz) = 5110
diff --git a/sysutils/u-boot-rpi3/files/patch-arch_arm_include_asm_system.h b/sysutils/u-boot-rpi3/files/patch-arch_arm_include_asm_system.h
deleted file mode 100644
index 607b8153571e..000000000000
--- a/sysutils/u-boot-rpi3/files/patch-arch_arm_include_asm_system.h
+++ /dev/null
@@ -1,48 +0,0 @@
---- arch/arm/include/asm/system.h.orig 2017-01-09 16:57:05 UTC
-+++ arch/arm/include/asm/system.h
-@@ -329,22 +329,6 @@ void psci_arch_init(void);
- * void save_boot_params(u32 r0, u32 r1, u32 r2, u32 r3);
- */
-
--/**
-- * save_boot_params_ret() - Return from save_boot_params()
-- *
-- * If you provide save_boot_params(), then you should jump back to this
-- * function when done. Try to preserve all registers.
-- *
-- * If your implementation of save_boot_params() is in C then it is acceptable
-- * to simply call save_boot_params_ret() at the end of your function. Since
-- * there is no link register set up, you cannot just exit the function. U-Boot
-- * will return to the (initialised) value of lr, and likely crash/hang.
-- *
-- * If your implementation of save_boot_params() is in assembler then you
-- * should use 'b' or 'bx' to return to save_boot_params_ret.
-- */
--void save_boot_params_ret(void);
--
- #ifdef CONFIG_ARMV7_LPAE
- void switch_to_hypervisor_ret(void);
- #endif
-@@ -538,6 +522,22 @@ void mmu_page_table_flush(unsigned long
-
- #ifndef __ASSEMBLY__
- /**
-+ * save_boot_params_ret() - Return from save_boot_params()
-+ *
-+ * If you provide save_boot_params(), then you should jump back to this
-+ * function when done. Try to preserve all registers.
-+ *
-+ * If your implementation of save_boot_params() is in C then it is acceptable
-+ * to simply call save_boot_params_ret() at the end of your function. Since
-+ * there is no link register set up, you cannot just exit the function. U-Boot
-+ * will return to the (initialised) value of lr, and likely crash/hang.
-+ *
-+ * If your implementation of save_boot_params() is in assembler then you
-+ * should use 'b' or 'bx' to return to save_boot_params_ret.
-+ */
-+void save_boot_params_ret(void);
-+
-+/**
- * Change the cache settings for a region.
- *
- * \param start start address of memory region to change
diff --git a/sysutils/u-boot-rpi3/files/patch-board_raspberrypi_rpi_lowlevel__init.S b/sysutils/u-boot-rpi3/files/patch-board_raspberrypi_rpi_lowlevel__init.S
deleted file mode 100644
index 8042881941fe..000000000000
--- a/sysutils/u-boot-rpi3/files/patch-board_raspberrypi_rpi_lowlevel__init.S
+++ /dev/null
@@ -1,28 +0,0 @@
---- board/raspberrypi/rpi/lowlevel_init.S.orig 2017-01-09 16:57:05 UTC
-+++ board/raspberrypi/rpi/lowlevel_init.S
-@@ -9,10 +9,15 @@
-
- .align 8
- .global fw_dtb_pointer
--fw_dtb_pointer:
-+
- #ifdef CONFIG_ARM64
-+fw_dtb_pointer:
-+ .dword 0x0
-+.global reserve_memory
-+reserve_memory:
- .dword 0x0
- #else
-+fw_dtb_pointer:
- .word 0x0
- #endif
-
-@@ -28,6 +33,8 @@ save_boot_params:
- #ifdef CONFIG_ARM64
- adr x8, fw_dtb_pointer
- str x0, [x8]
-+ adr x8, reserve_memory
-+ str x1, [x8]
- #else
- str r2, fw_dtb_pointer
- #endif
diff --git a/sysutils/u-boot-rpi3/files/patch-board_raspberrypi_rpi_rpi.c b/sysutils/u-boot-rpi3/files/patch-board_raspberrypi_rpi_rpi.c
deleted file mode 100644
index 711503752db1..000000000000
--- a/sysutils/u-boot-rpi3/files/patch-board_raspberrypi_rpi_rpi.c
+++ /dev/null
@@ -1,43 +0,0 @@
---- board/raspberrypi/rpi/rpi.c.orig 2017-01-09 16:57:05 UTC
-+++ board/raspberrypi/rpi/rpi.c
-@@ -14,6 +14,7 @@
- #include <lcd.h>
- #include <memalign.h>
- #include <mmc.h>
-+#include <asm/system.h>
- #include <asm/gpio.h>
- #include <asm/arch/mbox.h>
- #include <asm/arch/sdhci.h>
-@@ -27,7 +28,7 @@ DECLARE_GLOBAL_DATA_PTR;
-
- /* From lowlevel_init.S */
- extern unsigned long fw_dtb_pointer;
--
-+extern unsigned long reserve_memory;
-
- struct msg_get_arm_mem {
- struct bcm2835_mbox_hdr hdr;
-@@ -220,6 +221,12 @@ static struct mm_region bcm2837_mem_map[
- };
-
- struct mm_region *mem_map = bcm2837_mem_map;
-+
-+void dram_init_banksize(void)
-+{
-+ gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE + reserve_memory;
-+ gd->bd->bi_dram[0].size = get_effective_memsize() - reserve_memory;
-+}
- #endif
-
- int dram_init(void)
-@@ -355,6 +362,10 @@ int misc_init_r(void)
- set_board_info();
- #endif
- set_serial_number();
-+#ifdef CONFIG_ARM64
-+ if (fw_dtb_pointer)
-+ setenv_hex("fdt_addr_r", (ulong)fw_dtb_pointer);
-+#endif
-
- return 0;
- }
diff --git a/sysutils/u-boot-rpi3/files/patch-include_configs_rpi.h b/sysutils/u-boot-rpi3/files/patch-include_configs_rpi.h
deleted file mode 100644
index f41fa14a1ff9..000000000000
--- a/sysutils/u-boot-rpi3/files/patch-include_configs_rpi.h
+++ /dev/null
@@ -1,17 +0,0 @@
---- include/configs/rpi.h.orig 2017-01-09 16:57:05 UTC
-+++ include/configs/rpi.h
-@@ -99,11 +99,13 @@
- #endif
-
- /* Console UART */
-+/*
- #ifdef CONFIG_BCM2837
- #define CONFIG_BCM283X_MU_SERIAL
- #else
-+*/
- #define CONFIG_PL01X_SERIAL
--#endif
-+/* #endif */
- #define CONFIG_CONS_INDEX 0
- #define CONFIG_BAUDRATE 115200
-
diff --git a/sysutils/u-boot-rpi3/files/patch-lib_efi__loader_efi__disk.c b/sysutils/u-boot-rpi3/files/patch-lib_efi__loader_efi__disk.c
deleted file mode 100644
index 23242847aef4..000000000000
--- a/sysutils/u-boot-rpi3/files/patch-lib_efi__loader_efi__disk.c
+++ /dev/null
@@ -1,126 +0,0 @@
---- lib/efi_loader/efi_disk.c.orig 2017-01-09 16:57:05 UTC
-+++ lib/efi_loader/efi_disk.c
-@@ -197,11 +197,13 @@ static void efi_disk_add_dev(const char
- const char *if_typename,
- const struct blk_desc *desc,
- int dev_index,
-- lbaint_t offset)
-+ disk_partition_t *info,
-+ int logical_partition)
- {
- struct efi_disk_obj *diskobj;
- struct efi_device_path_file_path *dp;
- int objlen = sizeof(*diskobj) + (sizeof(*dp) * 2);
-+ static int mediaid = 0;
-
- /* Don't add empty devices */
- if (!desc->lba)
-@@ -218,16 +220,28 @@ static void efi_disk_add_dev(const char
- diskobj->ops = block_io_disk_template;
- diskobj->ifname = if_typename;
- diskobj->dev_index = dev_index;
-- diskobj->offset = offset;
-+ if (info)
-+ diskobj->offset = info->start;
-+
- diskobj->desc = desc;
-
- /* Fill in EFI IO Media info (for read/write callbacks) */
- diskobj->media.removable_media = desc->removable;
- diskobj->media.media_present = 1;
-- diskobj->media.block_size = desc->blksz;
-- diskobj->media.io_align = desc->blksz;
-- diskobj->media.last_block = desc->lba - offset;
-+ diskobj->media.media_id = mediaid++;
- diskobj->ops.media = &diskobj->media;
-+ if (logical_partition) {
-+ printf("Adding logical partition\n");
-+ diskobj->media.logical_partition = 1;
-+ diskobj->media.block_size = info->blksz;
-+ diskobj->media.io_align = info->blksz;
-+ diskobj->media.last_block = info->size - 1;
-+ }
-+ else {
-+ diskobj->media.block_size = desc->blksz;
-+ diskobj->media.io_align = desc->blksz;
-+ diskobj->media.last_block = desc->lba;
-+ }
-
- /* Fill in device path */
- dp = (void*)&diskobj[1];
-@@ -262,8 +276,7 @@ static int efi_disk_create_eltorito(stru
- while (!part_get_info(desc, part, &info)) {
- snprintf(devname, sizeof(devname), "%s:%d", pdevname,
- part);
-- efi_disk_add_dev(devname, if_typename, desc, diskid,
-- info.start);
-+ efi_disk_add_dev(devname, if_typename, desc, diskid, 0, 0);
- part++;
- disks++;
- }
-@@ -272,6 +285,30 @@ static int efi_disk_create_eltorito(stru
- return disks;
- }
-
-+static int efi_disk_create_mbr(struct blk_desc *desc,
-+ const struct blk_driver *cur_drvr,
-+ int diskid)
-+{
-+ int disks = 0;
-+ char devname[32] = { 0 }; /* dp->str is u16[32] long */
-+ disk_partition_t info;
-+ int part = 1;
-+
-+ if (desc->part_type != PART_TYPE_DOS)
-+ return 0;
-+
-+ while (!part_get_info(desc, part, &info)) {
-+ snprintf(devname, sizeof(devname), "%s%d:%d", cur_drvr->if_typename,
-+ diskid, part);
-+
-+ efi_disk_add_dev(devname, cur_drvr->if_typename, desc, diskid, &info, 1);
-+ part++;
-+ disks++;
-+ }
-+
-+ return disks;
-+}
-+
- /*
- * U-Boot doesn't have a list of all online disk devices. So when running our
- * EFI payload, we scan through all of the potentially available ones and
-@@ -296,13 +333,14 @@ int efi_disk_register(void)
- const char *if_typename = dev->driver->name;
-
- printf("Scanning disk %s...\n", dev->name);
-- efi_disk_add_dev(dev->name, if_typename, desc, desc->devnum, 0);
-+ efi_disk_add_dev(dev->name, if_typename, desc, desc->devnum, NULL, 0);
- disks++;
-
- /*
- * El Torito images show up as block devices in an EFI world,
- * so let's create them here
- */
-+ disks += efi_disk_create_mbr(desc, dev, desc->devnum);
- disks += efi_disk_create_eltorito(desc, if_typename,
- desc->devnum, dev->name);
- }
-@@ -332,15 +370,17 @@ int efi_disk_register(void)
-
- snprintf(devname, sizeof(devname), "%s%d",
- if_typename, i);
-- efi_disk_add_dev(devname, if_typename, desc, i, 0);
-+ efi_disk_add_dev(devname, if_typename, desc, i, 0, 0);
- disks++;
-
- /*
- * El Torito images show up as block devices
- * in an EFI world, so let's create them here
- */
-+ disks += efi_disk_create_mbr(desc, cur_drvr, i);
- disks += efi_disk_create_eltorito(desc, if_typename,
- i, devname);
-+
- }
- }
- #endif