Commit ddccf5ef90b6df10fe7a58fe112d2d4013e4f154

Authored by Michal Simek
1 parent 3dc80934f4

arm64: versal: Add Xilinx Versal Virtual QEMU board

Virtual QEMU board is generating DTB self and putting it to
VERSAL_QEMU_DTB_ADDR address.
Board is using CONFIG_OF_BOARD which ensures that u-boot is aligned with
board created by QEMU.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>

Showing 3 changed files with 87 additions and 0 deletions Side-by-side Diff

arch/arm/mach-versal/Kconfig
... ... @@ -36,5 +36,10 @@
36 36 config ZYNQ_SDHCI_MAX_FREQ
37 37 default 200000000
38 38  
  39 +config VERSAL_OF_BOARD_DTB_ADDR
  40 + hex
  41 + default 0x1000
  42 + depends on OF_BOARD
  43 +
39 44 endif
arch/arm/mach-versal/cpu.c
... ... @@ -67,4 +67,18 @@
67 67 {
68 68 return 0x14000;
69 69 }
  70 +
  71 +#if defined(CONFIG_OF_BOARD)
  72 +void *board_fdt_blob_setup(void)
  73 +{
  74 + static void *fw_dtb = (void *)CONFIG_VERSAL_OF_BOARD_DTB_ADDR;
  75 +
  76 + if (fdt_magic(fw_dtb) != FDT_MAGIC) {
  77 + printf("DTB is not passed via %llx\n", (u64)fw_dtb);
  78 + return NULL;
  79 + }
  80 +
  81 + return fw_dtb;
  82 +}
  83 +#endif
configs/xilinx_versal_virt_defconfig
  1 +CONFIG_ARM=y
  2 +CONFIG_ARCH_VERSAL=y
  3 +CONFIG_SYS_TEXT_BASE=0x8000000
  4 +CONFIG_SYS_MALLOC_F_LEN=0x8000
  5 +CONFIG_DEBUG_UART_BASE=0xff000000
  6 +CONFIG_DEBUG_UART_CLOCK=0
  7 +CONFIG_COUNTER_FREQUENCY=62500000
  8 +CONFIG_DEBUG_UART=y
  9 +CONFIG_ENV_VARS_UBOOT_CONFIG=y
  10 +CONFIG_FIT=y
  11 +CONFIG_FIT_VERBOSE=y
  12 +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
  13 +CONFIG_BOOTDELAY=-1
  14 +CONFIG_SUPPORT_RAW_INITRD=y
  15 +# CONFIG_DISPLAY_CPUINFO is not set
  16 +CONFIG_BOARD_EARLY_INIT_R=y
  17 +CONFIG_HUSH_PARSER=y
  18 +CONFIG_SYS_PROMPT="Versal> "
  19 +CONFIG_CMD_BOOTMENU=y
  20 +CONFIG_CMD_MEMTEST=y
  21 +CONFIG_SYS_ALT_MEMTEST=y
  22 +# CONFIG_CMD_FLASH is not set
  23 +CONFIG_CMD_MMC=y
  24 +CONFIG_CMD_SF=y
  25 +CONFIG_CMD_DHCP=y
  26 +CONFIG_CMD_TFTPPUT=y
  27 +CONFIG_CMD_MII=y
  28 +CONFIG_CMD_PING=y
  29 +CONFIG_CMD_PXE=y
  30 +CONFIG_CMD_CACHE=y
  31 +CONFIG_CMD_TIME=y
  32 +CONFIG_CMD_TIMER=y
  33 +CONFIG_CMD_EXT2=y
  34 +CONFIG_CMD_EXT4=y
  35 +CONFIG_CMD_EXT4_WRITE=y
  36 +CONFIG_CMD_FAT=y
  37 +CONFIG_CMD_FS_GENERIC=y
  38 +CONFIG_ISO_PARTITION=y
  39 +CONFIG_EFI_PARTITION=y
  40 +# CONFIG_PARTITION_UUIDS is not set
  41 +CONFIG_OF_BOARD=y
  42 +CONFIG_NET_RANDOM_ETHADDR=y
  43 +CONFIG_SPL_DM_SEQ_ALIAS=y
  44 +CONFIG_DM_GPIO=y
  45 +CONFIG_DM_MMC=y
  46 +CONFIG_MMC_SDHCI=y
  47 +CONFIG_MMC_SDHCI_ZYNQ=y
  48 +CONFIG_DM_SPI_FLASH=y
  49 +CONFIG_SPI_FLASH=y
  50 +CONFIG_SPI_FLASH_BAR=y
  51 +CONFIG_SPI_FLASH_MACRONIX=y
  52 +CONFIG_SPI_FLASH_SPANSION=y
  53 +CONFIG_SPI_FLASH_STMICRO=y
  54 +CONFIG_SPI_FLASH_SST=y
  55 +CONFIG_SPI_FLASH_WINBOND=y
  56 +# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
  57 +CONFIG_PHY_FIXED=y
  58 +CONFIG_DM_ETH=y
  59 +CONFIG_PHY_GIGE=y
  60 +CONFIG_MII=y
  61 +CONFIG_ZYNQ_GEM=y
  62 +CONFIG_DEBUG_UART_PL011=y
  63 +CONFIG_DEBUG_UART_ANNOUNCE=y
  64 +CONFIG_PL01X_SERIAL=y
  65 +CONFIG_SPI=y
  66 +CONFIG_DM_SPI=y
  67 +CONFIG_FAT_WRITE=y
  68 +CONFIG_EFI_LOADER_BOUNCE_BUFFER=y