mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
Xilinx changes for v2021.07-rc5
zynqmp: - Fix ANALOG_BUS value after powerup - Disable EFI_CAPSULE_ON_DISK_EARLY zynqmp-gqspi: - Fix write issue -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQQbPNTMvXmYlBPRwx7KSWXLKUoMIQUCYMNGPAAKCRDKSWXLKUoM IUCCAJ4lktDK3MTBAJUMHzKXvzt1jcuW6wCfQKuoQSETBDuy1LMXV6uxQXkrHJA= =IXXl -----END PGP SIGNATURE----- Merge tag 'xilinx-for-v2021.07-rc5' of https://source.denx.de/u-boot/custodians/u-boot-microblaze Xilinx changes for v2021.07-rc5 zynqmp: - Fix ANALOG_BUS value after powerup - Disable EFI_CAPSULE_ON_DISK_EARLY zynqmp-gqspi: - Fix write issue
This commit is contained in:
commit
c4737cd594
4 changed files with 33 additions and 2 deletions
|
@ -19,6 +19,11 @@
|
|||
#define ZYNQMP_CRL_APB_BOOT_PIN_CTRL_OUT_EN_SHIFT 0
|
||||
#define ZYNQMP_CRL_APB_BOOT_PIN_CTRL_OUT_VAL_SHIFT 8
|
||||
|
||||
#define ZYNQMP_AMS_PS_SYSMON_BASEADDR 0XFFA50800
|
||||
#define ZYNQMP_AMS_PS_SYSMON_ANALOG_BUS ((ZYNQMP_AMS_PS_SYSMON_BASEADDR) \
|
||||
+ 0x00000114)
|
||||
#define ZYNQMP_PS_SYSMON_ANALOG_BUS_VAL 0x00003210
|
||||
|
||||
#define PS_MODE0 BIT(0)
|
||||
#define PS_MODE1 BIT(1)
|
||||
#define PS_MODE2 BIT(2)
|
||||
|
|
|
@ -287,6 +287,17 @@ int board_early_init_f(void)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
/*
|
||||
* PS_SYSMON_ANALOG_BUS register determines mapping between SysMon
|
||||
* supply sense channel to SysMon supply registers inside the IP.
|
||||
* This register must be programmed to complete SysMon IP
|
||||
* configuration. The default register configuration after
|
||||
* power-up is incorrect. Hence, fix this by writing the
|
||||
* correct value - 0x3210.
|
||||
*/
|
||||
writel(ZYNQMP_PS_SYSMON_ANALOG_BUS_VAL,
|
||||
ZYNQMP_AMS_PS_SYSMON_ANALOG_BUS);
|
||||
|
||||
/* Delay is required for clocks to be propagated */
|
||||
udelay(1000000);
|
||||
#endif
|
||||
|
|
|
@ -187,6 +187,5 @@ CONFIG_OF_LIBFDT_OVERLAY=y
|
|||
CONFIG_EFI_SET_TIME=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
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#define GQSPI_IXR_TXFULL_MASK 0x00000008 /* QSPI TX FIFO is full */
|
||||
#define GQSPI_IXR_RXNEMTY_MASK 0x00000010 /* QSPI RX FIFO Not Empty */
|
||||
#define GQSPI_IXR_GFEMTY_MASK 0x00000080 /* QSPI Generic FIFO Empty */
|
||||
#define GQSPI_IXR_GFNFULL_MASK 0x00000200 /* QSPI GENFIFO not full */
|
||||
#define GQSPI_IXR_ALL_MASK (GQSPI_IXR_TXNFULL_MASK | \
|
||||
GQSPI_IXR_RXNEMTY_MASK)
|
||||
|
||||
|
@ -238,9 +239,21 @@ static void zynqmp_qspi_fill_gen_fifo(struct zynqmp_qspi_priv *priv,
|
|||
u32 gqspi_fifo_reg)
|
||||
{
|
||||
struct zynqmp_qspi_regs *regs = priv->regs;
|
||||
u32 config_reg, ier;
|
||||
int ret = 0;
|
||||
|
||||
ret = wait_for_bit_le32(®s->isr, GQSPI_IXR_GFEMTY_MASK, 1,
|
||||
config_reg = readl(®s->confr);
|
||||
/* Manual start if needed */
|
||||
config_reg |= GQSPI_STRT_GEN_FIFO;
|
||||
writel(config_reg, ®s->confr);
|
||||
|
||||
/* Enable interrupts */
|
||||
ier = readl(®s->ier);
|
||||
ier |= GQSPI_IXR_GFNFULL_MASK;
|
||||
writel(ier, ®s->ier);
|
||||
|
||||
/* Wait until the fifo is not full to write the new command */
|
||||
ret = wait_for_bit_le32(®s->isr, GQSPI_IXR_GFNFULL_MASK, 1,
|
||||
GQSPI_TIMEOUT, 1);
|
||||
if (ret)
|
||||
printf("%s Timeout\n", __func__);
|
||||
|
@ -263,6 +276,9 @@ static void zynqmp_qspi_chipselect(struct zynqmp_qspi_priv *priv, int is_on)
|
|||
|
||||
debug("GFIFO_CMD_CS: 0x%x\n", gqspi_fifo_reg);
|
||||
|
||||
/* Dummy generic FIFO entry */
|
||||
zynqmp_qspi_fill_gen_fifo(priv, 0);
|
||||
|
||||
zynqmp_qspi_fill_gen_fifo(priv, gqspi_fifo_reg);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue