Merge tag 'xilinx-for-v2021.01-v2' of https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze
Xilinx changes for v2021.01-v2 common: - Add support for 64bit loadables from SPL xilinx: - Update documentation and record ownership - Enable eeprom board detection based legacy and fru formats - Add support for FRU format microblaze: - Optimize low level ASM code - Enable SPI/I2C - Enable distro boot zynq: - Add support for Zturn V5 zynqmp: - Improve silicon detection code - Enable several kconfig options - Align DT with the latest state - Enabling security commands - Enable and support FPGA loading from SPL - Optimize xilinx_pm_request() calling versal: - Some DTs/Kconfig/defconfig alignments - Add binding header for clock and power zynq-sdhci: - Add support for tap delay programming zynq-spi/zynq-qspi: - Use clock framework for getting clocks xilinx-spi: - Fix some code issues (unused variables) serial: - Check return value from clock functions in pl01x
This commit is contained in:
@@ -125,21 +125,67 @@
|
||||
#define CONFIG_SYS_LOAD_ADDR 0
|
||||
|
||||
#define CONFIG_HOSTNAME "microblaze-generic"
|
||||
#define CONFIG_BOOTCOMMAND "base 0;tftp 11000000 image.img;bootm"
|
||||
|
||||
/* architecture dependent code */
|
||||
#define CONFIG_SYS_USR_EXCEP /* user exception */
|
||||
|
||||
#if defined(CONFIG_CMD_PXE) && defined(CONFIG_CMD_DHCP)
|
||||
#define BOOT_TARGET_DEVICES_PXE(func) func(PXE, pxe, na)
|
||||
#else
|
||||
#define BOOT_TARGET_DEVICES_PXE(func)
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CMD_DHCP)
|
||||
#define BOOT_TARGET_DEVICES_DHCP(func) func(DHCP, dhcp, na)
|
||||
#else
|
||||
#define BOOT_TARGET_DEVICES_DHCP(func)
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SPI_FLASH)
|
||||
# define BOOT_TARGET_DEVICES_QSPI(func) func(QSPI, qspi, na)
|
||||
#else
|
||||
# define BOOT_TARGET_DEVICES_QSPI(func)
|
||||
#endif
|
||||
|
||||
#define BOOTENV_DEV_QSPI(devtypeu, devtypel, instance) \
|
||||
"bootcmd_qspi=sf probe 0 0 0 && " \
|
||||
"sf read ${scriptaddr} ${script_offset_f} ${script_size_f} && " \
|
||||
"echo QSPI: Trying to boot script at ${scriptaddr} && " \
|
||||
"source ${scriptaddr}; echo QSPI: SCRIPT FAILED: continuing...;\0"
|
||||
|
||||
#define BOOTENV_DEV_NAME_QSPI(devtypeu, devtypel, instance) \
|
||||
"qspi "
|
||||
|
||||
#define BOOT_TARGET_DEVICES_JTAG(func) func(JTAG, jtag, na)
|
||||
|
||||
#define BOOTENV_DEV_JTAG(devtypeu, devtypel, instance) \
|
||||
"bootcmd_jtag=echo JTAG: Trying to boot script at ${scriptaddr} && " \
|
||||
"source ${scriptaddr}; echo JTAG: SCRIPT FAILED: continuing...;\0"
|
||||
|
||||
#define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \
|
||||
"jtag "
|
||||
|
||||
#define BOOT_TARGET_DEVICES(func) \
|
||||
BOOT_TARGET_DEVICES_JTAG(func) \
|
||||
BOOT_TARGET_DEVICES_QSPI(func) \
|
||||
BOOT_TARGET_DEVICES_DHCP(func) \
|
||||
BOOT_TARGET_DEVICES_PXE(func)
|
||||
|
||||
#include <config_distro_bootcmd.h>
|
||||
|
||||
#ifndef CONFIG_EXTRA_ENV_SETTINGS
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS "unlock=yes\0" \
|
||||
"nor0=flash-0\0"\
|
||||
"mtdparts=mtdparts=flash-0:"\
|
||||
"256k(u-boot),256k(env),3m(kernel),"\
|
||||
"1m(romfs),1m(cramfs),-(jffs2)\0"\
|
||||
"nc=setenv stdout nc;"\
|
||||
"setenv stdin nc\0" \
|
||||
"serial=setenv stdout serial;"\
|
||||
"setenv stdin serial\0"
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS \
|
||||
"unlock=yes\0"\
|
||||
"nor0=flash-0\0"\
|
||||
"mtdparts=mtdparts=flash-0:"\
|
||||
"256k(u-boot),256k(env),3m(kernel),"\
|
||||
"1m(romfs),1m(cramfs),-(jffs2)\0"\
|
||||
"nc=setenv stdout nc;"\
|
||||
"setenv stdin nc\0" \
|
||||
"serial=setenv stdout serial;"\
|
||||
"setenv stdin serial\0"\
|
||||
"script_size_f=0x40000\0"\
|
||||
BOOTENV
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_XILINX_AXIEMAC)
|
||||
@@ -167,8 +213,7 @@
|
||||
#define CONFIG_SYS_INIT_RAM_SIZE 0x100000
|
||||
|
||||
# define CONFIG_SPL_STACK_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \
|
||||
CONFIG_SYS_INIT_RAM_SIZE - \
|
||||
CONFIG_SYS_MALLOC_F_LEN)
|
||||
CONFIG_SYS_INIT_RAM_SIZE)
|
||||
|
||||
/* Just for sure that there is a space for stack */
|
||||
#define CONFIG_SPL_STACK_SIZE 0x100
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
#define GICD_BASE 0xF9000000
|
||||
#define GICR_BASE 0xF9080000
|
||||
|
||||
|
||||
#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_TEXT_BASE
|
||||
|
||||
/* Generic Timer Definitions - setup in EL3. Setup by ATF for other cases */
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#ifndef __CONFIG_VERSAL_MINI_H
|
||||
#define __CONFIG_VERSAL_MINI_H
|
||||
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS
|
||||
|
||||
#include <configs/xilinx_versal.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#ifndef __CONFIG_ZYNQMP_MINI_H
|
||||
#define __CONFIG_ZYNQMP_MINI_H
|
||||
|
||||
|
||||
#define CONFIG_EXTRA_ENV_SETTINGS
|
||||
|
||||
#include <configs/xilinx_zynqmp.h>
|
||||
|
||||
@@ -605,6 +605,28 @@ const char *ofnode_read_chosen_string(const char *propname);
|
||||
*/
|
||||
ofnode ofnode_get_chosen_node(const char *propname);
|
||||
|
||||
/**
|
||||
* ofnode_read_aliases_prop() - get the value of a aliases property
|
||||
*
|
||||
* This looks for a property within the /aliases node and returns its value
|
||||
*
|
||||
* @propname: Property name to look for
|
||||
* @sizep: Returns size of property, or FDT_ERR_... error code if function
|
||||
* returns NULL
|
||||
* @return property value if found, else NULL
|
||||
*/
|
||||
const void *ofnode_read_aliases_prop(const char *propname, int *sizep);
|
||||
|
||||
/**
|
||||
* ofnode_get_aliases_node() - get a referenced node from the aliases node
|
||||
*
|
||||
* This looks up a named property in the aliases node and uses that as a path to
|
||||
* look up a code.
|
||||
*
|
||||
* @return the referenced node if present, else ofnode_null()
|
||||
*/
|
||||
ofnode ofnode_get_aliases_node(const char *propname);
|
||||
|
||||
struct display_timing;
|
||||
/**
|
||||
* ofnode_decode_display_timing() - decode display timings
|
||||
|
||||
123
include/dt-bindings/clock/xlnx-versal-clk.h
Normal file
123
include/dt-bindings/clock/xlnx-versal-clk.h
Normal file
@@ -0,0 +1,123 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2019 Xilinx Inc.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_CLK_VERSAL_H
|
||||
#define _DT_BINDINGS_CLK_VERSAL_H
|
||||
|
||||
#define PMC_PLL 1
|
||||
#define APU_PLL 2
|
||||
#define RPU_PLL 3
|
||||
#define CPM_PLL 4
|
||||
#define NOC_PLL 5
|
||||
#define PLL_MAX 6
|
||||
#define PMC_PRESRC 7
|
||||
#define PMC_POSTCLK 8
|
||||
#define PMC_PLL_OUT 9
|
||||
#define PPLL 10
|
||||
#define NOC_PRESRC 11
|
||||
#define NOC_POSTCLK 12
|
||||
#define NOC_PLL_OUT 13
|
||||
#define NPLL 14
|
||||
#define APU_PRESRC 15
|
||||
#define APU_POSTCLK 16
|
||||
#define APU_PLL_OUT 17
|
||||
#define APLL 18
|
||||
#define RPU_PRESRC 19
|
||||
#define RPU_POSTCLK 20
|
||||
#define RPU_PLL_OUT 21
|
||||
#define RPLL 22
|
||||
#define CPM_PRESRC 23
|
||||
#define CPM_POSTCLK 24
|
||||
#define CPM_PLL_OUT 25
|
||||
#define CPLL 26
|
||||
#define PPLL_TO_XPD 27
|
||||
#define NPLL_TO_XPD 28
|
||||
#define APLL_TO_XPD 29
|
||||
#define RPLL_TO_XPD 30
|
||||
#define EFUSE_REF 31
|
||||
#define SYSMON_REF 32
|
||||
#define IRO_SUSPEND_REF 33
|
||||
#define USB_SUSPEND 34
|
||||
#define SWITCH_TIMEOUT 35
|
||||
#define RCLK_PMC 36
|
||||
#define RCLK_LPD 37
|
||||
#define WDT 38
|
||||
#define TTC0 39
|
||||
#define TTC1 40
|
||||
#define TTC2 41
|
||||
#define TTC3 42
|
||||
#define GEM_TSU 43
|
||||
#define GEM_TSU_LB 44
|
||||
#define MUXED_IRO_DIV2 45
|
||||
#define MUXED_IRO_DIV4 46
|
||||
#define PSM_REF 47
|
||||
#define GEM0_RX 48
|
||||
#define GEM0_TX 49
|
||||
#define GEM1_RX 50
|
||||
#define GEM1_TX 51
|
||||
#define CPM_CORE_REF 52
|
||||
#define CPM_LSBUS_REF 53
|
||||
#define CPM_DBG_REF 54
|
||||
#define CPM_AUX0_REF 55
|
||||
#define CPM_AUX1_REF 56
|
||||
#define QSPI_REF 57
|
||||
#define OSPI_REF 58
|
||||
#define SDIO0_REF 59
|
||||
#define SDIO1_REF 60
|
||||
#define PMC_LSBUS_REF 61
|
||||
#define I2C_REF 62
|
||||
#define TEST_PATTERN_REF 63
|
||||
#define DFT_OSC_REF 64
|
||||
#define PMC_PL0_REF 65
|
||||
#define PMC_PL1_REF 66
|
||||
#define PMC_PL2_REF 67
|
||||
#define PMC_PL3_REF 68
|
||||
#define CFU_REF 69
|
||||
#define SPARE_REF 70
|
||||
#define NPI_REF 71
|
||||
#define HSM0_REF 72
|
||||
#define HSM1_REF 73
|
||||
#define SD_DLL_REF 74
|
||||
#define FPD_TOP_SWITCH 75
|
||||
#define FPD_LSBUS 76
|
||||
#define ACPU 77
|
||||
#define DBG_TRACE 78
|
||||
#define DBG_FPD 79
|
||||
#define LPD_TOP_SWITCH 80
|
||||
#define ADMA 81
|
||||
#define LPD_LSBUS 82
|
||||
#define CPU_R5 83
|
||||
#define CPU_R5_CORE 84
|
||||
#define CPU_R5_OCM 85
|
||||
#define CPU_R5_OCM2 86
|
||||
#define IOU_SWITCH 87
|
||||
#define GEM0_REF 88
|
||||
#define GEM1_REF 89
|
||||
#define GEM_TSU_REF 90
|
||||
#define USB0_BUS_REF 91
|
||||
#define UART0_REF 92
|
||||
#define UART1_REF 93
|
||||
#define SPI0_REF 94
|
||||
#define SPI1_REF 95
|
||||
#define CAN0_REF 96
|
||||
#define CAN1_REF 97
|
||||
#define I2C0_REF 98
|
||||
#define I2C1_REF 99
|
||||
#define DBG_LPD 100
|
||||
#define TIMESTAMP_REF 101
|
||||
#define DBG_TSTMP 102
|
||||
#define CPM_TOPSW_REF 103
|
||||
#define USB3_DUAL_REF 104
|
||||
#define OUTCLK_MAX 105
|
||||
#define REF_CLK 106
|
||||
#define PL_ALT_REF_CLK 107
|
||||
#define MUXED_IRO 108
|
||||
#define PL_EXT 109
|
||||
#define PL_LB 110
|
||||
#define MIO_50_OR_51 111
|
||||
#define MIO_24_OR_25 112
|
||||
|
||||
#endif
|
||||
42
include/dt-bindings/power/xlnx-versal-power.h
Normal file
42
include/dt-bindings/power/xlnx-versal-power.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (C) 2019 - 2020 Xilinx, Inc.
|
||||
*/
|
||||
|
||||
#ifndef _DT_BINDINGS_VERSAL_POWER_H
|
||||
#define _DT_BINDINGS_VERSAL_POWER_H
|
||||
|
||||
#define PM_DEV_USB_0 (0x18224018U)
|
||||
#define PM_DEV_GEM_0 (0x18224019U)
|
||||
#define PM_DEV_GEM_1 (0x1822401aU)
|
||||
#define PM_DEV_SPI_0 (0x1822401bU)
|
||||
#define PM_DEV_SPI_1 (0x1822401cU)
|
||||
#define PM_DEV_I2C_0 (0x1822401dU)
|
||||
#define PM_DEV_I2C_1 (0x1822401eU)
|
||||
#define PM_DEV_CAN_FD_0 (0x1822401fU)
|
||||
#define PM_DEV_CAN_FD_1 (0x18224020U)
|
||||
#define PM_DEV_UART_0 (0x18224021U)
|
||||
#define PM_DEV_UART_1 (0x18224022U)
|
||||
#define PM_DEV_GPIO (0x18224023U)
|
||||
#define PM_DEV_TTC_0 (0x18224024U)
|
||||
#define PM_DEV_TTC_1 (0x18224025U)
|
||||
#define PM_DEV_TTC_2 (0x18224026U)
|
||||
#define PM_DEV_TTC_3 (0x18224027U)
|
||||
#define PM_DEV_SWDT_FPD (0x18224029U)
|
||||
#define PM_DEV_OSPI (0x1822402aU)
|
||||
#define PM_DEV_QSPI (0x1822402bU)
|
||||
#define PM_DEV_GPIO_PMC (0x1822402cU)
|
||||
#define PM_DEV_SDIO_0 (0x1822402eU)
|
||||
#define PM_DEV_SDIO_1 (0x1822402fU)
|
||||
#define PM_DEV_RTC (0x18224034U)
|
||||
#define PM_DEV_ADMA_0 (0x18224035U)
|
||||
#define PM_DEV_ADMA_1 (0x18224036U)
|
||||
#define PM_DEV_ADMA_2 (0x18224037U)
|
||||
#define PM_DEV_ADMA_3 (0x18224038U)
|
||||
#define PM_DEV_ADMA_4 (0x18224039U)
|
||||
#define PM_DEV_ADMA_5 (0x1822403aU)
|
||||
#define PM_DEV_ADMA_6 (0x1822403bU)
|
||||
#define PM_DEV_ADMA_7 (0x1822403cU)
|
||||
#define PM_DEV_AI (0x18224072U)
|
||||
|
||||
#endif
|
||||
@@ -360,6 +360,19 @@ enum mmc_voltage {
|
||||
#define MMC_NUM_BOOT_PARTITION 2
|
||||
#define MMC_PART_RPMB 3 /* RPMB partition number */
|
||||
|
||||
/* timing specification used */
|
||||
#define MMC_TIMING_LEGACY 0
|
||||
#define MMC_TIMING_MMC_HS 1
|
||||
#define MMC_TIMING_SD_HS 2
|
||||
#define MMC_TIMING_UHS_SDR12 3
|
||||
#define MMC_TIMING_UHS_SDR25 4
|
||||
#define MMC_TIMING_UHS_SDR50 5
|
||||
#define MMC_TIMING_UHS_SDR104 6
|
||||
#define MMC_TIMING_UHS_DDR50 7
|
||||
#define MMC_TIMING_MMC_DDR52 8
|
||||
#define MMC_TIMING_MMC_HS200 9
|
||||
#define MMC_TIMING_MMC_HS400 10
|
||||
|
||||
/* Driver model support */
|
||||
|
||||
/**
|
||||
|
||||
@@ -244,6 +244,7 @@
|
||||
#define SDHCI_QUIRK_BROKEN_HISPD_MODE BIT(5)
|
||||
#define SDHCI_QUIRK_WAIT_SEND_CMD (1 << 6)
|
||||
#define SDHCI_QUIRK_USE_WIDE8 (1 << 8)
|
||||
#define SDHCI_QUIRK_NO_1_8_V (1 << 9)
|
||||
|
||||
/* to make gcc happy */
|
||||
struct sdhci_host;
|
||||
|
||||
@@ -66,7 +66,7 @@ int rsa_mod_exp(struct udevice *dev, const uint8_t *sig, uint32_t sig_len,
|
||||
struct key_prop *node, uint8_t *out);
|
||||
|
||||
#if defined(CONFIG_CMD_ZYNQ_RSA)
|
||||
int zynq_pow_mod(u32 *keyptr, u32 *inout);
|
||||
int zynq_pow_mod(uint32_t *keyptr, uint32_t *inout);
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
||||
@@ -10,10 +10,11 @@
|
||||
|
||||
#ifdef CONFIG_ARCH_ZYNQMP
|
||||
void zynqmp_dll_reset(u8 deviceid);
|
||||
void arasan_zynqmp_set_tapdelay(u8 device_id, u8 uhsmode, u8 bank);
|
||||
void arasan_zynqmp_set_tapdelay(u8 device_id, u32 itap_delay, u32 otap_delay);
|
||||
#else
|
||||
inline void zynqmp_dll_reset(u8 deviceid) {}
|
||||
inline void arasan_zynqmp_set_tapdelay(u8 device_id, u8 uhsmode, u8 bank) {}
|
||||
inline void arasan_zynqmp_set_tapdelay(u8 device_id, u32 itap_delay,
|
||||
u32 otap_delay) {}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user