On Tue, Jul 30, 2019 at 12:25:08AM +0200, Mark Kettenis wrote: > > Date: Mon, 29 Jul 2019 14:07:09 +1000 > > From: Jonathan Gray <j...@jsg.id.au> > > > > On Sun, Jul 28, 2019 at 11:40:26PM +0200, Mark Kettenis wrote: > > > > Date: Sun, 28 Jul 2019 17:04:12 +1000 > > > > From: Jonathan Gray <j...@jsg.id.au> > > > > > > > > On Fri, Jun 21, 2019 at 10:24:48PM +0200, Mark Kettenis wrote: > > > > > I've finally managed to build a properly working (and fully open > > > > > source) firmware for the ROCKPro64. The firmware consists of two > > > > > files, which can be downloaded from: > > > > > > > > > > > > > > > https://sibelius.home.xs4all.nl/firmware/rk3399-rockpro64/idbloader.img > > > > > https://sibelius.home.xs4all.nl/firmware/rk3399-rockpro64/u-boot.itb > > > > > > > > > > In order to use this firmware you'll have to write it to a uSD card or > > > > > an eMMC module with the following commands: > > > > > > > > > > # dd if=idbloader.img of=/dev/sdXc seek=64 > > > > > # dd if=u-boot.itb of=/dev/sdXc seek=16384 > > > > > > > > > > Note that if you flashed a firmware to the onboard SPI flash, you'll > > > > > have to erase it first or disable the SPI flash with a jumper wire > > > > > connecting pins 23 and 25. > > > > > > > > > > Also note that the firmware overlaps with the msdos partition in the > > > > > default OpenBSD/arm64 disk layout. Therefore you can't have the > > > > > firmware and the OpenBSD boot/root filesystems on the same device > > > > > without running through additional hoops. Ultimately the goal is to > > > > > make it possible to put this firmware in SPI flash, but I haven't > > > > > looked into that yet. > > > > > > > > > > This firmware uses a more standard serial speed of 115200, which means > > > > > you can use almost any USB TTL serial cable. DVFS is supported so you > > > > > can use sysctl hw.setperf to control to clock speed of the CPUs. But > > > > > be aware that without a fan the board will probably overheat if you > > > > > run it at the highest supported clock speed. > > > > > > > > > > At some point this should land in the official u-boot-aarch64 > > > > > packages. But since this build relies on a fairly large patch set > > > > > that hasn't landed upstream yet, this may take some time. > > > > > > > > I have committed a U-Boot 2019.07 update which builds the > > > > rockpro64-rk3399 target and patches the default baud to 115200. > > > > > > > > As on firefly it has file named idbspl.img instead of idbloader.img. > > > > Don't have hardware so not sure if further patches are required. > > > > > > Unfortunately the LPDDR4 support patches landed after 2019.07 was > > > released. The ROCKPro64 won't work without those patches, and it is a > > > rather large set of patches :(. > > > > Alright, I'll remove it until the next release. > > > > > > > > I'm somewhat surprised to see that the rk3399 targets still build > > > without TPL. But maybe the SPL overflow happens because of the LPDDR4 > > > patches. When we switch to TPL, I think it makes sense to start using > > > idbloader.img instead of idspl.img to be consistent with rk3288 and > > > the Rockchip documentation. > > > > Aren't the rk3399 targets already using TPL with 2019.07? > > > > evb-rk3399_defconfig:CONFIG_TPL=y > > firefly-rk3399_defconfig:CONFIG_TPL=y > > nanopc-t4-rk3399_defconfig:CONFIG_TPL=y > > nanopi-m4-rk3399_defconfig:CONFIG_TPL=y > > nanopi-neo4-rk3399_defconfig:CONFIG_TPL=y > > orangepi-rk3399_defconfig:CONFIG_TPL=y > > rock-pi-4-rk3399_defconfig:CONFIG_TPL=y > > rockpro64-rk3399_defconfig:CONFIG_TPL=y > > > > $ git tag --contains bdc00080111f6dc1e48586239e71e22665004aca > > v2019.07 > > v2019.07-rc2 > > v2019.07-rc3 > > v2019.07-rc4 > > > > Your diff is not quite right as it doesn't concatenate tpl and spl. > Fix below. Still need to test this though. But ok if it boots on the > firefly?
yes > > > Index: sysutils/u-boot/Makefile > =================================================================== > RCS file: /cvs/ports/sysutils/u-boot/Makefile,v > retrieving revision 1.54 > diff -u -p -r1.54 Makefile > --- sysutils/u-boot/Makefile 28 Jul 2019 06:57:19 -0000 1.54 > +++ sysutils/u-boot/Makefile 29 Jul 2019 22:23:29 -0000 > @@ -7,6 +7,7 @@ FLAVOR?= arm > > COMMENT= U-Boot firmware > VERSION= 2019.07 > +REVISION= 0 > DISTNAME= u-boot-${VERSION} > PKGNAME= u-boot-${FLAVOR}-${VERSION:S/-//} > FULLPKGNAME= ${PKGNAME} > @@ -68,7 +69,6 @@ BOARDS=\ > mvebu_espressobin-88f3720 \ > mvebu_mcbin-88f8040 \ > qemu_arm64 \ > - rockpro64-rk3399 \ > rpi_3 > .elif "${FLAVOR}" == "arm" > OMAP=\ > @@ -140,7 +140,6 @@ FILES=\ > u-boot-spl.kwb \ > u-boot-with-spl.bin \ > u-boot.itb \ > - idbspl.img \ > idbloader.img \ > spl/sunxi-spl.bin \ > > @@ -165,12 +164,14 @@ do-build: > idbloader.img && \ > cat spl/u-boot-spl-dtb.bin >> idbloader.img > .endif > -.if "${BOARD}" == "firefly-rk3399" || "${BOARD}" == "rockpro64-rk3399" > +.if "${BOARD}" == "firefly-rk3399" > cd ${WRKSRC}/build/${BOARD} && \ > ${SETENV} ${MAKE_ENV} BL31=${RK3399_BL31} ${MAKE_PROGRAM} \ > ${MAKE_FLAGS} O="build/${BOARD}" \ > -f ${MAKE_FILE} u-boot.itb && \ > - tools/mkimage -n rk3399 -T rksd -d spl/u-boot-spl.bin idbspl.img > + tools/mkimage -n rk3399 -T rksd -d tpl/u-boot-tpl.bin \ > + idbloader.img && \ > + cat spl/u-boot-spl-dtb.bin >> idbloader.img > .endif > .endfor > .for BOARD in ${SUNXI64} > Index: sysutils/u-boot/pkg/PFRAG.aarch64 > =================================================================== > RCS file: /cvs/ports/sysutils/u-boot/pkg/PFRAG.aarch64,v > retrieving revision 1.11 > diff -u -p -r1.11 PFRAG.aarch64 > --- sysutils/u-boot/pkg/PFRAG.aarch64 28 Jul 2019 06:57:20 -0000 1.11 > +++ sysutils/u-boot/pkg/PFRAG.aarch64 29 Jul 2019 18:17:20 -0000 > @@ -16,7 +16,7 @@ share/u-boot/bananapi_m64/u-boot.bin > share/u-boot/bananapi_m64/u-boot.img > share/u-boot/bananapi_m64/u-boot.itb > share/u-boot/firefly-rk3399/ > -share/u-boot/firefly-rk3399/idbspl.img > +share/u-boot/firefly-rk3399/idbloader.img > share/u-boot/firefly-rk3399/u-boot > share/u-boot/firefly-rk3399/u-boot.bin > share/u-boot/firefly-rk3399/u-boot.img > @@ -86,12 +86,6 @@ share/u-boot/pinebook/u-boot.itb > share/u-boot/qemu_arm64/ > share/u-boot/qemu_arm64/u-boot > share/u-boot/qemu_arm64/u-boot.bin > -share/u-boot/rockpro64-rk3399/ > -share/u-boot/rockpro64-rk3399/idbspl.img > -share/u-boot/rockpro64-rk3399/u-boot > -share/u-boot/rockpro64-rk3399/u-boot.bin > -share/u-boot/rockpro64-rk3399/u-boot.img > -share/u-boot/rockpro64-rk3399/u-boot.itb > share/u-boot/rpi_3/ > share/u-boot/rpi_3/u-boot > share/u-boot/rpi_3/u-boot.bin