Stephen Warren | 3ef844a | 2016-03-24 22:15:16 -0600 | [diff] [blame] | 1 | config BCM2835 |
| 2 | bool "Broadcom BCM2835 SoC support" |
| 3 | depends on ARCH_BCM283X |
| 4 | |
| 5 | config BCM2836 |
| 6 | bool "Broadcom BCM2836 SoC support" |
| 7 | depends on ARCH_BCM283X |
| 8 | |
Stephen Warren | d6f47c8 | 2016-03-24 22:15:20 -0600 | [diff] [blame] | 9 | config BCM2837 |
| 10 | bool "Broadcom BCM2837 SoC support" |
| 11 | depends on ARCH_BCM283X |
| 12 | |
Masahiro Yamada | ed22cc7 | 2015-03-19 19:42:56 +0900 | [diff] [blame] | 13 | menu "Broadcom BCM283X family" |
| 14 | depends on ARCH_BCM283X |
| 15 | |
| 16 | choice |
| 17 | prompt "Broadcom BCM283X board select" |
Joe Hershberger | f069960 | 2015-05-12 14:46:23 -0500 | [diff] [blame] | 18 | optional |
Masahiro Yamada | ed22cc7 | 2015-03-19 19:42:56 +0900 | [diff] [blame] | 19 | |
| 20 | config TARGET_RPI |
Stephen Warren | afaf43d | 2016-03-24 22:15:19 -0600 | [diff] [blame] | 21 | bool "Raspberry Pi (all BCM2835 variants)" |
| 22 | help |
| 23 | Support for all ARM1176-/BCM2835-based Raspberry Pi variants, such as |
| 24 | the A, A+, B, B+, Compute Module, and Zero. This option cannot |
| 25 | support BCM2836/BCM2837-based Raspberry Pis such as the RPi 2 and |
| 26 | RPi 3 due to different peripheral address maps. |
| 27 | |
| 28 | This option creates a build targetting the ARM1176 ISA. |
Stephen Warren | 3ef844a | 2016-03-24 22:15:16 -0600 | [diff] [blame] | 29 | select BCM2835 |
Masahiro Yamada | ed22cc7 | 2015-03-19 19:42:56 +0900 | [diff] [blame] | 30 | select CPU_ARM1176 |
| 31 | |
| 32 | config TARGET_RPI_2 |
| 33 | bool "Raspberry Pi 2" |
Stephen Warren | afaf43d | 2016-03-24 22:15:19 -0600 | [diff] [blame] | 34 | help |
| 35 | Support for all BCM2836-based Raspberry Pi variants, such as |
| 36 | the RPi 2 model B. |
| 37 | |
| 38 | This option also supports BCM2837-based variants such as the RPi 3 |
| 39 | Model B, when run in 32-bit mode, provided you have configured the |
| 40 | VideoCore firmware to select the PL011 UART for the console by: |
| 41 | a) config.txt should contain dtoverlay=pi3-miniuart-bt. |
| 42 | b) You should run the following to tell the VC FW to process DT when |
| 43 | booting, and copy u-boot.bin.img (rather than u-boot.bin) to the SD |
| 44 | card as the kernel image: |
| 45 | |
| 46 | path/to/kernel/scripts/mkknlimg --dtok u-boot.bin u-boot.bin.img |
| 47 | |
| 48 | This works as of firmware.git commit 046effa13ebc "firmware: |
| 49 | arm_loader: emmc clock depends on core clock See: |
| 50 | https://github.com/raspberrypi/firmware/issues/572". |
| 51 | |
| 52 | This option creates a build targetting the ARMv7/AArch32 ISA. |
Alexander Graf | 169892f | 2016-03-16 15:41:23 +0100 | [diff] [blame] | 53 | select ARMV7_LPAE |
Stephen Warren | 3ef844a | 2016-03-24 22:15:16 -0600 | [diff] [blame] | 54 | select BCM2836 |
| 55 | select CPU_V7 |
Masahiro Yamada | ed22cc7 | 2015-03-19 19:42:56 +0900 | [diff] [blame] | 56 | |
Stephen Warren | d6f47c8 | 2016-03-24 22:15:20 -0600 | [diff] [blame] | 57 | config TARGET_RPI_3_32B |
| 58 | bool "Raspberry Pi 3 32-bit build" |
| 59 | help |
| 60 | Support for all BCM2837-based Raspberry Pi variants, such as |
| 61 | the RPi 3 model B, in AArch32 (32-bit) mode. |
| 62 | |
| 63 | This option assumes the VideoCore firmware is configured to use the |
| 64 | mini UART (rather than PL011) for the serial console. This is the |
| 65 | default on the RPi 3. To enable the UART console, the following non- |
Stephen Warren | b2f48c2 | 2016-04-01 21:38:04 -0600 | [diff] [blame^] | 66 | default option must be present in config.txt: enable_uart=1. This is |
| 67 | required for U-Boot to operate correctly, even if you only care |
| 68 | about the HDMI/usbkbd console. |
Stephen Warren | d6f47c8 | 2016-03-24 22:15:20 -0600 | [diff] [blame] | 69 | |
| 70 | This option creates a build targetting the ARMv7/AArch32 ISA. |
| 71 | select ARMV7_LPAE |
| 72 | select BCM2837 |
| 73 | select CPU_V7 |
| 74 | |
Stephen Warren | 93ea526 | 2016-04-01 21:14:15 -0600 | [diff] [blame] | 75 | config TARGET_RPI_3 |
| 76 | bool "Raspberry Pi 3 64-bit build" |
Stephen Warren | b2f48c2 | 2016-04-01 21:38:04 -0600 | [diff] [blame^] | 77 | help |
| 78 | Support for all BCM2837-based Raspberry Pi variants, such as |
| 79 | the RPi 3 model B, in AArch64 (64-bit) mode. |
| 80 | |
| 81 | This option assumes the VideoCore firmware is configured to use the |
| 82 | mini UART (rather than PL011) for the serial console. This is the |
| 83 | default on the RPi 3. To enable the UART console, the following non- |
| 84 | default option must be present in config.txt: enable_uart=1. This is |
| 85 | required for U-Boot to operate correctly, even if you only care |
| 86 | about the HDMI/usbkbd console. |
| 87 | |
| 88 | At the time of writing, the VC FW requires a non-default option in |
| 89 | config.txt to request the ARM CPU boot in 64-bit mode: |
| 90 | arm_control=0x200 |
| 91 | |
| 92 | The VC FW typically provides ARM "stub" code to set up the CPU and |
| 93 | quiesce secondary SMP CPUs. This is not currently true in 64-bit |
| 94 | mode. In order to boot U-Boot before the VC FW is enhanced, please |
| 95 | see the commit description for the commit which added RPi3 support |
| 96 | for a workaround. Since the instructions are temporary, they are not |
| 97 | duplicated here. The VC FW enhancement is tracked in |
| 98 | https://github.com/raspberrypi/firmware/issues/579. |
| 99 | |
| 100 | This option creates a build targetting the ARMv8/AArch64 ISA. |
Stephen Warren | 93ea526 | 2016-04-01 21:14:15 -0600 | [diff] [blame] | 101 | select ARM64 |
| 102 | select BCM2837 |
| 103 | |
Masahiro Yamada | ed22cc7 | 2015-03-19 19:42:56 +0900 | [diff] [blame] | 104 | endchoice |
| 105 | |
Masahiro Yamada | ed22cc7 | 2015-03-19 19:42:56 +0900 | [diff] [blame] | 106 | config SYS_BOARD |
| 107 | default "rpi" if TARGET_RPI |
| 108 | default "rpi_2" if TARGET_RPI_2 |
Stephen Warren | d6f47c8 | 2016-03-24 22:15:20 -0600 | [diff] [blame] | 109 | default "rpi_3_32b" if TARGET_RPI_3_32B |
Stephen Warren | 93ea526 | 2016-04-01 21:14:15 -0600 | [diff] [blame] | 110 | default "rpi_3" if TARGET_RPI_3 |
Masahiro Yamada | ed22cc7 | 2015-03-19 19:42:56 +0900 | [diff] [blame] | 111 | |
| 112 | config SYS_VENDOR |
| 113 | default "raspberrypi" |
| 114 | |
| 115 | config SYS_SOC |
Masahiro Yamada | 82d81a4 | 2015-03-19 19:42:57 +0900 | [diff] [blame] | 116 | default "bcm283x" |
Masahiro Yamada | ed22cc7 | 2015-03-19 19:42:56 +0900 | [diff] [blame] | 117 | |
| 118 | config SYS_CONFIG_NAME |
| 119 | default "rpi" if TARGET_RPI |
| 120 | default "rpi_2" if TARGET_RPI_2 |
Stephen Warren | d6f47c8 | 2016-03-24 22:15:20 -0600 | [diff] [blame] | 121 | default "rpi_3_32b" if TARGET_RPI_3_32B |
Stephen Warren | 93ea526 | 2016-04-01 21:14:15 -0600 | [diff] [blame] | 122 | default "rpi_3" if TARGET_RPI_3 |
Masahiro Yamada | ed22cc7 | 2015-03-19 19:42:56 +0900 | [diff] [blame] | 123 | |
| 124 | endmenu |