diff mbox series

[4/4] linux-yocto/6.16: genericarm64 config

Message ID 20250910050822.3273330-5-bruce.ashfield@gmail.com
State New
Headers show
Series kernel-yocto: 6.16 fixups and genericarm64 | expand

Commit Message

Bruce Ashfield Sept. 10, 2025, 5:08 a.m. UTC
From: Bruce Ashfield <bruce.ashfield@gmail.com>

Integrating the following commit(s) to linux-yocto/.:

1/3 [
    Author: Bruce Ashfield
    Email: bruce.ashfield@gmail.com
    Subject: Revert "serial: 8250: unexport serial8250_rpm_*() functions"
    Date: Tue, 9 Sep 2025 22:22:53 -0400

    1/2 [
        Author: Mikko Rapeli
        Email: mikko.rapeli@linaro.org
        Subject: Revert "serial: 8250: unexport serial8250_rpm_*() functions"
        Date: Thu, 28 Aug 2025 09:33:16 +0300

        This reverts commit 7ba4f02e12e6f2409c5b2afae2963089b5673482.
        Needed by revert of 8700a7ea5519fb0b3bad2362adfeac358c2119ce
        which causes kernel hangs when starting getty's on BeaglePlay.

        [ YOCTO #15704 ]
        https://bugzilla.yoctoproject.org/show_bug.cgi?id=15704

        Upstream-Status: Inappropriate

        Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
        Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
    ]

    2/2 [
        Author: Ross Burton
        Email: ross.burton@arm.com
        Subject: Revert "serial: 8250_omap: Drop pm_runtime_irq_safe()"
        Date: Thu, 28 Aug 2025 09:33:17 +0300

        This reverts commit 8700a7ea5519fb0b3bad2362adfeac358c2119ce.

        The genericarm64 machine sets SERIAL_CONSOLES to a number of potential
        devices:

        SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0 115200;ttyS0 115200;ttyS1 115200;ttyS2"

        With sysvinit this turns into getty lines in inittab, and with systemd
        the systemd-serialgetty recipe creates explicit units to spawn gettys.

        This worked fine with 6.6, but since "serial: 8250_omap: Drop
        pm_runtime_irq_safe()"[1] in 6.7 onwards we see kernel hangs:

        BUG: scheduling while atomic: getty/957/0x00000002
        Call trace:
        dump_stack+0x1c/0x30
        __schedule_bug+0x60/0x90
        __schedule+0x83c/0xcf8
        schedule+0x40/0x158
        schedule_timeout+0xb0/0x1b0
        wait_for_completion_timeout+0x84/0x188
        ti_sci_set_device_state+0x134/0x220
        ti_sci_cmd_get_device_exclusive+0x24/0x40
        ti_sci_pd_power_on+0x34/0x68 [ti_sci_pm_domains]
        _genpd_power_on+0xa4/0x178
        genpd_power_on+0xb4/0x190
        genpd_runtime_resume+0xc8/0x260
        __rpm_callback+0x54/0x200
        rpm_callback+0x78/0x90
        rpm_resume+0x420/0x690
        __pm_runtime_resume+0x5c/0xb0
        omap8250_set_mctrl+0x38/0xe0 [8250_omap]
        serial8250_set_mctrl+0x2c/0x60
        uart_update_mctrl+0x98/0x120
        uart_shutdown+0x124/0x180
        uart_hangup+0x7c/0x180
        __tty_hangup.part.0+0x408/0x440
        tty_vhangup_session+0x24/0x40
        disassociate_ctty.part.0+0x48/0x1b0
        disassociate_ctty+0x30/0x48
        (full backtrace elided)

        With many thanks to TI, my understanding is that it was determined that
        the problem here is that we have a getty connected to ttyS1 which is
        actually the expansion port uart and on the BeaglePlay wired up to the
        wifi controller's debug port. The getty receives noise it doesn't know
        what to do with, and at some point the power management code does a
        suspend/result cycle of the device.  The serial drivers assume that
        child nodes use the serdev driver and they manage runtime_pm, but the
        getty opening the tty breaks a series of bad assumptions in the drivers.

        So, there are two bugs:
        1) The kernel shouldn't crash if this tty is opened
        2) The only serial port for a console on the BeaglePlay is ttyS2,
           despite others existing.

        TI are looking at (1) and other patches to follow will deal with (2).
        Until one of these is resolved entirely, reverting this change to power
        management stops the crashes.

        [ YOCTO #15704 ]
        https://bugzilla.yoctoproject.org/show_bug.cgi?id=15704

        [1] linux 8700a7ea5519fb0b3bad2362adfeac358c2119ce

        Upstream-Status: Inappropriate

        Signed-off-by: Ross Burton <ross.burton@arm.com>
        Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
        Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
    ]

    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

2/3 [
    Author: Bruce Ashfield
    Email: bruce.ashfield@gmail.com
    Subject: genericarm64: temporarily use a branch
    Date: Tue, 9 Sep 2025 22:23:13 -0400

    There are two reverts needed for genericarm64 serial that we
    don't want to have on the common branches. So for now, we create
    a BSP branch to hold those reverts.

    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

3/3 [
    Author: Mikko Rapeli
    Email: mikko.rapeli@linaro.org
    Subject: genericarm64.cfg: fix warnings from v6.16.2 kernel
    Date: Wed, 27 Aug 2025 13:08:52 +0300

    New kernel version has changed config dependencies and
    these need to be enabled explicitly. Fixes multiple
    do_kernel_configcheck warnings about ineffective configs.
    Tested kernel boot and oeqa runtime tests on arm64 build
    machine with qemu and qemu kvm and on AMD KV260

    https://ledge.validation.linaro.org/scheduler/job/119012

    Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
]

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
 meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb   | 2 +-
 meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb | 2 +-
 meta/recipes-kernel/linux/linux-yocto_6.16.bb      | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb b/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb
index 1d44936da4..7725bcf20b 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_6.16.bb
@@ -15,7 +15,7 @@  python () {
 }
 
 SRCREV_machine ?= "c631c6cf05de829937afe048e6ae2fea15634cc8"
-SRCREV_meta ?= "a338639c47e0a260b656415d336aaf599699d491"
+SRCREV_meta ?= "5b4b90bbad3ada455c7c124bf704c519c6013aa1"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.16;destsuffix=${KMETA};protocol=https"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb
index 8764c21490..befced7a98 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_6.16.bb
@@ -18,7 +18,7 @@  KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
 SRCREV_machine ?= "01bcf423b031a36a070c7a983e45992e634fceb7"
-SRCREV_meta ?= "a338639c47e0a260b656415d336aaf599699d491"
+SRCREV_meta ?= "5b4b90bbad3ada455c7c124bf704c519c6013aa1"
 
 PV = "${LINUX_VERSION}+git"
 
diff --git a/meta/recipes-kernel/linux/linux-yocto_6.16.bb b/meta/recipes-kernel/linux/linux-yocto_6.16.bb
index 4bf5fa53c5..2ea54a5301 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.16.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.16.bb
@@ -29,7 +29,7 @@  SRCREV_machine:qemux86 ?= "01bcf423b031a36a070c7a983e45992e634fceb7"
 SRCREV_machine:qemux86-64 ?= "01bcf423b031a36a070c7a983e45992e634fceb7"
 SRCREV_machine:qemumips64 ?= "2459c29bf2c3d221fd6d3222c7200b368156986e"
 SRCREV_machine ?= "01bcf423b031a36a070c7a983e45992e634fceb7"
-SRCREV_meta ?= "a338639c47e0a260b656415d336aaf599699d491"
+SRCREV_meta ?= "5b4b90bbad3ada455c7c124bf704c519c6013aa1"
 
 # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
 # get the <version>/base branch, which is pure upstream -stable, and the same