Skip to content

Commit

Permalink
linux-iot2050: Update to 6.1.102-cip26[-rt14]
Browse files Browse the repository at this point in the history
Also switch to tar.xz at this chance - smaller, and we can reuse the
SHAs from isar-cip-core.

4 patches went upstream, 4 are new to add DMA protection via the PVU.

Signed-off-by: Jan Kiszka <[email protected]>
  • Loading branch information
jan-kiszka authored and huaqianli committed Aug 26, 2024
1 parent fc44e08 commit 32324ce
Show file tree
Hide file tree
Showing 61 changed files with 935 additions and 245 deletions.
2 changes: 2 additions & 0 deletions recipes-kernel/linux/files/iot2050_defconfig_base
Original file line number Diff line number Diff line change
Expand Up @@ -609,6 +609,7 @@ CONFIG_RPMSG_QCOM_GLINK_RPM=y
CONFIG_RPMSG_VIRTIO=m
CONFIG_TI_SCI_PM_DOMAINS=y
CONFIG_TI_PRUSS=y
CONFIG_TI_PVU=y
CONFIG_EXTCON_PALMAS=m
CONFIG_EXTCON_USB_GPIO=m
CONFIG_MEMORY=y
Expand Down Expand Up @@ -662,6 +663,7 @@ CONFIG_SECURITY=y
CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ECHAINIV=y
CONFIG_CRYPTO_ANSI_CPRNG=y
CONFIG_DMA_RESTRICTED_POOL=y
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=24
CONFIG_PRINTK_TIME=y
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ index 93a5f0817efc..6c6655369e52 100644
AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
>;
diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
index b08a083d722d..7152b04eec52 100644
index 7f265c671654..4a0ae0c817fe 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -114,35 +114,35 @@ led-0 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Acked-by: Peter Ujfalusi <[email protected]>
1 file changed, 54 insertions(+)

diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
index b86b809eb1f7..b0286df3383d 100644
index 82e7acfda6ed..53f3c08dd256 100644
--- a/drivers/dma/ti/k3-udma.c
+++ b/drivers/dma/ti/k3-udma.c
@@ -303,6 +303,8 @@ struct udma_chan {
Expand All @@ -49,7 +49,7 @@ index b86b809eb1f7..b0286df3383d 100644

/* dmapool for packet mode descriptors */
bool use_dma_pool;
@@ -5504,11 +5506,63 @@ static int udma_probe(struct platform_device *pdev)
@@ -5510,11 +5512,63 @@ static int udma_probe(struct platform_device *pdev)
return ret;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ Signed-off-by: Vignesh Raghavendra <[email protected]>
1 file changed, 3 insertions(+)

diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
index b0286df3383d..bbc26c18a590 100644
index 53f3c08dd256..a4316c759392 100644
--- a/drivers/dma/ti/k3-udma.c
+++ b/drivers/dma/ti/k3-udma.c
@@ -4784,7 +4784,10 @@ static int bcdma_setup_resources(struct udma_dev *ud)
@@ -4790,7 +4790,10 @@ static int bcdma_setup_resources(struct udma_dev *ud)
irq_res.desc[i].num = rm_res->desc[i].num;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ Acked-by: Peter Ujfalusi <[email protected]>
1 file changed, 1 deletion(-)

diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
index bbc26c18a590..3aa8b9b4321d 100644
index a4316c759392..8e3cd33b3bca 100644
--- a/drivers/dma/ti/k3-udma.c
+++ b/drivers/dma/ti/k3-udma.c
@@ -5362,7 +5362,6 @@ static int udma_probe(struct platform_device *pdev)
@@ -5368,7 +5368,6 @@ static int udma_probe(struct platform_device *pdev)
dev->msi.domain = of_msi_get_domain(dev, dev->of_node,
DOMAIN_BUS_TI_SCI_INTA_MSI);
if (!dev->msi.domain) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ Signed-off-by: Ulf Hansson <[email protected]>
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
index 8e22b375247e..672d37ea98d0 100644
index 52d6cc07e38c..55f457126f8f 100644
--- a/drivers/mmc/host/sdhci_am654.c
+++ b/drivers/mmc/host/sdhci_am654.c
@@ -834,7 +834,7 @@ static int sdhci_am654_probe(struct platform_device *pdev)
@@ -909,7 +909,7 @@ static int sdhci_am654_probe(struct platform_device *pdev)

ret = mmc_of_parse(host->mmc);
if (ret) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Signed-off-by: Vignesh Raghavendra <[email protected]>
1 file changed, 131 insertions(+), 16 deletions(-)

diff --git a/drivers/mmc/host/sdhci_am654.c b/drivers/mmc/host/sdhci_am654.c
index 672d37ea98d0..7cdf0f54e3a5 100644
index 55f457126f8f..d47672bcc508 100644
--- a/drivers/mmc/host/sdhci_am654.c
+++ b/drivers/mmc/host/sdhci_am654.c
@@ -85,6 +85,7 @@
Expand All @@ -25,7 +25,7 @@ index 672d37ea98d0..7cdf0f54e3a5 100644

/* Command Queue Host Controller Interface Base address */
#define SDHCI_AM654_CQE_BASE_ADDR 0x200
@@ -808,16 +809,10 @@ static int sdhci_am654_probe(struct platform_device *pdev)
@@ -883,16 +884,10 @@ static int sdhci_am654_probe(struct platform_device *pdev)

pltfm_host->clk = clk_xin;

Expand All @@ -43,7 +43,7 @@ index 672d37ea98d0..7cdf0f54e3a5 100644
}

sdhci_am654->base = devm_regmap_init_mmio(dev, base,
@@ -825,31 +820,47 @@ static int sdhci_am654_probe(struct platform_device *pdev)
@@ -900,31 +895,47 @@ static int sdhci_am654_probe(struct platform_device *pdev)
if (IS_ERR(sdhci_am654->base)) {
dev_err(dev, "Failed to initialize regmap\n");
ret = PTR_ERR(sdhci_am654->base);
Expand Down Expand Up @@ -98,7 +98,7 @@ index 672d37ea98d0..7cdf0f54e3a5 100644
err_pltfm_free:
sdhci_pltfm_free(pdev);
return ret;
@@ -858,23 +869,127 @@ static int sdhci_am654_probe(struct platform_device *pdev)
@@ -933,23 +944,127 @@ static int sdhci_am654_probe(struct platform_device *pdev)
static int sdhci_am654_remove(struct platform_device *pdev)
{
struct sdhci_host *host = platform_get_drvdata(pdev);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Signed-off-by: Wim Van Sebroeck <[email protected]>
1 file changed, 48 insertions(+)

diff --git a/drivers/watchdog/rti_wdt.c b/drivers/watchdog/rti_wdt.c
index 6e9253761fc1..bc13e7687f04 100644
index fe27039f6f5a..486438c41e1d 100644
--- a/drivers/watchdog/rti_wdt.c
+++ b/drivers/watchdog/rti_wdt.c
@@ -14,6 +14,8 @@
Expand All @@ -34,9 +34,9 @@ index 6e9253761fc1..bc13e7687f04 100644
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/types.h>
@@ -52,6 +54,11 @@
@@ -54,6 +56,11 @@

#define DWDST BIT(1)
#define MAX_HW_ERROR 250

+#define PON_REASON_SOF_NUM 0xBBBBCCCC
+#define PON_REASON_MAGIC_NUM 0xDDDDDDDD
Expand All @@ -46,7 +46,7 @@ index 6e9253761fc1..bc13e7687f04 100644
static int heartbeat = DEFAULT_HEARTBEAT;

/*
@@ -198,6 +205,11 @@ static int rti_wdt_probe(struct platform_device *pdev)
@@ -207,6 +214,11 @@ static int rti_wdt_probe(struct platform_device *pdev)
struct rti_wdt_device *wdt;
struct clk *clk;
u32 last_ping = 0;
Expand All @@ -58,7 +58,7 @@ index 6e9253761fc1..bc13e7687f04 100644

wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
if (!wdt)
@@ -284,6 +296,42 @@ static int rti_wdt_probe(struct platform_device *pdev)
@@ -285,6 +297,42 @@ static int rti_wdt_probe(struct platform_device *pdev)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Signed-off-by: MD Danish Anwar <[email protected]>
1 file changed, 36 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
index ebb1c5ce7aec..a3edfec481ce 100644
index 83dd8993027a..e239287ee9d7 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -967,6 +967,18 @@ icssg0_iepclk_mux: iepclk-mux@30 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Signed-off-by: MD Danish Anwar <[email protected]>
1 file changed, 36 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
index a3edfec481ce..5d862f4f45cf 100644
index e239287ee9d7..231634fdc469 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -1015,6 +1015,9 @@ pru0_0: pru@34000 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ Tested-by: Masahisa Kojima <[email protected]>
[Taken from https://lore.kernel.org/all/[email protected]/]
---
drivers/tee/optee/core.c | 13 ++-----------
drivers/tee/optee/device.c | 13 ++++++++++---
drivers/tee/optee/device.c | 9 ++++++++-
drivers/tee/optee/optee_private.h | 2 --
3 files changed, 12 insertions(+), 16 deletions(-)
3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index daf07737c4fd..52c08055826b 100644
Expand Down Expand Up @@ -67,22 +67,18 @@ index daf07737c4fd..52c08055826b 100644
}

diff --git a/drivers/tee/optee/device.c b/drivers/tee/optee/device.c
index 64f0e047c23d..78fc0a15c463 100644
index 1892e49a8e6a..56ef3b1faf35 100644
--- a/drivers/tee/optee/device.c
+++ b/drivers/tee/optee/device.c
@@ -60,9 +60,10 @@ static void optee_release_device(struct device *dev)
kfree(optee_device);
}

-static int optee_register_device(const uuid_t *device_uuid)
+static int optee_register_device(const uuid_t *device_uuid, u32 func)
@@ -72,6 +72,7 @@ static DEVICE_ATTR_RO(need_supplicant);
static int optee_register_device(const uuid_t *device_uuid, u32 func)
{
struct tee_client_device *optee_device = NULL;
+ const char *dev_name_fmt = NULL;
int rc;

optee_device = kzalloc(sizeof(*optee_device), GFP_KERNEL);
@@ -71,7 +72,13 @@ static int optee_register_device(const uuid_t *device_uuid)
@@ -80,7 +81,13 @@ static int optee_register_device(const uuid_t *device_uuid, u32 func)

optee_device->dev.bus = &tee_bus_type;
optee_device->dev.release = optee_release_device;
Expand All @@ -97,15 +93,6 @@ index 64f0e047c23d..78fc0a15c463 100644
kfree(optee_device);
return -ENOMEM;
}
@@ -142,7 +149,7 @@ static int __optee_enumerate_devices(u32 func)
num_devices = shm_size / sizeof(uuid_t);

for (idx = 0; idx < num_devices; idx++) {
- rc = optee_register_device(&device_uuid[idx]);
+ rc = optee_register_device(&device_uuid[idx], func);
if (rc)
goto out_shm;
}
diff --git a/drivers/tee/optee/optee_private.h b/drivers/tee/optee/optee_private.h
index 04ae58892608..7e9b3e7cd26b 100644
--- a/drivers/tee/optee/optee_private.h
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ index b0b848d6933a..f0cc00032751 100644
* In the nonblocking case we do not attempt to perform garbage
* collection if we do not have enough free space. Rather, we do the
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index b43e5e6ddaf6..db3c0ce08e44 100644
index 28d4defc5d0c..04f75a9f7091 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -190,6 +190,7 @@ static int generic_ops_register(void)
@@ -211,6 +211,7 @@ static int generic_ops_register(void)
generic_ops.get_variable = efi.get_variable;
generic_ops.get_next_variable = efi.get_next_variable;
generic_ops.query_variable_store = efi_query_variable_store;
Expand All @@ -65,10 +65,10 @@ index b43e5e6ddaf6..db3c0ce08e44 100644
if (efi_rt_services_supported(EFI_RT_SUPPORTED_SET_VARIABLE)) {
generic_ops.set_variable = efi.set_variable;
diff --git a/drivers/firmware/efi/vars.c b/drivers/firmware/efi/vars.c
index 0ba9f18312f5..de36d4e4bd95 100644
index 4ca256bcd697..d22160e7c785 100644
--- a/drivers/firmware/efi/vars.c
+++ b/drivers/firmware/efi/vars.c
@@ -241,3 +241,15 @@ efi_status_t efivar_set_variable(efi_char16_t *name, efi_guid_t *vendor,
@@ -250,3 +250,15 @@ efi_status_t efivar_set_variable(efi_char16_t *name, efi_guid_t *vendor,
return status;
}
EXPORT_SYMBOL_NS_GPL(efivar_set_variable, EFIVAR);
Expand All @@ -85,18 +85,18 @@ index 0ba9f18312f5..de36d4e4bd95 100644
+}
+EXPORT_SYMBOL_NS_GPL(efivar_query_variable_info, EFIVAR);
diff --git a/fs/efivarfs/super.c b/fs/efivarfs/super.c
index 6780fc81cc11..0994446a3544 100644
index 77c7615bba5e..9c7e17657468 100644
--- a/fs/efivarfs/super.c
+++ b/fs/efivarfs/super.c
@@ -13,6 +13,7 @@
#include <linux/ucs2_string.h>
@@ -14,6 +14,7 @@
#include <linux/slab.h>
#include <linux/magic.h>
#include <linux/printk.h>
+#include <linux/statfs.h>

#include "internal.h"

@@ -23,8 +24,44 @@ static void efivarfs_evict_inode(struct inode *inode)
@@ -24,8 +25,44 @@ static void efivarfs_evict_inode(struct inode *inode)
clear_inode(inode);
}

Expand Down Expand Up @@ -143,18 +143,18 @@ index 6780fc81cc11..0994446a3544 100644
.evict_inode = efivarfs_evict_inode,
};
diff --git a/include/linux/efi.h b/include/linux/efi.h
index 4e1bfee9675d..b8cd4db7a1bf 100644
index a849b533be5b..cffd2d4f8f71 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -1045,6 +1045,7 @@ struct efivar_operations {
@@ -1038,6 +1038,7 @@ struct efivar_operations {
efi_set_variable_t *set_variable;
efi_set_variable_t *set_variable_nonblocking;
efi_query_variable_store_t *query_variable_store;
+ efi_query_variable_info_t *query_variable_info;
};

struct efivars {
@@ -1053,6 +1054,12 @@ struct efivars {
@@ -1046,6 +1047,12 @@ struct efivars {
const struct efivar_operations *ops;
};

Expand All @@ -167,7 +167,7 @@ index 4e1bfee9675d..b8cd4db7a1bf 100644
/*
* The maximum size of VariableName + Data = 1024
* Therefore, it's reasonable to save that much
@@ -1087,6 +1094,10 @@ efi_status_t efivar_set_variable_locked(efi_char16_t *name, efi_guid_t *vendor,
@@ -1080,6 +1087,10 @@ efi_status_t efivar_set_variable_locked(efi_char16_t *name, efi_guid_t *vendor,
efi_status_t efivar_set_variable(efi_char16_t *name, efi_guid_t *vendor,
u32 attr, unsigned long data_size, void *data);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ Signed-off-by: Ard Biesheuvel <[email protected]>
5 files changed, 16 insertions(+), 20 deletions(-)

diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
index db3c0ce08e44..54dda4309892 100644
index 04f75a9f7091..7d758df19b64 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -196,7 +196,7 @@ static int generic_ops_register(void)
@@ -217,7 +217,7 @@ static int generic_ops_register(void)
generic_ops.set_variable = efi.set_variable;
generic_ops.set_variable_nonblocking = efi.set_variable_nonblocking;
}
Expand All @@ -42,10 +42,10 @@ index db3c0ce08e44..54dda4309892 100644

static void generic_ops_unregister(void)
diff --git a/drivers/firmware/efi/vars.c b/drivers/firmware/efi/vars.c
index de36d4e4bd95..26a05bf37fdd 100644
index d22160e7c785..e19e8f19ebc0 100644
--- a/drivers/firmware/efi/vars.c
+++ b/drivers/firmware/efi/vars.c
@@ -40,37 +40,30 @@ static efi_status_t check_var_size(bool nonblocking, u32 attributes,
@@ -40,31 +40,25 @@ static efi_status_t check_var_size(bool nonblocking, u32 attributes,
}

/**
Expand Down Expand Up @@ -81,8 +81,10 @@ index de36d4e4bd95..26a05bf37fdd 100644
- struct kobject *kobject)
+ const struct efivar_operations *ops)
{
if (down_interruptible(&efivars_lock))
return -EINTR;
int rv;

@@ -78,7 +72,6 @@ int efivars_register(struct efivars *efivars,
}

efivars->ops = ops;
- efivars->kobject = kobject;
Expand All @@ -103,10 +105,10 @@ index 871bedf533a8..96ea1fa76d35 100644
printk(KERN_INFO "gsmi: Failed to register efivars\n");
sysfs_remove_files(gsmi_kobj, gsmi_attrs);
diff --git a/fs/efivarfs/super.c b/fs/efivarfs/super.c
index 0994446a3544..36d5fcf2591e 100644
index 9c7e17657468..225c4854b8eb 100644
--- a/fs/efivarfs/super.c
+++ b/fs/efivarfs/super.c
@@ -290,7 +290,7 @@ static struct file_system_type efivarfs_type = {
@@ -305,7 +305,7 @@ static struct file_system_type efivarfs_type = {

static __init int efivarfs_init(void)
{
Expand All @@ -116,18 +118,18 @@ index 0994446a3544..36d5fcf2591e 100644

return register_filesystem(&efivarfs_type);
diff --git a/include/linux/efi.h b/include/linux/efi.h
index b8cd4db7a1bf..953575e29da6 100644
index cffd2d4f8f71..558ce68a5c5d 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -1050,7 +1050,6 @@ struct efivar_operations {
@@ -1043,7 +1043,6 @@ struct efivar_operations {

struct efivars {
struct kset *kset;
- struct kobject *kobject;
const struct efivar_operations *ops;
};

@@ -1070,10 +1069,14 @@ static inline u64 efivar_reserved_space(void) { return 0; }
@@ -1063,10 +1062,14 @@ static inline u64 efivar_reserved_space(void) { return 0; }
#define EFI_VAR_NAME_LEN 1024

int efivars_register(struct efivars *efivars,
Expand Down
Loading

0 comments on commit 32324ce

Please sign in to comment.