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

Roland Hieber r.hieber at pengutronix.de
Mon Sep 17 03:34:11 PDT 2018


Hi Alex,

Lucas said last week [0] that he needs to find time to polish this
series in order to resubmit it.

[0]: https://www.mail-archive.com/barebox@lists.infradead.org/msg27855.html

 - Roland

On Sun, Sep 16, 2018 at 05:09:13PM +0200, Alexander Dahl wrote:
> 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)



> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox


-- 
Roland Hieber                     | r.hieber at pengutronix.de     |
Pengutronix e.K.                  | https://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim | Phone: +49-5121-206917-5086 |
Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list