On Fri, 23 Nov 2018 14:35:53 +0100, Michael Tretter wrote:
> Add support for the Xilinx Zynq Ultrascale+ MPSoC architecture (ZynqMP)
> and the Xilinx ZCU104 board.
>
> Barebox is booted as BL33 in EL-1 and expects that a BL2 (i.e. the FSBL)
> already took care of initializing the RAM. Also for debug_ll, the UART
> is expected to be already setup correctly.
>
> Thus, you have to add the Barebox binary to a boot image as described in
> "Chapter 11: Boot and Configuration" of "Zynq Ultrascale+ Device
> Technical Reference Manual".
>
> The ENTRY_FUNCTION macro cannot be used in aarch64, because aarch64 does
> not specify the __naked__ attribute and gcc add a function prologue to
> the entry function which writes to the stack, but the stack is not set
> up. Thus, the entry has to be implemented in assembly.
>
> Signed-off-by: Michael Tretter <[email protected]>
> ---
> arch/arm/Kconfig | 14 +++++++
> arch/arm/Makefile | 1 +
> arch/arm/boards/Makefile | 1 +
> arch/arm/boards/xilinx-zcu104/Makefile | 2 +
> arch/arm/boards/xilinx-zcu104/board.c | 25 ++++++++++++
> arch/arm/boards/xilinx-zcu104/lowlevel.c | 30 +++++++++++++++
> arch/arm/boards/xilinx-zcu104/lowlevel_init.S | 32 ++++++++++++++++
> arch/arm/configs/zynqmp_defconfig | 38 +++++++++++++++++++
> arch/arm/dts/Makefile | 1 +
> arch/arm/mach-zynqmp/Kconfig | 9 +++++
> arch/arm/mach-zynqmp/Makefile | 1 +
> arch/arm/mach-zynqmp/include/mach/debug_ll.h | 30 +++++++++++++++
> arch/arm/mach-zynqmp/zynqmp.c | 22 +++++++++++
> images/Makefile | 1 +
> images/Makefile.zynqmp | 7 ++++
> 15 files changed, 214 insertions(+)
> create mode 100644 arch/arm/boards/xilinx-zcu104/Makefile
> create mode 100644 arch/arm/boards/xilinx-zcu104/board.c
> create mode 100644 arch/arm/boards/xilinx-zcu104/lowlevel.c
> create mode 100644 arch/arm/boards/xilinx-zcu104/lowlevel_init.S
> create mode 100644 arch/arm/configs/zynqmp_defconfig
> create mode 100644 arch/arm/mach-zynqmp/Kconfig
> create mode 100644 arch/arm/mach-zynqmp/Makefile
> create mode 100644 arch/arm/mach-zynqmp/include/mach/debug_ll.h
> create mode 100644 arch/arm/mach-zynqmp/zynqmp.c
> create mode 100644 images/Makefile.zynqmp
>
[...]
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 503d9b18f9..0ac3124c8c 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -119,6 +119,7 @@ pbl-dtb-$(CONFIG_MACH_ZII_VF610_DEV) += \
> pbl-dtb-$(CONFIG_MACH_AT91SAM9263EK_DT) += at91sam9263ek.dtb.o
> pbl-dtb-$(CONFIG_MACH_MICROCHIP_KSZ9477_EVB) +=
> at91-microchip-ksz9477-evb.dtb.o
> pbl-dtb-$(CONFIG_MACH_AT91SAM9X5EK) += at91sam9x5ek.dtb.o
> +pbl-dtb-$(CONFIG_MACH_XILINX_ZCU104) += zynqmp-zcu104-revA.dtb.o
I forgot to add the dts file for barebox to the patch. Will do in v2.
Michael
>
> pbl-dtb-$(CONFIG_MACH_ZII_IMX7D_RPU2) += imx7d-zii-rpu2.dtb.o
>
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox