1
1
mirror of https://github.com/OpenVoiceOS/OpenVoiceOS synced 2025-02-18 21:00:46 +01:00

Bump rpi kernel and associated packages

This commit is contained in:
j1nx 2024-10-23 13:45:31 +00:00
parent 4f2b7a19cd
commit c5f373a843
6 changed files with 6 additions and 570 deletions

@ -1 +1 @@
Subproject commit 0cff207f4a8abd2ac83f7a27ac60c9a9ddaebf0f
Subproject commit 383b8a6c8578f184f88d5c67681980c10e9fca02

View File

@ -1 +1 @@
coherent_pool=1M numa=fake=4 numa_policy=interleave mitigations=off 8250.nr_uarts=1 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 dwc_otg.lpm_enable=0 cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u
coherent_pool=1M numa=fake=2 numa_policy=interleave mitigations=off 8250.nr_uarts=1 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 dwc_otg.lpm_enable=0 cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u

View File

@ -1,564 +0,0 @@
From a69041cfea612c0db434e2df6ec3dda2cfddc3f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ma=C3=ADra=20Canal?= <mcanal@igalia.com>
Date: Fri, 17 May 2024 11:40:23 -0300
Subject: [PATCH 1/7] numa: Add simple generic NUMA emulation
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add some common code for splitting the memory into N emulated NUMA memory
nodes.
Individual architecture can then enable selecting this option and use the
existing numa=fake=<N> kernel argument to enable it.
Memory is always split into equally sized chunks.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Co-developed-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: “Rafael J. Wysocki" <rafael@kernel.org>
---
drivers/base/Kconfig | 7 ++++
drivers/base/Makefile | 1 +
drivers/base/arch_numa.c | 6 ++++
drivers/base/numa_emulation.c | 67 +++++++++++++++++++++++++++++++++++
drivers/base/numa_emulation.h | 21 +++++++++++
5 files changed, 102 insertions(+)
create mode 100644 drivers/base/numa_emulation.c
create mode 100644 drivers/base/numa_emulation.h
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index 2b8fd6bb7da0b..1f60cd4dd057d 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -230,6 +230,13 @@ config GENERIC_ARCH_NUMA
Enable support for generic NUMA implementation. Currently, RISC-V
and ARM64 use it.
+config GENERIC_ARCH_NUMA_EMULATION
+ bool
+ depends on GENERIC_ARCH_NUMA
+ help
+ Enable NUMA emulation. Note that NUMA emulation will only be used if
+ the machine has no NUMA node.
+
config FW_DEVLINK_SYNC_STATE_TIMEOUT
bool "sync_state() behavior defaults to timeout instead of strict"
help
diff --git a/drivers/base/Makefile b/drivers/base/Makefile
index 3079bfe53d04d..34fcf5bd73702 100644
--- a/drivers/base/Makefile
+++ b/drivers/base/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_DEV_COREDUMP) += devcoredump.o
obj-$(CONFIG_GENERIC_MSI_IRQ) += platform-msi.o
obj-$(CONFIG_GENERIC_ARCH_TOPOLOGY) += arch_topology.o
obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
+obj-$(CONFIG_GENERIC_ARCH_NUMA_EMULATION) += numa_emulation.o
obj-$(CONFIG_ACPI) += physical_location.o
obj-y += test/
diff --git a/drivers/base/arch_numa.c b/drivers/base/arch_numa.c
index 5b59d133b6af4..6ad08f681b3cc 100644
--- a/drivers/base/arch_numa.c
+++ b/drivers/base/arch_numa.c
@@ -15,6 +15,8 @@
#include <asm/sections.h>
+#include "numa_emulation.h"
+
struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
EXPORT_SYMBOL(node_data);
nodemask_t numa_nodes_parsed __initdata;
@@ -30,6 +32,8 @@ static __init int numa_parse_early_param(char *opt)
return -EINVAL;
if (str_has_prefix(opt, "off"))
numa_off = true;
+ if (str_has_prefix(opt, "fake="))
+ return numa_emu_cmdline(opt + 5);
return 0;
}
@@ -471,6 +475,8 @@ void __init arch_numa_init(void)
return;
if (acpi_disabled && !numa_init(of_numa_init))
return;
+ if (!numa_init(numa_emu_init))
+ return;
}
numa_init(dummy_numa_init);
diff --git a/drivers/base/numa_emulation.c b/drivers/base/numa_emulation.c
new file mode 100644
index 0000000000000..df652fa8351b6
--- /dev/null
+++ b/drivers/base/numa_emulation.c
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Simple NUMA emulation.
+ *
+ * Copyright © 2024 Raspberry Pi Ltd
+ *
+ * Author: Maíra Canal <mcanal@igalia.com>
+ * Author: Tvrtko Ursulin <tursulin@igalia.com>
+ */
+#include <linux/memblock.h>
+
+#include "numa_emulation.h"
+
+static unsigned int emu_nodes;
+
+int __init numa_emu_cmdline(char *str)
+{
+ int ret;
+
+ ret = kstrtouint(str, 10, &emu_nodes);
+ if (ret)
+ return ret;
+
+ if (emu_nodes > MAX_NUMNODES) {
+ pr_notice("numa=fake=%u too large, reducing to %u\n",
+ emu_nodes, MAX_NUMNODES);
+ emu_nodes = MAX_NUMNODES;
+ }
+
+ return 0;
+}
+
+int __init numa_emu_init(void)
+{
+ phys_addr_t start, end;
+ unsigned long size;
+ unsigned int i;
+ int ret;
+
+ if (!emu_nodes)
+ return -EINVAL;
+
+ start = memblock_start_of_DRAM();
+ end = memblock_end_of_DRAM() - 1;
+
+ size = DIV_ROUND_DOWN_ULL(end - start + 1, emu_nodes);
+ size = PAGE_ALIGN_DOWN(size);
+
+ for (i = 0; i < emu_nodes; i++) {
+ u64 s, e;
+
+ s = start + i * size;
+ e = s + size - 1;
+
+ if (i == (emu_nodes - 1) && e != end)
+ e = end;
+
+ pr_info("Faking a node at [mem %pap-%pap]\n", &s, &e);
+ ret = numa_add_memblk(i, s, e + 1);
+ if (ret) {
+ pr_err("Failed to add fake NUMA node %d!\n", i);
+ break;
+ }
+ }
+
+ return ret;
+}
diff --git a/drivers/base/numa_emulation.h b/drivers/base/numa_emulation.h
new file mode 100644
index 0000000000000..62b38215a2f00
--- /dev/null
+++ b/drivers/base/numa_emulation.h
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * NUMA emulation header
+ *
+ * Copyright © 2024 Raspberry Pi Ltd
+ */
+
+#ifdef CONFIG_GENERIC_ARCH_NUMA_EMULATION
+int numa_emu_cmdline(char *str);
+int __init numa_emu_init(void);
+#else
+static inline int numa_emu_cmdline(char *str)
+{
+ return -EINVAL;
+}
+
+static int __init numa_emu_init(void)
+{
+ return -EOPNOTSUPP;
+}
+#endif /* CONFIG_NUMA_EMU */
From a39545f2be3992471c74ddc8a210c605f9c63d9d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ma=C3=ADra=20Canal?= <mcanal@igalia.com>
Date: Fri, 17 May 2024 11:40:34 -0300
Subject: [PATCH 2/7] arm64/numa: Add NUMA emulation for ARM64
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Allow selecting NUMA emulation on arm64.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: “Rafael J. Wysocki" <rafael@kernel.org>
---
arch/arm64/Kconfig | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 6d05b69f2318b..103200d8c542d 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1499,6 +1499,16 @@ config NODES_SHIFT
Specify the maximum number of NUMA Nodes available on the target
system. Increases memory reserved to accommodate various tables.
+config NUMA_EMULATION
+ bool "NUMA emulation"
+ depends on NUMA
+ select GENERIC_ARCH_NUMA_EMULATION
+ help
+ Enable NUMA emulation support. A flat machine will be split into
+ virtual nodes when booted with "numa=fake=N", where N is the number
+ of nodes, the system RAM will be split into N equal chunks, and
+ assigned to each node.
+
source "kernel/Kconfig.hz"
config ARCH_SPARSEMEM_ENABLE
From 976b92ae3b7d8f134c94ed3739379b0f25c3a84b Mon Sep 17 00:00:00 2001
From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Date: Wed, 22 May 2024 17:12:16 +0100
Subject: [PATCH 3/7] mm/numa: Allow override of kernel's default NUMA policy
Add numa_policy kernel argument to allow overriding the kernel's default
NUMA policy at boot time.
Syntax identical to what tmpfs accepts as it's mpol argument is accepted.
Some examples:
numa_policy=interleave
numa_policy=interleave=skip-interleave
numa_policy=bind:0-3,5,7,9-15
numa_policy=bind=static:1-2
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
---
mm/mempolicy.c | 49 ++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 42 insertions(+), 7 deletions(-)
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 4cae854c0f28d..fb63b8548ae84 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -2974,7 +2974,9 @@ void __init numa_policy_init(void)
/* Reset policy of current process to default */
void numa_default_policy(void)
{
- do_set_mempolicy(MPOL_DEFAULT, 0, NULL);
+ struct mempolicy *pol = &default_policy;
+
+ do_set_mempolicy(pol->mode, pol->flags, &pol->nodes);
}
/*
@@ -2992,7 +2994,6 @@ static const char * const policy_modes[] =
};
-#ifdef CONFIG_TMPFS
/**
* mpol_parse_str - parse string to mempolicy, for tmpfs mpol mount option.
* @str: string containing mempolicy to parse
@@ -3005,13 +3006,18 @@ static const char * const policy_modes[] =
*/
int mpol_parse_str(char *str, struct mempolicy **mpol)
{
- struct mempolicy *new = NULL;
+ struct mempolicy *new;
unsigned short mode_flags;
nodemask_t nodes;
char *nodelist = strchr(str, ':');
char *flags = strchr(str, '=');
int err = 1, mode;
+ if (*mpol)
+ new = *mpol;
+ else
+ new = NULL;
+
if (flags)
*flags++ = '\0'; /* terminate mode string */
@@ -3090,9 +3096,16 @@ int mpol_parse_str(char *str, struct mempolicy **mpol)
goto out;
}
- new = mpol_new(mode, mode_flags, &nodes);
- if (IS_ERR(new))
- goto out;
+ if (!new) {
+ new = mpol_new(mode, mode_flags, &nodes);
+ if (IS_ERR(new))
+ goto out;
+ } else {
+ atomic_set(&new->refcnt, 1);
+ new->mode = mode;
+ new->flags = mode_flags;
+ new->home_node = NUMA_NO_NODE;
+ }
/*
* Save nodes for mpol_to_str() to show the tmpfs mount options
@@ -3125,7 +3138,29 @@ int mpol_parse_str(char *str, struct mempolicy **mpol)
*mpol = new;
return err;
}
-#endif /* CONFIG_TMPFS */
+
+static int __init setup_numapolicy(char *str)
+{
+ struct mempolicy pol = { }, *ppol = &pol;
+ char buf[128];
+ int ret;
+
+ if (str)
+ ret = mpol_parse_str(str, &ppol);
+ else
+ ret = -EINVAL;
+
+ if (!ret) {
+ default_policy = pol;
+ mpol_to_str(buf, sizeof(buf), &pol);
+ pr_info("NUMA default policy overridden to '%s'\n", buf);
+ } else {
+ pr_warn("Unable to parse numa_policy=\n");
+ }
+
+ return ret == 0;
+}
+__setup("numa_policy=", setup_numapolicy);
/**
* mpol_to_str - format a mempolicy structure for printing
From 19adc602017aa88be7f43f17c2515eba9ebaf942 Mon Sep 17 00:00:00 2001
From: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Date: Wed, 17 Jul 2024 09:33:21 +0100
Subject: [PATCH 4/7] dma-buf: system_heap: Allow specifying maximum allocation
order
system_heap.max_order=<uint>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
---
drivers/dma-buf/heaps/system_heap.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
index 9076d47ed2ef4..9dc5dfeaca2a7 100644
--- a/drivers/dma-buf/heaps/system_heap.c
+++ b/drivers/dma-buf/heaps/system_heap.c
@@ -54,6 +54,11 @@ static gfp_t order_flags[] = {HIGH_ORDER_GFP, HIGH_ORDER_GFP, LOW_ORDER_GFP};
static const unsigned int orders[] = {8, 4, 0};
#define NUM_ORDERS ARRAY_SIZE(orders)
+static unsigned int module_max_order = orders[0];
+
+module_param_named(max_order, module_max_order, uint, 0400);
+MODULE_PARM_DESC(max_order, "Maximum allocation order override.");
+
static struct sg_table *dup_sg_table(struct sg_table *table)
{
struct sg_table *new_table;
@@ -339,7 +344,7 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
struct system_heap_buffer *buffer;
DEFINE_DMA_BUF_EXPORT_INFO(exp_info);
unsigned long size_remaining = len;
- unsigned int max_order = orders[0];
+ unsigned int max_order = module_max_order;
struct dma_buf *dmabuf;
struct sg_table *table;
struct scatterlist *sg;
@@ -433,6 +438,9 @@ static int system_heap_create(void)
if (IS_ERR(sys_heap))
return PTR_ERR(sys_heap);
+ if (module_max_order > orders[0])
+ module_max_order = orders[0];
+
return 0;
}
module_init(system_heap_create);
From 933b9fccb049caae1d53a8e4dc42b225524c480e Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.com>
Date: Tue, 23 Jul 2024 15:55:54 +0100
Subject: [PATCH 6/7] dts: Move some common rpi settings into rpi files
Most 2711 devices and all 2712 device share common bootargs (command
lines). Make the common values shared defaults, overriding them were
necessary.
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts | 4 ----
arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts | 4 ----
arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi | 1 +
arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts | 5 -----
arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi | 5 -----
arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi | 5 +++++
6 files changed, 6 insertions(+), 18 deletions(-)
diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts
index d3a3a1e4d4c68..75ce412a85dd7 100644
--- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts
+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts
@@ -265,10 +265,6 @@
#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
/ {
- chosen {
- bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0";
- };
-
/delete-node/ wifi-pwrseq;
};
diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts
index 6ed20e0a88d1a..678b37518fdc1 100644
--- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts
+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4.dts
@@ -274,10 +274,6 @@
#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
/ {
- chosen {
- bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0";
- };
-
/delete-node/ wifi-pwrseq;
};
diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi
index b264daee2703d..f134343029b61 100644
--- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi
@@ -3,6 +3,7 @@
/ {
chosen: chosen {
+ bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0";
};
__overrides__ {
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
index 52b58acdb95ca..e2c9e1e28444a 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
@@ -430,11 +430,6 @@ dpi_16bit_gpio2: &rp1_dpi_16bit_gpio2 { };
};
/ {
- chosen: chosen {
- bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe";
- stdout-path = "serial10:115200n8";
- };
-
fan: cooling_fan {
status = "disabled";
compatible = "pwm-fan";
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
index bff6dd0eca638..1bbf8e76fb869 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi-cm5.dtsi
@@ -420,11 +420,6 @@ dpi_16bit_gpio2: &rp1_dpi_16bit_gpio2 { };
};
/ {
- chosen: chosen {
- bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe";
- stdout-path = "serial10:115200n8";
- };
-
fan: cooling_fan {
status = "disabled";
compatible = "pwm-fan";
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi
index ca9833da402db..8241ed5d77e63 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi
@@ -98,6 +98,11 @@
};
/ {
+ chosen: chosen {
+ bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe";
+ stdout-path = "serial10:115200n8";
+ };
+
aliases: aliases {
blconfig = &blconfig;
blpubkey = &blpubkey;
From e87a8694aa8d0db63b4951bd76ae97b3cea75828 Mon Sep 17 00:00:00 2001
From: Dom Cobley <popcornmix@gmail.com>
Date: Thu, 18 Jul 2024 20:22:18 +0100
Subject: [PATCH 7/7] dts: Set preferred numa options in bootargs
Signed-off-by: Dom Cobley <popcornmix@gmail.com>
---
arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts | 2 +-
arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi | 2 +-
arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts
index d9fc78e49bf39..36109a0099afd 100644
--- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts
+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4s.dts
@@ -148,7 +148,7 @@
/ {
chosen {
- bootargs = "coherent_pool=1M snd_bcm2835.enable_headphones=0";
+ bootargs = "coherent_pool=1M snd_bcm2835.enable_headphones=0 numa=fake=8 numa_policy=interleave";
};
aliases {
diff --git a/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi b/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi
index f134343029b61..1b8e9e5e324d0 100644
--- a/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi
+++ b/arch/arm/boot/dts/broadcom/bcm2711-rpi-ds.dtsi
@@ -3,7 +3,7 @@
/ {
chosen: chosen {
- bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0";
+ bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 numa=fake=8 numa_policy=interleave";
};
__overrides__ {
diff --git a/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi b/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi
index 8241ed5d77e63..2aa9e9a1d11f6 100644
--- a/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi
+++ b/arch/arm64/boot/dts/broadcom/bcm2712-rpi.dtsi
@@ -99,7 +99,7 @@
/ {
chosen: chosen {
- bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe";
+ bootargs = "reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe system_heap.max_order=0 numa=fake=8 numa_policy=interleave iommu_dma_numa_policy=interleave";
stdout-path = "serial10:115200n8";
};

View File

@ -31,7 +31,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi4"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,8ee418c866c263941fb468bc1eeab1d8059db705)/linux-8ee418c866c263941fb468bc1eeab1d8059db705.tar.gz"
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,1af976d476424009ac9d93313a9fad9cbb5498ae)/linux-1af976d476424009ac9d93313a9fad9cbb5498ae.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y

View File

@ -3,16 +3,16 @@
# rpi-eeprom
#
#############################################################
RPI_EEPROM_VERSION = 945d708fd0b200e62fcedd48236c7f9c43a44062
RPI_EEPROM_VERSION = e9717985d26205a790d5dbc77b8dbadcadb52e05
RPI_EEPROM_SITE = $(call github,raspberrypi,rpi-eeprom,$(RPI_EEPROM_VERSION))
RPI_EEPROM_LICENSE = BSD-3-Clause
RPI_EEPROM_LICENSE_FILES = LICENSE
RPI_EEPROM_INSTALL_IMAGES = YES
ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI4),y)
RPI_EEPROM_FIRMWARE_PATH = firmware-2711/stable/pieeprom-2024-07-30.bin
RPI_EEPROM_FIRMWARE_PATH = firmware-2711/stable/pieeprom-2024-10-21.bin
else ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI5),y) # Raspberry Pi 5
RPI_EEPROM_FIRMWARE_PATH = firmware-2712/stable/pieeprom-2024-07-30.bin
RPI_EEPROM_FIRMWARE_PATH = firmware-2712/stable/pieeprom-2024-10-21.bin
endif
define RPI_EEPROM_BUILD_CMDS