[v4] zynqmp: Add generic target

Message ID 20180425074352.57148-1-agraf@suse.de
State New
Headers show
Series
  • [v4] zynqmp: Add generic target
Related show

Commit Message

Alexander Graf April 25, 2018, 7:43 a.m.
I would like to create a generic U-Boot build that adapts itself completely
based on the DT passed in. That way we can potentially support running
random board configurations with a single U-Boot binary built as part of
the distribution.

Currently a few things are still missing to make it a full reality. The
most obvious one I think is the EEPROM location. This would need to also
move into something described by DT.

Apart from that, we're almost there. This patch adds a defconfig that simply
contains all drivers we could make use of. We can then enable individual
boards along the way and slowly adapt everything to be fully DT described
while we identify each missing bit.

Signed-off-by: Alexander Graf <agraf@suse.de>

---

v1 -> v2:

  - Remove debug uart

v2 -> v3

  - show model information instead of custom IDENT_STRING

v3 -> v4:

  - reintroduce CONFIG_IDENT_STRING
  - remove CONFIG_DEFAULT_DEVICE_TREE
  - run through savedefconfig
  - replace CONFIG_SYS_I2C_ZYNQ with CONFIG_SYS_I2C_CADENCE
  - remove CONFIG_ZYNQ_SDHCI{0,1} - needs to be solved generically
  - add xhci usb1 to xhci controller list
---
 configs/xilinx_zynqmp_generic_defconfig | 86 +++++++++++++++++++++++++++++++++
 include/configs/xilinx_zynqmp_generic.h | 21 ++++++++
 2 files changed, 107 insertions(+)
 create mode 100644 configs/xilinx_zynqmp_generic_defconfig
 create mode 100644 include/configs/xilinx_zynqmp_generic.h

Comments

Michal Simek May 10, 2018, 9:10 a.m. | #1
Hi,

On 25.4.2018 09:43, Alexander Graf wrote:
> I would like to create a generic U-Boot build that adapts itself completely
> based on the DT passed in. That way we can potentially support running
> random board configurations with a single U-Boot binary built as part of
> the distribution.
> 
> Currently a few things are still missing to make it a full reality. The
> most obvious one I think is the EEPROM location. This would need to also
> move into something described by DT.
> 
> Apart from that, we're almost there. This patch adds a defconfig that simply
> contains all drivers we could make use of. We can then enable individual
> boards along the way and slowly adapt everything to be fully DT described
> while we identify each missing bit.
> 
> Signed-off-by: Alexander Graf <agraf@suse.de>
> 
> ---
> 
> v1 -> v2:
> 
>   - Remove debug uart
> 
> v2 -> v3
> 
>   - show model information instead of custom IDENT_STRING
> 
> v3 -> v4:
> 
>   - reintroduce CONFIG_IDENT_STRING
>   - remove CONFIG_DEFAULT_DEVICE_TREE
>   - run through savedefconfig
>   - replace CONFIG_SYS_I2C_ZYNQ with CONFIG_SYS_I2C_CADENCE
>   - remove CONFIG_ZYNQ_SDHCI{0,1} - needs to be solved generically
>   - add xhci usb1 to xhci controller list
> ---
>  configs/xilinx_zynqmp_generic_defconfig | 86 +++++++++++++++++++++++++++++++++
>  include/configs/xilinx_zynqmp_generic.h | 21 ++++++++
>  2 files changed, 107 insertions(+)
>  create mode 100644 configs/xilinx_zynqmp_generic_defconfig
>  create mode 100644 include/configs/xilinx_zynqmp_generic.h
> 

I still have the same concern as I have told you here.
https://lists.denx.de/pipermail/u-boot/2018-April/326477.html

It is not that generic as it is suggest to be.
Resolving that issues first is IMHO the best way to go instead of
pretending that we are there by new target.

Thanks,
Michal

Patch

diff --git a/configs/xilinx_zynqmp_generic_defconfig b/configs/xilinx_zynqmp_generic_defconfig
new file mode 100644
index 0000000000..ea2be0c9cc
--- /dev/null
+++ b/configs/xilinx_zynqmp_generic_defconfig
@@ -0,0 +1,86 @@ 
+CONFIG_ARM=y
+CONFIG_SYS_CONFIG_NAME="xilinx_zynqmp_generic"
+CONFIG_ARCH_ZYNQMP=y
+CONFIG_SYS_TEXT_BASE=0x8000000
+CONFIG_SYS_MALLOC_F_LEN=0x8000
+CONFIG_IDENT_STRING=" Xilinx ZynqMP based platform"
+CONFIG_ZYNQMP_USB=y
+CONFIG_AHCI=y
+CONFIG_DISTRO_DEFAULTS=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_BOARD_EARLY_INIT_R=y
+CONFIG_SYS_PROMPT="ZynqMP> "
+CONFIG_FASTBOOT=y
+CONFIG_FASTBOOT_FLASH=y
+CONFIG_FASTBOOT_FLASH_MMC_DEV=0
+CONFIG_CMD_THOR_DOWNLOAD=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_SYS_ALT_MEMTEST=y
+CONFIG_CMD_CLK=y
+CONFIG_CMD_DFU=y
+# CONFIG_CMD_FLASH is not set
+CONFIG_CMD_FPGA_LOADBP=y
+CONFIG_CMD_FPGA_LOADP=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_TFTPPUT=y
+CONFIG_CMD_TIME=y
+CONFIG_CMD_TIMER=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_OF_BOARD=y
+CONFIG_ENV_IS_IN_FAT=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_SPL_DM_SEQ_ALIAS=y
+CONFIG_SCSI_AHCI=y
+CONFIG_SATA_CEVA=y
+CONFIG_CLK_ZYNQMP=y
+CONFIG_DFU_RAM=y
+CONFIG_FPGA_XILINX=y
+CONFIG_FPGA_ZYNQMPPL=y
+CONFIG_DM_GPIO=y
+CONFIG_CMD_PCA953X=y
+CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_CADENCE=y
+CONFIG_MISC=y
+CONFIG_DM_MMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_ZYNQ=y
+CONFIG_SPI_FLASH=y
+CONFIG_SPI_FLASH_BAR=y
+CONFIG_SPI_FLASH_MACRONIX=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_WINBOND=y
+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
+CONFIG_PHY_MARVELL=y
+CONFIG_PHY_NATSEMI=y
+CONFIG_PHY_REALTEK=y
+CONFIG_PHY_TI=y
+CONFIG_PHY_VITESSE=y
+CONFIG_PHY_FIXED=y
+CONFIG_DM_ETH=y
+CONFIG_PHY_GIGE=y
+CONFIG_ZYNQ_GEM=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
+CONFIG_ZYNQ_SERIAL=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_XHCI_ZYNQMP=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GADGET=y
+CONFIG_USB_ULPI_VIEWPORT=y
+CONFIG_USB_ULPI=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="Xilinx"
+CONFIG_USB_GADGET_VENDOR_NUM=0x03FD
+CONFIG_USB_GADGET_PRODUCT_NUM=0x0300
+CONFIG_USB_FUNCTION_THOR=y
+CONFIG_EFI_LOADER_BOUNCE_BUFFER=y
diff --git a/include/configs/xilinx_zynqmp_generic.h b/include/configs/xilinx_zynqmp_generic.h
new file mode 100644
index 0000000000..5e3a1240c6
--- /dev/null
+++ b/include/configs/xilinx_zynqmp_generic.h
@@ -0,0 +1,21 @@ 
+/*
+ * Configuration for the Xilinx ZynqMP generic platform
+ *
+ * (C) Copyright 2018 Alexander Graf <agraf@suse.de>
+ * (C) Copyright 2015 Xilinx, Inc.
+ * Michal Simek <michal.simek@xilinx.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __CONFIG_ZYNQMP_GENERIC_H
+#define __CONFIG_ZYNQMP_GENERIC_H
+
+/* This file should disappear as soon as xhci is converted to DT enumerated */
+
+#define CONFIG_ZYNQMP_XHCI_LIST {ZYNQMP_USB0_XHCI_BASEADDR, \
+				 ZYNQMP_USB1_XHCI_BASEADDR}
+
+#include <configs/xilinx_zynqmp.h>
+
+#endif /* __CONFIG_ZYNQMP_GENERIC_H */