From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Sat, 2 Apr 2016 21:33:40 -0600 Subject: [U-Boot] [PATCH 2/2] ARM: add Raspberry Pi 3 64-bit config In-Reply-To: <20160402132604.GU23166@bill-the-cat> References: <1459566855-15100-1-git-send-email-swarren@wwwdotorg.org> <1459566855-15100-2-git-send-email-swarren@wwwdotorg.org> <20160402132604.GU23166@bill-the-cat> Message-ID: <57008F14.20302@wwwdotorg.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 04/02/2016 07:26 AM, Tom Rini wrote: > On Fri, Apr 01, 2016 at 09:14:15PM -0600, Stephen Warren wrote: > >> On all Pis so far, the VC FW provides a short stub to set up the ARM CPU >> before entering the kernel (a/k/a U-Boot for us). This feature is not >> currently supported by the VC FW when booting in 64-bit mode. However, >> this feature will likely appear in the near future, and this U-Boot port >> assumes that such a feature is in place. Without that feature, or a >> temporary workaround described below, U-Boot will not boot. >> >> Once the VC FW does provide the ARM stub, u-boot.bin built for rpi_3 can >> be used drectly as kernel7.img, in the same way as any other RPi port. The >> following config.txt is required: >> >> # Fix mini UART input frequency, and setup/enable up the UART. >> # Without this option, U-Boot will not boot, even if you don't care >> # about the serial console. This option will always be required for >> # all RPi3 use-cases, unless the PL011 UART is used, which is not >> # yet supported by rpi_3* builds of U-Boot. >> enable_uart=1 >> # Boot in AArch64 (64-bit) mode. >> # It is possible that a future VC FW will remove the need for this >> # option, instead auto-setting 32-/64-bit mode based on the "kernel" >> # filename present on the SD card. >> arm_control=0x200 >> >> Prior to the VC FW providing the ARM boot stub, you can use the following >> steps to build an equivalent stub into the U-Boot binary: >> >> git clone https://github.com/swarren/rpi-3-aarch64-demo.git \ >> ../rpi-3-aarch64-demo >> (cd ../rpi-3-aarch64-demo && ./build.sh) >> Build U-Boot for rpi_3 in the usual way >> cat ../rpi-3-aarch64-demo/armstub64.bin u-boot.bin > u-boot.bin.stubbed >> Use u-boot.bin.stubbed as kernel7.img on the Pi SD card. >> >> In this case, the following additional entries are required in config.txt: >> >> # Tell the FW to load the kernel image at address 0, the reset vector. >> kernel_old=1 >> >> Signed-off-by: Stephen Warren > > As our infrastructure stands today: > Reviewed-by: Tom Rini > > But would it be possible to clean things up and consolidate files? If > CONFIG_SYS_CACHLINE_SIZE and CONFIG_SKIP_LOWLEVEL_INIT were in Kconfig > it looks like everything could live in board/raspberrypi/rpi/ which it > nearly does today. If it's hard, I'd be OK punting that to v2015.07. > Or am I missing something? It looks like there is a way to remove a lot of the duplicate board/ directories, and I can put a few ifdefs into the config header to combine them into just one. I'll send a patch soon.