[U-Boot] [PATCH] arm: Add support for Trenz TE0820 (zynqmp)
Vladimir Svoboda
ze.vlad at gmail.com
Wed May 2 09:06:38 UTC 2018
Thanks for the review,
On 02/05/18 10:00, Michal Simek wrote:
> Hi, + Trenz support.
>
> On 30.4.2018 16:10, Vladimir Svoboda wrote:
>> Add support for Trenz TE0820 revision 2 MPSoC module.
>>
>> Signed-off-by: Vladimir Svoboda <ze.vlad at gmail.com>
> I can't see your name in git log that's why I expect this is maybe your
> the first submission. How can I trust that you will test this board
> regularly that make sense to have it in the tree?
>
> I don't have this board that's why it can be broken quickly.
This is indeed my first patch submission to U-boot.
I work at HIPPEROS S.A. and we develop a RTOS.
We are part of a european-funded project, called Tulipp, where partners use
that board.
That's the guarantee I can give you.
>
>> ---
>>
>> arch/arm/dts/Makefile | 1 +
>> arch/arm/dts/zynqmp-te0820-rev2.dts | 669 ++++++++++++++++++
>> .../zynqmp/zynqmp-te0820-rev2/psu_init_gpl.c | 624 ++++++++++++++++
> There are a lot of versions with different chips on it. It will be good
> to exactly write what version this is going to support.
> Also there is different amount of flash on 1EL version based on
> https://shop.trenz-electronic.de/en/Products/Trenz-Electronic/TE08XX-Zynq-UltraScale/TE0820-Zynq-UltraScale/
>
> Also this is SOM and it requires Carrier board to know wiring. What
> carrier board is this configuration for?
Indeed, there are several versions.
I can only test with the module TE0820-02-03EG-1EA as this is the only
one we
have.
The carrier board we use is the Sundance EMC2, they will sell it with the
TE0820 module under the name EMC2-ZU3EG.
>
>> configs/xilinx_zynqmp_te0820_rev2_defconfig | 105 +++
>> include/configs/xilinx_zynqmp_te0820.h | 49 ++
>> 5 files changed, 1448 insertions(+)
>> create mode 100644 arch/arm/dts/zynqmp-te0820-rev2.dts
>> create mode 100644 board/xilinx/zynqmp/zynqmp-te0820-rev2/psu_init_gpl.c
>> create mode 100644 configs/xilinx_zynqmp_te0820_rev2_defconfig
>> create mode 100644 include/configs/xilinx_zynqmp_te0820.h
>>
>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>> index ac7667b1e8..ec4e7cc206 100644
>> --- a/arch/arm/dts/Makefile
>> +++ b/arch/arm/dts/Makefile
>> @@ -148,6 +148,7 @@ dtb-$(CONFIG_ARCH_ZYNQ) += \
>> dtb-$(CONFIG_ARCH_ZYNQMP) += \
>> zynqmp-mini-emmc.dtb \
>> zynqmp-mini-nand.dtb \
>> + zynqmp-te0820-rev2.dtb \
> This is Trenz that's why it you should use trenz instead of zynqmp.
Just for my information, what does zynqmp refers to then?
I thought it was the technical name for UltraScale+ MPSoC.
>
>> zynqmp-zcu100-revC.dtb \
>> zynqmp-zcu102-revA.dtb \
>> zynqmp-zcu102-revB.dtb \
>> diff --git a/arch/arm/dts/zynqmp-te0820-rev2.dts b/arch/arm/dts/zynqmp-te0820-rev2.dts
>> new file mode 100644
>> index 0000000000..db23dfe45c
>> --- /dev/null
>> +++ b/arch/arm/dts/zynqmp-te0820-rev2.dts
>> @@ -0,0 +1,669 @@
>> +/*
>> + * dts file for Xilinx ZynqMP TE0820 Rev2
> Trenz again.
So you expect "Xilinx Trenz TE0820 Rev2" or "Trenz TE0820 Rev2"?
>
>> + *
>> + * (C) Copyright 2018, HIPPEROS.
>> + *
>> + * Vladimir Svoboda <vladimir.svoboda at hipperos.com>
>> + *
>> + * SPDX-License-Identifier: GPL-2.0+
> Please use kernel format where this line comes first.
>
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "zynqmp.dtsi"
>> +#include "zynqmp-clk-ccf.dtsi"
>> +#include <dt-bindings/input/input.h>
>> +#include <dt-bindings/gpio/gpio.h>
>> +#include <dt-bindings/phy/phy.h>
>> +
>> +/ {
>> + model = "ZynqMP TE0820 Rev2";
> Trenz,
>
>> + compatible = "xlnx,zynqmp-te0820-rev2", "xlnx,zynqmp-te0820", "xlnx,zynqmp";
> Add trenz to vendor-prefixes.txt in the Linux kernel and use it here.
>
>> +
>> + aliases {
>> + ethernet0 = &gem3;
>> + gpio0 = &gpio;
> Based on Rob Herring this shouldn't be here.
>
>
>> + i2c0 = &i2c0;
>> + i2c1 = &i2c1;
>> + mmc0 = &sdhci1;
>> + rtc0 = &rtc;
>> + serial0 = &uart0;
>> + serial1 = &uart1;
>> + serial2 = &dcc;
>> + spi0 = &qspi;
>> + usb0 = &usb0;
> The same for gpio.
>
>> + };
>> +
>> + chosen {
>> + bootargs = "earlycon";
>> + stdout-path = "serial0:115200n8";
>> + };
>> +
>> + memory at 0 {
>> + device_type = "memory";
>> + reg = <0x0 0x0 0x0 0x40000000>;
>> + };
>> +
>> + gpio-keys {
>> + compatible = "gpio-keys";
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> + autorepeat;
>> + sw19 {
>> + label = "sw19";
>> + gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
>> + linux,code = <KEY_DOWN>;
>> + gpio-key,wakeup;
>> + autorepeat;
>> + };
>> + };
>> +
>> + leds {
>> + compatible = "gpio-leds";
>> + heartbeat_led {
>> + label = "heartbeat";
>> + gpios = <&gpio 23 GPIO_ACTIVE_HIGH>;
>> + linux,default-trigger = "heartbeat";
>> + };
>> + };
> This and stuff below looks like c&p from zcu102 version which is incorrect.
This is indeed a c&p from the ZCU 102 where I modified a couple of things
(memory size, SDIO...).
I did not check the validity of all the devices information and there are
probably errors regarding the routing of GPIO.
>
> I am going to skip the rest of this patch because questions above needs
> to be answered first.
I hope that this answer will help to continue the review.
Vladimir
>
> Thanks,
> Michal
More information about the U-Boot
mailing list