[PATCH v3 09/10] ARM: rpi: add raspberry pi 3 support

Alexander Dahl post at lespocky.de
Sun Sep 16 08:09:13 PDT 2018


Hei hei,

this patch series for RPi3 support was not merged yet. What is the
current status? Would it help if I test it on a raspberry pi 3?

(Background: I have a RPi3 lying around and would like to use
DistroKit on it.)

Greets
Alex

On Mon, Mar 26, 2018 at 09:20:24PM +0200, Lucas Stach wrote:
> This adds basic support at the same feature level as the other
> supported raspberry pi boards.
> 
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> Tested-by: Roland Hieber <r.hieber at pengutronix.de>
> ---
>  arch/arm/boards/raspberry-pi/lowlevel.c | 14 ++++++++++++--
>  arch/arm/configs/rpi_defconfig          |  2 ++
>  arch/arm/dts/Makefile                   |  1 +
>  arch/arm/dts/bcm2837-rpi-3.dts          | 15 +++++++++++++++
>  arch/arm/mach-bcm283x/Kconfig           |  6 ++++++
>  arch/arm/mach-bcm283x/core.c            |  1 +
>  images/Makefile.bcm283x                 |  4 ++++
>  7 files changed, 41 insertions(+), 2 deletions(-)
>  create mode 100644 arch/arm/dts/bcm2837-rpi-3.dts
> 
> diff --git a/arch/arm/boards/raspberry-pi/lowlevel.c b/arch/arm/boards/raspberry-pi/lowlevel.c
> index 4e71e29e0c0b..5ca0d3877069 100644
> --- a/arch/arm/boards/raspberry-pi/lowlevel.c
> +++ b/arch/arm/boards/raspberry-pi/lowlevel.c
> @@ -1,7 +1,7 @@
> +#include <asm/barebox-arm.h>
> +#include <asm/cache.h>
>  #include <common.h>
>  #include <linux/sizes.h>
> -#include <asm/barebox-arm.h>
> -#include <asm/barebox-arm-head.h>
>  #include <mach/platform.h>
>  
>  extern char __dtb_bcm2835_rpi_start[];
> @@ -23,3 +23,13 @@ ENTRY_FUNCTION(start_raspberry_pi2, r0, r1, r2)
>  
>  	barebox_arm_entry(BCM2835_SDRAM_BASE, SZ_512M, fdt);
>  }
> +
> +extern char __dtb_bcm2837_rpi_3_start[];
> +ENTRY_FUNCTION(start_raspberry_pi3, r0, r1, r2)
> +{
> +	void *fdt = __dtb_bcm2837_rpi_3_start - get_runtime_offset();
> +
> +	arm_cpu_lowlevel_init();
> +
> +	barebox_arm_entry(BCM2835_SDRAM_BASE, SZ_512M, fdt);
> +}
> diff --git a/arch/arm/configs/rpi_defconfig b/arch/arm/configs/rpi_defconfig
> index f3aef4290425..cd88b4ac751c 100644
> --- a/arch/arm/configs/rpi_defconfig
> +++ b/arch/arm/configs/rpi_defconfig
> @@ -1,9 +1,11 @@
>  CONFIG_ARCH_BCM283X=y
>  CONFIG_MACH_RPI=y
>  CONFIG_MACH_RPI2=y
> +CONFIG_MACH_RPI3=y
>  CONFIG_AEABI=y
>  CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y
>  CONFIG_ARM_UNWIND=y
> +CONFIG_IMAGE_COMPRESSION_NONE=y
>  CONFIG_MMU=y
>  CONFIG_MALLOC_TLSF=y
>  CONFIG_KALLSYMS=y
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 0526a6f40724..0eab313c5011 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -66,6 +66,7 @@ pbl-dtb-$(CONFIG_MACH_PHYTEC_SOM_RK3288) += rk3288-phycore-som.dtb.o
>  pbl-dtb-$(CONFIG_MACH_REALQ7) += imx6q-dmo-edmqmx6.dtb.o
>  pbl-dtb-$(CONFIG_MACH_RPI) += bcm2835-rpi.dtb.o
>  pbl-dtb-$(CONFIG_MACH_RPI2) += bcm2836-rpi-2.dtb.o
> +pbl-dtb-$(CONFIG_MACH_RPI3) += bcm2837-rpi-3.dtb.o
>  pbl-dtb-$(CONFIG_MACH_SABRELITE) += imx6q-sabrelite.dtb.o imx6dl-sabrelite.dtb.o
>  pbl-dtb-$(CONFIG_MACH_SABRESD) += imx6q-sabresd.dtb.o
>  pbl-dtb-$(CONFIG_MACH_FREESCALE_IMX6SX_SABRESDB) += imx6sx-sdb.dtb.o
> diff --git a/arch/arm/dts/bcm2837-rpi-3.dts b/arch/arm/dts/bcm2837-rpi-3.dts
> new file mode 100644
> index 000000000000..f8c58c570137
> --- /dev/null
> +++ b/arch/arm/dts/bcm2837-rpi-3.dts
> @@ -0,0 +1,15 @@
> +#include <arm64/broadcom/bcm2837-rpi-3-b.dts>
> +
> +/ {
> +	chosen {
> +		stdout-path = &uart0;
> +	};
> +
> +	memory {
> +		reg = <0x0 0x0>;
> +	};
> +};
> +
> +&uart0 {
> +	status = "okay";
> +};
> diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig
> index 1457f114ccaa..af2f88c47acb 100644
> --- a/arch/arm/mach-bcm283x/Kconfig
> +++ b/arch/arm/mach-bcm283x/Kconfig
> @@ -19,6 +19,12 @@ config MACH_RPI2
>  	select CPU_V7
>  	select MACH_RPI_COMMON
>  
> +config MACH_RPI3
> +	bool "RaspberryPi 3 (BCM2837/CORTEX-A53)"
> +	select CPU_V7
> +	select MACH_RPI_COMMON
> +	select ARM_SECURE_MONITOR
> +
>  endmenu
>  
>  config MACH_RPI_DEBUG_UART_BASE
> diff --git a/arch/arm/mach-bcm283x/core.c b/arch/arm/mach-bcm283x/core.c
> index fddcb0d1a1d4..26f0996b1cb8 100644
> --- a/arch/arm/mach-bcm283x/core.c
> +++ b/arch/arm/mach-bcm283x/core.c
> @@ -41,6 +41,7 @@ static int bcm2835_clk_init(void)
>  	clk = clk_fixed("uart0-pl0110", 3 * 1000 * 1000);
>  	clk_register_clkdev(clk, NULL, "uart0-pl0110");
>  	clk_register_clkdev(clk, NULL, "20201000.serial");
> +	clk_register_clkdev(clk, NULL, "3f201000.serial");
>  
>  	clk = clk_fixed("bcm2835-cs", 1 * 1000 * 1000);
>  	clk_register_clkdev(clk, NULL, "bcm2835-cs");
> diff --git a/images/Makefile.bcm283x b/images/Makefile.bcm283x
> index d59ef043f05c..d14e648926ac 100644
> --- a/images/Makefile.bcm283x
> +++ b/images/Makefile.bcm283x
> @@ -9,3 +9,7 @@ image-$(CONFIG_MACH_RPI) += barebox-raspberry-pi-1.img
>  pblx-$(CONFIG_MACH_RPI2) += start_raspberry_pi2
>  FILE_barebox-raspberry-pi-2.img = start_raspberry_pi2.pblx
>  image-$(CONFIG_MACH_RPI2) += barebox-raspberry-pi-2.img
> +
> +pblx-$(CONFIG_MACH_RPI3) += start_raspberry_pi3
> +FILE_barebox-raspberry-pi-3.img = start_raspberry_pi3.pblx
> +image-$(CONFIG_MACH_RPI3) += barebox-raspberry-pi-3.img
> \ No newline at end of file
> -- 
> 2.16.1
> 
> 
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox

-- 
/"\ ASCII RIBBON | »With the first link, the chain is forged. The first
\ / CAMPAIGN     | speech censured, the first thought forbidden, the
 X  AGAINST      | first freedom denied, chains us all irrevocably.«
/ \ HTML MAIL    | (Jean-Luc Picard, quoting Judge Aaron Satie)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/barebox/attachments/20180916/c1b5f885/attachment.sig>


More information about the barebox mailing list