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