summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2026-04-09 16:34:38 -0600
committerTom Rini <trini@konsulko.com>2026-04-09 16:34:38 -0600
commite2fa3e570f83ab0f9ce667ddaec9dc738bcf05b9 (patch)
tree14de6d1a620c15e7b5bf349787edda955ee42745 /drivers
parent2a1bcefce835b827bbf88a9e112d646c5c4af9c1 (diff)
parent4a95a2a9e13ab05e4fc309f92bc33998d80afe01 (diff)
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-shHEADmaster
Assorted fixes and tweaks, HUSH parser, preboot env variable, SMC command enablement, s_init and 32bit/64bit code clean up, DBSC and APMU remoteproc clean ups, UFS dev_phys_to_bus() remap support and SCIF R-Car Gen5 support.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/remoteproc/Kconfig2
-rw-r--r--drivers/serial/serial_sh.c2
-rw-r--r--drivers/ufs/ufs-uclass.c24
3 files changed, 16 insertions, 12 deletions
diff --git a/drivers/remoteproc/Kconfig b/drivers/remoteproc/Kconfig
index 8056f210abc..f07ae903a28 100644
--- a/drivers/remoteproc/Kconfig
+++ b/drivers/remoteproc/Kconfig
@@ -45,7 +45,7 @@ config REMOTEPROC_RENESAS_APMU
select REMOTEPROC
depends on ARCH_RENESAS && RCAR_GEN4 && DM && OF_CONTROL
help
- Say 'y' here to add support for Renesas R-Car Gen4 Cortex-A52
+ Say 'y' here to add support for Renesas R-Car Gen4 Cortex-R52
processor via the remoteproc framework.
config REMOTEPROC_SANDBOX
diff --git a/drivers/serial/serial_sh.c b/drivers/serial/serial_sh.c
index 7ab62e0e90b..bc205234e24 100644
--- a/drivers/serial/serial_sh.c
+++ b/drivers/serial/serial_sh.c
@@ -59,7 +59,7 @@ static void sh_serial_init_generic(struct uart_port *port)
sci_out(port, SCSPTR, 0x0003);
#endif
-#if IS_ENABLED(CONFIG_RCAR_GEN2) || IS_ENABLED(CONFIG_RCAR_GEN3) || IS_ENABLED(CONFIG_RCAR_GEN4)
+#if IS_ENABLED(CONFIG_RCAR_GEN2) || IS_ENABLED(CONFIG_RCAR_GEN3) || IS_ENABLED(CONFIG_RCAR_GEN4) || IS_ENABLED(CONFIG_RCAR_GEN5)
if (port->type == PORT_HSCIF)
sci_out(port, HSSRR, HSSRR_SRE | HSSRR_SRCYC8);
#endif
diff --git a/drivers/ufs/ufs-uclass.c b/drivers/ufs/ufs-uclass.c
index bb997aace8f..81fd431f951 100644
--- a/drivers/ufs/ufs-uclass.c
+++ b/drivers/ufs/ufs-uclass.c
@@ -19,6 +19,7 @@
#include <dm/device-internal.h>
#include <malloc.h>
#include <hexdump.h>
+#include <phys2bus.h>
#include <scsi.h>
#include <ufs.h>
#include <asm/io.h>
@@ -466,13 +467,13 @@ static int ufshcd_make_hba_operational(struct ufs_hba *hba)
ufshcd_disable_intr_aggr(hba);
/* Configure UTRL and UTMRL base address registers */
- ufshcd_writel(hba, lower_32_bits((dma_addr_t)hba->utrdl),
+ ufshcd_writel(hba, lower_32_bits(dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->utrdl))),
REG_UTP_TRANSFER_REQ_LIST_BASE_L);
- ufshcd_writel(hba, upper_32_bits((dma_addr_t)hba->utrdl),
+ ufshcd_writel(hba, upper_32_bits(dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->utrdl))),
REG_UTP_TRANSFER_REQ_LIST_BASE_H);
- ufshcd_writel(hba, lower_32_bits((dma_addr_t)hba->utmrdl),
+ ufshcd_writel(hba, lower_32_bits(dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->utmrdl))),
REG_UTP_TASK_REQ_LIST_BASE_L);
- ufshcd_writel(hba, upper_32_bits((dma_addr_t)hba->utmrdl),
+ ufshcd_writel(hba, upper_32_bits(dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->utmrdl))),
REG_UTP_TASK_REQ_LIST_BASE_H);
/*
@@ -660,7 +661,7 @@ static void ufshcd_host_memory_configure(struct ufs_hba *hba)
u16 prdt_offset;
utrdlp = hba->utrdl;
- cmd_desc_dma_addr = (dma_addr_t)hba->ucdl;
+ cmd_desc_dma_addr = dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)(hba->ucdl));
utrdlp->command_desc_base_addr_lo =
cpu_to_le32(lower_32_bits(cmd_desc_dma_addr));
@@ -1612,12 +1613,15 @@ void ufshcd_prepare_utp_scsi_cmd_upiu(struct ufs_hba *hba,
ufshcd_cache_flush(hba->ucd_rsp_ptr, sizeof(*hba->ucd_rsp_ptr));
}
-static inline void prepare_prdt_desc(struct ufshcd_sg_entry *entry,
+static inline void prepare_prdt_desc(struct ufs_hba *hba,
+ struct ufshcd_sg_entry *entry,
unsigned char *buf, ulong len)
{
+ dma_addr_t da = dev_phys_to_bus(hba->dev, (phys_addr_t)(uintptr_t)buf);
+
entry->size = cpu_to_le32(len) | GENMASK(1, 0);
- entry->base_addr = cpu_to_le32(lower_32_bits((unsigned long)buf));
- entry->upper_addr = cpu_to_le32(upper_32_bits((unsigned long)buf));
+ entry->base_addr = cpu_to_le32(lower_32_bits(da));
+ entry->upper_addr = cpu_to_le32(upper_32_bits(da));
}
static void prepare_prdt_table(struct ufs_hba *hba, struct scsi_cmd *pccb)
@@ -1639,13 +1643,13 @@ static void prepare_prdt_table(struct ufs_hba *hba, struct scsi_cmd *pccb)
buf = pccb->pdata;
i = table_length;
while (--i) {
- prepare_prdt_desc(&prd_table[table_length - i - 1], buf,
+ prepare_prdt_desc(hba, &prd_table[table_length - i - 1], buf,
MAX_PRDT_ENTRY - 1);
buf += MAX_PRDT_ENTRY;
datalen -= MAX_PRDT_ENTRY;
}
- prepare_prdt_desc(&prd_table[table_length - i - 1], buf, datalen - 1);
+ prepare_prdt_desc(hba, &prd_table[table_length - i - 1], buf, datalen - 1);
req_desc->prd_table_length = table_length;
ufshcd_cache_flush(prd_table, sizeof(*prd_table) * table_length);