[PATCH] linux-yocto: fix compilation of 6.16 kernel on genericarm64
Mikko Rapeli <[email protected]> Wed, 27 Aug 2025 13:11:14 +0300
| Newsgroups | org.yoctoproject.lists.poky |
|---|---|
| Message-ID | <[email protected]> |
If the TI serial console revert is still needed, which needs to be confirmed separately, then one extra revert is needed for 6.16 kernel to compile for genericarm64 machine. Tested boot and oeqa runtime tests on arm64 build machine with qemu and qemu kvm on AMD KV260: https://ledge.validation.linaro.org/scheduler/job/119012 Depends on yocto-kernel-cache change to fix do_kernel_configcheck warnings. Signed-off-by: Mikko Rapeli <[email protected]> --- ...50-unexport-serial8250_rpm_-function.patch | 96 +++++++++++++++++++ .../linux/linux-yocto_6.16.bbappend | 14 +++ 2 files changed, 110 insertions(+) create mode 100644 meta-yocto-bsp/recipes-kernel/linux/files/0001-Revert-serial-8250-unexport-serial8250_rpm_-function.patch create mode 100644 meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.16.bbappend diff --git a/meta-yocto-bsp/recipes-kernel/linux/files/0001-Revert-serial-8250-unexport-serial8250_rpm_-function.patch b/meta-yocto-bsp/recipes-kernel/linux/files/0001-Revert-serial-8250-unexport-serial8250_rpm_-function.patch new file mode 100644 index 000000000000..b64488458238 --- /dev/null +++ b/meta-yocto-bsp/recipes-kernel/linux/files/0001-Revert-serial-8250-unexport-serial8250_rpm_-function.patch @@ -0,0 +1,96 @@ +From 4fa6940b9891b0107abef9b3b01583332156878c Mon Sep 17 00:00:00 2001 +From: Mikko Rapeli <[email protected]> +Date: Wed, 27 Aug 2025 06:55:58 +0000 +Subject: [PATCH] Revert "serial: 8250: unexport serial8250_rpm_*() functions" + +This reverts commit 7ba4f02e12e6f2409c5b2afae2963089b5673482. +Needed by revert of 8700a7ea5519fb0b3bad2362adfeac358c2119ce +which causes kernel hangs when starting getty's on BeaglePlay. + +[ YOCTO #15704 ] + +Signed-off-by: Mikko Rapeli <[email protected]> +--- + drivers/tty/serial/8250/8250.h | 6 ++++++ + drivers/tty/serial/8250/8250_port.c | 12 ++++++++---- + 2 files changed, 14 insertions(+), 4 deletions(-) + +Upstream-Status: Inappropriate + +diff --git a/drivers/tty/serial/8250/8250.h b/drivers/tty/serial/8250/8250.h +index 18530c31a598..b861585ca02a 100644 +--- a/drivers/tty/serial/8250/8250.h ++++ b/drivers/tty/serial/8250/8250.h +@@ -223,6 +223,12 @@ static inline bool serial8250_clear_THRI(struct uart_8250_port *up) + struct uart_8250_port *serial8250_setup_port(int index); + struct uart_8250_port *serial8250_get_port(int line); + ++void serial8250_rpm_get(struct uart_8250_port *p); ++void serial8250_rpm_put(struct uart_8250_port *p); ++ ++void serial8250_rpm_get_tx(struct uart_8250_port *p); ++void serial8250_rpm_put_tx(struct uart_8250_port *p); ++ + int serial8250_em485_config(struct uart_port *port, struct ktermios *termios, + struct serial_rs485 *rs485); + void serial8250_em485_start_tx(struct uart_8250_port *p, bool toggle_ier); +diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c +index 6d7b8c4667c9..8d9bb91d4bae 100644 +--- a/drivers/tty/serial/8250/8250_port.c ++++ b/drivers/tty/serial/8250/8250_port.c +@@ -517,20 +517,22 @@ void serial8250_clear_and_reinit_fifos(struct uart_8250_port *p) + } + EXPORT_SYMBOL_GPL(serial8250_clear_and_reinit_fifos); + +-static void serial8250_rpm_get(struct uart_8250_port *p) ++void serial8250_rpm_get(struct uart_8250_port *p) + { + if (!(p->capabilities & UART_CAP_RPM)) + return; + pm_runtime_get_sync(p->port.dev); + } ++EXPORT_SYMBOL_GPL(serial8250_rpm_get); + +-static void serial8250_rpm_put(struct uart_8250_port *p) ++void serial8250_rpm_put(struct uart_8250_port *p) + { + if (!(p->capabilities & UART_CAP_RPM)) + return; + pm_runtime_mark_last_busy(p->port.dev); + pm_runtime_put_autosuspend(p->port.dev); + } ++EXPORT_SYMBOL_GPL(serial8250_rpm_put); + + /** + * serial8250_em485_init() - put uart_8250_port into rs485 emulating +@@ -645,7 +647,7 @@ EXPORT_SYMBOL_GPL(serial8250_em485_config); + * once and disable_runtime_pm_tx() will still disable RPM because the fifo is + * empty and the HW can idle again. + */ +-static void serial8250_rpm_get_tx(struct uart_8250_port *p) ++void serial8250_rpm_get_tx(struct uart_8250_port *p) + { + unsigned char rpm_active; + +@@ -657,8 +659,9 @@ static void serial8250_rpm_get_tx(struct uart_8250_port *p) + return; + pm_runtime_get_sync(p->port.dev); + } ++EXPORT_SYMBOL_GPL(serial8250_rpm_get_tx); + +-static void serial8250_rpm_put_tx(struct uart_8250_port *p) ++void serial8250_rpm_put_tx(struct uart_8250_port *p) + { + unsigned char rpm_active; + +@@ -671,6 +674,7 @@ static void serial8250_rpm_put_tx(struct uart_8250_port *p) + pm_runtime_mark_last_busy(p->port.dev); + pm_runtime_put_autosuspend(p->port.dev); + } ++EXPORT_SYMBOL_GPL(serial8250_rpm_put_tx); + + /* + * IER sleep support. UARTs which have EFRs need the "extended +-- +2.43.0 + diff --git a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.16.bbappend b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.16.bbappend new file mode 100644 index 000000000000..ef5f84cfc3aa --- /dev/null +++ b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.16.bbappend @@ -0,0 +1,14 @@ +COMPATIBLE_MACHINE:genericarm64 = "genericarm64" +COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto" +COMPATIBLE_MACHINE:genericx86 = "genericx86" +COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64" + +KMACHINE:beaglebone-yocto ?= "beaglebone" +KMACHINE:genericx86 ?= "common-pc" +KMACHINE:genericx86-64 ?= "common-pc-64" + +FILESEXTRAPATHS:prepend:genericarm64 := "${THISDIR}/files:" +SRC_URI:append:genericarm64 = " \ + file://0001-Revert-serial-8250-unexport-serial8250_rpm_-function.patch \ + file://0001-Revert-serial-8250_omap-Drop-pm_runtime_irq_safe.patch \ +" -- 2.43.0