1
0
Fork 0
remarkable-uboot/board
Stephen Warren f031f501ef rpi: BCM2837 and Raspberry Pi 3 32-bit support
The Raspberry Pi 3 contains a BCM2837 SoC. The BCM2837 is a BCM2836 with
the CPU complex swapped out for a quad-core ARMv8. This can operate in 32-
or 64-bit mode. 32-bit mode is the current default selected by the
VideoCore firmware on the Raspberry Pi 3. This patch adds a 32-bit port of
U-Boot for the Raspberry Pi 3.

>From U-Boot's perspective, the only delta between the RPi 2 and RPi 3 is a
change in usage of the SoC UARTs. On all previous Pis, the PL011 was the
only UART in use. The Raspberry Pi 3 adds a Bluetooth module which uses a
UART to connect to the SoC. By default, the PL011 is used for this purpose
since it has larger FIFOs than the other "mini" UART. However, this can
be configured via the VideoCore firmware's config.txt file. This patch
hard-codes use of the mini UART in the RPi 3 port. If your system uses the
PL011 UART for the console even on the RPi 3, please use the RPi 2 U-Boot
port instead. A future change might determine which UART to use at
run-time, thus allowing the RPi 2 and RPi 3 (32-bit) ports to be squashed
together.

The mini UART has some limitations. One externally visible issue in the
BCM2837 integration is that the UART divides the SoC's "core clock" to
generate the baud rate. The core clock is typically variable, and under
control of the VideoCore firmware for thermal management reasons. If the
VC FW does modify the core clock rate, UART communication will be
corrupted since the baud rate will vary from the expected value. This was
not an issue for the PL011 UART, since it is fed by a fixed 3MHz clock. To
work around this, the VideoCore firmware can be told not to modify the SoC
core clock. However, the only way this can happen and be thermally safe is
to limit the core clock to a low/minimum frequency. This leaves
performance on the table for use-cases that don't care about a UART
console. Consequently, use of the mini UART console must be explicitly
requested by entering the following line into config.txt:

    enable_uart=1

A recent version of the VC firmware is required to ensure that the mini
UART is fully and correctly initialized by the VC FW; at least
firmware.git 046effa13ebc "firmware: arm_loader: emmc clock depends on
core clock See: https://github.com/raspberrypi/firmware/issues/572".

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2016-04-01 17:17:42 -04:00
..
8dtech/eco5pk
AndesTech/adp-ag101p NDS32: Generic Board Support and Unsupport 2015-08-28 11:46:35 -04:00
Arcturus/ucp1020 Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
Barix/ipam390 kconfig: remove redundant "string" type in arch and board Kconfigs 2014-09-13 16:43:55 -04:00
BuR board/BuR: drop ETH-support in SPL-Stage 2016-02-24 18:44:01 -05:00
BuS/eb_cpu5282 arm: Remove vl_ma2sc board 2015-09-11 17:12:57 -04:00
CarMediaLab/flea3 kconfig: arm: introduce symbol for ARM CPUs 2014-10-29 09:02:09 -04:00
LaCie Revert "arm: Remove d2net_v2 defconfig file" 2015-10-19 11:26:49 -04:00
Marvell arm: mvebu: db-88f6820: Drop obsolete binary.0 placeholder 2016-03-24 10:05:49 +01:00
Seagate Add support for Seagate BlackArmor NAS220 2015-01-14 11:37:39 -05:00
Synology/ds414 mvebu: ds414: Move cmd_syno into ds414 directory 2016-03-16 15:27:54 -04:00
a3m071 fdt: Allow ft_board_setup() to report failure 2014-11-21 04:43:15 +01:00
a4m072 fdt: Allow ft_board_setup() to report failure 2014-11-21 04:43:15 +01:00
abilis/tb100
alphaproject/ap_sh4a_4a net: cosmetic: Name ethaddr variables consistently 2015-04-18 11:11:32 -06:00
altera arm: socfpga: Fix i2c mux on cyclone5-socdk board 2015-12-23 16:11:49 +01:00
amazon/kc1 kc1: Clear reboot mode garbage on cold reset 2016-03-15 15:12:58 -04:00
amcc powerpc: yucca: drop redundant CONFIG_SYS_TEXT_BASE from config.mk 2016-01-20 10:19:36 -05:00
aristainetos arm, imx6, aristainetos2: set gpr register after reset 2015-10-30 15:08:55 +01:00
armadeus/apf27 remove unnecessary version.h includes 2015-03-24 10:50:50 -04:00
armltd vexpress64: Add MMU tables 2016-03-15 15:13:04 -04:00
astro/mcf5373l Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
atmark-techno/armadillo-800eva Various Makefiles: Add SPDX-License-Identifier tags 2015-11-10 09:19:52 -05:00
atmel board: atmel: clean up the PMC_PLLICPR init code 2016-02-18 21:34:41 +01:00
avionic-design ARM: tegra: move NVIDIA common files to arch/arm/mach-tegra 2015-05-13 09:46:19 -07:00
bachmann/ot1200 ot1200: Remove empty reset_cpu() 2015-11-12 17:26:33 +01:00
barco mx6: remove SYS_SOC from board Kconfig 2015-09-13 10:37:29 +02:00
bct-brettl2 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf506f-ezkit Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf518f-ezbrd Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf525-ucr2 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf526-ezbrd Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf527-ad7160-eval Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf527-ezkit Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf527-sdp Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf533-ezkit Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf533-stamp Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf537-minotaur Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf537-pnav Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf537-srv1 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf537-stamp Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf538f-ezkit Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf548-ezkit Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf561-acvilon Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf561-ezkit Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bf609-ezkit Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
birdland/bav335x Various Makefiles: Add SPDX-License-Identifier tags 2015-11-10 09:19:52 -05:00
blackstamp Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
blackvme Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
bluegiga/apx4devkit kconfig: arm: introduce symbol for ARM CPUs 2014-10-29 09:02:09 -04:00
bluewater/snapper9260 board: atmel: clean up peripheral clock code 2016-02-18 21:34:40 +01:00
boundary/nitrogen6x nitrogen6x: Fix the error handling in board_eth_init() 2015-09-13 11:05:15 +02:00
br4 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
broadcom usb: s3c-otg: Rename usb/s3c_udc.h to usb/dwc2_udc.h 2015-12-17 21:54:41 +01:00
buffalo/lsxl net: Fix a warning added by 76ec988 2015-05-28 08:18:25 -04:00
calao/usb_a9263 board: atmel: clean up peripheral clock code 2016-02-18 21:34:40 +01:00
canmb
cavium/thunderx thunderx: Move mmu table into board file 2016-03-15 15:13:02 -04:00
cirrus/edb93xx kconfig: arm: introduce symbol for ARM CPUs 2014-10-29 09:02:09 -04:00
cloudengines/pogo_e02
cm-bf527 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
cm-bf533 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
cm-bf537e Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
cm-bf537u Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
cm-bf548 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
cm-bf561 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
cm5200 dm: part: Rename some partition functions 2016-03-14 15:34:50 -06:00
cobra5272 m68k: move CONFIG_SYS_TEXT_BASE to defconfig files 2016-01-20 10:19:34 -05:00
compal/paz00 tegra: video: Convert tegra20 LCD driver to driver model 2016-02-16 09:17:52 -07:00
compulab omap-common: Rename set_muxconf_regs_essential to set_muxconf_regs 2016-03-15 15:12:06 -04:00
congatec x86: Add congatec conga-QA3/E3845-4G (Bay Trail) support 2016-03-17 10:27:27 +08:00
coreboot x86: Drop all the old pin configuration code 2016-03-17 10:27:25 +08:00
corscience/tricorder tricorder: rewrite tricordereeprom command 2015-11-21 21:50:20 -05:00
creative/xfi3 xfi3: correct function name 2015-11-12 17:38:08 +01:00
d-link/dns325 Change e-mail address of Stefan Herbrechtsmeier 2015-01-12 09:38:47 -05:00
dave/common powerpc: ppc4xx: remove PPChameleonEVB, CATcenter boards 2015-01-23 16:53:36 -05:00
davedenx/aria arm: Remove qong board 2015-09-11 14:59:16 -04:00
davinci Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
dbau1x00 mips: dbau1x00: move CONFIG_SYS_TEXT_BASE away from config.mk 2016-01-20 10:19:35 -05:00
denx arm: at91: Add support for DENX MA5D4 SoM and EVK 2016-02-18 21:34:41 +01:00
dnp5370 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
ebv/socrates arm: socfpga: Drop the board boilerplate 2015-12-20 03:36:51 +01:00
efi x86: Drop all the old pin configuration code 2016-03-17 10:27:25 +08:00
egnite/ethernut5 board: atmel: clean up peripheral clock code 2016-02-18 21:34:40 +01:00
embest/mx6boards Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
emulation x86: qemu: Convert to use driver model eth 2015-11-13 06:46:24 -08:00
esd board: atmel: clean up peripheral clock code 2016-02-18 21:34:40 +01:00
espt remove unnecessary version.h includes 2015-03-24 10:50:50 -04:00
evb_rk3036/evb_rk3036 rockchip: Add basic support for evb-rk3036 board 2015-12-01 08:07:22 -07:00
firefly/firefly-rk3288 rockchip: Add basic support for firefly-rk3288 2015-09-02 21:28:24 -06:00
freescale armv8/ls2080ardb: Enable VID support 2016-03-29 08:46:24 -07:00
gaisler sparc: move CONFIG_SYS_TEXT_BASE to Kconfig 2014-11-04 15:01:46 -05:00
gateworks/gw_ventana Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
gdsys strider: Add DP501 support for cpu model 2016-03-21 09:19:53 +01:00
google x86: Add support for the samus chromebook 2016-03-17 10:27:27 +08:00
gumstix omap-common: Rename set_muxconf_regs_essential to set_muxconf_regs 2016-03-15 15:12:06 -04:00
h2200 h2200: Fix build error 2015-09-07 13:41:04 +02:00
highbank Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
hisilicon/hikey Fix spelling of "supported/unsupported". 2016-03-22 12:16:14 -04:00
htkw/mcx mcx: update maintainer and convert to generic board 2015-04-09 16:48:03 -04:00
ibf-dsp561 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
ids/ids8313 fdt: Allow ft_board_setup() to report failure 2014-11-21 04:43:15 +01:00
ifm net: cosmetic: Name ethaddr variables consistently 2015-04-18 11:11:32 -06:00
imgtec/malta Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
imx31_phycore kconfig: arm: introduce symbol for ARM CPUs 2014-10-29 09:02:09 -04:00
in-circuit/grasshopper avr32: convert to dram_init() 2015-02-17 22:52:41 +01:00
inka4x0 Move console definitions into a new console.h file 2015-11-19 20:27:50 -07:00
intel x86: Drop all the old pin configuration code 2016-03-17 10:27:25 +08:00
intercontrol/digsy_mtc Various Makefiles: Add SPDX-License-Identifier tags 2015-11-10 09:19:52 -05:00
inversepath/usbarmory ARM: mx5: add support for USB armory board 2015-04-09 09:14:12 +02:00
iomega/iconnect cosmetic: kirkwood: style fixes in kwbimage.cfg files 2015-01-25 23:56:09 +01:00
ip04 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
ipek01 powerpc: ipek01: convert to generic board 2015-08-14 16:27:10 -04:00
isee ARM: Various: Future-proof serial platdata 2016-03-14 19:18:48 -04:00
jupiter fdt: Allow ft_board_setup() to report failure 2014-11-21 04:43:15 +01:00
keymile Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
kmc/kzm9g
kosagi/novena arm: imx6: Enable DDR calibration on Novena 2016-02-02 20:59:05 +01:00
kylin/kylin_rk3036 rockchip: kylin: Check fastboot request 2016-01-21 20:05:26 -07:00
l+g/vinco vinco: add Maintainers file 2016-02-20 21:40:02 +01:00
lego/ev3 arm: Add support for LEGO MINDSTORMS EV3 2016-03-14 19:18:40 -04:00
lge/sniper sniper: Clear reboot mode garbage on cold reset 2016-03-15 15:10:50 -04:00
liebherr/lwmon5 PPC4xx: Create "liebherr" vendor directory 2015-11-30 12:50:29 +01:00
logicpd ARM: Various: Future-proof serial platdata 2016-03-14 19:18:48 -04:00
maxbcm arm: mvebu: Consolidate board Kconfig options into one file 2016-01-14 14:08:59 +01:00
microchip/pic32mzda board: Add Microchip PIC32MZ[DA]-Starter-Kit board. 2016-02-01 22:14:01 +01:00
micronas/vct mips: vct: move CONFIG_SYS_TEXT_BASE away from config.mk 2016-01-20 10:19:35 -05:00
mini-box/picosam9g45 board: atmel: clean up peripheral clock code 2016-02-18 21:34:40 +01:00
mosaixtech/icon
motionpro fdt: Allow ft_board_setup() to report failure 2014-11-21 04:43:15 +01:00
mpc8308_p1m fdt: Allow ft_board_setup() to report failure 2014-11-21 04:43:15 +01:00
mpl Fix spelling of "transferred". 2016-03-22 12:16:16 -04:00
mpr2 sh: consolidate CONFIG_SYS_CPU defines 2014-11-13 08:48:48 +09:00
ms7720se sh: consolidate CONFIG_SYS_CPU defines 2014-11-13 08:48:48 +09:00
ms7722se remove unnecessary version.h includes 2015-03-24 10:50:50 -04:00
ms7750se remove unnecessary version.h includes 2015-03-24 10:50:50 -04:00
munices fdt: Allow ft_board_setup() to report failure 2014-11-21 04:43:15 +01:00
nokia/rx51 omap-common: Common function to display die id, replacing omap3-specific version 2015-10-22 14:18:30 -04:00
nvidia ARM: tegra: rm Jetson TK1 PMIC GPIO programming 2016-01-28 10:32:31 -07:00
olimex/mx23_olinuxino arm: mxs: olinuxino: move DRAM config tuning to SPL 2014-12-19 15:32:14 +01:00
omicron/calimain
openrisc/openrisc-generic
overo ARM: Various: Future-proof serial platdata 2016-03-14 19:18:48 -04:00
pandora omap-common: Common function to display die id, replacing omap3-specific version 2015-10-22 14:18:30 -04:00
pb1x00 mips: pb1x00: move CONFIG_SYS_TEXT_BASE away from config.mk 2016-01-20 10:19:36 -05:00
pdm360ng fdt: Allow ft_board_setup() to report failure 2014-11-21 04:43:15 +01:00
phytec vf610: add support for Phytec PCM052 2015-10-02 10:42:59 +02:00
ppcag/bg0900 kconfig: arm: introduce symbol for ARM CPUs 2014-10-29 09:02:09 -04:00
pr1 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
qemu-mips MIPS: kconfig: merge targets qemu_mips and qemu_mips64 2014-11-01 18:18:04 +01:00
quipos/cairo ARM: Various: Future-proof serial platdata 2016-03-14 19:18:48 -04:00
radxa/rock2 rockchip: Add support for Raxda Rock 2 2016-01-21 20:42:37 -07:00
raidsonic/ib62x0 cosmetic: kirkwood: style fixes in kwbimage.cfg files 2015-01-25 23:56:09 +01:00
raspberrypi rpi: BCM2837 and Raspberry Pi 3 32-bit support 2016-04-01 17:17:42 -04:00
renesas sh: sh7753evb: Fix build error 2016-01-25 10:40:00 -05:00
ronetix board: atmel: clean up peripheral clock code 2016-02-18 21:34:40 +01:00
samsung samsung: fix mkorigenspl for darwin 2016-02-24 18:43:59 -05:00
sandbox dm: video: sandbox: Convert sandbox to use driver model for video 2016-01-20 19:10:16 -07:00
sandisk/sansa_fuze_plus kconfig: arm: introduce symbol for ARM CPUs 2014-10-29 09:02:09 -04:00
sbc8349 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
sbc8548 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
sbc8641d Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
schulercontrol/sc_sps_1 kconfig: arm: introduce symbol for ARM CPUs 2014-10-29 09:02:09 -04:00
seco Merge branch 'master' of git://www.denx.de/git/u-boot-imx 2016-02-21 07:56:16 -05:00
shmin remove unnecessary version.h includes 2015-03-24 10:50:50 -04:00
siemens board: atmel: siemens: clean up PLLB code 2016-02-18 21:34:41 +01:00
silica/pengwyn pengwyn: nand and ethernet fixes 2015-11-12 18:13:19 -05:00
socrates Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
solidrun Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
spear net: designware: Zap CONFIG_DW_AUTONEG 2015-12-22 04:42:27 +01:00
sr1500 arm: socfpga: Drop the board boilerplate 2015-12-20 03:36:51 +01:00
st stm32: add support for stm32f7 & stm32f746 discovery board 2016-02-24 18:43:57 -05:00
sunxi sunxi: Reserve ATF memory space on A64 2016-04-01 09:52:28 +02:00
synopsys board: axs10x switch serial port and Ethernet to driver model 2015-11-18 00:39:22 +03:00
sysam/amcore m68k: move CONFIG_SYS_TEXT_BASE to defconfig files 2016-01-20 10:19:34 -05:00
syteco/zmx25 ARM: remove jadecpu board support 2015-02-24 17:06:51 -05:00
t3corp
tbs/tbs2910 board: tbs2910: Fix eMMC BOOTCFG value 2016-03-02 14:51:05 +01:00
tcl/sl50 board: Add Toby-Churchill SL50 board support. 2015-09-11 17:15:27 -04:00
tcm-bf518 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
tcm-bf537 Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
technexion omap-common: Common function to display die id, replacing omap3-specific version 2015-10-22 14:18:30 -04:00
technologic/ts4800 ARM: ts4800: add ethernet support 2015-09-02 15:26:13 +02:00
teejet/mt_ventoux omap-common: Common function to display die id, replacing omap3-specific version 2015-10-22 14:18:30 -04:00
terasic arm: socfpga: Drop the board boilerplate 2015-12-20 03:36:51 +01:00
theadorable arm: mvebu: theadorable: Add StratixV FPGA programming support 2016-03-24 09:48:34 +01:00
ti board: ti: am57xx: Set ethernet MAC addresses from EEPROM to env 2016-03-27 09:12:27 -04:00
timll ARM: Various: Future-proof serial platdata 2016-03-14 19:18:48 -04:00
toradex tegra: video: Rename CONFIG_VIDEO_TEGRA to CONFIG_VIDEO_TEGRA20 2016-02-16 09:17:51 -07:00
tqc Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
udoo MAINTAINERS/mailmap: Update my email address 2016-01-11 11:22:43 -05:00
v38b
varisys Various Makefiles: Add SPDX-License-Identifier tags 2015-11-10 09:19:52 -05:00
ve8313 fdt: Allow ft_board_setup() to report failure 2014-11-21 04:43:15 +01:00
vscom/baltos Kconfig: Move CONFIG_FIT and related options to Kconfig 2016-03-14 19:18:07 -04:00
wandboard Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
warp Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
woodburn imx: woodburn: Remove reference to gdata 2015-01-20 10:15:33 -05:00
work-microwave/work_92105 lpc32xx: work_92105: Rework Makefile 2016-03-16 15:03:40 -04:00
xes Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
xilinx ARM: zynq: Read memory size setting from DT 2016-02-22 16:21:02 +01:00
zipitz2 zipitz2: enable caches 2016-03-27 09:13:01 -04:00
zyxel/nsa310s arm: kirkwood: add ZyXEL NSA310S device 2015-11-29 22:16:14 +01:00