mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 01:44:34 +00:00
Merge patch series "Hyperflash Boot fixes for J7200/J721E"
Anurag Dutta <a-dutta@ti.com> says: Hi All, In u-boot, hbmc is broken and has been removed from j7200 configs. This series re-enables the hbmc driver and introduces a series of hyperflash boot fixes. At present, in u-boot, the parent device (fss) gets registered as a syscon device. This is done because the MMIO mux driver in u-boot did not support the mux functionality when the parent device is not a syscon. In this series, we make relevant changes in the hbmc driver as well as dts' so that we can use the reg-mux driver for selecting the appropriate state of the mux. Test logs: 1) j721e-idk-gw hyperflash boot test: https://gist.github.com/anuragdutta731/50aae6fec707a3ffad6d985de6757fe4 2) j7200-evm hyperflash boot test: https://gist.github.com/anuragdutta731/c3a4d60f8bfd9c425d6c44b36eb7322b Link: https://lore.kernel.org/r/20241129113136.383277-1-a-dutta@ti.com
This commit is contained in:
commit
8aab7730c1
10 changed files with 43 additions and 9 deletions
|
@ -101,6 +101,13 @@
|
|||
<0x0 0x50000000 0x0 0x50000000 0x0 0x08000000>;
|
||||
};
|
||||
|
||||
&hbmc {
|
||||
reg = <0x0 0x47040000 0x0 0x100>,
|
||||
<0x0 0x50000000 0x0 0x8000000>;
|
||||
ranges = <0x0 0x0 0x0 0x50000000 0x4000000>,
|
||||
<0x1 0x0 0x0 0x54000000 0x800000>;
|
||||
};
|
||||
|
||||
&mcu_ringacc {
|
||||
ti,sci = <&dm_tifs>;
|
||||
};
|
||||
|
|
|
@ -51,6 +51,13 @@
|
|||
bootph-pre-ram;
|
||||
};
|
||||
|
||||
&hbmc {
|
||||
reg = <0x0 0x47040000 0x0 0x100>,
|
||||
<0x0 0x50000000 0x0 0x8000000>;
|
||||
ranges = <0x0 0x0 0x0 0x50000000 0x4000000>,
|
||||
<0x1 0x0 0x0 0x54000000 0x800000>;
|
||||
};
|
||||
|
||||
&ospi0 {
|
||||
/* Address change for data region (32-bit) */
|
||||
reg = <0x0 0x47040000 0x0 0x100>,
|
||||
|
|
|
@ -130,11 +130,13 @@ CONFIG_MMC_SDHCI_AM654=y
|
|||
CONFIG_MTD=y
|
||||
CONFIG_DM_MTD=y
|
||||
CONFIG_MTD_NOR_FLASH=y
|
||||
CONFIG_SYS_FLASH_CFI_WIDTH_16BIT=y
|
||||
CONFIG_FLASH_SHOW_PROGRESS=0
|
||||
CONFIG_CFI_FLASH=y
|
||||
CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
|
||||
CONFIG_FLASH_CFI_MTD=y
|
||||
CONFIG_SYS_FLASH_CFI=y
|
||||
CONFIG_HBMC_AM654=y
|
||||
CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
|
||||
CONFIG_DM_SPI_FLASH=y
|
||||
CONFIG_SPI_FLASH_SFDP_SUPPORT=y
|
||||
|
@ -145,7 +147,7 @@ CONFIG_SPI_FLASH_S28HX_T=y
|
|||
# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
||||
CONFIG_SPI_FLASH_MTD=y
|
||||
CONFIG_MULTIPLEXER=y
|
||||
CONFIG_MUX_MMIO=y
|
||||
CONFIG_SPL_MUX_MMIO=y
|
||||
CONFIG_PHY_TI_DP83869=y
|
||||
CONFIG_PHY_FIXED=y
|
||||
CONFIG_TI_AM65_CPSW_NUSS=y
|
||||
|
|
|
@ -111,11 +111,13 @@ CONFIG_MMC_SDHCI_AM654=y
|
|||
CONFIG_MTD=y
|
||||
CONFIG_DM_MTD=y
|
||||
CONFIG_MTD_NOR_FLASH=y
|
||||
CONFIG_SYS_FLASH_CFI_WIDTH_16BIT=y
|
||||
CONFIG_FLASH_SHOW_PROGRESS=0
|
||||
CONFIG_CFI_FLASH=y
|
||||
CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
|
||||
CONFIG_FLASH_CFI_MTD=y
|
||||
CONFIG_SYS_FLASH_CFI=y
|
||||
CONFIG_HBMC_AM654=y
|
||||
CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
|
||||
CONFIG_DM_SPI_FLASH=y
|
||||
CONFIG_SPI_FLASH_SFDP_SUPPORT=y
|
||||
|
@ -123,6 +125,8 @@ CONFIG_SPI_FLASH_SOFT_RESET=y
|
|||
CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
|
||||
CONFIG_SPI_FLASH_SPANSION=y
|
||||
CONFIG_SPI_FLASH_S28HX_T=y
|
||||
CONFIG_MULTIPLEXER=y
|
||||
CONFIG_SPL_MUX_MMIO=y
|
||||
CONFIG_PINCTRL=y
|
||||
# CONFIG_PINCTRL_GENERIC is not set
|
||||
CONFIG_SPL_PINCTRL=y
|
||||
|
|
|
@ -133,11 +133,13 @@ CONFIG_MMC_SDHCI_AM654=y
|
|||
CONFIG_MTD=y
|
||||
CONFIG_DM_MTD=y
|
||||
CONFIG_MTD_NOR_FLASH=y
|
||||
CONFIG_SYS_FLASH_CFI_WIDTH_16BIT=y
|
||||
CONFIG_FLASH_SHOW_PROGRESS=0
|
||||
CONFIG_CFI_FLASH=y
|
||||
CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
|
||||
CONFIG_FLASH_CFI_MTD=y
|
||||
CONFIG_SYS_FLASH_CFI=y
|
||||
CONFIG_HBMC_AM654=y
|
||||
CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y
|
||||
CONFIG_DM_SPI_FLASH=y
|
||||
CONFIG_SPI_FLASH_SFDP_SUPPORT=y
|
||||
|
@ -150,7 +152,7 @@ CONFIG_SPI_FLASH_MT35XU=y
|
|||
# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
|
||||
CONFIG_SPI_FLASH_MTD=y
|
||||
CONFIG_MULTIPLEXER=y
|
||||
CONFIG_MUX_MMIO=y
|
||||
CONFIG_SPL_MUX_MMIO=y
|
||||
CONFIG_PHY_TI_DP83867=y
|
||||
CONFIG_PHY_FIXED=y
|
||||
CONFIG_TI_AM65_CPSW_NUSS=y
|
||||
|
|
|
@ -121,11 +121,13 @@ CONFIG_MMC_SDHCI_AM654=y
|
|||
CONFIG_MTD=y
|
||||
CONFIG_DM_MTD=y
|
||||
CONFIG_MTD_NOR_FLASH=y
|
||||
CONFIG_SYS_FLASH_CFI_WIDTH_16BIT=y
|
||||
CONFIG_FLASH_SHOW_PROGRESS=0
|
||||
CONFIG_CFI_FLASH=y
|
||||
CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
|
||||
CONFIG_FLASH_CFI_MTD=y
|
||||
CONFIG_SYS_FLASH_CFI=y
|
||||
CONFIG_HBMC_AM654=y
|
||||
CONFIG_DM_SPI_FLASH=y
|
||||
CONFIG_SPI_FLASH_SFDP_SUPPORT=y
|
||||
CONFIG_SPI_FLASH_SOFT_RESET=y
|
||||
|
@ -134,6 +136,8 @@ CONFIG_SPI_FLASH_SPANSION=y
|
|||
CONFIG_SPI_FLASH_S28HX_T=y
|
||||
CONFIG_SPI_FLASH_STMICRO=y
|
||||
CONFIG_SPI_FLASH_MT35XU=y
|
||||
CONFIG_MULTIPLEXER=y
|
||||
CONFIG_SPL_MUX_MMIO=y
|
||||
CONFIG_PINCTRL=y
|
||||
# CONFIG_PINCTRL_GENERIC is not set
|
||||
CONFIG_SPL_PINCTRL=y
|
||||
|
|
|
@ -21,6 +21,7 @@ obj-$(CONFIG_$(PHASE_)INPUT) += input/
|
|||
obj-$(CONFIG_$(PHASE_)LED) += led/
|
||||
obj-$(CONFIG_$(PHASE_)MMC) += mmc/
|
||||
obj-y += mtd/
|
||||
obj-$(CONFIG_MULTIPLEXER) += mux/
|
||||
obj-$(CONFIG_$(PHASE_)ETH) += net/
|
||||
obj-$(CONFIG_$(PHASE_)PCH) += pch/
|
||||
obj-$(CONFIG_$(PHASE_)PCI) += pci/
|
||||
|
|
|
@ -202,7 +202,7 @@ config RENESAS_RPC_HF
|
|||
|
||||
config HBMC_AM654
|
||||
bool "HyperBus controller driver for AM65x SoC"
|
||||
depends on SYSCON
|
||||
depends on MULTIPLEXER && MUX_MMIO
|
||||
help
|
||||
This is the driver for HyperBus controller on TI's AM65x and
|
||||
other SoCs
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
|
||||
#include <asm/io.h>
|
||||
#include <dm.h>
|
||||
#include <mux.h>
|
||||
#include <regmap.h>
|
||||
#include <syscon.h>
|
||||
#include <dm/device_compat.h>
|
||||
|
||||
#define FSS_SYSC_REG 0x4
|
||||
|
@ -52,9 +52,13 @@ static int am654_hyperbus_calibrate(struct udevice *dev)
|
|||
|
||||
static int am654_select_hbmc(struct udevice *dev)
|
||||
{
|
||||
struct regmap *regmap = syscon_get_regmap(dev_get_parent(dev));
|
||||
struct mux_control *mux_ctl;
|
||||
int ret;
|
||||
|
||||
return regmap_update_bits(regmap, FSS_SYSC_REG, 0x2, 0x2);
|
||||
ret = mux_get_by_index(dev, 0, &mux_ctl);
|
||||
if (!ret)
|
||||
ret = mux_control_select(mux_ctl, 1);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int am654_hbmc_bind(struct udevice *dev)
|
||||
|
|
|
@ -15,11 +15,14 @@
|
|||
#define CFG_SYS_FLASH_BASE 0x000000000
|
||||
|
||||
/* SPL Loader Configuration */
|
||||
#if defined(CONFIG_TARGET_J721E_A72_EVM) || defined(CONFIG_TARGET_J7200_A72_EVM)
|
||||
#if defined(CONFIG_TARGET_J721E_A72_EVM)
|
||||
#define CFG_SYS_UBOOT_BASE 0x50280000
|
||||
/* Image load address in RAM for DFU boot*/
|
||||
#else
|
||||
#elif defined(CONFIG_TARGET_J7200_A72_EVM)
|
||||
#define CFG_SYS_UBOOT_BASE 0x50300000
|
||||
#elif defined(CONFIG_TARGET_J721E_R5_EVM)
|
||||
#define CFG_SYS_UBOOT_BASE 0x50080000
|
||||
#else
|
||||
#define CFG_SYS_UBOOT_BASE 0x50100000
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue