diff options
| author | Andrei Gherzan <andrei@gherzan.ro> | 2019-07-18 13:30:32 +0100 |
|---|---|---|
| committer | Andrei Gherzan <andrei@gherzan.ro> | 2019-07-18 15:20:46 +0100 |
| commit | fb6ec0aabf272eca1cf57e910cebe3532f1cafd8 (patch) | |
| tree | 95a06d0a1b8d3aed9be2c6be20c20c92c5898de2 | |
| parent | 570bed8acfbaf2dfd99469909a6f01e5b9b3caed (diff) | |
| download | meta-raspberrypi-ag/rpi4-misc.tar.gz | |
u-boot: Replace custom fork by patchesag/rpi4-misc
The upstream branch might suffer rebases due to effort of pushing the
patches upstream. To avoid issues, let's have here the patches we need
for RPi 4 support.
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
13 files changed, 1110 insertions, 4 deletions
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0001-configs-rpi4-Add-defconfigs-for-rpi4-32-64.patch b/recipes-bsp/u-boot/u-boot-2019.07/0001-configs-rpi4-Add-defconfigs-for-rpi4-32-64.patch new file mode 100644 index 0000000..2fe7b9e --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0001-configs-rpi4-Add-defconfigs-for-rpi4-32-64.patch | |||
| @@ -0,0 +1,111 @@ | |||
| 1 | From 2a59e8a0d574c5f878e7cf640dd2337ac5721372 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Wed, 17 Jul 2019 15:32:11 +0100 | ||
| 4 | Subject: [PATCH 01/12] configs: rpi4: Add defconfigs for rpi4 (32/64) | ||
| 5 | |||
| 6 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 7 | Upstream-status: Pending | ||
| 8 | --- | ||
| 9 | configs/rpi_4_32b_defconfig | 41 +++++++++++++++++++++++++++++++++++++ | ||
| 10 | configs/rpi_4_defconfig | 41 +++++++++++++++++++++++++++++++++++++ | ||
| 11 | 2 files changed, 82 insertions(+) | ||
| 12 | create mode 100644 configs/rpi_4_32b_defconfig | ||
| 13 | create mode 100644 configs/rpi_4_defconfig | ||
| 14 | |||
| 15 | diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig | ||
| 16 | new file mode 100644 | ||
| 17 | index 0000000000..3ee33174bc | ||
| 18 | --- /dev/null | ||
| 19 | +++ b/configs/rpi_4_32b_defconfig | ||
| 20 | @@ -0,0 +1,41 @@ | ||
| 21 | +CONFIG_ARM=y | ||
| 22 | +CONFIG_ARCH_BCM283X=y | ||
| 23 | +CONFIG_SYS_TEXT_BASE=0x00008000 | ||
| 24 | +CONFIG_TARGET_RPI_4_32B=y | ||
| 25 | +CONFIG_SYS_MALLOC_F_LEN=0x2000 | ||
| 26 | +CONFIG_DISTRO_DEFAULTS=y | ||
| 27 | +CONFIG_NR_DRAM_BANKS=1 | ||
| 28 | +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set | ||
| 29 | +CONFIG_OF_BOARD_SETUP=y | ||
| 30 | +CONFIG_MISC_INIT_R=y | ||
| 31 | +# CONFIG_DISPLAY_CPUINFO is not set | ||
| 32 | +# CONFIG_DISPLAY_BOARDINFO is not set | ||
| 33 | +CONFIG_SYS_PROMPT="U-Boot> " | ||
| 34 | +# CONFIG_CMD_FLASH is not set | ||
| 35 | +CONFIG_CMD_GPIO=y | ||
| 36 | +CONFIG_CMD_MMC=y | ||
| 37 | +CONFIG_CMD_USB=y | ||
| 38 | +CONFIG_CMD_FS_UUID=y | ||
| 39 | +CONFIG_OF_EMBED=y | ||
| 40 | +CONFIG_DEFAULT_DEVICE_TREE="bcm2838-rpi-4-b" | ||
| 41 | +CONFIG_ENV_FAT_INTERFACE="mmc" | ||
| 42 | +CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" | ||
| 43 | +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y | ||
| 44 | +CONFIG_DM_KEYBOARD=y | ||
| 45 | +CONFIG_DM_MMC=y | ||
| 46 | +CONFIG_MMC_SDHCI=y | ||
| 47 | +CONFIG_MMC_SDHCI_BCM2835=y | ||
| 48 | +CONFIG_PHYLIB=y | ||
| 49 | +CONFIG_DM_ETH=y | ||
| 50 | +CONFIG_PINCTRL=y | ||
| 51 | +# CONFIG_PINCTRL_GENERIC is not set | ||
| 52 | +# CONFIG_REQUIRE_SERIAL_CONSOLE is not set | ||
| 53 | +CONFIG_USB=y | ||
| 54 | +CONFIG_DM_USB=y | ||
| 55 | +CONFIG_USB_KEYBOARD=y | ||
| 56 | +CONFIG_USB_HOST_ETHER=y | ||
| 57 | +CONFIG_DM_VIDEO=y | ||
| 58 | +CONFIG_SYS_WHITE_ON_BLACK=y | ||
| 59 | +CONFIG_CONSOLE_SCROLL_LINES=10 | ||
| 60 | +CONFIG_PHYS_TO_BUS=y | ||
| 61 | +CONFIG_OF_LIBFDT_OVERLAY=y | ||
| 62 | diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig | ||
| 63 | new file mode 100644 | ||
| 64 | index 0000000000..b91b0869e5 | ||
| 65 | --- /dev/null | ||
| 66 | +++ b/configs/rpi_4_defconfig | ||
| 67 | @@ -0,0 +1,41 @@ | ||
| 68 | +CONFIG_ARM=y | ||
| 69 | +CONFIG_ARCH_BCM283X=y | ||
| 70 | +CONFIG_SYS_TEXT_BASE=0x00080000 | ||
| 71 | +CONFIG_TARGET_RPI_4=y | ||
| 72 | +CONFIG_SYS_MALLOC_F_LEN=0x2000 | ||
| 73 | +CONFIG_DISTRO_DEFAULTS=y | ||
| 74 | +CONFIG_NR_DRAM_BANKS=1 | ||
| 75 | +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set | ||
| 76 | +CONFIG_OF_BOARD_SETUP=y | ||
| 77 | +CONFIG_MISC_INIT_R=y | ||
| 78 | +# CONFIG_DISPLAY_CPUINFO is not set | ||
| 79 | +# CONFIG_DISPLAY_BOARDINFO is not set | ||
| 80 | +CONFIG_SYS_PROMPT="U-Boot> " | ||
| 81 | +# CONFIG_CMD_FLASH is not set | ||
| 82 | +CONFIG_CMD_GPIO=y | ||
| 83 | +CONFIG_CMD_MMC=y | ||
| 84 | +CONFIG_CMD_USB=y | ||
| 85 | +CONFIG_CMD_FS_UUID=y | ||
| 86 | +CONFIG_OF_EMBED=y | ||
| 87 | +CONFIG_DEFAULT_DEVICE_TREE="bcm2838-rpi-4-b" | ||
| 88 | +CONFIG_ENV_FAT_INTERFACE="mmc" | ||
| 89 | +CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" | ||
| 90 | +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y | ||
| 91 | +CONFIG_DM_KEYBOARD=y | ||
| 92 | +CONFIG_DM_MMC=y | ||
| 93 | +CONFIG_MMC_SDHCI=y | ||
| 94 | +CONFIG_MMC_SDHCI_BCM2835=y | ||
| 95 | +CONFIG_PHYLIB=y | ||
| 96 | +CONFIG_DM_ETH=y | ||
| 97 | +CONFIG_PINCTRL=y | ||
| 98 | +# CONFIG_PINCTRL_GENERIC is not set | ||
| 99 | +# CONFIG_REQUIRE_SERIAL_CONSOLE is not set | ||
| 100 | +CONFIG_USB=y | ||
| 101 | +CONFIG_DM_USB=y | ||
| 102 | +CONFIG_USB_KEYBOARD=y | ||
| 103 | +CONFIG_USB_HOST_ETHER=y | ||
| 104 | +CONFIG_DM_VIDEO=y | ||
| 105 | +CONFIG_SYS_WHITE_ON_BLACK=y | ||
| 106 | +CONFIG_CONSOLE_SCROLL_LINES=10 | ||
| 107 | +CONFIG_PHYS_TO_BUS=y | ||
| 108 | +CONFIG_OF_LIBFDT_OVERLAY=y | ||
| 109 | -- | ||
| 110 | 2.22.0 | ||
| 111 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0002-dts-Create-a-dtsi-for-BCM2835-6-7-specific-configura.patch b/recipes-bsp/u-boot/u-boot-2019.07/0002-dts-Create-a-dtsi-for-BCM2835-6-7-specific-configura.patch new file mode 100644 index 0000000..eda8b56 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0002-dts-Create-a-dtsi-for-BCM2835-6-7-specific-configura.patch | |||
| @@ -0,0 +1,209 @@ | |||
| 1 | From 9ef5ac66aaa8e52d1ed3a6fd6390d7d8d91a537d Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Wed, 17 Jul 2019 15:32:34 +0100 | ||
| 4 | Subject: [PATCH 02/12] dts: Create a dtsi for BCM2835/6/7 specific | ||
| 5 | configuration | ||
| 6 | |||
| 7 | This follows a similar change in kernel[1]. The change moves | ||
| 8 | configuration that was not applicable for all bcm2835/6/7/8 out of | ||
| 9 | bcm283x.dtsi. The new file is bcm2835-common.dtsi and contains | ||
| 10 | conifguration that is common for bcm2835/6/7 (not bcm2838). | ||
| 11 | |||
| 12 | [1] https://github.com/raspberrypi/linux/commit/769a7330aa5bebcc98b1ff12ecb767db4e5c644d#diff-5979fba23a5bab2cf66dde09db872dfc | ||
| 13 | |||
| 14 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 15 | Upstream-status: Pending | ||
| 16 | --- | ||
| 17 | arch/arm/dts/bcm2835-common.dtsi | 53 ++++++++++++++++++++++++++++++++ | ||
| 18 | arch/arm/dts/bcm2835.dtsi | 1 + | ||
| 19 | arch/arm/dts/bcm2836.dtsi | 1 + | ||
| 20 | arch/arm/dts/bcm2837.dtsi | 1 + | ||
| 21 | arch/arm/dts/bcm283x.dtsi | 45 +-------------------------- | ||
| 22 | 5 files changed, 57 insertions(+), 44 deletions(-) | ||
| 23 | create mode 100644 arch/arm/dts/bcm2835-common.dtsi | ||
| 24 | |||
| 25 | diff --git a/arch/arm/dts/bcm2835-common.dtsi b/arch/arm/dts/bcm2835-common.dtsi | ||
| 26 | new file mode 100644 | ||
| 27 | index 0000000000..17771730a3 | ||
| 28 | --- /dev/null | ||
| 29 | +++ b/arch/arm/dts/bcm2835-common.dtsi | ||
| 30 | @@ -0,0 +1,53 @@ | ||
| 31 | +// SPDX-License-Identifier: GPL-2.0 | ||
| 32 | + | ||
| 33 | +/* This include file covers the common peripherals and configuration between | ||
| 34 | + * bcm2835, bcm2836 and bcm2837 implementations. | ||
| 35 | + */ | ||
| 36 | + | ||
| 37 | +/ { | ||
| 38 | + soc { | ||
| 39 | + timer@7e003000 { | ||
| 40 | + compatible = "brcm,bcm2835-system-timer"; | ||
| 41 | + reg = <0x7e003000 0x1000>; | ||
| 42 | + interrupts = <1 0>, <1 1>, <1 2>, <1 3>; | ||
| 43 | + /* This could be a reference to BCM2835_CLOCK_TIMER, | ||
| 44 | + * but we don't have the driver using the common clock | ||
| 45 | + * support yet. | ||
| 46 | + */ | ||
| 47 | + clock-frequency = <1000000>; | ||
| 48 | + }; | ||
| 49 | + | ||
| 50 | + intc: interrupt-controller@7e00b200 { | ||
| 51 | + compatible = "brcm,bcm2835-armctrl-ic"; | ||
| 52 | + reg = <0x7e00b200 0x200>; | ||
| 53 | + interrupt-controller; | ||
| 54 | + #interrupt-cells = <2>; | ||
| 55 | + }; | ||
| 56 | + | ||
| 57 | + thermal: thermal@7e212000 { | ||
| 58 | + compatible = "brcm,bcm2835-thermal"; | ||
| 59 | + reg = <0x7e212000 0x8>; | ||
| 60 | + clocks = <&clocks BCM2835_CLOCK_TSENS>; | ||
| 61 | + #thermal-sensor-cells = <0>; | ||
| 62 | + status = "disabled"; | ||
| 63 | + }; | ||
| 64 | + | ||
| 65 | + v3d: v3d@7ec00000 { | ||
| 66 | + compatible = "brcm,bcm2835-v3d"; | ||
| 67 | + reg = <0x7ec00000 0x1000>; | ||
| 68 | + interrupts = <1 10>; | ||
| 69 | + }; | ||
| 70 | + }; | ||
| 71 | +}; | ||
| 72 | + | ||
| 73 | +&gpio { | ||
| 74 | + i2c_slave_gpio18: i2c_slave_gpio18 { | ||
| 75 | + brcm,pins = <18 19 20 21>; | ||
| 76 | + brcm,function = <BCM2835_FSEL_ALT3>; | ||
| 77 | + }; | ||
| 78 | + | ||
| 79 | + jtag_gpio4: jtag_gpio4 { | ||
| 80 | + brcm,pins = <4 5 6 12 13>; | ||
| 81 | + brcm,function = <BCM2835_FSEL_ALT5>; | ||
| 82 | + }; | ||
| 83 | +}; | ||
| 84 | diff --git a/arch/arm/dts/bcm2835.dtsi b/arch/arm/dts/bcm2835.dtsi | ||
| 85 | index a5c3824c80..53bf4579cc 100644 | ||
| 86 | --- a/arch/arm/dts/bcm2835.dtsi | ||
| 87 | +++ b/arch/arm/dts/bcm2835.dtsi | ||
| 88 | @@ -1,5 +1,6 @@ | ||
| 89 | // SPDX-License-Identifier: GPL-2.0 | ||
| 90 | #include "bcm283x.dtsi" | ||
| 91 | +#include "bcm2835-common.dtsi" | ||
| 92 | |||
| 93 | / { | ||
| 94 | compatible = "brcm,bcm2835"; | ||
| 95 | diff --git a/arch/arm/dts/bcm2836.dtsi b/arch/arm/dts/bcm2836.dtsi | ||
| 96 | index c933e84138..82d6c4662a 100644 | ||
| 97 | --- a/arch/arm/dts/bcm2836.dtsi | ||
| 98 | +++ b/arch/arm/dts/bcm2836.dtsi | ||
| 99 | @@ -1,5 +1,6 @@ | ||
| 100 | // SPDX-License-Identifier: GPL-2.0 | ||
| 101 | #include "bcm283x.dtsi" | ||
| 102 | +#include "bcm2835-common.dtsi" | ||
| 103 | |||
| 104 | / { | ||
| 105 | compatible = "brcm,bcm2836"; | ||
| 106 | diff --git a/arch/arm/dts/bcm2837.dtsi b/arch/arm/dts/bcm2837.dtsi | ||
| 107 | index beb6c502da..9e95fee78e 100644 | ||
| 108 | --- a/arch/arm/dts/bcm2837.dtsi | ||
| 109 | +++ b/arch/arm/dts/bcm2837.dtsi | ||
| 110 | @@ -1,4 +1,5 @@ | ||
| 111 | #include "bcm283x.dtsi" | ||
| 112 | +#include "bcm2835-common.dtsi" | ||
| 113 | |||
| 114 | / { | ||
| 115 | compatible = "brcm,bcm2837"; | ||
| 116 | diff --git a/arch/arm/dts/bcm283x.dtsi b/arch/arm/dts/bcm283x.dtsi | ||
| 117 | index 9777644c6c..a024727e4d 100644 | ||
| 118 | --- a/arch/arm/dts/bcm283x.dtsi | ||
| 119 | +++ b/arch/arm/dts/bcm283x.dtsi | ||
| 120 | @@ -56,17 +56,6 @@ | ||
| 121 | #address-cells = <1>; | ||
| 122 | #size-cells = <1>; | ||
| 123 | |||
| 124 | - timer@7e003000 { | ||
| 125 | - compatible = "brcm,bcm2835-system-timer"; | ||
| 126 | - reg = <0x7e003000 0x1000>; | ||
| 127 | - interrupts = <1 0>, <1 1>, <1 2>, <1 3>; | ||
| 128 | - /* This could be a reference to BCM2835_CLOCK_TIMER, | ||
| 129 | - * but we don't have the driver using the common clock | ||
| 130 | - * support yet. | ||
| 131 | - */ | ||
| 132 | - clock-frequency = <1000000>; | ||
| 133 | - }; | ||
| 134 | - | ||
| 135 | txp@7e004000 { | ||
| 136 | compatible = "brcm,bcm2835-txp"; | ||
| 137 | reg = <0x7e004000 0x20>; | ||
| 138 | @@ -114,13 +103,6 @@ | ||
| 139 | brcm,dma-channel-mask = <0x7f35>; | ||
| 140 | }; | ||
| 141 | |||
| 142 | - intc: interrupt-controller@7e00b200 { | ||
| 143 | - compatible = "brcm,bcm2835-armctrl-ic"; | ||
| 144 | - reg = <0x7e00b200 0x200>; | ||
| 145 | - interrupt-controller; | ||
| 146 | - #interrupt-cells = <2>; | ||
| 147 | - }; | ||
| 148 | - | ||
| 149 | pm: watchdog@7e100000 { | ||
| 150 | compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt"; | ||
| 151 | #power-domain-cells = <1>; | ||
| 152 | @@ -184,8 +166,7 @@ | ||
| 153 | interrupt-controller; | ||
| 154 | #interrupt-cells = <2>; | ||
| 155 | |||
| 156 | - /* Defines pin muxing groups according to | ||
| 157 | - * BCM2835-ARM-Peripherals.pdf page 102. | ||
| 158 | + /* Defines common pin muxing groups | ||
| 159 | * | ||
| 160 | * While each pin can have its mux selected | ||
| 161 | * for various functions individually, some | ||
| 162 | @@ -263,15 +244,6 @@ | ||
| 163 | brcm,pins = <44 45>; | ||
| 164 | brcm,function = <BCM2835_FSEL_ALT2>; | ||
| 165 | }; | ||
| 166 | - i2c_slave_gpio18: i2c_slave_gpio18 { | ||
| 167 | - brcm,pins = <18 19 20 21>; | ||
| 168 | - brcm,function = <BCM2835_FSEL_ALT3>; | ||
| 169 | - }; | ||
| 170 | - | ||
| 171 | - jtag_gpio4: jtag_gpio4 { | ||
| 172 | - brcm,pins = <4 5 6 12 13>; | ||
| 173 | - brcm,function = <BCM2835_FSEL_ALT5>; | ||
| 174 | - }; | ||
| 175 | jtag_gpio22: jtag_gpio22 { | ||
| 176 | brcm,pins = <22 23 24 25 26 27>; | ||
| 177 | brcm,function = <BCM2835_FSEL_ALT4>; | ||
| 178 | @@ -488,14 +460,6 @@ | ||
| 179 | |||
| 180 | }; | ||
| 181 | |||
| 182 | - thermal: thermal@7e212000 { | ||
| 183 | - compatible = "brcm,bcm2835-thermal"; | ||
| 184 | - reg = <0x7e212000 0x8>; | ||
| 185 | - clocks = <&clocks BCM2835_CLOCK_TSENS>; | ||
| 186 | - #thermal-sensor-cells = <0>; | ||
| 187 | - status = "disabled"; | ||
| 188 | - }; | ||
| 189 | - | ||
| 190 | aux: aux@7e215000 { | ||
| 191 | compatible = "brcm,bcm2835-aux"; | ||
| 192 | #clock-cells = <1>; | ||
| 193 | @@ -635,13 +599,6 @@ | ||
| 194 | phy-names = "usb2-phy"; | ||
| 195 | }; | ||
| 196 | |||
| 197 | - v3d: v3d@7ec00000 { | ||
| 198 | - compatible = "brcm,bcm2835-v3d"; | ||
| 199 | - reg = <0x7ec00000 0x1000>; | ||
| 200 | - interrupts = <1 10>; | ||
| 201 | - power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>; | ||
| 202 | - }; | ||
| 203 | - | ||
| 204 | vc4: gpu { | ||
| 205 | compatible = "brcm,bcm2835-vc4"; | ||
| 206 | }; | ||
| 207 | -- | ||
| 208 | 2.22.0 | ||
| 209 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0003-dts-Add-initial-support-for-bcm2838.patch b/recipes-bsp/u-boot/u-boot-2019.07/0003-dts-Add-initial-support-for-bcm2838.patch new file mode 100644 index 0000000..b6b8ca7 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0003-dts-Add-initial-support-for-bcm2838.patch | |||
| @@ -0,0 +1,333 @@ | |||
| 1 | From 9a6dca219480423f6c9dd5804e5890d434cc11b8 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Wed, 17 Jul 2019 15:32:46 +0100 | ||
| 4 | Subject: [PATCH 03/12] dts: Add initial support for bcm2838 | ||
| 5 | |||
| 6 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 7 | Upstream-status: Pending | ||
| 8 | --- | ||
| 9 | arch/arm/dts/Makefile | 3 +- | ||
| 10 | arch/arm/dts/bcm2838-rpi-4-b.dts | 52 +++++++ | ||
| 11 | arch/arm/dts/bcm2838.dtsi | 237 +++++++++++++++++++++++++++++++ | ||
| 12 | 3 files changed, 291 insertions(+), 1 deletion(-) | ||
| 13 | create mode 100644 arch/arm/dts/bcm2838-rpi-4-b.dts | ||
| 14 | create mode 100644 arch/arm/dts/bcm2838.dtsi | ||
| 15 | |||
| 16 | diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile | ||
| 17 | index 20dbc2ff84..fdb55f7fde 100644 | ||
| 18 | --- a/arch/arm/dts/Makefile | ||
| 19 | +++ b/arch/arm/dts/Makefile | ||
| 20 | @@ -749,7 +749,8 @@ dtb-$(CONFIG_ARCH_BCM283X) += \ | ||
| 21 | bcm2837-rpi-3-a-plus.dtb \ | ||
| 22 | bcm2837-rpi-3-b.dtb \ | ||
| 23 | bcm2837-rpi-3-b-plus.dtb \ | ||
| 24 | - bcm2837-rpi-cm3-io3.dtb | ||
| 25 | + bcm2837-rpi-cm3-io3.dtb \ | ||
| 26 | + bcm2838-rpi-4-b.dtb | ||
| 27 | |||
| 28 | dtb-$(CONFIG_ARCH_BCM63158) += \ | ||
| 29 | bcm963158.dtb | ||
| 30 | diff --git a/arch/arm/dts/bcm2838-rpi-4-b.dts b/arch/arm/dts/bcm2838-rpi-4-b.dts | ||
| 31 | new file mode 100644 | ||
| 32 | index 0000000000..fa7fcfed9d | ||
| 33 | --- /dev/null | ||
| 34 | +++ b/arch/arm/dts/bcm2838-rpi-4-b.dts | ||
| 35 | @@ -0,0 +1,52 @@ | ||
| 36 | +/dts-v1/; | ||
| 37 | +#include "bcm2838.dtsi" | ||
| 38 | + | ||
| 39 | +/ { | ||
| 40 | + compatible = "raspberrypi,4-model-b","brcm,bcm2838","brcm,bcm2837"; | ||
| 41 | + model = "Raspberry Pi 4 Model B"; | ||
| 42 | + | ||
| 43 | + memory { | ||
| 44 | + reg = <0 0 0x0>; | ||
| 45 | + }; | ||
| 46 | + | ||
| 47 | + leds { | ||
| 48 | + act { | ||
| 49 | + gpios = <&gpio 47 0>; | ||
| 50 | + }; | ||
| 51 | + }; | ||
| 52 | +}; | ||
| 53 | + | ||
| 54 | +/* uart0 communicates with the BT module */ | ||
| 55 | +&uart0 { | ||
| 56 | + pinctrl-names = "default"; | ||
| 57 | + pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>; | ||
| 58 | + status = "okay"; | ||
| 59 | +}; | ||
| 60 | + | ||
| 61 | +/* uart1 is mapped to the pin header */ | ||
| 62 | +&uart1 { | ||
| 63 | + pinctrl-names = "default"; | ||
| 64 | + pinctrl-0 = <&uart1_pins>; | ||
| 65 | + status = "okay"; | ||
| 66 | +}; | ||
| 67 | + | ||
| 68 | +&sdhci { | ||
| 69 | + status = "disabled"; | ||
| 70 | +}; | ||
| 71 | + | ||
| 72 | +&sdhost { | ||
| 73 | + status = "disabled"; | ||
| 74 | +}; | ||
| 75 | + | ||
| 76 | +&emmc2 { | ||
| 77 | + compatible = "brcm,bcm2711-emmc2"; | ||
| 78 | + status = "okay"; | ||
| 79 | +}; | ||
| 80 | + | ||
| 81 | +&gpio { | ||
| 82 | + uart1_pins: uart1_pins { | ||
| 83 | + brcm,pins; | ||
| 84 | + brcm,function; | ||
| 85 | + brcm,pull; | ||
| 86 | + }; | ||
| 87 | +}; | ||
| 88 | diff --git a/arch/arm/dts/bcm2838.dtsi b/arch/arm/dts/bcm2838.dtsi | ||
| 89 | new file mode 100644 | ||
| 90 | index 0000000000..19b2d7b905 | ||
| 91 | --- /dev/null | ||
| 92 | +++ b/arch/arm/dts/bcm2838.dtsi | ||
| 93 | @@ -0,0 +1,237 @@ | ||
| 94 | +#include "bcm283x.dtsi" | ||
| 95 | +#include <dt-bindings/interrupt-controller/arm-gic.h> | ||
| 96 | +#include <dt-bindings/power/raspberrypi-power.h> | ||
| 97 | + | ||
| 98 | +/ { | ||
| 99 | + compatible = "brcm,bcm2838"; | ||
| 100 | + | ||
| 101 | + #address-cells = <2>; | ||
| 102 | + #size-cells = <1>; | ||
| 103 | + | ||
| 104 | + interrupt-parent = <&gic>; | ||
| 105 | + | ||
| 106 | + soc { | ||
| 107 | + ranges = <0x7e000000 0x0 0xfe000000 0x01800000>, | ||
| 108 | + <0x7c000000 0x0 0xfc000000 0x02000000>, | ||
| 109 | + <0x40000000 0x0 0xff800000 0x00800000>; | ||
| 110 | + dma-ranges = <0xc0000000 0x0 0x00000000 0x3c000000>; | ||
| 111 | + | ||
| 112 | + gic: gic400@40041000 { | ||
| 113 | + interrupt-controller; | ||
| 114 | + #interrupt-cells = <3>; | ||
| 115 | + compatible = "arm,gic-400"; | ||
| 116 | + reg = <0x40041000 0x1000>, | ||
| 117 | + <0x40042000 0x2000>, | ||
| 118 | + <0x40044000 0x2000>, | ||
| 119 | + <0x40046000 0x2000>; | ||
| 120 | + }; | ||
| 121 | + | ||
| 122 | + thermal: thermal@7d5d2200 { | ||
| 123 | + compatible = "brcm,avs-tmon-bcm2838"; | ||
| 124 | + reg = <0x7d5d2200 0x2c>; | ||
| 125 | + interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>; | ||
| 126 | + interrupt-names = "tmon"; | ||
| 127 | + clocks = <&clocks BCM2835_CLOCK_TSENS>; | ||
| 128 | + #thermal-sensor-cells = <0>; | ||
| 129 | + status = "okay"; | ||
| 130 | + }; | ||
| 131 | + | ||
| 132 | + spi@7e204000 { | ||
| 133 | + reg = <0x7e204000 0x0200>; | ||
| 134 | + interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; | ||
| 135 | + }; | ||
| 136 | + | ||
| 137 | + pixelvalve@7e206000 { | ||
| 138 | + interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>; | ||
| 139 | + }; | ||
| 140 | + | ||
| 141 | + pixelvalve@7e207000 { | ||
| 142 | + interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>; | ||
| 143 | + }; | ||
| 144 | + | ||
| 145 | + hvs@7e400000 { | ||
| 146 | + interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; | ||
| 147 | + }; | ||
| 148 | + | ||
| 149 | + emmc2: emmc2@7e340000 { | ||
| 150 | + compatible = "brcm,bcm2711-emmc2"; | ||
| 151 | + status = "okay"; | ||
| 152 | + interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; | ||
| 153 | + clocks = <&clocks BCM2838_CLOCK_EMMC2>; | ||
| 154 | + reg = <0x7e340000 0x100>; | ||
| 155 | + }; | ||
| 156 | + | ||
| 157 | + pixelvalve@7e807000 { | ||
| 158 | + interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; | ||
| 159 | + }; | ||
| 160 | + | ||
| 161 | + }; | ||
| 162 | + | ||
| 163 | + arm-pmu { | ||
| 164 | + /* | ||
| 165 | + * N.B. the A72 PMU support only exists in arch/arm64, hence | ||
| 166 | + * the fallback to the A53 version. | ||
| 167 | + */ | ||
| 168 | + compatible = "arm,cortex-a72-pmu", "arm,cortex-a53-pmu"; | ||
| 169 | + interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, | ||
| 170 | + <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, | ||
| 171 | + <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>, | ||
| 172 | + <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | ||
| 173 | + }; | ||
| 174 | + | ||
| 175 | + timer { | ||
| 176 | + compatible = "arm,armv7-timer"; | ||
| 177 | + interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | | ||
| 178 | + IRQ_TYPE_LEVEL_LOW)>, | ||
| 179 | + <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | | ||
| 180 | + IRQ_TYPE_LEVEL_LOW)>, | ||
| 181 | + <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | | ||
| 182 | + IRQ_TYPE_LEVEL_LOW)>, | ||
| 183 | + <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | | ||
| 184 | + IRQ_TYPE_LEVEL_LOW)>; | ||
| 185 | + arm,cpu-registers-not-fw-configured; | ||
| 186 | + always-on; | ||
| 187 | + }; | ||
| 188 | + | ||
| 189 | + cpus: cpus { | ||
| 190 | + #address-cells = <1>; | ||
| 191 | + #size-cells = <0>; | ||
| 192 | + enable-method = "brcm,bcm2836-smp"; // for ARM 32-bit | ||
| 193 | + | ||
| 194 | + cpu0: cpu@0 { | ||
| 195 | + device_type = "cpu"; | ||
| 196 | + compatible = "arm,cortex-a72"; | ||
| 197 | + reg = <0>; | ||
| 198 | + enable-method = "spin-table"; | ||
| 199 | + cpu-release-addr = <0x0 0x000000d8>; | ||
| 200 | + }; | ||
| 201 | + | ||
| 202 | + cpu1: cpu@1 { | ||
| 203 | + device_type = "cpu"; | ||
| 204 | + compatible = "arm,cortex-a72"; | ||
| 205 | + reg = <1>; | ||
| 206 | + enable-method = "spin-table"; | ||
| 207 | + cpu-release-addr = <0x0 0x000000e0>; | ||
| 208 | + }; | ||
| 209 | + | ||
| 210 | + cpu2: cpu@2 { | ||
| 211 | + device_type = "cpu"; | ||
| 212 | + compatible = "arm,cortex-a72"; | ||
| 213 | + reg = <2>; | ||
| 214 | + enable-method = "spin-table"; | ||
| 215 | + cpu-release-addr = <0x0 0x000000e8>; | ||
| 216 | + }; | ||
| 217 | + | ||
| 218 | + cpu3: cpu@3 { | ||
| 219 | + device_type = "cpu"; | ||
| 220 | + compatible = "arm,cortex-a72"; | ||
| 221 | + reg = <3>; | ||
| 222 | + enable-method = "spin-table"; | ||
| 223 | + cpu-release-addr = <0x0 0x000000f0>; | ||
| 224 | + }; | ||
| 225 | + }; | ||
| 226 | +}; | ||
| 227 | + | ||
| 228 | +&clk_osc { | ||
| 229 | + clock-frequency = <54000000>; | ||
| 230 | +}; | ||
| 231 | + | ||
| 232 | +&clocks { | ||
| 233 | + compatible = "brcm,bcm2838-cprman"; | ||
| 234 | +}; | ||
| 235 | + | ||
| 236 | +&cpu_thermal { | ||
| 237 | + coefficients = <(-487) 410040>; | ||
| 238 | +}; | ||
| 239 | + | ||
| 240 | +&dsi0 { | ||
| 241 | + interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; | ||
| 242 | +}; | ||
| 243 | + | ||
| 244 | +&dsi1 { | ||
| 245 | + interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; | ||
| 246 | +}; | ||
| 247 | + | ||
| 248 | +&gpio { | ||
| 249 | + compatible = "brcm,bcm2838-gpio", "brcm,bcm2835-gpio"; | ||
| 250 | + interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>, | ||
| 251 | + <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>, | ||
| 252 | + <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>, | ||
| 253 | + <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; | ||
| 254 | +}; | ||
| 255 | + | ||
| 256 | +&vec { | ||
| 257 | + interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; | ||
| 258 | +}; | ||
| 259 | + | ||
| 260 | +&usb { | ||
| 261 | + interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; | ||
| 262 | +}; | ||
| 263 | + | ||
| 264 | +&hdmi { | ||
| 265 | + interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, | ||
| 266 | + <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; | ||
| 267 | +}; | ||
| 268 | + | ||
| 269 | +&uart1 { | ||
| 270 | + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | ||
| 271 | +}; | ||
| 272 | + | ||
| 273 | +&spi1 { | ||
| 274 | + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | ||
| 275 | +}; | ||
| 276 | + | ||
| 277 | +&spi2 { | ||
| 278 | + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; | ||
| 279 | +}; | ||
| 280 | + | ||
| 281 | +&i2c0 { | ||
| 282 | + interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | ||
| 283 | +}; | ||
| 284 | + | ||
| 285 | +&i2c1 { | ||
| 286 | + interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | ||
| 287 | +}; | ||
| 288 | + | ||
| 289 | +&i2c2 { | ||
| 290 | + interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | ||
| 291 | +}; | ||
| 292 | + | ||
| 293 | +&mailbox { | ||
| 294 | + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; | ||
| 295 | +}; | ||
| 296 | + | ||
| 297 | +&sdhost { | ||
| 298 | + interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; | ||
| 299 | +}; | ||
| 300 | + | ||
| 301 | +&uart0 { | ||
| 302 | + interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | ||
| 303 | +}; | ||
| 304 | + | ||
| 305 | +&dma { | ||
| 306 | + reg = <0x7e007000 0xb00>; | ||
| 307 | + interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>, | ||
| 308 | + <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>, | ||
| 309 | + <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>, | ||
| 310 | + <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>, | ||
| 311 | + <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, | ||
| 312 | + <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, | ||
| 313 | + <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>, | ||
| 314 | + <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, /* dmalite 7 */ | ||
| 315 | + <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>, /* dmalite 8 */ | ||
| 316 | + <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, /* dmalite 9 */ | ||
| 317 | + <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; /* dmalite 10 */ | ||
| 318 | + interrupt-names = "dma0", | ||
| 319 | + "dma1", | ||
| 320 | + "dma2", | ||
| 321 | + "dma3", | ||
| 322 | + "dma4", | ||
| 323 | + "dma5", | ||
| 324 | + "dma6", | ||
| 325 | + "dma7", | ||
| 326 | + "dma8", | ||
| 327 | + "dma9", | ||
| 328 | + "dma10"; | ||
| 329 | + brcm,dma-channel-mask = <0x07f5>; | ||
| 330 | +}; | ||
| 331 | -- | ||
| 332 | 2.22.0 | ||
| 333 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0004-arm-mach-bcm283x-Define-configs-for-RaspberryPi-4.patch b/recipes-bsp/u-boot/u-boot-2019.07/0004-arm-mach-bcm283x-Define-configs-for-RaspberryPi-4.patch new file mode 100644 index 0000000..ce2a664 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0004-arm-mach-bcm283x-Define-configs-for-RaspberryPi-4.patch | |||
| @@ -0,0 +1,67 @@ | |||
| 1 | From a343e3755ff8b85f453800fe165624687e4d5879 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Wed, 17 Jul 2019 15:33:01 +0100 | ||
| 4 | Subject: [PATCH 04/12] arm: mach-bcm283x: Define configs for RaspberryPi 4 | ||
| 5 | |||
| 6 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 7 | Upstream-status: Pending | ||
| 8 | --- | ||
| 9 | arch/arm/mach-bcm283x/Kconfig | 35 +++++++++++++++++++++++++++++++++++ | ||
| 10 | 1 file changed, 35 insertions(+) | ||
| 11 | |||
| 12 | diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig | ||
| 13 | index 3eb5a9a897..d5069fe688 100644 | ||
| 14 | --- a/arch/arm/mach-bcm283x/Kconfig | ||
| 15 | +++ b/arch/arm/mach-bcm283x/Kconfig | ||
| 16 | @@ -26,6 +26,23 @@ config BCM2837_64B | ||
| 17 | select BCM2837 | ||
| 18 | select ARM64 | ||
| 19 | |||
| 20 | +config BCM2838 | ||
| 21 | + bool "Broadcom BCM2838 SoC support" | ||
| 22 | + depends on ARCH_BCM283X | ||
| 23 | + | ||
| 24 | +config BCM2838_32B | ||
| 25 | + bool "Broadcom BCM2838 SoC 32-bit support" | ||
| 26 | + depends on ARCH_BCM283X | ||
| 27 | + select BCM2838 | ||
| 28 | + select ARMV7_LPAE | ||
| 29 | + select CPU_V7A | ||
| 30 | + | ||
| 31 | +config BCM2838_64B | ||
| 32 | + bool "Broadcom BCM2838 SoC 64-bit support" | ||
| 33 | + depends on ARCH_BCM283X | ||
| 34 | + select BCM2838 | ||
| 35 | + select ARM64 | ||
| 36 | + | ||
| 37 | menu "Broadcom BCM283X family" | ||
| 38 | depends on ARCH_BCM283X | ||
| 39 | |||
| 40 | @@ -127,6 +144,24 @@ config TARGET_RPI_3 | ||
| 41 | This option creates a build targeting the ARMv8/AArch64 ISA. | ||
| 42 | select BCM2837_64B | ||
| 43 | |||
| 44 | +config TARGET_RPI_4 | ||
| 45 | + bool "Raspberry Pi 4 64-bit build" | ||
| 46 | + help | ||
| 47 | + Support for all BCM2838-based Raspberry Pi variants, such as | ||
| 48 | + the RPi 4 model B, in AArch64 (64-bit) mode. | ||
| 49 | + | ||
| 50 | + This option creates a build targeting the ARMv8/AArch64 ISA. | ||
| 51 | + select BCM2838_64B | ||
| 52 | + | ||
| 53 | +config TARGET_RPI_4_32B | ||
| 54 | + bool "Raspberry Pi 4 32-bit build" | ||
| 55 | + help | ||
| 56 | + Support for all BCM2838-based Raspberry Pi variants, such as | ||
| 57 | + the RPi 4 model B, in AArch32 (32-bit) mode. | ||
| 58 | + | ||
| 59 | + This option creates a build targeting the ARMv7/AArch32 ISA. | ||
| 60 | + select BCM2838_32B | ||
| 61 | + | ||
| 62 | endchoice | ||
| 63 | |||
| 64 | config SYS_BOARD | ||
| 65 | -- | ||
| 66 | 2.22.0 | ||
| 67 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0005-arm-mach-bcm283x-Define-mbox-address-for-BCM2838.patch b/recipes-bsp/u-boot/u-boot-2019.07/0005-arm-mach-bcm283x-Define-mbox-address-for-BCM2838.patch new file mode 100644 index 0000000..a7def93 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0005-arm-mach-bcm283x-Define-mbox-address-for-BCM2838.patch | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | From 32546abed12ff4c9b8b1480b31e6306bec876218 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Wed, 17 Jul 2019 15:34:07 +0100 | ||
| 4 | Subject: [PATCH 05/12] arm: mach-bcm283x: Define mbox address for BCM2838 | ||
| 5 | |||
| 6 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 7 | Upstream-status: Pending | ||
| 8 | --- | ||
| 9 | arch/arm/mach-bcm283x/include/mach/mbox.h | 5 +++++ | ||
| 10 | 1 file changed, 5 insertions(+) | ||
| 11 | |||
| 12 | diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach-bcm283x/include/mach/mbox.h | ||
| 13 | index e3a893e49c..2d711daaa8 100644 | ||
| 14 | --- a/arch/arm/mach-bcm283x/include/mach/mbox.h | ||
| 15 | +++ b/arch/arm/mach-bcm283x/include/mach/mbox.h | ||
| 16 | @@ -38,11 +38,16 @@ | ||
| 17 | /* Raw mailbox HW */ | ||
| 18 | |||
| 19 | #ifndef CONFIG_BCM2835 | ||
| 20 | +#ifdef CONFIG_BCM2838 | ||
| 21 | +#define BCM2835_MBOX_PHYSADDR 0xfe00b880 | ||
| 22 | +#else | ||
| 23 | #define BCM2835_MBOX_PHYSADDR 0x3f00b880 | ||
| 24 | +#endif | ||
| 25 | #else | ||
| 26 | #define BCM2835_MBOX_PHYSADDR 0x2000b880 | ||
| 27 | #endif | ||
| 28 | |||
| 29 | + | ||
| 30 | struct bcm2835_mbox_regs { | ||
| 31 | u32 read; | ||
| 32 | u32 rsvd0[5]; | ||
| 33 | -- | ||
| 34 | 2.22.0 | ||
| 35 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0006-rpi-Add-rpi_model-entry-for-RaspberryPi-4.patch b/recipes-bsp/u-boot/u-boot-2019.07/0006-rpi-Add-rpi_model-entry-for-RaspberryPi-4.patch new file mode 100644 index 0000000..b279d11 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0006-rpi-Add-rpi_model-entry-for-RaspberryPi-4.patch | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | From 8a8e6c7364d41bbd3eb20dc7e4ec1c0a3e3b5259 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Wed, 17 Jul 2019 15:34:18 +0100 | ||
| 4 | Subject: [PATCH 06/12] rpi: Add rpi_model entry for RaspberryPi 4 | ||
| 5 | |||
| 6 | The Raspebrry Pi 4 uses the new revision code scheme as documented by | ||
| 7 | the foundation[1]. This change adds an entry for this board as well. | ||
| 8 | |||
| 9 | [1] https://www.raspberrypi.org/documentation/hardware/raspberrypi/revision-codes/README.md | ||
| 10 | |||
| 11 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 12 | Upstream-status: Pending | ||
| 13 | --- | ||
| 14 | board/raspberrypi/rpi/rpi.c | 5 +++++ | ||
| 15 | 1 file changed, 5 insertions(+) | ||
| 16 | |||
| 17 | diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c | ||
| 18 | index 617c892dde..6d6f1ef39a 100644 | ||
| 19 | --- a/board/raspberrypi/rpi/rpi.c | ||
| 20 | +++ b/board/raspberrypi/rpi/rpi.c | ||
| 21 | @@ -148,6 +148,11 @@ static const struct rpi_model rpi_models_new_scheme[] = { | ||
| 22 | DTB_DIR "bcm2837-rpi-cm3.dtb", | ||
| 23 | false, | ||
| 24 | }, | ||
| 25 | + [0x11] = { | ||
| 26 | + "4 Model B", | ||
| 27 | + DTB_DIR "bcm2711-rpi-4-b.dtb", | ||
| 28 | + true, | ||
| 29 | + }, | ||
| 30 | }; | ||
| 31 | |||
| 32 | static const struct rpi_model rpi_models_old_scheme[] = { | ||
| 33 | -- | ||
| 34 | 2.22.0 | ||
| 35 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0007-dt-bindings-Define-BCM2838_CLOCK_EMMC2-needed-for-Ra.patch b/recipes-bsp/u-boot/u-boot-2019.07/0007-dt-bindings-Define-BCM2838_CLOCK_EMMC2-needed-for-Ra.patch new file mode 100644 index 0000000..597b492 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0007-dt-bindings-Define-BCM2838_CLOCK_EMMC2-needed-for-Ra.patch | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | From 8ba1934b184fcdb967c5046ddace112bf3be21f1 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Wed, 17 Jul 2019 15:34:28 +0100 | ||
| 4 | Subject: [PATCH 07/12] dt-bindings: Define BCM2838_CLOCK_EMMC2 needed for | ||
| 5 | RaspberryPi 4 | ||
| 6 | |||
| 7 | On BCM2838 there is an additional clock. This clock was added in the | ||
| 8 | same bcm2835-cprman driver and is used by the emmc2 dt node. | ||
| 9 | |||
| 10 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 11 | Upstream-status: Pending | ||
| 12 | --- | ||
| 13 | include/dt-bindings/clock/bcm2835.h | 1 + | ||
| 14 | 1 file changed, 1 insertion(+) | ||
| 15 | |||
| 16 | diff --git a/include/dt-bindings/clock/bcm2835.h b/include/dt-bindings/clock/bcm2835.h | ||
| 17 | index 2cec01f968..b75031abb1 100644 | ||
| 18 | --- a/include/dt-bindings/clock/bcm2835.h | ||
| 19 | +++ b/include/dt-bindings/clock/bcm2835.h | ||
| 20 | @@ -58,3 +58,4 @@ | ||
| 21 | #define BCM2835_CLOCK_DSI1E 48 | ||
| 22 | #define BCM2835_CLOCK_DSI0P 49 | ||
| 23 | #define BCM2835_CLOCK_DSI1P 50 | ||
| 24 | +#define BCM2838_CLOCK_EMMC2 51 | ||
| 25 | -- | ||
| 26 | 2.22.0 | ||
| 27 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0008-arm-bcm283x-Include-definition-for-additional-emmc-c.patch b/recipes-bsp/u-boot/u-boot-2019.07/0008-arm-bcm283x-Include-definition-for-additional-emmc-c.patch new file mode 100644 index 0000000..546e786 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0008-arm-bcm283x-Include-definition-for-additional-emmc-c.patch | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | From cb85ecba76fde3c96007eae9eda58a083f177333 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Fri, 12 Jul 2019 11:26:10 +0100 | ||
| 4 | Subject: [PATCH 08/12] arm: bcm283x: Include definition for additional emmc | ||
| 5 | clock | ||
| 6 | |||
| 7 | This clock has a different mbox ID[1] so have this included in the | ||
| 8 | relevant header file. | ||
| 9 | |||
| 10 | [1] https://github.com/raspberrypi/firmware/issues/1179 | ||
| 11 | |||
| 12 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 13 | Upstream-status: Pending | ||
| 14 | --- | ||
| 15 | arch/arm/mach-bcm283x/include/mach/mbox.h | 1 + | ||
| 16 | 1 file changed, 1 insertion(+) | ||
| 17 | |||
| 18 | diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach-bcm283x/include/mach/mbox.h | ||
| 19 | index 2d711daaa8..cad035e8cd 100644 | ||
| 20 | --- a/arch/arm/mach-bcm283x/include/mach/mbox.h | ||
| 21 | +++ b/arch/arm/mach-bcm283x/include/mach/mbox.h | ||
| 22 | @@ -239,6 +239,7 @@ struct bcm2835_mbox_tag_set_power_state { | ||
| 23 | #define BCM2835_MBOX_CLOCK_ID_SDRAM 8 | ||
| 24 | #define BCM2835_MBOX_CLOCK_ID_PIXEL 9 | ||
| 25 | #define BCM2835_MBOX_CLOCK_ID_PWM 10 | ||
| 26 | +#define BCM2835_MBOX_CLOCK_ID_EMMC2 12 | ||
| 27 | |||
| 28 | struct bcm2835_mbox_tag_get_clock_rate { | ||
| 29 | struct bcm2835_mbox_tag_hdr tag_hdr; | ||
| 30 | -- | ||
| 31 | 2.22.0 | ||
| 32 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0009-mmc-bcm2835_sdhci-Add-support-for-bcm2711-device.patch b/recipes-bsp/u-boot/u-boot-2019.07/0009-mmc-bcm2835_sdhci-Add-support-for-bcm2711-device.patch new file mode 100644 index 0000000..762cb7e --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0009-mmc-bcm2835_sdhci-Add-support-for-bcm2711-device.patch | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | From 8fd71dfaeab0ae350c8fa56b039eaafd577a1787 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Matthias Brugger <mbrugger@suse.com> | ||
| 3 | Date: Wed, 10 Jul 2019 13:24:36 +0200 | ||
| 4 | Subject: [PATCH 09/12] mmc: bcm2835_sdhci: Add support for bcm2711 device | ||
| 5 | |||
| 6 | The bcm2711 has two emmc controller. The difference is the clocks | ||
| 7 | they use. Add support for the second emmc contoller. | ||
| 8 | |||
| 9 | Signed-off-by: Matthias Brugger <mbrugger@suse.com> | ||
| 10 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 11 | Upstream-status: Pending | ||
| 12 | --- | ||
| 13 | drivers/mmc/bcm2835_sdhci.c | 12 ++++++++++-- | ||
| 14 | 1 file changed, 10 insertions(+), 2 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/drivers/mmc/bcm2835_sdhci.c b/drivers/mmc/bcm2835_sdhci.c | ||
| 17 | index 08bddd410e..e68dec3be7 100644 | ||
| 18 | --- a/drivers/mmc/bcm2835_sdhci.c | ||
| 19 | +++ b/drivers/mmc/bcm2835_sdhci.c | ||
| 20 | @@ -178,12 +178,13 @@ static int bcm2835_sdhci_probe(struct udevice *dev) | ||
| 21 | fdt_addr_t base; | ||
| 22 | int emmc_freq; | ||
| 23 | int ret; | ||
| 24 | + int clock_id = (int)dev_get_driver_data(dev); | ||
| 25 | |||
| 26 | base = devfdt_get_addr(dev); | ||
| 27 | if (base == FDT_ADDR_T_NONE) | ||
| 28 | return -EINVAL; | ||
| 29 | |||
| 30 | - ret = bcm2835_get_mmc_clock(BCM2835_MBOX_CLOCK_ID_EMMC); | ||
| 31 | + ret = bcm2835_get_mmc_clock(clock_id); | ||
| 32 | if (ret < 0) { | ||
| 33 | debug("%s: Failed to set MMC clock (err=%d)\n", __func__, ret); | ||
| 34 | return ret; | ||
| 35 | @@ -228,7 +229,14 @@ static int bcm2835_sdhci_probe(struct udevice *dev) | ||
| 36 | } | ||
| 37 | |||
| 38 | static const struct udevice_id bcm2835_sdhci_match[] = { | ||
| 39 | - { .compatible = "brcm,bcm2835-sdhci" }, | ||
| 40 | + { | ||
| 41 | + .compatible = "brcm,bcm2835-sdhci", | ||
| 42 | + .data = BCM2835_MBOX_CLOCK_ID_EMMC | ||
| 43 | + }, | ||
| 44 | + { | ||
| 45 | + .compatible = "brcm,bcm2711-emmc2", | ||
| 46 | + .data = BCM2835_MBOX_CLOCK_ID_EMMC2 | ||
| 47 | + }, | ||
| 48 | { /* sentinel */ } | ||
| 49 | }; | ||
| 50 | |||
| 51 | -- | ||
| 52 | 2.22.0 | ||
| 53 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0010-arm-bcm283x-Define-device-base-addresses-for-bcm2835.patch b/recipes-bsp/u-boot/u-boot-2019.07/0010-arm-bcm283x-Define-device-base-addresses-for-bcm2835.patch new file mode 100644 index 0000000..bfba764 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0010-arm-bcm283x-Define-device-base-addresses-for-bcm2835.patch | |||
| @@ -0,0 +1,64 @@ | |||
| 1 | From 1f7bbd8ee6f4781473d87f6194ad2f815b1c1a19 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Fri, 12 Jul 2019 11:38:11 +0100 | ||
| 4 | Subject: [PATCH 10/12] arm: bcm283x: Define device base addresses for bcm2835 | ||
| 5 | |||
| 6 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 7 | Upstream-status: Pending | ||
| 8 | --- | ||
| 9 | arch/arm/mach-bcm283x/include/mach/sdhci.h | 4 ++++ | ||
| 10 | arch/arm/mach-bcm283x/include/mach/timer.h | 4 ++++ | ||
| 11 | arch/arm/mach-bcm283x/include/mach/wdog.h | 4 ++++ | ||
| 12 | 3 files changed, 12 insertions(+) | ||
| 13 | |||
| 14 | diff --git a/arch/arm/mach-bcm283x/include/mach/sdhci.h b/arch/arm/mach-bcm283x/include/mach/sdhci.h | ||
| 15 | index 5cb6ec3340..262b016a1b 100644 | ||
| 16 | --- a/arch/arm/mach-bcm283x/include/mach/sdhci.h | ||
| 17 | +++ b/arch/arm/mach-bcm283x/include/mach/sdhci.h | ||
| 18 | @@ -7,7 +7,11 @@ | ||
| 19 | #define _BCM2835_SDHCI_H_ | ||
| 20 | |||
| 21 | #ifndef CONFIG_BCM2835 | ||
| 22 | +#ifdef CONFIG_BCM2838 | ||
| 23 | +#define BCM2835_SDHCI_BASE 0xfe300000 | ||
| 24 | +#else | ||
| 25 | #define BCM2835_SDHCI_BASE 0x3f300000 | ||
| 26 | +#endif | ||
| 27 | #else | ||
| 28 | #define BCM2835_SDHCI_BASE 0x20300000 | ||
| 29 | #endif | ||
| 30 | diff --git a/arch/arm/mach-bcm283x/include/mach/timer.h b/arch/arm/mach-bcm283x/include/mach/timer.h | ||
| 31 | index 56b0c356bb..dc3ed98879 100644 | ||
| 32 | --- a/arch/arm/mach-bcm283x/include/mach/timer.h | ||
| 33 | +++ b/arch/arm/mach-bcm283x/include/mach/timer.h | ||
| 34 | @@ -7,7 +7,11 @@ | ||
| 35 | #define _BCM2835_TIMER_H | ||
| 36 | |||
| 37 | #ifndef CONFIG_BCM2835 | ||
| 38 | +#ifdef CONFIG_BCM2838 | ||
| 39 | +#define BCM2835_TIMER_PHYSADDR 0xfe003000 | ||
| 40 | +#else | ||
| 41 | #define BCM2835_TIMER_PHYSADDR 0x3f003000 | ||
| 42 | +#endif | ||
| 43 | #else | ||
| 44 | #define BCM2835_TIMER_PHYSADDR 0x20003000 | ||
| 45 | #endif | ||
| 46 | diff --git a/arch/arm/mach-bcm283x/include/mach/wdog.h b/arch/arm/mach-bcm283x/include/mach/wdog.h | ||
| 47 | index 99c88e5df7..ef040f385d 100644 | ||
| 48 | --- a/arch/arm/mach-bcm283x/include/mach/wdog.h | ||
| 49 | +++ b/arch/arm/mach-bcm283x/include/mach/wdog.h | ||
| 50 | @@ -7,7 +7,11 @@ | ||
| 51 | #define _BCM2835_WDOG_H | ||
| 52 | |||
| 53 | #ifndef CONFIG_BCM2835 | ||
| 54 | +#ifdef CONFIG_BCM2838 | ||
| 55 | +#define BCM2835_WDOG_PHYSADDR 0xfe100000 | ||
| 56 | +#else | ||
| 57 | #define BCM2835_WDOG_PHYSADDR 0x3f100000 | ||
| 58 | +#endif | ||
| 59 | #else | ||
| 60 | #define BCM2835_WDOG_PHYSADDR 0x20100000 | ||
| 61 | #endif | ||
| 62 | -- | ||
| 63 | 2.22.0 | ||
| 64 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0011-rpi-Add-memory-map-for-bcm2838.patch b/recipes-bsp/u-boot/u-boot-2019.07/0011-rpi-Add-memory-map-for-bcm2838.patch new file mode 100644 index 0000000..b2d25d0 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0011-rpi-Add-memory-map-for-bcm2838.patch | |||
| @@ -0,0 +1,59 @@ | |||
| 1 | From ab0137601cea84296f607da22d27f0bbf1265e1a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei@balena.io> | ||
| 3 | Date: Fri, 12 Jul 2019 14:27:31 +0100 | ||
| 4 | Subject: [PATCH 11/12] rpi: Add memory map for bcm2838 | ||
| 5 | |||
| 6 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 7 | Upstream-status: Pending | ||
| 8 | --- | ||
| 9 | board/raspberrypi/rpi/rpi.c | 27 ++++++++++++++++++++++++--- | ||
| 10 | 1 file changed, 24 insertions(+), 3 deletions(-) | ||
| 11 | |||
| 12 | diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c | ||
| 13 | index 6d6f1ef39a..1c4fae9166 100644 | ||
| 14 | --- a/board/raspberrypi/rpi/rpi.c | ||
| 15 | +++ b/board/raspberrypi/rpi/rpi.c | ||
| 16 | @@ -249,7 +249,8 @@ static uint32_t rev_type; | ||
| 17 | static const struct rpi_model *model; | ||
| 18 | |||
| 19 | #ifdef CONFIG_ARM64 | ||
| 20 | -static struct mm_region bcm2837_mem_map[] = { | ||
| 21 | +#ifndef CONFIG_BCM2838 | ||
| 22 | +static struct mm_region bcm283x_mem_map[] = { | ||
| 23 | { | ||
| 24 | .virt = 0x00000000UL, | ||
| 25 | .phys = 0x00000000UL, | ||
| 26 | @@ -268,8 +269,28 @@ static struct mm_region bcm2837_mem_map[] = { | ||
| 27 | 0, | ||
| 28 | } | ||
| 29 | }; | ||
| 30 | - | ||
| 31 | -struct mm_region *mem_map = bcm2837_mem_map; | ||
| 32 | +#else | ||
| 33 | +static struct mm_region bcm283x_mem_map[] = { | ||
| 34 | + { | ||
| 35 | + .virt = 0x00000000UL, | ||
| 36 | + .phys = 0x00000000UL, | ||
| 37 | + .size = 0xfe000000UL, | ||
| 38 | + .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | | ||
| 39 | + PTE_BLOCK_INNER_SHARE | ||
| 40 | + }, { | ||
| 41 | + .virt = 0xfe000000UL, | ||
| 42 | + .phys = 0xfe000000UL, | ||
| 43 | + .size = 0x01800000UL, | ||
| 44 | + .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | | ||
| 45 | + PTE_BLOCK_NON_SHARE | | ||
| 46 | + PTE_BLOCK_PXN | PTE_BLOCK_UXN | ||
| 47 | + }, { | ||
| 48 | + /* List terminator */ | ||
| 49 | + 0, | ||
| 50 | + } | ||
| 51 | +}; | ||
| 52 | +#endif | ||
| 53 | +struct mm_region *mem_map = bcm283x_mem_map; | ||
| 54 | #endif | ||
| 55 | |||
| 56 | int dram_init(void) | ||
| 57 | -- | ||
| 58 | 2.22.0 | ||
| 59 | |||
diff --git a/recipes-bsp/u-boot/u-boot-2019.07/0012-bcm283x-mbox-Correctly-wait-for-space-to-send.patch b/recipes-bsp/u-boot/u-boot-2019.07/0012-bcm283x-mbox-Correctly-wait-for-space-to-send.patch new file mode 100644 index 0000000..47d443b --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-2019.07/0012-bcm283x-mbox-Correctly-wait-for-space-to-send.patch | |||
| @@ -0,0 +1,68 @@ | |||
| 1 | From 29f48584f6c4b40124396c77547e34febc015a36 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Fabian Vogt <fvogt@suse.com> | ||
| 3 | Date: Fri, 28 Jun 2019 14:25:53 +0200 | ||
| 4 | Subject: [PATCH 12/12] bcm283x mbox: Correctly wait for space to send | ||
| 5 | |||
| 6 | For sending, the second mailbox is used, but previously the status register of | ||
| 7 | the first one was read. | ||
| 8 | |||
| 9 | Signed-off-by: Andrei Gherzan <andrei@balena.io> | ||
| 10 | Upstream-status: Submitted [https://lists.denx.de/pipermail/u-boot/2019-July/376774.html] | ||
| 11 | --- | ||
| 12 | arch/arm/mach-bcm283x/include/mach/mbox.h | 7 +++++-- | ||
| 13 | arch/arm/mach-bcm283x/mbox.c | 6 +++--- | ||
| 14 | 2 files changed, 8 insertions(+), 5 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/arch/arm/mach-bcm283x/include/mach/mbox.h b/arch/arm/mach-bcm283x/include/mach/mbox.h | ||
| 17 | index cad035e8cd..cd78966150 100644 | ||
| 18 | --- a/arch/arm/mach-bcm283x/include/mach/mbox.h | ||
| 19 | +++ b/arch/arm/mach-bcm283x/include/mach/mbox.h | ||
| 20 | @@ -51,9 +51,12 @@ | ||
| 21 | struct bcm2835_mbox_regs { | ||
| 22 | u32 read; | ||
| 23 | u32 rsvd0[5]; | ||
| 24 | - u32 status; | ||
| 25 | - u32 config; | ||
| 26 | + u32 status_r; | ||
| 27 | + u32 config_r; | ||
| 28 | u32 write; | ||
| 29 | + u32 rsvd1[5]; | ||
| 30 | + u32 status_w; | ||
| 31 | + u32 config_w; | ||
| 32 | }; | ||
| 33 | |||
| 34 | #define BCM2835_MBOX_STATUS_WR_FULL 0x80000000 | ||
| 35 | diff --git a/arch/arm/mach-bcm283x/mbox.c b/arch/arm/mach-bcm283x/mbox.c | ||
| 36 | index 1642ebd103..f7483bf423 100644 | ||
| 37 | --- a/arch/arm/mach-bcm283x/mbox.c | ||
| 38 | +++ b/arch/arm/mach-bcm283x/mbox.c | ||
| 39 | @@ -27,7 +27,7 @@ int bcm2835_mbox_call_raw(u32 chan, u32 send, u32 *recv) | ||
| 40 | /* Drain any stale responses */ | ||
| 41 | |||
| 42 | for (;;) { | ||
| 43 | - val = readl(®s->status); | ||
| 44 | + val = readl(®s->status_r); | ||
| 45 | if (val & BCM2835_MBOX_STATUS_RD_EMPTY) | ||
| 46 | break; | ||
| 47 | if (get_timer(0) >= endtime) { | ||
| 48 | @@ -40,7 +40,7 @@ int bcm2835_mbox_call_raw(u32 chan, u32 send, u32 *recv) | ||
| 49 | /* Wait for space to send */ | ||
| 50 | |||
| 51 | for (;;) { | ||
| 52 | - val = readl(®s->status); | ||
| 53 | + val = readl(®s->status_w); | ||
| 54 | if (!(val & BCM2835_MBOX_STATUS_WR_FULL)) | ||
| 55 | break; | ||
| 56 | if (get_timer(0) >= endtime) { | ||
| 57 | @@ -58,7 +58,7 @@ int bcm2835_mbox_call_raw(u32 chan, u32 send, u32 *recv) | ||
| 58 | /* Wait for the response */ | ||
| 59 | |||
| 60 | for (;;) { | ||
| 61 | - val = readl(®s->status); | ||
| 62 | + val = readl(®s->status_r); | ||
| 63 | if (!(val & BCM2835_MBOX_STATUS_RD_EMPTY)) | ||
| 64 | break; | ||
| 65 | if (get_timer(0) >= endtime) { | ||
| 66 | -- | ||
| 67 | 2.22.0 | ||
| 68 | |||
diff --git a/recipes-bsp/u-boot/u-boot_2019.07.bbappend b/recipes-bsp/u-boot/u-boot_2019.07.bbappend index 6dfcc2c..f39db10 100644 --- a/recipes-bsp/u-boot/u-boot_2019.07.bbappend +++ b/recipes-bsp/u-boot/u-boot_2019.07.bbappend | |||
| @@ -1,4 +1,17 @@ | |||
| 1 | SRC_URI_raspberrypi4 = "git://github.com/balena-os/u-boot;branch=ag/rpi4" | 1 | FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:" |
| 2 | SRCREV_raspberrypi4 = "62b6e39a53c56a9085aeab1b47b5cc6020fcdb6f" | 2 | UBOOT_RPI4_SUPPORT_PATCHES = " \ |
| 3 | SRC_URI_raspberrypi4-64 = "git://github.com/balena-os/u-boot;branch=ag/rpi4" | 3 | file://0001-configs-rpi4-Add-defconfigs-for-rpi4-32-64.patch \ |
| 4 | SRCREV_raspberrypi4-64 = "62b6e39a53c56a9085aeab1b47b5cc6020fcdb6f" | 4 | file://0002-dts-Create-a-dtsi-for-BCM2835-6-7-specific-configura.patch \ |
| 5 | file://0003-dts-Add-initial-support-for-bcm2838.patch \ | ||
| 6 | file://0004-arm-mach-bcm283x-Define-configs-for-RaspberryPi-4.patch \ | ||
| 7 | file://0005-arm-mach-bcm283x-Define-mbox-address-for-BCM2838.patch \ | ||
| 8 | file://0006-rpi-Add-rpi_model-entry-for-RaspberryPi-4.patch \ | ||
| 9 | file://0007-dt-bindings-Define-BCM2838_CLOCK_EMMC2-needed-for-Ra.patch \ | ||
| 10 | file://0008-arm-bcm283x-Include-definition-for-additional-emmc-c.patch \ | ||
| 11 | file://0009-mmc-bcm2835_sdhci-Add-support-for-bcm2711-device.patch \ | ||
| 12 | file://0010-arm-bcm283x-Define-device-base-addresses-for-bcm2835.patch \ | ||
| 13 | file://0011-rpi-Add-memory-map-for-bcm2838.patch \ | ||
| 14 | file://0012-bcm283x-mbox-Correctly-wait-for-space-to-send.patch \ | ||
| 15 | " | ||
| 16 | |||
| 17 | SRC_URI_append_raspberrypi4 = "${UBOOT_RPI4_SUPPORT_PATCHES}" | ||
