Xilinx changes for v2021.07-rc2

xilinx:
- Enable saving variables based on bootmode
- Cleanup usb dfu setup and wire it up with usb bootmode
- Fix bootscript address logic
- Remove GD references (spi, Versal)
- Enable capsule update

clk:
- Small Kconfig fix

net:
- Fix gmii2rgmii bridge binding

usb:
- Propagate error (dfu gadget)
This commit is contained in:
Tom Rini
2021-04-29 11:31:06 -04:00
19 changed files with 189 additions and 95 deletions

View File

@@ -5,13 +5,10 @@
*/ */
#include <common.h> #include <common.h>
#include <asm/global_data.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/arch/hardware.h> #include <asm/arch/hardware.h>
#include <asm/arch/sys_proto.h> #include <asm/arch/sys_proto.h>
DECLARE_GLOBAL_DATA_PTR;
#define HALT 0 #define HALT 0
#define RELEASE 1 #define RELEASE 1

View File

@@ -378,14 +378,12 @@ int board_late_init_xilinx(void)
int i, id, macid = 0; int i, id, macid = 0;
struct xilinx_board_description *desc; struct xilinx_board_description *desc;
phys_size_t bootm_size = gd->ram_size; phys_size_t bootm_size = gd->ram_size;
struct bd_info *bd = gd->bd;
if (!CONFIG_IS_ENABLED(MICROBLAZE) && bd->bi_dram[0].start) { if (!CONFIG_IS_ENABLED(MICROBLAZE)) {
ulong scriptaddr; ulong scriptaddr;
scriptaddr = env_get_hex("scriptaddr", 0); scriptaddr = env_get_hex("scriptaddr", 0);
ret |= env_set_hex("scriptaddr", ret |= env_set_hex("scriptaddr", gd->ram_base + scriptaddr);
bd->bi_dram[0].start + scriptaddr);
} }
if (CONFIG_IS_ENABLED(ARCH_ZYNQ) || CONFIG_IS_ENABLED(MICROBLAZE)) if (CONFIG_IS_ENABLED(ARCH_ZYNQ) || CONFIG_IS_ENABLED(MICROBLAZE))

View File

@@ -9,6 +9,7 @@
#include <env.h> #include <env.h>
#include <fdtdec.h> #include <fdtdec.h>
#include <init.h> #include <init.h>
#include <env_internal.h>
#include <log.h> #include <log.h>
#include <malloc.h> #include <malloc.h>
#include <time.h> #include <time.h>
@@ -129,7 +130,7 @@ int board_late_init(void)
switch (bootmode) { switch (bootmode) {
case USB_MODE: case USB_MODE:
puts("USB_MODE\n"); puts("USB_MODE\n");
mode = "dfu_usb"; mode = "usb_dfu0 usb_dfu1";
break; break;
case JTAG_MODE: case JTAG_MODE:
puts("JTAG_MODE\n"); puts("JTAG_MODE\n");
@@ -245,3 +246,32 @@ int dram_init(void)
void reset_cpu(void) void reset_cpu(void)
{ {
} }
enum env_location env_get_location(enum env_operation op, int prio)
{
u32 bootmode = versal_get_bootmode();
if (prio)
return ENVL_UNKNOWN;
switch (bootmode) {
case EMMC_MODE:
case SD_MODE:
case SD1_LSHFT_MODE:
case SD_MODE1:
if (IS_ENABLED(CONFIG_ENV_IS_IN_FAT))
return ENVL_FAT;
if (IS_ENABLED(CONFIG_ENV_IS_IN_EXT4))
return ENVL_EXT4;
return ENVL_UNKNOWN;
case OSPI_MODE:
case QSPI_MODE_24BIT:
case QSPI_MODE_32BIT:
if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH))
return ENVL_SPI_FLASH;
return ENVL_UNKNOWN;
case JTAG_MODE:
default:
return ENVL_NOWHERE;
}
}

View File

@@ -9,6 +9,7 @@
#include <log.h> #include <log.h>
#include <dm/uclass.h> #include <dm/uclass.h>
#include <env.h> #include <env.h>
#include <env_internal.h>
#include <fdtdec.h> #include <fdtdec.h>
#include <fpga.h> #include <fpga.h>
#include <malloc.h> #include <malloc.h>
@@ -119,3 +120,34 @@ int dram_init(void)
return 0; return 0;
} }
#endif #endif
enum env_location env_get_location(enum env_operation op, int prio)
{
u32 bootmode = zynq_slcr_get_boot_mode() & ZYNQ_BM_MASK;
if (prio)
return ENVL_UNKNOWN;
switch (bootmode) {
case ZYNQ_BM_SD:
if (IS_ENABLED(CONFIG_ENV_IS_IN_FAT))
return ENVL_FAT;
if (IS_ENABLED(CONFIG_ENV_IS_IN_EXT4))
return ENVL_EXT4;
return ENVL_UNKNOWN;
case ZYNQ_BM_NAND:
if (IS_ENABLED(CONFIG_ENV_IS_IN_NAND))
return ENVL_NAND;
if (IS_ENABLED(CONFIG_ENV_IS_IN_UBI))
return ENVL_UBI;
return ENVL_UNKNOWN;
case ZYNQ_BM_NOR:
case ZYNQ_BM_QSPI:
if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH))
return ENVL_SPI_FLASH;
return ENVL_UNKNOWN;
case ZYNQ_BM_JTAG:
default:
return ENVL_NOWHERE;
}
}

View File

@@ -571,7 +571,7 @@ int board_late_init(void)
switch (bootmode) { switch (bootmode) {
case USB_MODE: case USB_MODE:
puts("USB_MODE\n"); puts("USB_MODE\n");
mode = "usb"; mode = "usb_dfu0 usb_dfu1";
env_set("modeboot", "usb_dfu_spl"); env_set("modeboot", "usb_dfu_spl");
break; break;
case JTAG_MODE: case JTAG_MODE:

View File

@@ -68,7 +68,7 @@ static int do_dfu(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
int controller_index = simple_strtoul(usb_controller, NULL, 0); int controller_index = simple_strtoul(usb_controller, NULL, 0);
bool retry = false; bool retry = false;
do { do {
run_usb_dnl_gadget(controller_index, "usb_dnl_dfu"); ret = run_usb_dnl_gadget(controller_index, "usb_dnl_dfu");
if (dfu_reinit_needed) { if (dfu_reinit_needed) {
dfu_free_entities(); dfu_free_entities();

View File

@@ -40,6 +40,7 @@ CONFIG_CMD_CACHE=y
CONFIG_CMD_JFFS2=y CONFIG_CMD_JFFS2=y
CONFIG_SPL_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_EMBED=y CONFIG_OF_EMBED=y
CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE=y
CONFIG_SPL_DM=y CONFIG_SPL_DM=y

View File

@@ -18,6 +18,7 @@ CONFIG_USE_PREBOOT=y
CONFIG_BOARD_EARLY_INIT_R=y CONFIG_BOARD_EARLY_INIT_R=y
CONFIG_SYS_PROMPT="Versal> " CONFIG_SYS_PROMPT="Versal> "
CONFIG_CMD_BOOTMENU=y CONFIG_CMD_BOOTMENU=y
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_MEMTEST=y CONFIG_CMD_MEMTEST=y
CONFIG_SYS_ALT_MEMTEST=y CONFIG_SYS_ALT_MEMTEST=y
CONFIG_CMD_CLK=y CONFIG_CMD_CLK=y
@@ -38,13 +39,19 @@ CONFIG_CMD_TIMER=y
CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_EXT4_WRITE=y
CONFIG_CMD_MTDPARTS=y CONFIG_CMD_MTDPARTS=y
CONFIG_CMD_UBI=y CONFIG_CMD_UBI=y
CONFIG_PARTITION_TYPE_GUID=y
CONFIG_OF_BOARD=y CONFIG_OF_BOARD=y
CONFIG_ENV_IS_NOWHERE=y
CONFIG_ENV_IS_IN_FAT=y
CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y CONFIG_IP_DEFRAG=y
CONFIG_TFTP_BLOCKSIZE=4096 CONFIG_TFTP_BLOCKSIZE=4096
CONFIG_CLK_VERSAL=y CONFIG_CLK_VERSAL=y
CONFIG_DFU_TIMEOUT=y
CONFIG_DFU_RAM=y CONFIG_DFU_RAM=y
CONFIG_FPGA_XILINX=y CONFIG_FPGA_XILINX=y
CONFIG_FPGA_VERSALPL=y CONFIG_FPGA_VERSALPL=y

View File

@@ -4,6 +4,7 @@ CONFIG_ARCH_ZYNQ=y
CONFIG_SYS_TEXT_BASE=0x4000000 CONFIG_SYS_TEXT_BASE=0x4000000
CONFIG_SYS_MEMTEST_START=0x00000000 CONFIG_SYS_MEMTEST_START=0x00000000
CONFIG_SYS_MEMTEST_END=0x00001000 CONFIG_SYS_MEMTEST_END=0x00001000
CONFIG_ENV_OFFSET=0xE00000
CONFIG_SYS_SPI_U_BOOT_OFFS=0x100000 CONFIG_SYS_SPI_U_BOOT_OFFS=0x100000
CONFIG_DM_GPIO=y CONFIG_DM_GPIO=y
CONFIG_SPL_STACK_R_ADDR=0x200000 CONFIG_SPL_STACK_R_ADDR=0x200000
@@ -55,12 +56,16 @@ CONFIG_CMD_MTDPARTS_SPREAD=y
CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES=y CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES=y
CONFIG_CMD_UBI=y CONFIG_CMD_UBI=y
CONFIG_OF_LIST="zynq-zc702 zynq-zc706 zynq-zc770-xm010 zynq-zc770-xm011 zynq-zc770-xm011-x16 zynq-zc770-xm012 zynq-zc770-xm013 zynq-cc108 zynq-microzed zynq-minized zynq-picozed zynq-zed zynq-zturn zynq-zturn-v5 zynq-zybo zynq-zybo-z7 zynq-dlc20-rev1.0" CONFIG_OF_LIST="zynq-zc702 zynq-zc706 zynq-zc770-xm010 zynq-zc770-xm011 zynq-zc770-xm011-x16 zynq-zc770-xm012 zynq-zc770-xm013 zynq-cc108 zynq-microzed zynq-minized zynq-picozed zynq-zed zynq-zturn zynq-zturn-v5 zynq-zybo zynq-zybo-z7 zynq-dlc20-rev1.0"
CONFIG_ENV_OVERWRITE=y CONFIG_ENV_IS_NOWHERE=y
CONFIG_ENV_IS_IN_FAT=y
CONFIG_ENV_IS_IN_NAND=y
CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE=y
CONFIG_SPL_DM_SEQ_ALIAS=y CONFIG_SPL_DM_SEQ_ALIAS=y
CONFIG_DFU_TIMEOUT=y
CONFIG_DFU_MMC=y CONFIG_DFU_MMC=y
CONFIG_DFU_RAM=y CONFIG_DFU_RAM=y
CONFIG_FPGA_XILINX=y CONFIG_FPGA_XILINX=y

View File

@@ -33,6 +33,7 @@ CONFIG_SPL_ATF=y
CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
CONFIG_CMD_BOOTMENU=y CONFIG_CMD_BOOTMENU=y
CONFIG_CMD_THOR_DOWNLOAD=y CONFIG_CMD_THOR_DOWNLOAD=y
CONFIG_CMD_NVEDIT_EFI=y
CONFIG_CMD_MEMTEST=y CONFIG_CMD_MEMTEST=y
CONFIG_SYS_ALT_MEMTEST=y CONFIG_SYS_ALT_MEMTEST=y
CONFIG_CMD_BIND=y CONFIG_CMD_BIND=y
@@ -65,6 +66,7 @@ CONFIG_CMD_MTDPARTS=y
CONFIG_CMD_MTDPARTS_SPREAD=y CONFIG_CMD_MTDPARTS_SPREAD=y
CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES=y CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES=y
CONFIG_CMD_UBI=y CONFIG_CMD_UBI=y
CONFIG_PARTITION_TYPE_GUID=y
CONFIG_SPL_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y
CONFIG_OF_LIST="avnet-ultra96-rev1 zynqmp-a2197-revA zynqmp-e-a2197-00-revA zynqmp-g-a2197-00-revA zynqmp-m-a2197-01-revA zynqmp-m-a2197-02-revA zynqmp-m-a2197-03-revA zynqmp-p-a2197-00-revA zynqmp-zc1232-revA zynqmp-zc1254-revA zynqmp-zc1751-xm015-dc1 zynqmp-zc1751-xm016-dc2 zynqmp-zc1751-xm017-dc3 zynqmp-zc1751-xm018-dc4 zynqmp-zc1751-xm019-dc5 zynqmp-zcu100-revC zynqmp-zcu102-rev1.1 zynqmp-zcu102-rev1.0 zynqmp-zcu102-revA zynqmp-zcu102-revB zynqmp-zcu104-revA zynqmp-zcu104-revC zynqmp-zcu106-revA zynqmp-zcu111-revA zynqmp-zcu1275-revA zynqmp-zcu1275-revB zynqmp-zcu1285-revA zynqmp-zcu208-revA zynqmp-zcu216-revA zynqmp-topic-miamimp-xilinx-xdp-v1r1" CONFIG_OF_LIST="avnet-ultra96-rev1 zynqmp-a2197-revA zynqmp-e-a2197-00-revA zynqmp-g-a2197-00-revA zynqmp-m-a2197-01-revA zynqmp-m-a2197-02-revA zynqmp-m-a2197-03-revA zynqmp-p-a2197-00-revA zynqmp-zc1232-revA zynqmp-zc1254-revA zynqmp-zc1751-xm015-dc1 zynqmp-zc1751-xm016-dc2 zynqmp-zc1751-xm017-dc3 zynqmp-zc1751-xm018-dc4 zynqmp-zc1751-xm019-dc5 zynqmp-zcu100-revC zynqmp-zcu102-rev1.1 zynqmp-zcu102-rev1.0 zynqmp-zcu102-revA zynqmp-zcu102-revB zynqmp-zcu104-revA zynqmp-zcu104-revC zynqmp-zcu106-revA zynqmp-zcu111-revA zynqmp-zcu1275-revA zynqmp-zcu1275-revB zynqmp-zcu1285-revA zynqmp-zcu208-revA zynqmp-zcu216-revA zynqmp-topic-miamimp-xilinx-xdp-v1r1"
CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names interrupt-parent interrupts iommus power-domains" CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names interrupt-parent interrupts iommus power-domains"
@@ -72,6 +74,7 @@ CONFIG_ENV_IS_NOWHERE=y
CONFIG_ENV_IS_IN_FAT=y CONFIG_ENV_IS_IN_FAT=y
CONFIG_ENV_IS_IN_NAND=y CONFIG_ENV_IS_IN_NAND=y
CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_ENV_IS_IN_SPI_FLASH=y
CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y
CONFIG_NET_RANDOM_ETHADDR=y CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE=y
@@ -80,7 +83,12 @@ CONFIG_SCSI_AHCI=y
CONFIG_SATA_CEVA=y CONFIG_SATA_CEVA=y
CONFIG_CLK_ZYNQMP=y CONFIG_CLK_ZYNQMP=y
CONFIG_DFU_TFTP=y CONFIG_DFU_TFTP=y
CONFIG_DFU_TIMEOUT=y
CONFIG_DFU_MMC=y
CONFIG_DFU_NAND=y
CONFIG_DFU_RAM=y CONFIG_DFU_RAM=y
CONFIG_DFU_SF=y
CONFIG_DFU_MTD=y
CONFIG_USB_FUNCTION_FASTBOOT=y CONFIG_USB_FUNCTION_FASTBOOT=y
CONFIG_FASTBOOT_FLASH=y CONFIG_FASTBOOT_FLASH=y
CONFIG_FASTBOOT_FLASH_MMC_DEV=0 CONFIG_FASTBOOT_FLASH_MMC_DEV=0
@@ -171,4 +179,10 @@ CONFIG_WDT_CDNS=y
CONFIG_PANIC_HANG=y CONFIG_PANIC_HANG=y
CONFIG_TPM=y CONFIG_TPM=y
CONFIG_SPL_GZIP=y CONFIG_SPL_GZIP=y
# CONFIG_SPL_HEXDUMP is not set
CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
CONFIG_EFI_CAPSULE_ON_DISK=y
CONFIG_EFI_CAPSULE_ON_DISK_EARLY=y
CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y
CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y

View File

@@ -125,7 +125,7 @@ config CLK_ZYNQ
depends on CLK && ARCH_ZYNQ depends on CLK && ARCH_ZYNQ
default y default y
help help
This clock driver adds support for clock realted settings for This clock driver adds support for clock related settings for
Zynq platform. Zynq platform.
config CLK_ZYNQMP config CLK_ZYNQMP

View File

@@ -948,9 +948,9 @@ static struct phy_device *phy_connect_gmii2rgmii(struct mii_dev *bus,
phy_interface_t interface) phy_interface_t interface)
{ {
struct phy_device *phydev = NULL; struct phy_device *phydev = NULL;
ofnode node = dev_ofnode(dev); ofnode node;
while (ofnode_valid(node)) { ofnode_for_each_subnode(node, dev_ofnode(dev)) {
node = ofnode_by_compatible(node, "xlnx,gmii-to-rgmii-1.0"); node = ofnode_by_compatible(node, "xlnx,gmii-to-rgmii-1.0");
if (ofnode_valid(node)) { if (ofnode_valid(node)) {
phydev = phy_device_create(bus, 0, phydev = phy_device_create(bus, 0,

View File

@@ -10,7 +10,6 @@
#include <log.h> #include <log.h>
#include <asm/arch/sys_proto.h> #include <asm/arch/sys_proto.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <asm/global_data.h>
#include <asm/io.h> #include <asm/io.h>
#include <clk.h> #include <clk.h>
#include <dm.h> #include <dm.h>
@@ -156,8 +155,6 @@ struct zynqmp_qspi_dma_regs {
u32 dmadstmsb; /* 0x28 */ u32 dmadstmsb; /* 0x28 */
}; };
DECLARE_GLOBAL_DATA_PTR;
struct zynqmp_qspi_plat { struct zynqmp_qspi_plat {
struct zynqmp_qspi_regs *regs; struct zynqmp_qspi_regs *regs;
struct zynqmp_qspi_dma_regs *dma_regs; struct zynqmp_qspi_dma_regs *dma_regs;

3
env/Kconfig vendored
View File

@@ -445,7 +445,7 @@ config ENV_FAT_DEVICE_AND_PART
string "Device and partition for where to store the environemt in FAT" string "Device and partition for where to store the environemt in FAT"
depends on ENV_IS_IN_FAT depends on ENV_IS_IN_FAT
default "0:1" if TI_COMMON_CMD_OPTIONS default "0:1" if TI_COMMON_CMD_OPTIONS
default "0:auto" if ARCH_ZYNQ || ARCH_ZYNQMP default "0:auto" if ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL
default "0:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA = -1 default "0:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA = -1
default "1:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA != -1 default "1:auto" if ARCH_SUNXI && MMC_SUNXI_SLOT_EXTRA != -1
default "0" if ARCH_AT91 default "0" if ARCH_AT91
@@ -556,6 +556,7 @@ config ENV_OFFSET_REDUND
hex "Redundant environment offset" hex "Redundant environment offset"
depends on (ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \ depends on (ENV_IS_IN_EEPROM || ENV_IS_IN_MMC || ENV_IS_IN_NAND || \
ENV_IS_IN_SPI_FLASH) && SYS_REDUNDAND_ENVIRONMENT ENV_IS_IN_SPI_FLASH) && SYS_REDUNDAND_ENVIRONMENT
default 0
help help
Offset from the start of the device (or partition) of the redundant Offset from the start of the device (or partition) of the redundant
environment location. environment location.

View File

@@ -58,7 +58,6 @@
"jtagboot=echo TFTPing FIT to RAM... && " \ "jtagboot=echo TFTPing FIT to RAM... && " \
"tftpboot ${load_addr} ${fit_image} && " \ "tftpboot ${load_addr} ${fit_image} && " \
"bootm ${load_addr}\0" \ "bootm ${load_addr}\0" \
DFU_ALT_INFO \
BOOTENV BOOTENV
#include <configs/zynq-common.h> #include <configs/zynq-common.h>

View File

@@ -49,7 +49,6 @@
"${devicetree_addr}; " \ "${devicetree_addr}; " \
"fi\0" "fi\0"
/* Note that addresses here should match the addresses in the env */ /* Note that addresses here should match the addresses in the env */
# undef DFU_ALT_INFO
# define DFU_ALT_INFO \ # define DFU_ALT_INFO \
"dfu_alt_info=" \ "dfu_alt_info=" \
"uImage ram 0x2080000 0x500000;" \ "uImage ram 0x2080000 0x500000;" \

View File

@@ -50,20 +50,6 @@
#define CONFIG_SYS_DFU_DATA_BUF_SIZE 0x1800000 #define CONFIG_SYS_DFU_DATA_BUF_SIZE 0x1800000
#define DFU_DEFAULT_POLL_TIMEOUT 300 #define DFU_DEFAULT_POLL_TIMEOUT 300
#define CONFIG_THOR_RESET_OFF #define CONFIG_THOR_RESET_OFF
#define DFU_ALT_INFO_RAM \
"dfu_ram_info=" \
"setenv dfu_alt_info " \
"Image ram 80000 $kernel_size_r\\\\;" \
"system.dtb ram $fdt_addr_r $fdt_size_r\0" \
"dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
"thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
#define DFU_ALT_INFO \
DFU_ALT_INFO_RAM
#endif
#if !defined(DFU_ALT_INFO)
# define DFU_ALT_INFO
#endif #endif
/* Ethernet driver */ /* Ethernet driver */
@@ -129,23 +115,40 @@
#define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \ #define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \
"jtag " "jtag "
#define BOOT_TARGET_DEVICES_DFU_USB(func) func(DFU_USB, dfu_usb, 0) #define BOOT_TARGET_DEVICES_USB_DFU(func) \
func(USB_DFU, usb_dfu, 0) func(USB_DFU, usb_dfu, 1)
#define BOOTENV_DEV_DFU_USB(devtypeu, devtypel, instance) \ #define BOOTENV_DEV_USB_DFU(devtypeu, devtypel, instance) \
"bootcmd_dfu_usb=setenv dfu_alt_info boot.scr ram $scriptaddr " \ "bootcmd_" #devtypel #instance "=setenv dfu_alt_info boot.scr ram " \
"$script_size_f; dfu 0 ram 0 && " \ "$scriptaddr $script_size_f && " \
"echo DFU: Trying to boot script at ${scriptaddr} && " \ "dfu " #instance " ram " #instance " 60 && " \
"echo DFU" #instance ": Trying to boot script at ${scriptaddr} && " \
"source ${scriptaddr}; " \ "source ${scriptaddr}; " \
"echo DFU: SCRIPT FAILED: continuing...;\0" "echo DFU" #instance ": SCRIPT FAILED: continuing...;\0"
#define BOOTENV_DEV_NAME_DFU_USB(devtypeu, devtypel, instance) \ #define BOOTENV_DEV_NAME_USB_DFU(devtypeu, devtypel, instance) \
"dfu_usb " ""
#define BOOT_TARGET_DEVICES_USB_THOR(func) \
func(USB_THOR, usb_thor, 0) func(USB_THOR, usb_thor, 1)
#define BOOTENV_DEV_USB_THOR(devtypeu, devtypel, instance) \
"bootcmd_" #devtypel #instance "=setenv dfu_alt_info boot.scr ram " \
"$scriptaddr $script_size_f && " \
"thordown " #instance " ram " #instance " && " \
"echo THOR" #instance ": Trying to boot script at ${scriptaddr} && " \
"source ${scriptaddr}; " \
"echo THOR" #instance ": SCRIPT FAILED: continuing...;\0"
#define BOOTENV_DEV_NAME_USB_THOR(devtypeu, devtypel, instance) \
""
#define BOOT_TARGET_DEVICES(func) \ #define BOOT_TARGET_DEVICES(func) \
BOOT_TARGET_DEVICES_JTAG(func) \ BOOT_TARGET_DEVICES_JTAG(func) \
BOOT_TARGET_DEVICES_MMC(func) \ BOOT_TARGET_DEVICES_MMC(func) \
BOOT_TARGET_DEVICES_XSPI(func) \ BOOT_TARGET_DEVICES_XSPI(func) \
BOOT_TARGET_DEVICES_DFU_USB(func) \ BOOT_TARGET_DEVICES_USB_DFU(func) \
BOOT_TARGET_DEVICES_USB_THOR(func) \
BOOT_TARGET_DEVICES_PXE(func) \ BOOT_TARGET_DEVICES_PXE(func) \
BOOT_TARGET_DEVICES_DHCP(func) BOOT_TARGET_DEVICES_DHCP(func)
@@ -155,8 +158,7 @@
#ifndef CONFIG_EXTRA_ENV_SETTINGS #ifndef CONFIG_EXTRA_ENV_SETTINGS
#define CONFIG_EXTRA_ENV_SETTINGS \ #define CONFIG_EXTRA_ENV_SETTINGS \
ENV_MEM_LAYOUT_SETTINGS \ ENV_MEM_LAYOUT_SETTINGS \
BOOTENV \ BOOTENV
DFU_ALT_INFO
#endif #endif
#endif /* __XILINX_VERSAL_H */ #endif /* __XILINX_VERSAL_H */

View File

@@ -27,7 +27,7 @@
#endif #endif
/* Size of malloc() pool */ /* Size of malloc() pool */
#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 0x2000000) #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 0x4000000)
/* Serial setup */ /* Serial setup */
#define CONFIG_CPU_ARMV8 #define CONFIG_CPU_ARMV8
@@ -55,18 +55,6 @@
#define CONFIG_SYS_DFU_DATA_BUF_SIZE 0x1800000 #define CONFIG_SYS_DFU_DATA_BUF_SIZE 0x1800000
#define DFU_DEFAULT_POLL_TIMEOUT 300 #define DFU_DEFAULT_POLL_TIMEOUT 300
#define CONFIG_THOR_RESET_OFF #define CONFIG_THOR_RESET_OFF
#define DFU_ALT_INFO_RAM \
"dfu_ram_info=" \
"setenv dfu_alt_info " \
"Image ram 80000 $kernel_size_r\\\\;" \
"system.dtb ram $fdt_addr_r $fdt_size_r\0" \
"dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
"thor_ram=run dfu_ram_info && thordown 0 ram 0\0" \
"dfu_ram_tftp=run dfu_ram_info && setenv updatefile boot && " \
"setenv loadaddr 10000000 && dfu tftp ram 0\0"
#define DFU_ALT_INFO \
DFU_ALT_INFO_RAM
#ifndef CONFIG_SPL_BUILD #ifndef CONFIG_SPL_BUILD
# define PARTS_DEFAULT \ # define PARTS_DEFAULT \
@@ -76,10 +64,6 @@
#endif #endif
#endif #endif
#if !defined(DFU_ALT_INFO)
# define DFU_ALT_INFO
#endif
#if !defined(PARTS_DEFAULT) #if !defined(PARTS_DEFAULT)
# define PARTS_DEFAULT # define PARTS_DEFAULT
#endif #endif
@@ -179,11 +163,41 @@
#define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \ #define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \
"jtag " "jtag "
#define BOOT_TARGET_DEVICES_USB_DFU(func) \
func(USB_DFU, usb_dfu, 0) func(USB_DFU, usb_dfu, 1)
#define BOOTENV_DEV_USB_DFU(devtypeu, devtypel, instance) \
"bootcmd_" #devtypel #instance "=setenv dfu_alt_info boot.scr ram " \
"$scriptaddr $script_size_f && " \
"dfu " #instance " ram " #instance " 60 && " \
"echo DFU" #instance ": Trying to boot script at ${scriptaddr} && " \
"source ${scriptaddr}; " \
"echo DFU" #instance ": SCRIPT FAILED: continuing...;\0"
#define BOOTENV_DEV_NAME_USB_DFU(devtypeu, devtypel, instance) \
""
#define BOOT_TARGET_DEVICES_USB_THOR(func) \
func(USB_THOR, usb_thor, 0) func(USB_THOR, usb_thor, 1)
#define BOOTENV_DEV_USB_THOR(devtypeu, devtypel, instance) \
"bootcmd_" #devtypel #instance "=setenv dfu_alt_info boot.scr ram " \
"$scriptaddr $script_size_f && " \
"thordown " #instance " ram " #instance " && " \
"echo THOR" #instance ": Trying to boot script at ${scriptaddr} && " \
"source ${scriptaddr}; " \
"echo THOR" #instance ": SCRIPT FAILED: continuing...;\0"
#define BOOTENV_DEV_NAME_USB_THOR(devtypeu, devtypel, instance) \
""
#define BOOT_TARGET_DEVICES(func) \ #define BOOT_TARGET_DEVICES(func) \
BOOT_TARGET_DEVICES_JTAG(func) \ BOOT_TARGET_DEVICES_JTAG(func) \
BOOT_TARGET_DEVICES_MMC(func) \ BOOT_TARGET_DEVICES_MMC(func) \
BOOT_TARGET_DEVICES_QSPI(func) \ BOOT_TARGET_DEVICES_QSPI(func) \
BOOT_TARGET_DEVICES_NAND(func) \ BOOT_TARGET_DEVICES_NAND(func) \
BOOT_TARGET_DEVICES_USB_DFU(func) \
BOOT_TARGET_DEVICES_USB_THOR(func) \
BOOT_TARGET_DEVICES_USB(func) \ BOOT_TARGET_DEVICES_USB(func) \
BOOT_TARGET_DEVICES_SCSI(func) \ BOOT_TARGET_DEVICES_SCSI(func) \
BOOT_TARGET_DEVICES_PXE(func) \ BOOT_TARGET_DEVICES_PXE(func) \
@@ -195,8 +209,7 @@
#ifndef CONFIG_EXTRA_ENV_SETTINGS #ifndef CONFIG_EXTRA_ENV_SETTINGS
#define CONFIG_EXTRA_ENV_SETTINGS \ #define CONFIG_EXTRA_ENV_SETTINGS \
ENV_MEM_LAYOUT_SETTINGS \ ENV_MEM_LAYOUT_SETTINGS \
BOOTENV \ BOOTENV
DFU_ALT_INFO
#endif #endif
/* SPL can't handle all huge variables - define just DFU */ /* SPL can't handle all huge variables - define just DFU */

View File

@@ -61,36 +61,6 @@
# define CONFIG_SYS_DFU_DATA_BUF_SIZE 0x600000 # define CONFIG_SYS_DFU_DATA_BUF_SIZE 0x600000
# define DFU_DEFAULT_POLL_TIMEOUT 300 # define DFU_DEFAULT_POLL_TIMEOUT 300
# define CONFIG_THOR_RESET_OFF # define CONFIG_THOR_RESET_OFF
# define DFU_ALT_INFO_RAM \
"dfu_ram_info=" \
"setenv dfu_alt_info " \
"${kernel_image} ram 0x3000000 0x500000\\\\;" \
"${devicetree_image} ram 0x2A00000 0x20000\\\\;" \
"${ramdisk_image} ram 0x2000000 0x600000\0" \
"dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
"thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
# if defined(CONFIG_MMC_SDHCI_ZYNQ)
# define DFU_ALT_INFO_MMC \
"dfu_mmc_info=" \
"setenv dfu_alt_info " \
"${kernel_image} fat 0 1\\\\;" \
"${devicetree_image} fat 0 1\\\\;" \
"${ramdisk_image} fat 0 1\0" \
"dfu_mmc=run dfu_mmc_info && dfu 0 mmc 0\0" \
"thor_mmc=run dfu_mmc_info && thordown 0 mmc 0\0"
# define DFU_ALT_INFO \
DFU_ALT_INFO_RAM \
DFU_ALT_INFO_MMC
# else
# define DFU_ALT_INFO \
DFU_ALT_INFO_RAM
# endif
#endif
#if !defined(DFU_ALT_INFO)
# define DFU_ALT_INFO
#endif #endif
/* enable preboot to be loaded before CONFIG_BOOTDELAY */ /* enable preboot to be loaded before CONFIG_BOOTDELAY */
@@ -180,12 +150,42 @@
#define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \ #define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \
"jtag " "jtag "
#define BOOT_TARGET_DEVICES_USB_DFU(func) \
func(USB_DFU, usb_dfu, 0) func(USB_DFU, usb_dfu, 1)
#define BOOTENV_DEV_USB_DFU(devtypeu, devtypel, instance) \
"bootcmd_" #devtypel #instance "=setenv dfu_alt_info boot.scr ram " \
"$scriptaddr $script_size_f && " \
"dfu " #instance " ram " #instance " 60 && " \
"echo DFU" #instance ": Trying to boot script at ${scriptaddr} && " \
"source ${scriptaddr}; " \
"echo DFU" #instance ": SCRIPT FAILED: continuing...;\0"
#define BOOTENV_DEV_NAME_USB_DFU(devtypeu, devtypel, instance) \
""
#define BOOT_TARGET_DEVICES_USB_THOR(func) \
func(USB_THOR, usb_thor, 0) func(USB_THOR, usb_thor, 1)
#define BOOTENV_DEV_USB_THOR(devtypeu, devtypel, instance) \
"bootcmd_" #devtypel #instance "=setenv dfu_alt_info boot.scr ram " \
"$scriptaddr $script_size_f && " \
"thordown " #instance " ram " #instance " && " \
"echo THOR" #instance ": Trying to boot script at ${scriptaddr} && " \
"source ${scriptaddr}; " \
"echo THOR" #instance ": SCRIPT FAILED: continuing...;\0"
#define BOOTENV_DEV_NAME_USB_THOR(devtypeu, devtypel, instance) \
""
#define BOOT_TARGET_DEVICES(func) \ #define BOOT_TARGET_DEVICES(func) \
BOOT_TARGET_DEVICES_JTAG(func) \ BOOT_TARGET_DEVICES_JTAG(func) \
BOOT_TARGET_DEVICES_MMC(func) \ BOOT_TARGET_DEVICES_MMC(func) \
BOOT_TARGET_DEVICES_QSPI(func) \ BOOT_TARGET_DEVICES_QSPI(func) \
BOOT_TARGET_DEVICES_NAND(func) \ BOOT_TARGET_DEVICES_NAND(func) \
BOOT_TARGET_DEVICES_NOR(func) \ BOOT_TARGET_DEVICES_NOR(func) \
BOOT_TARGET_DEVICES_USB_DFU(func) \
BOOT_TARGET_DEVICES_USB_THOR(func) \
BOOT_TARGET_DEVICES_USB(func) \ BOOT_TARGET_DEVICES_USB(func) \
BOOT_TARGET_DEVICES_PXE(func) \ BOOT_TARGET_DEVICES_PXE(func) \
BOOT_TARGET_DEVICES_DHCP(func) BOOT_TARGET_DEVICES_DHCP(func)
@@ -203,7 +203,6 @@
"kernel_addr_r=0x2000000\0" \ "kernel_addr_r=0x2000000\0" \
"scriptaddr=0x3000000\0" \ "scriptaddr=0x3000000\0" \
"ramdisk_addr_r=0x3100000\0" \ "ramdisk_addr_r=0x3100000\0" \
DFU_ALT_INFO \
BOOTENV BOOTENV
#endif #endif