On Sunday, September 30, 2018 8:25 PM, Andrey Melentyev <andrey.melent...@protonmail.com> wrote:
> OpenBSD -current doesn't boot on Raspberry Pi 3 Model B+. > Tried snapshots from 2018-09-25, 2018-09-26 and 2018-09-30. > > libfdt fdt_check_header(): FDT_ERR_BADMAGIC > FDT memrsv map 0: Failed to add to map I did some digging and it looks like the breakage is due to u-boot changing their expectations for the address of the DT. According to https://github.com/u-boot/u-boot/commit/385cbe298a6ddcab2d6cc21fb6a549152572957b#diff-4423363118839006e390baeab521e520 the new address is 0x02600000, so to make it work, config.txt needs to contain: arm_64bit=1 enable_uart=1 device_tree_address=0x02600000 kernel=u-boot.bin there may also be other ways which I haven't tried, for example u-boot seems to check broadcom/ directory for .dtb files, see https://github.com/u-boot/u-boot/commit/5d3c4ba19f0537313aa23f29894bc05952f08206 but expects to have different file names, where instead of bcm2710- prefix for RPI-3, bcm2835- is used. And the third option can be to include a u-boot script which does some custom loading. Unless I got it completely wrong, the following small config.txt change needs to be applied to -current in order to unbreak booting on RPI3. diff --git a/distrib/arm64/miniroot/Makefile b/distrib/arm64/miniroot/Makefile index cee5434e5be..a418daca7df 100644 --- a/distrib/arm64/miniroot/Makefile +++ b/distrib/arm64/miniroot/Makefile @@ -65,7 +65,7 @@ do_files: mkdir -p ${MOUNT_POINT}/efi/boot cp /usr/mdec/BOOTAA64.EFI ${MOUNT_POINT}/efi/boot/bootaa64.efi echo bootaa64.efi > ${MOUNT_POINT}/efi/boot/startup.nsh - echo 'arm_control=0x200\nenable_uart=1\ndevice_tree_address=0x100\nkernel=u-boot.bin' > ${MOUNT_POINT}/config.txt + echo 'arm_64bit=1\nenable_uart=1\ndevice_tree_address=0x02600000\nkernel=u-boot.bin' > ${MOUNT_POINT}/config.txt dd if=${PUBOOT}/pine64_plus/u-boot-sunxi-with-spl.bin \ of=${VND_CDEV} bs=1024 seek=8