zynqmp: Add generic target
PATCH v2 1/1 zynqmp: Add generic target
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.
---
v1 -> v2:
- Remove debug uart
--- configs/xilinx_zynqmp_generic_defconfig | 96 +++++++++++++++++++++++++++++++++ include/configs/xilinx_zynqmp_generic.h | 23 ++++++++ 2 files changed, 119 insertions(+) create mode 100644 configs/xilinx_zynqmp_generic_defconfig create mode 100644 include/configs/xilinx_zynqmp_generic.h
configs/xilinx_zynqmp_generic_defconfig new file +96 -0
@@ -0,0 +1,96 @@ +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_DEFAULT_DEVICE_TREE="zynqmp-mini-emmc" +CONFIG_ZYNQMP_USB=y +CONFIG_AHCI=y +CONFIG_DISTRO_DEFAULTS=y +CONFIG_FIT=y +CONFIG_FIT_VERBOSE=y +CONFIG_SPL_LOAD_FIT=y +# CONFIG_DISPLAY_CPUINFO is not set +# CONFIG_DISPLAY_BOARDINFO is not set +CONFIG_BOARD_EARLY_INIT_R=y +CONFIG_SPL_OS_BOOT=y +CONFIG_SPL_RAM_SUPPORT=y +CONFIG_SPL_RAM_DEVICE=y +CONFIG_SPL_ATF=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_SPL_OF_CONTROL=y +CONFIG_OF_BOARD=y +CONFIG_ENV_IS_IN_FAT=y +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_SPL_DM=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_SYS_I2C_ZYNQ=y +CONFIG_ZYNQ_I2C0=y +CONFIG_ZYNQ_I2C1=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
include/configs/xilinx_zynqmp_generic.h new file +23 -0
@@ -0,0 +1,23 @@ +/* +* Configuration for the Xilinx ZynqMP generic platform +* +* (C) Copyright 2018 Alexander Graf <[email protected]> +* (C) Copyright 2015 Xilinx, Inc. +* Michal Simek <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#ifndef __CONFIG_ZYNQMP_GENERIC_H +#define __CONFIG_ZYNQMP_GENERIC_H + +/* All of these should be enumerated using DT instead ... */ + +#define CONFIG_ZYNQ_SDHCI0 +#define CONFIG_ZYNQ_SDHCI1 + +#define CONFIG_ZYNQMP_XHCI_LIST {ZYNQMP_USB0_XHCI_BASEADDR} + +#include <configs/xilinx_zynqmp.h> + +#endif /* __CONFIG_ZYNQMP_GENERIC_H */
Signature · 1 line
2.12.3
PATCH v2 1/1 zynqmp: Add generic target
Hi Alex,
Quoted 8 lines · Alexander Graf
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.
yes eeprom is one part. We have usb in generic way in Xilinx tree and my colleague will be rebasing that patches hopefully soon to get rid of CONFIG_ZYNQMP_XHCI_LIST.
Also storing variables is problematic category.
i2c DM driver is already in the tree but not all i2c device drivers have been updated yet.
I have sent one patch to fix ident string.
"arm64: zynqmp: Show model information instead of custom IDENT_STRING"
Quoted 4 lines
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.
I have this in my mind for pretty long time and microblaze-generic configuration is proof of that. The first step is get rid of all include/configs/xilinx_zynqmp_* files.
This is done for example for zc1751 dc4.
With usb patches in we can remove dc2 directly and reduce board configs.
dc1/dc3/dc5/zc1275 can be remove when we found how to handle mmcs boot target better. (You have the same issue below). This is maybe a topic we should look together because it is directly related to distro default and distro boot.
Quoted 21 lines
Signed-off-by Alexander Graf <[email protected]>---
v1 -> v2:
- Remove debug uart
--- configs/xilinx_zynqmp_generic_defconfig | 96 +++++++++++++++++++++++++++++++++ include/configs/xilinx_zynqmp_generic.h | 23 ++++++++ 2 files changed, 119 insertions(+) create mode 100644 configs/xilinx_zynqmp_generic_defconfig create mode 100644 include/configs/xilinx_zynqmp_generic.hconfigs/xilinx_zynqmp_generic_defconfig new file +0
-0
configs/xilinx_zynqmp_generic_defconfig line 2
Quoted 2 lines
configs/xilinx_zynqmp_generic_defconfig new file +2
-0@@ -0,0 +1,96 @@ +CONFIG_ARM=y +CONFIG_SYS_CONFIG_NAME="xilinx_zynqmp_generic"
it shouldn't be needed at all.
configs/xilinx_zynqmp_generic_defconfig line 6
Quoted 4 lines
configs/xilinx_zynqmp_generic_defconfig new file +4
-0+CONFIG_ARCH_ZYNQMP=y +CONFIG_SYS_TEXT_BASE=0x8000000 +CONFIG_SYS_MALLOC_F_LEN=0x8000 +CONFIG_IDENT_STRING=" Xilinx ZynqMP based platform"
It should be fine to keep this here to say that this is generic platform.
configs/xilinx_zynqmp_generic_defconfig line 7
Quoted 1 line
configs/xilinx_zynqmp_generic_defconfig new file +1
-0+CONFIG_DEFAULT_DEVICE_TREE="zynqmp-mini-emmc"
you don't need to fill it
configs/xilinx_zynqmp_generic_defconfig line 15
Quoted 8 lines
configs/xilinx_zynqmp_generic_defconfig new file +8
-0+CONFIG_ZYNQMP_USB=y +CONFIG_AHCI=y +CONFIG_DISTRO_DEFAULTS=y +CONFIG_FIT=y +CONFIG_FIT_VERBOSE=y +CONFIG_SPL_LOAD_FIT=y +# CONFIG_DISPLAY_CPUINFO is not set +# CONFIG_DISPLAY_BOARDINFO is not set
This should be enabled to see model from DT.
configs/xilinx_zynqmp_generic_defconfig line 20
Quoted 5 lines
configs/xilinx_zynqmp_generic_defconfig new file +5
-0+CONFIG_BOARD_EARLY_INIT_R=y +CONFIG_SPL_OS_BOOT=y +CONFIG_SPL_RAM_SUPPORT=y +CONFIG_SPL_RAM_DEVICE=y +CONFIG_SPL_ATF=y
you have probably c&p this from different zynqmp target but these SPL will go away. make xilinx_zynqmp_generic_defconfig; make savedefconfig; cp defconfig configs/xilinx_zynqmp_generic_defconfig; git diff.
Quoted 14 lines
configs/xilinx_zynqmp_generic_defconfig new file +14
-0+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
configs/xilinx_zynqmp_generic_defconfig line 44
Quoted 10 lines
configs/xilinx_zynqmp_generic_defconfig new file +10
-0+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_SPL_OF_CONTROL=y +CONFIG_OF_BOARD=y +CONFIG_ENV_IS_IN_FAT=y
this is probably wrong because this is expecting variables in fat which won't work for systems without SD.
Quoted 4 lines
configs/xilinx_zynqmp_generic_defconfig new file +4
-0+CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_SPL_DM=y +CONFIG_SPL_DM_SEQ_ALIAS=y +CONFIG_SCSI_AHCI=y
configs/xilinx_zynqmp_generic_defconfig line 58
Quoted 10 lines
configs/xilinx_zynqmp_generic_defconfig new file +10
-0+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_SYS_I2C_ZYNQ=y +CONFIG_ZYNQ_I2C0=y +CONFIG_ZYNQ_I2C1=y
These 3 should be replaced by CONFIG_SYS_I2C_CADENCE
Quoted 51 lines
configs/xilinx_zynqmp_generic_defconfig new file +38
-0+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=yinclude/configs/xilinx_zynqmp_generic.h new file +7
-0@@ -0,0 +1,23 @@ +/* +* Configuration for the Xilinx ZynqMP generic platform +* +* (C) Copyright 2018 Alexander Graf <[email protected]> +* (C) Copyright 2015 Xilinx, Inc. +* Michal Simek <[email protected]> +*
include/configs/xilinx_zynqmp_generic.h line 17
Quoted 10 lines
include/configs/xilinx_zynqmp_generic.h new file +10
-0+* SPDX-License-Identifier: GPL-2.0+ +*/ + +#ifndef __CONFIG_ZYNQMP_GENERIC_H +#define __CONFIG_ZYNQMP_GENERIC_H + +/* All of these should be enumerated using DT instead ... */ + +#define CONFIG_ZYNQ_SDHCI0 +#define CONFIG_ZYNQ_SDHCI1
This is wrong. It has to be solved differently.
include/configs/xilinx_zynqmp_generic.h line 19
Quoted 2 lines
include/configs/xilinx_zynqmp_generic.h new file +2
-0+ +#define CONFIG_ZYNQMP_XHCI_LIST {ZYNQMP_USB0_XHCI_BASEADDR}
In generic case here should be both controllers but as I said we know how go get rid of this.
include/configs/xilinx_zynqmp_generic.h line 23
Quoted 5 lines
include/configs/xilinx_zynqmp_generic.h new file +4
-0+ +#include <configs/xilinx_zynqmp.h> + +#endif /* __CONFIG_ZYNQMP_GENERIC_H */
We are not that far from using generic defconfig even now but there are some issues on that path and unfortunately your patch is not solving any of that issue. It almost just enables OF_BOARD instead of OF_EMBED which I use as default because OF_BOARD didn't work in past and I didn't have a time to look at it why.
I am happy to work with you to resolve issues described above but we are not there yet.
Also at this stage I don't think it is worth to create another target which is suggesting generic configuration but it is not now.
At the end of this path will be interesting to see generic defconfig and then just board defconfig fragments and use scripts/kconfig/merge_config.sh to create final .config file.
Thanks,
Michal
PATCH v2 1/1 zynqmp: Add generic target
Quoted 8 lines · Michal Simek
Hi Alex,
Quoted 5 lines · Alexander Graf
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.
Quoted 7 lines
Quoted 3 lines
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.
yes eeprom is one part. We have usb in generic way in Xilinx tree and my colleague will be rebasing that patches hopefully soon to get rid of
CONFIG_ZYNQMP_XHCI_LIST.
That's great to hear :).
Quoted 1 line
Also storing variables is problematic category.
Yes, we need to probably create a u-boot specific device node on top of an entity in DT to indicate where variables are stored and then use that instead of the hard coded locations.
Quoted 5 lines
i2c DM driver is already in the tree but not all i2c device drivers have been updated yet.
I have sent one patch to fix ident string.
"arm64: zynqmp: Show model information instead of customIDENT_STRING"
Thanks, I integrated that in v3 - which apparently collided with your email :).
Quoted 10 lines
Quoted 4 lines
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.
I have this in my mind for pretty long time and microblaze-generic configuration is proof of that. The first step is get rid of all
include/configs/xilinx_zynqmp_*files.
This is done for example for zc1751 dc4.
Quoted 6 lines
With usb patches in we can remove dc2 directly and reduce board configs.
dc1/dc3/dc5/zc1275 can be remove when we found how to handle mmcs boot target better. (You have the same issue below). This is maybe a topic we should look together because it is directly related to distro default and distro boot.
More than happy to :)
Quoted 16 lines
Quoted 16 lines
Signed-off-by Alexander Graf <[email protected]>---
v1 -> v2:
- Remove debug uart
--- configs/xilinx_zynqmp_generic_defconfig | 96 +++++++++++++++++++++++++++++++++ include/configs/xilinx_zynqmp_generic.h | 23 ++++++++ 2 files changed, 119 insertions(+) create mode 100644 configs/xilinx_zynqmp_generic_defconfig create mode 100644 include/configs/xilinx_zynqmp_generic.h
Quoted 10 lines
configs/xilinx_zynqmp_generic_defconfig line 2
Quoted 8 lines
configs/xilinx_zynqmp_generic_defconfig new file +2
-0@@ -0,0 +1,96 @@ +CONFIG_ARM=y +CONFIG_SYS_CONFIG_NAME="xilinx_zynqmp_generic"it shouldn't be needed at all.
We need it until at least usb3 is converted, no?
Quoted 8 lines
configs/xilinx_zynqmp_generic_defconfig line 6
Quoted 6 lines
configs/xilinx_zynqmp_generic_defconfig new file +4
-0+CONFIG_ARCH_ZYNQMP=y +CONFIG_SYS_TEXT_BASE=0x8000000 +CONFIG_SYS_MALLOC_F_LEN=0x8000 +CONFIG_IDENT_STRING=" Xilinx ZynqMP based platform"It should be fine to keep this here to say that this is generic platform.
Good point.
Quoted 4 lines
configs/xilinx_zynqmp_generic_defconfig line 7
Quoted 2 lines
configs/xilinx_zynqmp_generic_defconfig new file +1
-0+CONFIG_DEFAULT_DEVICE_TREE="zynqmp-mini-emmc"you don't need to fill it
It broke for me earlier without the option, but you're right - it compiles now. I'll omit it.
Quoted 11 lines
configs/xilinx_zynqmp_generic_defconfig line 15
Quoted 9 lines
configs/xilinx_zynqmp_generic_defconfig new file +8
-0+CONFIG_ZYNQMP_USB=y +CONFIG_AHCI=y +CONFIG_DISTRO_DEFAULTS=y +CONFIG_FIT=y +CONFIG_FIT_VERBOSE=y +CONFIG_SPL_LOAD_FIT=y +# CONFIG_DISPLAY_CPUINFO is not set +# CONFIG_DISPLAY_BOARDINFO is not setThis should be enabled to see model from DT.
Yes.
Quoted 11 lines
configs/xilinx_zynqmp_generic_defconfig line 20
Quoted 6 lines
configs/xilinx_zynqmp_generic_defconfig new file +5
-0+CONFIG_BOARD_EARLY_INIT_R=y +CONFIG_SPL_OS_BOOT=y +CONFIG_SPL_RAM_SUPPORT=y +CONFIG_SPL_RAM_DEVICE=y +CONFIG_SPL_ATF=yyou have probably c&p this from different zynqmp target but these SPL will go away. make
xilinx_zynqmp_generic_defconfig; make savedefconfig; cp defconfig configs/xilinx_zynqmp_generic_defconfig; git diff.
Thanks.
Quoted 20 lines
Quoted 20 lines
configs/xilinx_zynqmp_generic_defconfig new file +19
-0+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
Quoted 8 lines
configs/xilinx_zynqmp_generic_defconfig line 44
Quoted 5 lines
configs/xilinx_zynqmp_generic_defconfig new file +5
-0+CONFIG_CMD_TIMER=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_OF_BOARD=y +CONFIG_ENV_IS_IN_FAT=ythis is probably wrong because this is expecting variables in fat which won't work for systems without SD.
As mentioned above this should probably be solved by exposing a special environment device that describes where the environment is stored.
For the time being, I think SD is the main target, so storing env there doesn't sound too bad.
Quoted 18 lines
Quoted 6 lines
configs/xilinx_zynqmp_generic_defconfig new file +4
-0+CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_SPL_DM=y +CONFIG_SPL_DM_SEQ_ALIAS=y +CONFIG_SCSI_AHCI=yconfigs/xilinx_zynqmp_generic_defconfig line 58
Quoted 10 lines
configs/xilinx_zynqmp_generic_defconfig new file +10
-0+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_SYS_I2C_ZYNQ=y +CONFIG_ZYNQ_I2C0=y +CONFIG_ZYNQ_I2C1=yThese 3 should be replaced by
CONFIG_SYS_I2C_CADENCE
Thanks :)
Quoted 56 lines
Quoted 56 lines
configs/xilinx_zynqmp_generic_defconfig new file +38
-0+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=yinclude/configs/xilinx_zynqmp_generic.h new file +11
-0@@ -0,0 +1,23 @@ +/* +* Configuration for the Xilinx ZynqMP generic platform +* +* (C) Copyright 2018 Alexander Graf <[email protected]> +* (C) Copyright 2015 Xilinx, Inc. +* Michal Simek <[email protected]> +* +* SPDX-License-Identifier: GPL-2.0+ +*/ + +#ifndef __CONFIG_ZYNQMP_GENERIC_H
Quoted 8 lines
include/configs/xilinx_zynqmp_generic.h line 17
Quoted 6 lines
include/configs/xilinx_zynqmp_generic.h new file +6
-0+#define __CONFIG_ZYNQMP_GENERIC_H + +/* All of these should be enumerated using DT instead ... */ + +#define CONFIG_ZYNQ_SDHCI0 +#define CONFIG_ZYNQ_SDHCI1 This is wrong. It has to be solved differently.
I see what you mean.
Quoted 7 lines
include/configs/xilinx_zynqmp_generic.h line 19
Quoted 4 lines
include/configs/xilinx_zynqmp_generic.h new file +2
-0+ +#define CONFIG_ZYNQMP_XHCI_LIST {ZYNQMP_USB0_XHCI_BASEADDR}In generic case here should be both controllers but as I said we know how go get rid of this.
Ok, let me make it both controllers then.
Quoted 13 lines
include/configs/xilinx_zynqmp_generic.h line 23
Quoted 6 lines
include/configs/xilinx_zynqmp_generic.h new file +4
-0+ +#include <configs/xilinx_zynqmp.h> + +#endif /* __CONFIG_ZYNQMP_GENERIC_H */ We are not that far from using generic defconfig even now but there are some issues on that path and unfortunately your patch is not solving any of that issue. It almost just enables
OF_BOARDinstead ofOF_EMBEDwhich I use as default becauseOF_BOARDdidn't work in past and I didn't have a time to look at it why.
Yes, the rationale is a different one from what you might think though :).
I want to build tools on top of the generic support. If the generic support isn't as generic as it can be today, that's perfectly fine. Then we just simply don't support a few features. But at least we know that the path is properly sanctioned upstream and simply dropping in a newer U-Boot version will get us more features.
Quoted 4 lines
I am happy to work with you to resolve issues described above but we are not there yet.
Also at this stage I don't think it is worth to create another target which is suggesting generic configuration but it is not now.
I would like to first introduce the target so that tools on top can build on it. Then resolve each issue one by one. And as you mentioned some parts are already in the works by people in your team.
If we block the generic target until everything is truly generic, we'd end up in a situation where one thing waits for another waits for another etc etc and we'll never finish (like your firmware driver situation in Linux).
Quoted 3 lines
At the end of this path will be interesting to see generic defconfig and then just board defconfig fragments and use
scripts/kconfig/merge_config.shto create final .config file.
I agree, but that's a different goal :). I want to be able to build a fully generic tool stack on top that you can just pass an hdf file and it gives you a working openSUSE distribution. And I'd prefer if I didn't have to do that based on downstream code.
Alex