* [PATCH v2 1/2] cpufreq: dt-platdev: Add SpacemiT K1 SoC to the allowlist
From: Shuwei Wu @ 2026-04-10 7:58 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Yixun Lan, Yixun Lan
Cc: linux-pm, linux-kernel, linux-riscv, spacemit, devicetree,
Shuwei Wu
In-Reply-To: <20260410-shadow-deps-v2-0-4e16b8c0f60e@mailbox.org>
The SpacemiT K1 SoC uses standard device tree based CPU frequency
scaling. Add it to the allowlist to instantiate the cpufreq-dt driver.
Signed-off-by: Shuwei Wu <shuwei.wu@mailbox.org>
---
drivers/cpufreq/cpufreq-dt-platdev.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c
index 25fd3b191b7e..31a64739df25 100644
--- a/drivers/cpufreq/cpufreq-dt-platdev.c
+++ b/drivers/cpufreq/cpufreq-dt-platdev.c
@@ -81,6 +81,7 @@ static const struct of_device_id allowlist[] __initconst = {
{ .have_governor_per_policy = true, },
},
+ { .compatible = "spacemit,k1", },
{ .compatible = "st-ericsson,u8500", },
{ .compatible = "st-ericsson,u8540", },
{ .compatible = "st-ericsson,u9500", },
--
2.53.0
^ permalink raw reply related
* [PATCH v2 0/2] cpufreq: spacemit: Add cpufreq support for K1 SoC
From: Shuwei Wu @ 2026-04-10 7:58 UTC (permalink / raw)
To: Rafael J. Wysocki, Viresh Kumar, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Yixun Lan, Yixun Lan
Cc: linux-pm, linux-kernel, linux-riscv, spacemit, devicetree,
Shuwei Wu
This series enables dynamic voltage and frequency scaling (DVFS) for
the SpacemiT K1 SoC using the generic cpufreq-dt driver.
Tested on Banana Pi BPI-F3, the execution time scales as expected
across different CPU frequencies:
~ # echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
~ # echo 1600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
~ # time awk 'BEGIN{for(i=0;i<1000000;i++){}}'
real 0m 1.07s
user 0m 1.07s
sys 0m 0.00s
~ # echo 1228800 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
~ # time awk 'BEGIN{for(i=0;i<1000000;i++){}}'
real 0m 1.40s
user 0m 1.40s
sys 0m 0.00s
~ # echo 1000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
~ # time awk 'BEGIN{for(i=0;i<1000000;i++){}}'
real 0m 1.72s
user 0m 1.72s
sys 0m 0.00s
~ # echo 819000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
~ # time awk 'BEGIN{for(i=0;i<1000000;i++){}}'
real 0m 2.10s
user 0m 2.10s
sys 0m 0.00s
~ # echo 614400 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
~ # time awk 'BEGIN{for(i=0;i<1000000;i++){}}'
real 0m 2.80s
user 0m 2.80s
sys 0m 0.00s
Signed-off-by: Shuwei Wu <shuwei.wu@mailbox.org>
---
Changes in v2:
- Move OPP tables to dedicated k1-opp.dtsi
- Enable OPP only on BPI-F3 with cpu-supply present
- Link to v1: https://lore.kernel.org/r/20260308-shadow-deps-v1-0-0ceb5c7c07eb@mailbox.org
---
Shuwei Wu (2):
cpufreq: dt-platdev: Add SpacemiT K1 SoC to the allowlist
riscv: dts: spacemit: Add cpu scaling for K1 SoC
arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 35 +++++++-
arch/riscv/boot/dts/spacemit/k1-opp.dtsi | 105 ++++++++++++++++++++++++
arch/riscv/boot/dts/spacemit/k1.dtsi | 8 ++
drivers/cpufreq/cpufreq-dt-platdev.c | 1 +
4 files changed, 148 insertions(+), 1 deletion(-)
---
base-commit: 5164e95565d3fd508ca8a95351323f5716dfb695
change-id: 20260307-shadow-deps-3582a78aa756
prerequisite-patch-id: 154bd4f720ce5065d58b988de8f273207b44572e
prerequisite-message-id: <20260206-spacemit-p1-v4-0-8f695d93811e@riscstar.com>
prerequisite-patch-id: 5da3e75b18291a5540d4f66d7a0600fb8975ef62
prerequisite-patch-id: bcf41917414ecef8cf743095d130f6004c32f6a5
prerequisite-patch-id: cfe3800f8c791ec4c63e070af9628e88e0fc31b9
prerequisite-message-id: <20260305-k1-clk-fix-v1-1-abca85d6e266@mailbox.org>
prerequisite-patch-id: 7c7fb9f87dba019ece4c97c45750349a7cd28f3a
Best regards,
--
Shuwei Wu <shuwei.wu@mailbox.org>
^ permalink raw reply
* Re: [PATCH v3 1/2] dt-bindings: interconnect: qcom: document the RPMh NoC for Hawi SoC
From: Krzysztof Kozlowski @ 2026-04-10 7:26 UTC (permalink / raw)
To: Vivek Aknurwar
Cc: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, linux-pm, devicetree, linux-kernel, Mike Tipton
In-Reply-To: <20260409-icc-hawi-v3-1-851cac12a81d@oss.qualcomm.com>
On Thu, Apr 09, 2026 at 02:01:37PM -0700, Vivek Aknurwar wrote:
> Document the RPMh Network-On-Chip interconnect for the Qualcomm Hawi SoC.
>
> Signed-off-by: Vivek Aknurwar <vivek.aknurwar@oss.qualcomm.com>
> ---
> .../bindings/interconnect/qcom,hawi-rpmh.yaml | 131 ++++++++++++++++
> include/dt-bindings/interconnect/qcom,hawi-rpmh.h | 164 +++++++++++++++++++++
> 2 files changed, 295 insertions(+)
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply
* Re: [PATCH v4 1/3] dt-bindings: thermal: Add SpacemiT K1 thermal sensor
From: Krzysztof Kozlowski @ 2026-04-10 7:22 UTC (permalink / raw)
To: Shuwei Wu
Cc: Rafael J. Wysocki, Daniel Lezcano, Zhang Rui, Lukasz Luba,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Philipp Zabel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, linux-pm, devicetree, linux-riscv, spacemit,
linux-kernel, Krzysztof Kozlowski, Vincent Legoll, Gong Shuai
In-Reply-To: <20260410-k1-thermal-v1-1-12c87dd063c3@mailbox.org>
On Fri, Apr 10, 2026 at 11:31:36AM +0800, Shuwei Wu wrote:
> Document the SpacemiT K1 Thermal Sensor, which supports
> monitoring temperatures for five zones: soc, package, gpu, cluster0,
> and cluster1.
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
> Signed-off-by: Shuwei Wu <shuwei.wu@mailbox.org>
> Tested-by: Vincent Legoll <legoll@online.fr> # OrangePi-RV2
> Tested-by: Gong Shuai <gsh517025@gmail.com>
No, not possible. Otherwise explain me how your device tested a YAML
file.
Drop all of such tags.
Best regards,
Krzysztof
^ permalink raw reply
* Re: [PATCH V5 0/5] i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
From: Adrian Hunter @ 2026-04-10 5:03 UTC (permalink / raw)
To: alexandre.belloni; +Cc: Frank.Li, rafael, linux-i3c, linux-kernel, linux-pm
In-Reply-To: <b9a756b2-a283-41c7-9ae4-b139551205c8@intel.com>
On 01/04/2026 20:16, Adrian Hunter wrote:
> On 06/03/2026 10:53, Adrian Hunter wrote:
>> Hi
>>
>>
>> Please note all patches have Frank's Rev'd-by.
>
> Can this be queued for next (v7.1)?
Any update on this?
>
>>
>>
>> Changes in V5:
>>
>> Re-base on top of v7.0 fixes series:
>> https://lore.kernel.org/linux-i3c/20260306072451.11131-1-adrian.hunter@intel.com/T
>>
>> Changes in V4:
>>
>> i3c: mipi-i3c-hci: Allow parent to manage runtime PM
>> Add Frank's Rev'd-by
>>
>> i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
>> Add Frank's Rev'd-by
>>
>>
>> Changes in V3:
>>
>> i3c: master: Mark last_busy on IBI when runtime PM is allowed
>> Patch dropped
>>
>> i3c: mipi-i3c-hci: Add quirk to allow IBI while runtime suspended
>> Add Frank's Rev'd-by
>>
>> i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
>> Remove unnecessary pm_runtime_mark_last_busy()
>>
>> i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
>> Add Frank's Rev'd-by
>>
>>
>> Changes in V2:
>>
>> i3c: mipi-i3c-hci-pci: Set d3hot_delay to 0 for Intel controllers
>> Add Frank's Rev'd-by
>>
>> i3c: master: Allow controller drivers to select runtime PM device
>> Patch dropped
>>
>> i3c: master: Mark last_busy on IBI when runtime PM is allowed
>> Adjusted slightly for earlier changes
>>
>> i3c: mipi-i3c-hci: Allow parent to manage runtime PM
>> For HCI_QUIRK_RPM_PARENT_MANAGED case, change from
>> disabling runtime PM to instead causing the runtime PM
>> callbacks to do nothing
>>
>> i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
>> Do not enable autosuspend.
>> Callbacks for parent-managed invocation were renamed
>> from i3c_hci_runtime_suspend to i3c_hci_rpm_suspend and
>> from i3c_hci_runtime_resume to i3c_hci_rpm_resume.
>> Amend commit message slightly.
>>
>> i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
>> Retain HCI_QUIRK_RPM_ALLOWED
>> Amend commit message accordingly
>>
>>
>> Here are patches related to enabling IBI while runtime suspended for Intel
>> controllers.
>>
>> Intel LPSS I3C controllers can wake from runtime suspend to receive
>> in-band interrupts (IBIs).
>>
>> It is non-trivial to implement because the parent PCI device has 2 I3C bus
>> instances (MIPI I3C HCI Multi-Bus Instance capability) represented by
>> platform devices with a separate driver, but the IBI-wakeup is shared by
>> both, which means runtime PM has to be managed by the parent PCI driver.
>>
>> To make that work, the PCI driver handles runtime PM, but leverages the
>> mipi-i3c-hci platform driver's functionality for saving and restoring
>> controller state.
>>
>>
>> Adrian Hunter (5):
>> i3c: mipi-i3c-hci-pci: Set d3hot_delay to 0 for Intel controllers
>> i3c: mipi-i3c-hci: Add quirk to allow IBI while runtime suspended
>> i3c: mipi-i3c-hci: Allow parent to manage runtime PM
>> i3c: mipi-i3c-hci-pci: Add optional ability to manage child runtime PM
>> i3c: mipi-i3c-hci-pci: Enable IBI while runtime suspended for Intel controllers
>>
>> drivers/i3c/master/mipi-i3c-hci/core.c | 35 +++++-
>> drivers/i3c/master/mipi-i3c-hci/hci.h | 7 ++
>> drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c | 135 +++++++++++++++++++++
>> 3 files changed, 172 insertions(+), 5 deletions(-)
>>
>> Regards
>> Adrian
>
^ permalink raw reply
* [PATCH v4 3/3] riscv: dts: spacemit: Add thermal sensor for K1 SoC
From: Shuwei Wu @ 2026-04-10 3:31 UTC (permalink / raw)
To: Rafael J. Wysocki, Daniel Lezcano, Zhang Rui, Lukasz Luba,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Shuwei Wu, Philipp Zabel, Paul Walmsley, Palmer Dabbelt,
Albert Ou, Alexandre Ghiti
Cc: linux-pm, devicetree, linux-riscv, spacemit, linux-kernel,
Vincent Legoll, Gong Shuai
In-Reply-To: <20260410-k1-thermal-v1-0-12c87dd063c3@mailbox.org>
Include the Thermal Sensor node in the SpacemiT K1 dtsi
with definitions for registers, clocks, and interrupts.
Additionally, configure thermal zones for the soc, package, gpu, and
clusters to enable temperature monitoring via the thermal framework.
Signed-off-by: Shuwei Wu <shuwei.wu@mailbox.org>
Tested-by: Vincent Legoll <legoll@online.fr> # OrangePi-RV2
Tested-by: Gong Shuai <gsh517025@gmail.com>
---
Changes in v2:
- Update compatible to "spacemit,k1-tsensor"
---
arch/riscv/boot/dts/spacemit/k1.dtsi | 101 +++++++++++++++++++++++++++++++++++
1 file changed, 101 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spacemit/k1.dtsi
index 529ec68e9c23..e9952204224e 100644
--- a/arch/riscv/boot/dts/spacemit/k1.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k1.dtsi
@@ -339,6 +339,96 @@ osc_32k: clock-32k {
};
};
+ thermal-zones {
+ soc-thermal {
+ polling-delay-passive = <0>;
+ polling-delay = <0>;
+ thermal-sensors = <&thermal 0>;
+
+ trips {
+ soc-crit {
+ temperature = <115000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+ };
+
+ package-thermal {
+ polling-delay-passive = <0>;
+ polling-delay = <0>;
+ thermal-sensors = <&thermal 1>;
+
+ trips {
+ package-crit {
+ temperature = <115000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+ };
+
+ gpu-thermal {
+ polling-delay-passive = <100>;
+ polling-delay = <0>;
+ thermal-sensors = <&thermal 2>;
+
+ trips {
+ gpu-alert {
+ temperature = <85000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+
+ gpu-crit {
+ temperature = <115000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+ };
+
+ cluster0-thermal {
+ polling-delay-passive = <100>;
+ polling-delay = <0>;
+ thermal-sensors = <&thermal 3>;
+
+ trips {
+ cluster0-alert {
+ temperature = <85000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+
+ cluster0-crit {
+ temperature = <115000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+ };
+
+ cluster1-thermal {
+ polling-delay-passive = <100>;
+ polling-delay = <0>;
+ thermal-sensors = <&thermal 4>;
+
+ trips {
+ cluster1-alert {
+ temperature = <85000>;
+ hysteresis = <2000>;
+ type = "passive";
+ };
+
+ cluster1-crit {
+ temperature = <115000>;
+ hysteresis = <0>;
+ type = "critical";
+ };
+ };
+ };
+ };
+
soc {
compatible = "simple-bus";
interrupt-parent = <&plic>;
@@ -494,6 +584,17 @@ syscon_apbc: system-controller@d4015000 {
#reset-cells = <1>;
};
+ thermal: thermal@d4018000 {
+ compatible = "spacemit,k1-tsensor";
+ reg = <0x0 0xd4018000 0x0 0x100>;
+ clocks = <&syscon_apbc CLK_TSEN>,
+ <&syscon_apbc CLK_TSEN_BUS>;
+ clock-names = "core", "bus";
+ interrupts = <61>;
+ resets = <&syscon_apbc RESET_TSEN>;
+ #thermal-sensor-cells = <1>;
+ };
+
i2c6: i2c@d4018800 {
compatible = "spacemit,k1-i2c";
reg = <0x0 0xd4018800 0x0 0x38>;
--
2.53.0
^ permalink raw reply related
* [PATCH v4 2/3] thermal: spacemit: k1: Add thermal sensor support
From: Shuwei Wu @ 2026-04-10 3:31 UTC (permalink / raw)
To: Rafael J. Wysocki, Daniel Lezcano, Zhang Rui, Lukasz Luba,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Shuwei Wu, Philipp Zabel, Paul Walmsley, Palmer Dabbelt,
Albert Ou, Alexandre Ghiti
Cc: linux-pm, devicetree, linux-riscv, spacemit, linux-kernel,
Anand Moon, Troy Mitchell, Yao Zi, Vincent Legoll, Gong Shuai
In-Reply-To: <20260410-k1-thermal-v1-0-12c87dd063c3@mailbox.org>
The thermal sensor on K1 supports monitoring five temperature zones.
The driver registers these sensors with the thermal framework
and supports standard operations:
- Reading temperature (millidegree Celsius)
- Setting high/low thresholds for interrupts
Signed-off-by: Shuwei Wu <shuwei.wu@mailbox.org>
Reviewed-by: Anand Moon <linux.amoon@gmail.com>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Troy Mitchell <troy.mitchell@linux.spacemit.com>
Reviewed-by: Yao Zi <me@ziyao.cc>
Tested-by: Vincent Legoll <legoll@online.fr> # OrangePi-RV2
Tested-by: Gong Shuai <gsh517025@gmail.com>
---
Changes in v4:
- Add 'depends on THERMAL_OF' in drivers/thermal/spacemit/Kconfig
Changes in v3:
- Align multi-line assignments as suggested by reviewer
- Remove unnecessary variable definitions
Changes in v2:
- Rename k1_thermal.c to k1_tsensor.c for better hardware alignment
- Move driver to drivers/thermal/spacemit/
- Add Kconfig/Makefile for spacemit and update top-level build files
- Refactor names, style, code alignment, and comments
- Simplify probe and error handling
---
drivers/thermal/Kconfig | 2 +
drivers/thermal/Makefile | 1 +
drivers/thermal/spacemit/Kconfig | 19 +++
drivers/thermal/spacemit/Makefile | 3 +
drivers/thermal/spacemit/k1_tsensor.c | 281 ++++++++++++++++++++++++++++++++++
5 files changed, 306 insertions(+)
diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
index b10080d61860..1c4a5cd5a23e 100644
--- a/drivers/thermal/Kconfig
+++ b/drivers/thermal/Kconfig
@@ -472,6 +472,8 @@ endmenu
source "drivers/thermal/renesas/Kconfig"
+source "drivers/thermal/spacemit/Kconfig"
+
source "drivers/thermal/tegra/Kconfig"
config GENERIC_ADC_THERMAL
diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile
index bb21e7ea7fc6..3b249195c088 100644
--- a/drivers/thermal/Makefile
+++ b/drivers/thermal/Makefile
@@ -65,6 +65,7 @@ obj-y += mediatek/
obj-$(CONFIG_GENERIC_ADC_THERMAL) += thermal-generic-adc.o
obj-$(CONFIG_UNIPHIER_THERMAL) += uniphier_thermal.o
obj-$(CONFIG_AMLOGIC_THERMAL) += amlogic_thermal.o
+obj-y += spacemit/
obj-$(CONFIG_SPRD_THERMAL) += sprd_thermal.o
obj-$(CONFIG_KHADAS_MCU_FAN_THERMAL) += khadas_mcu_fan.o
obj-$(CONFIG_LOONGSON2_THERMAL) += loongson2_thermal.o
diff --git a/drivers/thermal/spacemit/Kconfig b/drivers/thermal/spacemit/Kconfig
new file mode 100644
index 000000000000..de7b5ece5af2
--- /dev/null
+++ b/drivers/thermal/spacemit/Kconfig
@@ -0,0 +1,19 @@
+# SPDX-License-Identifier: GPL-2.0-only
+menu "SpacemiT thermal drivers"
+depends on ARCH_SPACEMIT || COMPILE_TEST
+
+config SPACEMIT_K1_TSENSOR
+ tristate "SpacemiT K1 thermal sensor driver"
+ depends on THERMAL_OF
+ help
+ This driver provides support for the thermal sensor
+ integrated in the SpacemiT K1 SoC.
+
+ The thermal sensor monitors temperatures for five thermal zones:
+ soc, package, gpu, cluster0, and cluster1. It supports reporting
+ temperature values and handling high/low threshold interrupts.
+
+ Say Y here if you want to enable thermal monitoring on SpacemiT K1.
+ If compiled as a module, it will be called k1_tsensor.
+
+endmenu
diff --git a/drivers/thermal/spacemit/Makefile b/drivers/thermal/spacemit/Makefile
new file mode 100644
index 000000000000..82b30741e4ec
--- /dev/null
+++ b/drivers/thermal/spacemit/Makefile
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+obj-$(CONFIG_SPACEMIT_K1_TSENSOR) += k1_tsensor.o
diff --git a/drivers/thermal/spacemit/k1_tsensor.c b/drivers/thermal/spacemit/k1_tsensor.c
new file mode 100644
index 000000000000..b742739e9019
--- /dev/null
+++ b/drivers/thermal/spacemit/k1_tsensor.c
@@ -0,0 +1,281 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Thermal sensor driver for SpacemiT K1 SoC
+ *
+ * Copyright (C) 2026 Shuwei Wu <shuwei.wu@mailbox.org>
+ */
+#include <linux/bitfield.h>
+#include <linux/clk.h>
+#include <linux/err.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/reset.h>
+#include <linux/slab.h>
+#include <linux/thermal.h>
+
+#include "../thermal_hwmon.h"
+
+#define K1_TSENSOR_PCTRL_REG 0x00
+#define K1_TSENSOR_PCTRL_ENABLE BIT(0)
+#define K1_TSENSOR_PCTRL_TEMP_MODE BIT(3)
+#define K1_TSENSOR_PCTRL_RAW_SEL BIT(7)
+
+#define K1_TSENSOR_PCTRL_CTUNE GENMASK(11, 8)
+#define K1_TSENSOR_PCTRL_SW_CTRL GENMASK(21, 18)
+#define K1_TSENSOR_PCTRL_HW_AUTO_MODE BIT(23)
+
+#define K1_TSENSOR_EN_REG 0x08
+#define K1_TSENSOR_EN_ALL GENMASK(MAX_SENSOR_NUMBER - 1, 0)
+
+#define K1_TSENSOR_TIME_REG 0x0C
+#define K1_TSENSOR_TIME_WAIT_REF_CNT GENMASK(3, 0)
+#define K1_TSENSOR_TIME_ADC_CNT_RST GENMASK(7, 4)
+#define K1_TSENSOR_TIME_FILTER_PERIOD GENMASK(21, 20)
+#define K1_TSENSOR_TIME_MASK GENMASK(23, 0)
+
+#define K1_TSENSOR_INT_CLR_REG 0x10
+#define K1_TSENSOR_INT_EN_REG 0x14
+#define K1_TSENSOR_INT_STA_REG 0x18
+
+#define K1_TSENSOR_INT_EN_MASK BIT(0)
+#define K1_TSENSOR_INT_MASK(x) (GENMASK(2, 1) << ((x) * 2))
+
+#define K1_TSENSOR_DATA_BASE_REG 0x20
+#define K1_TSENSOR_DATA_REG(x) (K1_TSENSOR_DATA_BASE_REG + ((x) / 2) * 4)
+#define K1_TSENSOR_DATA_LOW_MASK GENMASK(15, 0)
+#define K1_TSENSOR_DATA_HIGH_MASK GENMASK(31, 16)
+
+#define K1_TSENSOR_THRSH_BASE_REG 0x40
+#define K1_TSENSOR_THRSH_REG(x) (K1_TSENSOR_THRSH_BASE_REG + ((x) * 4))
+#define K1_TSENSOR_THRSH_LOW_MASK GENMASK(15, 0)
+#define K1_TSENSOR_THRSH_HIGH_MASK GENMASK(31, 16)
+
+#define MAX_SENSOR_NUMBER 5
+
+/* Hardware offset value required for temperature calculation */
+#define TEMPERATURE_OFFSET 278
+
+struct k1_tsensor_channel {
+ struct k1_tsensor *ts;
+ struct thermal_zone_device *tzd;
+ int id;
+};
+
+struct k1_tsensor {
+ void __iomem *base;
+ struct k1_tsensor_channel ch[MAX_SENSOR_NUMBER];
+};
+
+static void k1_tsensor_init(struct k1_tsensor *ts)
+{
+ u32 val;
+
+ /* Disable all the interrupts */
+ writel(0xffffffff, ts->base + K1_TSENSOR_INT_EN_REG);
+
+ /* Configure ADC sampling time and filter period */
+ val = readl(ts->base + K1_TSENSOR_TIME_REG);
+ val &= ~K1_TSENSOR_TIME_MASK;
+ val |= K1_TSENSOR_TIME_FILTER_PERIOD |
+ K1_TSENSOR_TIME_ADC_CNT_RST |
+ K1_TSENSOR_TIME_WAIT_REF_CNT;
+ writel(val, ts->base + K1_TSENSOR_TIME_REG);
+
+ /*
+ * Enable all sensors' auto mode, enable dither control,
+ * consecutive mode, and power up sensor.
+ */
+ val = readl(ts->base + K1_TSENSOR_PCTRL_REG);
+ val &= ~K1_TSENSOR_PCTRL_SW_CTRL;
+ val &= ~K1_TSENSOR_PCTRL_CTUNE;
+ val |= K1_TSENSOR_PCTRL_RAW_SEL |
+ K1_TSENSOR_PCTRL_TEMP_MODE |
+ K1_TSENSOR_PCTRL_HW_AUTO_MODE |
+ K1_TSENSOR_PCTRL_ENABLE;
+ writel(val, ts->base + K1_TSENSOR_PCTRL_REG);
+
+ /* Enable thermal interrupt */
+ val = readl(ts->base + K1_TSENSOR_INT_EN_REG);
+ val |= K1_TSENSOR_INT_EN_MASK;
+ writel(val, ts->base + K1_TSENSOR_INT_EN_REG);
+
+ /* Enable each sensor */
+ val = readl(ts->base + K1_TSENSOR_EN_REG);
+ val |= K1_TSENSOR_EN_ALL;
+ writel(val, ts->base + K1_TSENSOR_EN_REG);
+}
+
+static void k1_tsensor_enable_irq(struct k1_tsensor_channel *ch)
+{
+ struct k1_tsensor *ts = ch->ts;
+ u32 val;
+
+ val = readl(ts->base + K1_TSENSOR_INT_CLR_REG);
+ val |= K1_TSENSOR_INT_MASK(ch->id);
+ writel(val, ts->base + K1_TSENSOR_INT_CLR_REG);
+
+ val = readl(ts->base + K1_TSENSOR_INT_EN_REG);
+ val &= ~K1_TSENSOR_INT_MASK(ch->id);
+ writel(val, ts->base + K1_TSENSOR_INT_EN_REG);
+}
+
+/*
+ * The conversion formula used is:
+ * T(m°C) = (((raw_value & mask) >> shift) - TEMPERATURE_OFFSET) * 1000
+ */
+static int k1_tsensor_get_temp(struct thermal_zone_device *tz, int *temp)
+{
+ struct k1_tsensor_channel *ch = thermal_zone_device_priv(tz);
+ struct k1_tsensor *ts = ch->ts;
+ u32 val;
+
+ val = readl(ts->base + K1_TSENSOR_DATA_REG(ch->id));
+ if (ch->id % 2)
+ *temp = FIELD_GET(K1_TSENSOR_DATA_HIGH_MASK, val);
+ else
+ *temp = FIELD_GET(K1_TSENSOR_DATA_LOW_MASK, val);
+
+ *temp -= TEMPERATURE_OFFSET;
+ *temp *= 1000;
+
+ return 0;
+}
+
+/*
+ * For each sensor, the hardware threshold register is 32 bits:
+ * - Lower 16 bits [15:0] configure the low threshold temperature.
+ * - Upper 16 bits [31:16] configure the high threshold temperature.
+ */
+static int k1_tsensor_set_trips(struct thermal_zone_device *tz, int low, int high)
+{
+ struct k1_tsensor_channel *ch = thermal_zone_device_priv(tz);
+ struct k1_tsensor *ts = ch->ts;
+ u32 val;
+
+ if (low >= high)
+ return -EINVAL;
+
+ if (low < 0)
+ low = 0;
+
+ high = high / 1000 + TEMPERATURE_OFFSET;
+ low = low / 1000 + TEMPERATURE_OFFSET;
+
+ val = readl(ts->base + K1_TSENSOR_THRSH_REG(ch->id));
+ val &= ~K1_TSENSOR_THRSH_HIGH_MASK;
+ val |= FIELD_PREP(K1_TSENSOR_THRSH_HIGH_MASK, high);
+
+ val &= ~K1_TSENSOR_THRSH_LOW_MASK;
+ val |= FIELD_PREP(K1_TSENSOR_THRSH_LOW_MASK, low);
+ writel(val, ts->base + K1_TSENSOR_THRSH_REG(ch->id));
+
+ return 0;
+}
+
+static const struct thermal_zone_device_ops k1_tsensor_ops = {
+ .get_temp = k1_tsensor_get_temp,
+ .set_trips = k1_tsensor_set_trips,
+};
+
+static irqreturn_t k1_tsensor_irq_thread(int irq, void *data)
+{
+ struct k1_tsensor *ts = (struct k1_tsensor *)data;
+ int mask, status, i;
+
+ status = readl(ts->base + K1_TSENSOR_INT_STA_REG);
+
+ for (i = 0; i < MAX_SENSOR_NUMBER; i++) {
+ if (status & K1_TSENSOR_INT_MASK(i)) {
+ mask = readl(ts->base + K1_TSENSOR_INT_CLR_REG);
+ mask |= K1_TSENSOR_INT_MASK(i);
+ writel(mask, ts->base + K1_TSENSOR_INT_CLR_REG);
+ thermal_zone_device_update(ts->ch[i].tzd, THERMAL_EVENT_UNSPECIFIED);
+ }
+ }
+
+ return IRQ_HANDLED;
+}
+
+static int k1_tsensor_probe(struct platform_device *pdev)
+{
+ struct device *dev = &pdev->dev;
+ struct k1_tsensor *ts;
+ struct reset_control *reset;
+ struct clk *clk;
+ int i, irq, ret;
+
+ ts = devm_kzalloc(dev, sizeof(*ts), GFP_KERNEL);
+ if (!ts)
+ return -ENOMEM;
+
+ ts->base = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(ts->base))
+ return dev_err_probe(dev, PTR_ERR(ts->base), "Failed to get reg\n");
+
+ reset = devm_reset_control_get_exclusive_deasserted(dev, NULL);
+ if (IS_ERR(reset))
+ return dev_err_probe(dev, PTR_ERR(reset), "Failed to get/deassert reset control\n");
+
+ clk = devm_clk_get_enabled(dev, "core");
+ if (IS_ERR(clk))
+ return dev_err_probe(dev, PTR_ERR(clk), "Failed to get core clock\n");
+
+ clk = devm_clk_get_enabled(dev, "bus");
+ if (IS_ERR(clk))
+ return dev_err_probe(dev, PTR_ERR(clk), "Failed to get bus clock\n");
+
+ k1_tsensor_init(ts);
+
+ for (i = 0; i < MAX_SENSOR_NUMBER; ++i) {
+ ts->ch[i].id = i;
+ ts->ch[i].ts = ts;
+ ts->ch[i].tzd = devm_thermal_of_zone_register(dev, i, ts->ch + i, &k1_tsensor_ops);
+ if (IS_ERR(ts->ch[i].tzd))
+ return PTR_ERR(ts->ch[i].tzd);
+
+ /* Attach sysfs hwmon attributes for userspace monitoring */
+ ret = devm_thermal_add_hwmon_sysfs(dev, ts->ch[i].tzd);
+ if (ret)
+ dev_warn(dev, "Failed to add hwmon sysfs attributes\n");
+
+ k1_tsensor_enable_irq(ts->ch + i);
+ }
+
+ irq = platform_get_irq(pdev, 0);
+ if (irq < 0)
+ return irq;
+
+ ret = devm_request_threaded_irq(dev, irq, NULL,
+ k1_tsensor_irq_thread,
+ IRQF_ONESHOT, "k1_tsensor", ts);
+ if (ret < 0)
+ return ret;
+
+ platform_set_drvdata(pdev, ts);
+
+ return 0;
+}
+
+static const struct of_device_id k1_tsensor_dt_ids[] = {
+ { .compatible = "spacemit,k1-tsensor" },
+ { /* sentinel */ }
+};
+
+MODULE_DEVICE_TABLE(of, k1_tsensor_dt_ids);
+
+static struct platform_driver k1_tsensor_driver = {
+ .driver = {
+ .name = "k1_tsensor",
+ .of_match_table = k1_tsensor_dt_ids,
+ },
+ .probe = k1_tsensor_probe,
+};
+module_platform_driver(k1_tsensor_driver);
+
+MODULE_DESCRIPTION("SpacemiT K1 Thermal Sensor Driver");
+MODULE_AUTHOR("Shuwei Wu <shuwei.wu@mailbox.org>");
+MODULE_LICENSE("GPL");
--
2.53.0
^ permalink raw reply related
* [PATCH v4 1/3] dt-bindings: thermal: Add SpacemiT K1 thermal sensor
From: Shuwei Wu @ 2026-04-10 3:31 UTC (permalink / raw)
To: Rafael J. Wysocki, Daniel Lezcano, Zhang Rui, Lukasz Luba,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Shuwei Wu, Philipp Zabel, Paul Walmsley, Palmer Dabbelt,
Albert Ou, Alexandre Ghiti
Cc: linux-pm, devicetree, linux-riscv, spacemit, linux-kernel,
Krzysztof Kozlowski, Vincent Legoll, Gong Shuai
In-Reply-To: <20260410-k1-thermal-v1-0-12c87dd063c3@mailbox.org>
Document the SpacemiT K1 Thermal Sensor, which supports
monitoring temperatures for five zones: soc, package, gpu, cluster0,
and cluster1.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Shuwei Wu <shuwei.wu@mailbox.org>
Tested-by: Vincent Legoll <legoll@online.fr> # OrangePi-RV2
Tested-by: Gong Shuai <gsh517025@gmail.com>
---
Changes in v2:
- Rename binding file to spacemit,k1-tsensor.yaml and update compatible
---
.../bindings/thermal/spacemit,k1-tsensor.yaml | 76 ++++++++++++++++++++++
1 file changed, 76 insertions(+)
diff --git a/Documentation/devicetree/bindings/thermal/spacemit,k1-tsensor.yaml b/Documentation/devicetree/bindings/thermal/spacemit,k1-tsensor.yaml
new file mode 100644
index 000000000000..6dad76a7dd36
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/spacemit,k1-tsensor.yaml
@@ -0,0 +1,76 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/thermal/spacemit,k1-tsensor.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: SpacemiT K1 Thermal Sensor
+
+description:
+ The SpacemiT K1 Thermal Sensor monitors the temperature of the SoC
+ using multiple internal sensors (e.g., soc, package, gpu, clusters).
+
+maintainers:
+ - Shuwei Wu <shuwei.wu@mailbox.org>
+
+$ref: thermal-sensor.yaml#
+
+properties:
+ compatible:
+ const: spacemit,k1-tsensor
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: Core clock for thermal sensor
+ - description: Bus clock for thermal sensor
+
+ clock-names:
+ items:
+ - const: core
+ - const: bus
+
+ interrupts:
+ maxItems: 1
+
+ resets:
+ items:
+ - description: Reset for the thermal sensor
+
+ "#thermal-sensor-cells":
+ const: 1
+ description:
+ The first cell indicates the sensor ID.
+ 0 = soc
+ 1 = package
+ 2 = gpu
+ 3 = cluster0
+ 4 = cluster1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - interrupts
+ - resets
+ - "#thermal-sensor-cells"
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/spacemit,k1-syscon.h>
+
+ thermal@d4018000 {
+ compatible = "spacemit,k1-tsensor";
+ reg = <0xd4018000 0x100>;
+ clocks = <&syscon_apbc CLK_TSEN>,
+ <&syscon_apbc CLK_TSEN_BUS>;
+ clock-names = "core", "bus";
+ interrupts = <61>;
+ resets = <&syscon_apbc RESET_TSEN>;
+ #thermal-sensor-cells = <1>;
+ };
--
2.53.0
^ permalink raw reply related
* [PATCH v4 0/3] thermal: spacemit: Add support for SpacemiT K1 SoC thermal sensor
From: Shuwei Wu @ 2026-04-10 3:31 UTC (permalink / raw)
To: Rafael J. Wysocki, Daniel Lezcano, Zhang Rui, Lukasz Luba,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Shuwei Wu, Philipp Zabel, Paul Walmsley, Palmer Dabbelt,
Albert Ou, Alexandre Ghiti
Cc: linux-pm, devicetree, linux-riscv, spacemit, linux-kernel,
Krzysztof Kozlowski, Vincent Legoll, Gong Shuai, Anand Moon,
Troy Mitchell, Yao Zi
Introduce support for the on-die thermal sensor found
on the SpacemiT K1 SoC.
Include the device tree binding documentation in YAML format, the
thermal sensor driver implementation, and the device tree changes to
enable the sensor on K1 SoC.
---
Changes in v4:
- Add 'depends on THERMAL_OF' in Kconfig to ensure functional dependency
- Link to v3: https://lore.kernel.org/spacemit/20260119-patchv2-k1-thermal-v3-0-3d82c9ebe8a4@163.com/
Changes in v3:
- Fix indentation and variable types
- Simplify clock management and redundant assignments
- Link to v2: https://lore.kernel.org/r/20251216-patchv2-k1-thermal-v1-0-d4b31fe9c904@163.com
Changes in v2:
- Move driver to drivers/thermal/spacemit/ and update Kconfig/Makefile
- Address reviewer feedback on style and structure
- Improve variable naming and comments
- Link to v1: https://lore.kernel.org/r/20251127-b4-k1-thermal-v1-0-f32ce47b1aba@163.com
Signed-off-by: Shuwei Wu <shuwei.wu@mailbox.org>
---
Shuwei Wu (3):
dt-bindings: thermal: Add SpacemiT K1 thermal sensor
thermal: spacemit: k1: Add thermal sensor support
riscv: dts: spacemit: Add thermal sensor for K1 SoC
.../bindings/thermal/spacemit,k1-tsensor.yaml | 76 ++++++
arch/riscv/boot/dts/spacemit/k1.dtsi | 101 ++++++++
drivers/thermal/Kconfig | 2 +
drivers/thermal/Makefile | 1 +
drivers/thermal/spacemit/Kconfig | 19 ++
drivers/thermal/spacemit/Makefile | 3 +
drivers/thermal/spacemit/k1_tsensor.c | 281 +++++++++++++++++++++
7 files changed, 483 insertions(+)
---
base-commit: a55f7f5f29b32c2c53cc291899cf9b0c25a07f7c
change-id: 20260409-k1-thermal-fa1a6bc8b65e
Best regards,
--
Shuwei Wu <shuwei.wu@mailbox.org>
^ permalink raw reply
* Re: (subset) [PATCH v5 0/2] driver: reset: spacemit-p1: add driver for poweroff/reboot
From: Troy Mitchell @ 2026-04-10 1:49 UTC (permalink / raw)
To: Troy Mitchell, Lee Jones
Cc: Sebastian Reichel, linux-kernel, Sebastian Reichel, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
linux-riscv, spacemit, Aurelien Jarno, linux-pm
In-Reply-To: <FA1DBD9E7CCB8027+aQtMvb5Br7MgMW4K@troy-wujie14pro-arch>
Hi Lee and Aurelien,
On Wed Nov 5, 2025 at 9:10 PM CST, Troy Mitchell wrote:
> On Wed, Nov 05, 2025 at 10:11:49AM +0000, Lee Jones wrote:
>> On Wed, 05 Nov 2025, Lee Jones wrote:
>>
>> > On Wed, 05 Nov 2025, Troy Mitchell wrote:
>> >
>> > > On Wed, Nov 05, 2025 at 09:34:21AM +0000, Lee Jones wrote:
>> > > > On Tue, 04 Nov 2025, Troy Mitchell wrote:
>> > > >
>> > > > > On Mon, Nov 03, 2025 at 01:48:33AM +0100, Sebastian Reichel wrote:
>> > > > > >
>> > > > > > On Mon, 03 Nov 2025 00:01:58 +0100, Aurelien Jarno wrote:
>> > > > > > > This adds poweroff/reboot support for the SpacemiT P1 PMIC chip, which is
>> > > > > > > commonly paired with the SpacemiT K1 SoC.
>> > > > > > >
>> > > > > > > Note: For reliable operation, this driver depends on a this patch that adds
>> > > > > > > atomic transfer support to the SpacemiT I2C controller driver:
>> > > > > > > https://lore.kernel.org/spacemit/20251009-k1-i2c-atomic-v4-1-a89367870286@linux.spacemit.com/
>> > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> > > dependency is here.
>> > > > > > >
>> > > > > > > [...]
>> > > > > >
>> > > > > > Applied, thanks!
>> > > > > >
>> > > > > > [1/2] driver: reset: spacemit-p1: add driver for poweroff/reboot
>> > > > > > commit: 28124cc0fb8c7dc01a6834d227351e25d9a92c58
>> > > > > Should we apply it now? The dependency patch hasn’t been merged yet...
>> > > >
>> > > > What is the dependency?
>> > > I point it out above.
>> > > Without this patch, reboot and shutdown would end up calling the non-atomic i2c_transfer.
>> >
>> > Okay, thanks. I was mostly checking that you weren't referring to the
>> > MFD patch, which doesn't represent a true dependency.
>>
>> To save Sebastian some trouble, let's keep the reboot patch applied.
>>
>> I'll hold off on the MFD one, which will ensure that reboot isn't probed.
>>
>> Let me know when the dep is merged and I'll hoover up the rest of the set.
> Okay. I'll reply this thread when the dependency is merged.
Ths I2C PIO patchset has been merged here [1].
Link: https://lore.kernel.org/all/adfVk82OC1c3Zn8a@zenone.zhora.eu/
- Troy
^ permalink raw reply
* Re: [PATCH 3/3] pmdomain: arm_scmi: add support for domain hierarchies
From: Kevin Hilman @ 2026-04-10 1:01 UTC (permalink / raw)
To: Dhruva Gole
Cc: Ulf Hansson, Rob Herring, Geert Uytterhoeven, linux-pm,
devicetree, linux-kernel, arm-scmi, linux-arm-kernel
In-Reply-To: <20260313120707.jhkyd772wzuwmlhd@lcpd911>
Dhruva Gole <d-gole@ti.com> writes:
> On Mar 10, 2026 at 17:19:25 -0700, Kevin Hilman (TI) wrote:
>> After primary SCMI pmdomain is created, use new of_genpd helper which
>> checks for child domain mappings defined in power-domains-child-ids.
>>
>> Also remove any child domain mappings when SCMI domain is removed.
>>
>> Signed-off-by: Kevin Hilman (TI) <khilman@baylibre.com>
>> ---
>
> Again, since it worked fine on my AM62L,
> Tested-by: Dhruva Gole <d-gole@ti.com>
Thanks for testing & reviewing!
> But I had some thoughts further down...
>
>> drivers/pmdomain/arm/scmi_pm_domain.c | 14 +++++++++++++-
>> 1 file changed, 13 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/pmdomain/arm/scmi_pm_domain.c b/drivers/pmdomain/arm/scmi_pm_domain.c
>> index b5e2ffd5ea64..9d8faef44aa9 100644
>> --- a/drivers/pmdomain/arm/scmi_pm_domain.c
>> +++ b/drivers/pmdomain/arm/scmi_pm_domain.c
>> @@ -114,6 +114,14 @@ static int scmi_pm_domain_probe(struct scmi_device *sdev)
>>
>> dev_set_drvdata(dev, scmi_pd_data);
>>
>> + /*
>> + * Parse (optional) power-domains-child-ids property to
>> + * establish parent-child relationships
>> + */
>> + ret = of_genpd_add_child_ids(np, scmi_pd_data);
>> + if (ret < 0 && ret != -ENOENT)
>> + pr_err("Failed to parse power-domains-child-ids for %pOF: %d\n", np, ret);
>
> Nit: I think the style of this driver is to use dev_err than pr_err
Agreed.
> Also, maybe a dev_warn makes more sense since we're not even returning
> the error or doing anything different if we get certain error path.
OK.
> I am wondering if it makes sense to just abort the whole idea of
> creating power-domain child ids if anything goes wrong?
>
> Basically just of_genpd_remove_child_ids if we face a condition where we
> have different number of parents/ children or id > num etc...
>
> All are error cases where the system behaviour can go on to become very
> unpredictable if we end up making a false/ incomplete parent-child ID
> map.
>
> Thoughts?
I agree. After thinking through some of Ulf's suggestions on the
different error handling ideas, I think this should really be "all or
nothing". If we we cannot parse & add all the children in the list, we
should add none of them. I think partial additions will be come
unwieldy to manage rather quickly, and require the pmdomain core to keep
state.
Kevin
^ permalink raw reply
* Re: [PATCH 2/3] pmdomain: core: add support for power-domains-child-ids
From: Kevin Hilman @ 2026-04-10 0:45 UTC (permalink / raw)
To: Ulf Hansson
Cc: Rob Herring, Geert Uytterhoeven, linux-pm, devicetree,
linux-kernel, arm-scmi, linux-arm-kernel
In-Reply-To: <CAPDyKFquJ7K4NcWuKMr1sjrnFVVPGAeLCiSF_FhvJf9Frbn1uA@mail.gmail.com>
Ulf Hansson <ulf.hansson@linaro.org> writes:
> On Wed, 11 Mar 2026 at 01:19, Kevin Hilman (TI) <khilman@baylibre.com> wrote:
>>
>> Currently, PM domains can only support hierarchy for simple
>> providers (e.g. ones with #power-domain-cells = 0).
>>
>> Add support for oncell providers as well by adding a new property
>> `power-domains-child-ids` to describe the parent/child relationship.
>>
>> For example, an SCMI PM domain provider has multiple domains, each of
>> which might be a child of diffeent parent domains. In this example,
>> the parent domains are MAIN_PD and WKUP_PD:
>>
>> scmi_pds: protocol@11 {
>> reg = <0x11>;
>> #power-domain-cells = <1>;
>> power-domains = <&MAIN_PD>, <&WKUP_PD>;
>> power-domains-child-ids = <15>, <19>;
>> };
>>
>> With this example using the new property, SCMI PM domain 15 becomes a
>> child domain of MAIN_PD, and SCMI domain 19 becomes a child domain of
>> WKUP_PD.
>>
>> To support this feature, add two new core functions
>>
>> - of_genpd_add_child_ids()
>> - of_genpd_remove_child_ids()
>>
>> which can be called by pmdomain providers to add/remove child domains
>> if they support the new property power-domains-child-ids.
>>
>> Signed-off-by: Kevin Hilman (TI) <khilman@baylibre.com>
>
> Thanks for working on this! It certainly is a missing feature!
You're welcome, thanks for the detailed review.
>> ---
>> drivers/pmdomain/core.c | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> include/linux/pm_domain.h | 16 ++++++++++++++++
>> 2 files changed, 185 insertions(+)
>>
>> diff --git a/drivers/pmdomain/core.c b/drivers/pmdomain/core.c
>> index 61c2277c9ce3..acb45dd540b7 100644
>> --- a/drivers/pmdomain/core.c
>> +++ b/drivers/pmdomain/core.c
>> @@ -2909,6 +2909,175 @@ static struct generic_pm_domain *genpd_get_from_provider(
>> return genpd;
>> }
>>
>> +/**
>> + * of_genpd_add_child_ids() - Parse power-domains-child-ids property
>> + * @np: Device node pointer associated with the PM domain provider.
>> + * @data: Pointer to the onecell data associated with the PM domain provider.
>> + *
>> + * Parse the power-domains and power-domains-child-ids properties to establish
>> + * parent-child relationships for PM domains. The power-domains property lists
>> + * parent domains, and power-domains-child-ids lists which child domain IDs
>> + * should be associated with each parent.
>> + *
>> + * Returns 0 on success, -ENOENT if properties don't exist, or negative error code.
>
> I think we should avoid returning specific error codes for specific
> errors, simply because it usually becomes messy.
>
> If I understand correctly the intent here is to allow the caller to
> check for -ENOENT and potentially avoid bailing out as it may not
> really be an error, right?
Right, -ENOENT is not an error of parsing, it's to indicate that there
are no child-ids to be parsed.
> Perhaps a better option is to return the number of children for whom
> we successfully assigned parents. Hence 0 or a positive value allows
> the caller to understand what happened. More importantly, a negative
> error code then really becomes an error for the caller to consider.
I explored this a bit, but it gets messy quick. It means we have to
track cases where only some of the children were added as well as when
all children were added. Personally, I think this should be an "all or
nothing" thing. If all the children cannot be parsed/added, then none
of them should be added.
This also allows the remove to not have to care about how many were
added, and just remove them all, with the additional benefit of not
having to track the state of how many children were successfully added.
>> + */
>> +int of_genpd_add_child_ids(struct device_node *np,
>> + struct genpd_onecell_data *data)
>> +{
>> + struct of_phandle_args parent_args;
>> + struct generic_pm_domain *parent_genpd, *child_genpd;
>> + struct of_phandle_iterator it;
>> + const struct property *prop;
>> + const __be32 *item;
>> + u32 child_id;
>> + int ret;
>> +
>> + /* Check if both properties exist */
>> + if (of_count_phandle_with_args(np, "power-domains", "#power-domain-cells") <= 0)
>> + return -ENOENT;
>> +
>> + prop = of_find_property(np, "power-domains-child-ids", NULL);
>> + if (!prop)
>> + return -ENOENT;
>> +
>> + item = of_prop_next_u32(prop, NULL, &child_id);
>
> Perhaps it's easier to check if of_property_count_u32_elems() returns
> the same number as of_count_phandle_with_args() above? If it doesn't,
> something is wrong, and there is no need to continue.
Agreed. Will add.
> This way you also know the number of loops upfront that must iterate
> through all indexes. This should allow us to use a simpler for-loop
> below, I think. In this case you can also use
> of_property_read_u32_index() instead.
OK.
>> +
>> + /* Iterate over power-domains phandles and power-domains-child-ids in lockstep */
>> + of_for_each_phandle(&it, ret, np, "power-domains", "#power-domain-cells", 0) {
>> + if (!item) {
>> + pr_err("power-domains-child-ids shorter than power-domains for %pOF\n", np);
>> + ret = -EINVAL;
>> + goto err_put_node;
>> + }
>> +
>> + /*
>> + * Fill parent_args from the iterator. it.node is released by
>> + * the next of_phandle_iterator_next() call at the top of the
>> + * loop, or by the of_node_put() on the error path below.
>> + */
>> + parent_args.np = it.node;
>> + parent_args.args_count = of_phandle_iterator_args(&it, parent_args.args,
>> + MAX_PHANDLE_ARGS);
>> +
>> + /* Get the parent domain */
>> + parent_genpd = genpd_get_from_provider(&parent_args);
>
> Before getting the parent_genpd like this, we need to take the
> gpd_list_lock. The lock must be held when genpd_add_subdomain() is
> being called.
Good catch, thanks.
>> + if (IS_ERR(parent_genpd)) {
>> + pr_err("Failed to get parent domain for %pOF: %ld\n",
>> + np, PTR_ERR(parent_genpd));
>> + ret = PTR_ERR(parent_genpd);
>> + goto err_put_node;
>> + }
>> +
>> + /* Validate child ID is within bounds */
>> + if (child_id >= data->num_domains) {
>> + pr_err("Child ID %u out of bounds (max %u) for %pOF\n",
>> + child_id, data->num_domains - 1, np);
>> + ret = -EINVAL;
>> + goto err_put_node;
>> + }
>> +
>> + /* Get the child domain */
>> + child_genpd = data->domains[child_id];
>> + if (!child_genpd) {
>> + pr_err("Child domain %u is NULL for %pOF\n", child_id, np);
>> + ret = -EINVAL;
>> + goto err_put_node;
>> + }
>> +
>> + /* Establish parent-child relationship */
>> + ret = genpd_add_subdomain(parent_genpd, child_genpd);
>> + if (ret) {
>> + pr_err("Failed to add child domain %u to parent in %pOF: %d\n",
>> + child_id, np, ret);
>> + goto err_put_node;
>> + }
>> +
>> + pr_debug("Added child domain %u (%s) to parent %s for %pOF\n",
>> + child_id, child_genpd->name, parent_genpd->name, np);
>> +
>> + item = of_prop_next_u32(prop, item, &child_id);
>> + }
>> +
>> + /* of_for_each_phandle returns -ENOENT at natural end-of-list */
>> + if (ret && ret != -ENOENT)
>> + return ret;
>> +
>> + /* All power-domains phandles were consumed; check for trailing child IDs */
>> + if (item) {
>> + pr_err("power-domains-child-ids longer than power-domains for %pOF\n", np);
>> + return -EINVAL;
>> + }
>> +
>> + return 0;
>> +
>> +err_put_node:
>
> This isn't a suffient error handling.
>
> If we successfully added child domains using genpd_add_subdomain(), we
> must remove them here, by calling pm_genpd_remove_subdomain() in the
> reverse order as we just added them.
OK, I was relying on the remove function to cleanup, but you're right,
if there's a falure during the add, it should be unwound before
returning.
>> + of_node_put(it.node);
>> + return ret;
>> +}
>> +EXPORT_SYMBOL_GPL(of_genpd_add_child_ids);
>> +
>> +/**
>> + * of_genpd_remove_child_ids() - Remove parent-child PM domain relationships
>> + * @np: Device node pointer associated with the PM domain provider.
>> + * @data: Pointer to the onecell data associated with the PM domain provider.
>> + *
>> + * Reverses the effect of of_genpd_add_child_ids() by parsing the same
>> + * power-domains and power-domains-child-ids properties and calling
>> + * pm_genpd_remove_subdomain() for each established relationship.
>> + *
>> + * Returns 0 on success, -ENOENT if properties don't exist, or negative error
>> + * code on failure.
>> + */
>> +int of_genpd_remove_child_ids(struct device_node *np,
>> + struct genpd_onecell_data *data)
>> +{
>> + struct of_phandle_args parent_args;
>> + struct generic_pm_domain *parent_genpd, *child_genpd;
>> + struct of_phandle_iterator it;
>> + const struct property *prop;
>> + const __be32 *item;
>> + u32 child_id;
>> + int ret;
>> +
>> + /* Check if both properties exist */
>> + if (of_count_phandle_with_args(np, "power-domains", "#power-domain-cells") <= 0)
>> + return -ENOENT;
>> +
>> + prop = of_find_property(np, "power-domains-child-ids", NULL);
>> + if (!prop)
>> + return -ENOENT;
>> +
>> + item = of_prop_next_u32(prop, NULL, &child_id);
>
> Similar comments as for of_genpd_add_child_ids().
>
> Moreover, I think we should remove the children in the reverse order
> of how we added them.
I'm curious why does the order matter? The children are all siblings
(no hierarchy), so why would the order be important?
I'm not ware of a phandle iterator/helper to parse in the reverse, so
that would mean iterating once to create a list, and then walking it in
reverse. Seems unnecessary.
Thanks again for the detailed review,
Kevin
^ permalink raw reply
* [PATCH v3 2/2] interconnect: qcom: add Hawi interconnect provider driver
From: Vivek Aknurwar @ 2026-04-09 21:01 UTC (permalink / raw)
To: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-pm, devicetree, linux-kernel, Mike Tipton,
Vivek Aknurwar, Konrad Dybcio, Dmitry Baryshkov,
Krzysztof Kozlowski
In-Reply-To: <20260409-icc-hawi-v3-0-851cac12a81d@oss.qualcomm.com>
Add driver for the Qualcomm interconnect buses found in Hawi
based platforms. The topology consists of several NoCs that are
controlled by a remote processor that collects the aggregated
bandwidth for each master-slave pair.
Reviewed-by: Mike Tipton <mike.tipton@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Vivek Aknurwar <vivek.aknurwar@oss.qualcomm.com>
---
drivers/interconnect/qcom/Kconfig | 9 +
drivers/interconnect/qcom/Makefile | 2 +
drivers/interconnect/qcom/hawi.c | 2021 ++++++++++++++++++++++++++++++++++++
3 files changed, 2032 insertions(+)
diff --git a/drivers/interconnect/qcom/Kconfig b/drivers/interconnect/qcom/Kconfig
index bb1cb8a640c1..896b07589386 100644
--- a/drivers/interconnect/qcom/Kconfig
+++ b/drivers/interconnect/qcom/Kconfig
@@ -17,6 +17,15 @@ config INTERCONNECT_QCOM_GLYMUR
This is a driver for the Qualcomm Network-on-Chip on glymur-based
platforms.
+config INTERCONNECT_QCOM_HAWI
+ tristate "Qualcomm HAWI interconnect driver"
+ depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
+ select INTERCONNECT_QCOM_RPMH
+ select INTERCONNECT_QCOM_BCM_VOTER
+ help
+ This is a driver for the Qualcomm Network-on-Chip on hawi-based
+ platforms.
+
config INTERCONNECT_QCOM_KAANAPALI
tristate "Qualcomm KAANAPALI interconnect driver"
depends on INTERCONNECT_QCOM_RPMH_POSSIBLE
diff --git a/drivers/interconnect/qcom/Makefile b/drivers/interconnect/qcom/Makefile
index 6eedff043b41..750ff9fd5b46 100644
--- a/drivers/interconnect/qcom/Makefile
+++ b/drivers/interconnect/qcom/Makefile
@@ -5,6 +5,7 @@ obj-$(CONFIG_INTERCONNECT_QCOM) += interconnect_qcom.o
interconnect_qcom-y := icc-common.o
icc-bcm-voter-objs := bcm-voter.o
qnoc-glymur-objs := glymur.o
+qnoc-hawi-objs := hawi.o
qnoc-kaanapali-objs := kaanapali.o
qnoc-milos-objs := milos.o
qnoc-msm8909-objs := msm8909.o
@@ -49,6 +50,7 @@ icc-smd-rpm-objs := smd-rpm.o icc-rpm.o icc-rpm-clocks.o
obj-$(CONFIG_INTERCONNECT_QCOM_BCM_VOTER) += icc-bcm-voter.o
obj-$(CONFIG_INTERCONNECT_QCOM_GLYMUR) += qnoc-glymur.o
+obj-$(CONFIG_INTERCONNECT_QCOM_HAWI) += qnoc-hawi.o
obj-$(CONFIG_INTERCONNECT_QCOM_KAANAPALI) += qnoc-kaanapali.o
obj-$(CONFIG_INTERCONNECT_QCOM_MILOS) += qnoc-milos.o
obj-$(CONFIG_INTERCONNECT_QCOM_MSM8909) += qnoc-msm8909.o
diff --git a/drivers/interconnect/qcom/hawi.c b/drivers/interconnect/qcom/hawi.c
new file mode 100644
index 000000000000..ef01ed5624d2
--- /dev/null
+++ b/drivers/interconnect/qcom/hawi.c
@@ -0,0 +1,2021 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ *
+ */
+
+#include <linux/device.h>
+#include <linux/interconnect.h>
+#include <linux/interconnect-provider.h>
+#include <linux/module.h>
+#include <linux/of_platform.h>
+#include <dt-bindings/interconnect/qcom,hawi-rpmh.h>
+
+#include "bcm-voter.h"
+#include "icc-rpmh.h"
+
+static struct qcom_icc_node ddr_eff_veto_slave = {
+ .name = "ddr_eff_veto_slave",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qup0_core_slave = {
+ .name = "qup0_core_slave",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qup1_core_slave = {
+ .name = "qup1_core_slave",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qup2_core_slave = {
+ .name = "qup2_core_slave",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qup3_core_slave = {
+ .name = "qup3_core_slave",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qup4_core_slave = {
+ .name = "qup4_core_slave",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_aoss = {
+ .name = "qhs_aoss",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_ipa = {
+ .name = "qhs_ipa",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_ipc_router_fence = {
+ .name = "qhs_ipc_router_fence",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_soccp = {
+ .name = "qhs_soccp",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_tme_cfg = {
+ .name = "qhs_tme_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qss_ddrss_cfg = {
+ .name = "qss_ddrss_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qxs_imem = {
+ .name = "qxs_imem",
+ .channels = 1,
+ .buswidth = 8,
+};
+
+static struct qcom_icc_node xs_pcie = {
+ .name = "xs_pcie",
+ .channels = 1,
+ .buswidth = 8,
+};
+
+static struct qcom_icc_node qhs_lpi_cc = {
+ .name = "qhs_lpi_cc",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qns_lb = {
+ .name = "qns_lb",
+ .channels = 4,
+ .buswidth = 32,
+};
+
+static struct qcom_icc_node srvc_llclpi_noc = {
+ .name = "srvc_llclpi_noc",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node srvc_llclpi_noc_chipcx = {
+ .name = "srvc_llclpi_noc_chipcx",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node ebi = {
+ .name = "ebi",
+ .channels = 4,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node ddr_rt_slave = {
+ .name = "ddr_rt_slave",
+ .channels = 4,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node srvc_pcie_aggre_noc = {
+ .name = "srvc_pcie_aggre_noc",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_ahb2phy0 = {
+ .name = "qhs_ahb2phy0",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_boot_rom = {
+ .name = "qhs_boot_rom",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_camera_cfg = {
+ .name = "qhs_camera_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_clk_ctl = {
+ .name = "qhs_clk_ctl",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_crypto_cfg = {
+ .name = "qhs_crypto_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_display_cfg = {
+ .name = "qhs_display_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_eva_cfg = {
+ .name = "qhs_eva_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_gpuss_cfg = {
+ .name = "qhs_gpuss_cfg",
+ .channels = 1,
+ .buswidth = 8,
+};
+
+static struct qcom_icc_node qhs_i2c = {
+ .name = "qhs_i2c",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_imem_cfg = {
+ .name = "qhs_imem_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_ipc_router = {
+ .name = "qhs_ipc_router",
+ .channels = 4,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_iris_cfg = {
+ .name = "qhs_iris_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_mss_cfg = {
+ .name = "qhs_mss_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_pcie_cfg = {
+ .name = "qhs_pcie_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_pcie_g4x1_cfg = {
+ .name = "qhs_pcie_g4x1_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_prng = {
+ .name = "qhs_prng",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_qspi = {
+ .name = "qhs_qspi",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_qup1 = {
+ .name = "qhs_qup1",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_qup2 = {
+ .name = "qhs_qup2",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_qup3 = {
+ .name = "qhs_qup3",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_qup4 = {
+ .name = "qhs_qup4",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_sdc2 = {
+ .name = "qhs_sdc2",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_sdc4 = {
+ .name = "qhs_sdc4",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_tlmm = {
+ .name = "qhs_tlmm",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_ufs_mem_cfg = {
+ .name = "qhs_ufs_mem_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_usb3 = {
+ .name = "qhs_usb3",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qhs_vsense_ctrl_cfg = {
+ .name = "qhs_vsense_ctrl_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qss_qdss_cfg = {
+ .name = "qss_qdss_cfg",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qss_qdss_stm = {
+ .name = "qss_qdss_stm",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node qss_tcsr = {
+ .name = "qss_tcsr",
+ .channels = 1,
+ .buswidth = 4,
+};
+
+static struct qcom_icc_node xs_sys_tcu_cfg = {
+ .name = "xs_sys_tcu_cfg",
+ .channels = 1,
+ .buswidth = 8,
+};
+
+static struct qcom_icc_node ddr_eff_veto_master = {
+ .name = "ddr_eff_veto_master",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &ddr_eff_veto_slave },
+};
+
+static struct qcom_icc_node qup0_core_master = {
+ .name = "qup0_core_master",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qup0_core_slave },
+};
+
+static struct qcom_icc_node qup1_core_master = {
+ .name = "qup1_core_master",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qup1_core_slave },
+};
+
+static struct qcom_icc_node qup2_core_master = {
+ .name = "qup2_core_master",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qup2_core_slave },
+};
+
+static struct qcom_icc_node qup3_core_master = {
+ .name = "qup3_core_master",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qup3_core_slave },
+};
+
+static struct qcom_icc_node qup4_core_master = {
+ .name = "qup4_core_master",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qup4_core_slave },
+};
+
+static struct qcom_icc_node qnm_gemnoc_pcie = {
+ .name = "qnm_gemnoc_pcie",
+ .channels = 1,
+ .buswidth = 8,
+ .num_links = 1,
+ .link_nodes = { &xs_pcie },
+};
+
+static struct qcom_icc_node qnm_lpiaon_noc_llclpi_noc = {
+ .name = "qnm_lpiaon_noc_llclpi_noc",
+ .channels = 1,
+ .buswidth = 16,
+ .num_links = 4,
+ .link_nodes = { &qhs_lpi_cc, &qns_lb,
+ &srvc_llclpi_noc, &srvc_llclpi_noc_chipcx },
+};
+
+static struct qcom_icc_node llcc_mc = {
+ .name = "llcc_mc",
+ .channels = 4,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &ebi },
+};
+
+static struct qcom_icc_node ddr_rt_mc = {
+ .name = "ddr_rt_mc",
+ .channels = 4,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &ddr_rt_slave },
+};
+
+static struct qcom_icc_node qsm_pcie_anoc_cfg = {
+ .name = "qsm_pcie_anoc_cfg",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &srvc_pcie_aggre_noc },
+};
+
+static struct qcom_icc_node qsm_cfg_east = {
+ .name = "qsm_cfg_east",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 4,
+ .link_nodes = { &qhs_crypto_cfg, &qhs_gpuss_cfg,
+ &qhs_qup2, &qhs_vsense_ctrl_cfg },
+};
+
+static struct qcom_icc_node qsm_cfg_mm = {
+ .name = "qsm_cfg_mm",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 5,
+ .link_nodes = { &qhs_boot_rom, &qhs_camera_cfg,
+ &qhs_display_cfg, &qhs_eva_cfg,
+ &qhs_iris_cfg },
+};
+
+static struct qcom_icc_node qsm_cfg_north = {
+ .name = "qsm_cfg_north",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 5,
+ .link_nodes = { &qhs_pcie_cfg, &qhs_pcie_g4x1_cfg,
+ &qhs_qup3, &qhs_qup4,
+ &qhs_sdc2 },
+};
+
+static struct qcom_icc_node qsm_cfg_south = {
+ .name = "qsm_cfg_south",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 6,
+ .link_nodes = { &qhs_ahb2phy0, &qhs_qspi,
+ &qhs_qup1, &qhs_sdc4,
+ &qhs_ufs_mem_cfg, &qhs_usb3 },
+};
+
+static struct qcom_icc_node qsm_cfg_southwest = {
+ .name = "qsm_cfg_southwest",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 2,
+ .link_nodes = { &qhs_ipc_router, &qhs_mss_cfg },
+};
+
+static struct qcom_icc_node qns_llcc = {
+ .name = "qns_llcc",
+ .channels = 4,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &llcc_mc },
+};
+
+static struct qcom_icc_node qns_pcie = {
+ .name = "qns_pcie",
+ .channels = 1,
+ .buswidth = 8,
+ .num_links = 1,
+ .link_nodes = { &qnm_gemnoc_pcie },
+};
+
+static struct qcom_icc_node qns_llc_lpinoc = {
+ .name = "qns_llc_lpinoc",
+ .channels = 1,
+ .buswidth = 16,
+ .num_links = 1,
+ .link_nodes = { &qnm_lpiaon_noc_llclpi_noc },
+};
+
+static struct qcom_icc_node qss_pcie_anoc_cfg = {
+ .name = "qss_pcie_anoc_cfg",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qsm_pcie_anoc_cfg },
+};
+
+static struct qcom_icc_node qss_stdst_east_cfg = {
+ .name = "qss_stdst_east_cfg",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qsm_cfg_east },
+};
+
+static struct qcom_icc_node qss_stdst_mm_cfg = {
+ .name = "qss_stdst_mm_cfg",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qsm_cfg_mm },
+};
+
+static struct qcom_icc_node qss_stdst_north_cfg = {
+ .name = "qss_stdst_north_cfg",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qsm_cfg_north },
+};
+
+static struct qcom_icc_node qss_stdst_south_cfg = {
+ .name = "qss_stdst_south_cfg",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qsm_cfg_south },
+};
+
+static struct qcom_icc_node qss_stdst_southwest_cfg = {
+ .name = "qss_stdst_southwest_cfg",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qsm_cfg_southwest },
+};
+
+static struct qcom_icc_node alm_gic = {
+ .name = "alm_gic",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x14d000 },
+ .prio = 4,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_llcc },
+};
+
+static struct qcom_icc_node qnm_qpace = {
+ .name = "qnm_qpace",
+ .channels = 1,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x153000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_llcc },
+};
+
+static struct qcom_icc_node qsm_cfg_center = {
+ .name = "qsm_cfg_center",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 10,
+ .link_nodes = { &qhs_clk_ctl, &qhs_i2c,
+ &qhs_imem_cfg, &qhs_prng,
+ &qhs_tlmm, &qss_pcie_anoc_cfg,
+ &qss_qdss_cfg, &qss_qdss_stm,
+ &qss_tcsr, &xs_sys_tcu_cfg },
+};
+
+static struct qcom_icc_node qss_stdst_center_cfg = {
+ .name = "qss_stdst_center_cfg",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qsm_cfg_center },
+};
+
+static struct qcom_icc_node qsm_cnoc_main = {
+ .name = "qsm_cnoc_main",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 6,
+ .link_nodes = { &qss_stdst_center_cfg, &qss_stdst_east_cfg,
+ &qss_stdst_mm_cfg, &qss_stdst_north_cfg,
+ &qss_stdst_south_cfg, &qss_stdst_southwest_cfg },
+};
+
+static struct qcom_icc_node qss_cfg = {
+ .name = "qss_cfg",
+ .channels = 1,
+ .buswidth = 4,
+ .num_links = 1,
+ .link_nodes = { &qsm_cnoc_main },
+};
+
+static struct qcom_icc_node qnm_gemnoc_cnoc = {
+ .name = "qnm_gemnoc_cnoc",
+ .channels = 1,
+ .buswidth = 16,
+ .num_links = 8,
+ .link_nodes = { &qhs_aoss, &qhs_ipa,
+ &qhs_ipc_router_fence, &qhs_soccp,
+ &qhs_tme_cfg, &qss_cfg,
+ &qss_ddrss_cfg, &qxs_imem },
+};
+
+static struct qcom_icc_node qns_gem_noc_cnoc = {
+ .name = "qns_gem_noc_cnoc",
+ .channels = 1,
+ .buswidth = 16,
+ .num_links = 1,
+ .link_nodes = { &qnm_gemnoc_cnoc },
+};
+
+static struct qcom_icc_node alm_gpu_tcu = {
+ .name = "alm_gpu_tcu",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x145000 },
+ .prio = 1,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 2,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
+};
+
+static struct qcom_icc_node alm_sys_tcu = {
+ .name = "alm_sys_tcu",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x147000 },
+ .prio = 6,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 2,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
+};
+
+static struct qcom_icc_node chm_apps = {
+ .name = "chm_apps",
+ .channels = 4,
+ .buswidth = 32,
+ .num_links = 3,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_node qnm_gpu = {
+ .name = "qnm_gpu",
+ .channels = 4,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 4,
+ .port_offsets = { 0x51000, 0x53000, 0xd1000, 0xd3000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 3,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_node qnm_lpass_gemnoc = {
+ .name = "qnm_lpass_gemnoc",
+ .channels = 1,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x149000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 3,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_node qnm_mdsp = {
+ .name = "qnm_mdsp",
+ .channels = 1,
+ .buswidth = 16,
+ .num_links = 3,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_node qnm_mnoc_hf = {
+ .name = "qnm_mnoc_hf",
+ .channels = 2,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 2,
+ .port_offsets = { 0x55000, 0xd5000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 3,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_node qnm_mnoc_sf = {
+ .name = "qnm_mnoc_sf",
+ .channels = 2,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 2,
+ .port_offsets = { 0x57000, 0xd7000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 3,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_node qnm_nsp_gemnoc = {
+ .name = "qnm_nsp_gemnoc",
+ .channels = 4,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 4,
+ .port_offsets = { 0x59000, 0x5b000, 0xd9000, 0xdb000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 3,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_node qnm_pcie = {
+ .name = "qnm_pcie",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x14b000 },
+ .prio = 2,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 2,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc },
+};
+
+static struct qcom_icc_node qnm_snoc_sf = {
+ .name = "qnm_snoc_sf",
+ .channels = 1,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x14f000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 3,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_node qnm_wlan_q6 = {
+ .name = "qnm_wlan_q6",
+ .channels = 1,
+ .buswidth = 8,
+ .num_links = 3,
+ .link_nodes = { &qns_gem_noc_cnoc, &qns_llcc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_node qns_lpass_ag_noc_gemnoc = {
+ .name = "qns_lpass_ag_noc_gemnoc",
+ .channels = 1,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qnm_lpass_gemnoc },
+};
+
+static struct qcom_icc_node qns_mem_noc_hf = {
+ .name = "qns_mem_noc_hf",
+ .channels = 2,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qnm_mnoc_hf },
+};
+
+static struct qcom_icc_node qns_mem_noc_sf = {
+ .name = "qns_mem_noc_sf",
+ .channels = 2,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qnm_mnoc_sf },
+};
+
+static struct qcom_icc_node qns_nsp_gemnoc = {
+ .name = "qns_nsp_gemnoc",
+ .channels = 4,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qnm_nsp_gemnoc },
+};
+
+static struct qcom_icc_node qns_pcie_gemnoc = {
+ .name = "qns_pcie_gemnoc",
+ .channels = 1,
+ .buswidth = 8,
+ .num_links = 1,
+ .link_nodes = { &qnm_pcie },
+};
+
+static struct qcom_icc_node qns_gemnoc_sf = {
+ .name = "qns_gemnoc_sf",
+ .channels = 1,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qnm_snoc_sf },
+};
+
+static struct qcom_icc_node qnm_lpiaon_noc = {
+ .name = "qnm_lpiaon_noc",
+ .channels = 1,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qns_lpass_ag_noc_gemnoc },
+};
+
+static struct qcom_icc_node qnm_camnoc_hf = {
+ .name = "qnm_camnoc_hf",
+ .channels = 2,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 2,
+ .port_offsets = { 0x2a000, 0x2b000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_hf },
+};
+
+static struct qcom_icc_node qnm_camnoc_nrt_icp_sf = {
+ .name = "qnm_camnoc_nrt_icp_sf",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x2c000 },
+ .prio = 4,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_node qnm_camnoc_rt_cdm_sf = {
+ .name = "qnm_camnoc_rt_cdm_sf",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x38000 },
+ .prio = 2,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_node qnm_camnoc_sf = {
+ .name = "qnm_camnoc_sf",
+ .channels = 2,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 2,
+ .port_offsets = { 0x2d000, 0x2e000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_node qnm_mdp = {
+ .name = "qnm_mdp",
+ .channels = 2,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 2,
+ .port_offsets = { 0x2f000, 0x30000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_hf },
+};
+
+static struct qcom_icc_node qnm_mdss_dcp = {
+ .name = "qnm_mdss_dcp",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x39000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_node qnm_vapss_hcp = {
+ .name = "qnm_vapss_hcp",
+ .channels = 1,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_node qnm_video_cv_cpu = {
+ .name = "qnm_video_cv_cpu",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x34000 },
+ .prio = 4,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_node qnm_video_eva = {
+ .name = "qnm_video_eva",
+ .channels = 2,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 2,
+ .port_offsets = { 0x35000, 0x36000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_node qnm_video_mvp = {
+ .name = "qnm_video_mvp",
+ .channels = 2,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 2,
+ .port_offsets = { 0x32000, 0x33000 },
+ .prio = 0,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_node qnm_video_v_cpu = {
+ .name = "qnm_video_v_cpu",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x37000 },
+ .prio = 4,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_node qnm_nsp = {
+ .name = "qnm_nsp",
+ .channels = 4,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qns_nsp_gemnoc },
+};
+
+static struct qcom_icc_node xm_pcie = {
+ .name = "xm_pcie",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0xc000 },
+ .prio = 3,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_pcie_gemnoc },
+};
+
+static struct qcom_icc_node xm_pcie_g4x1 = {
+ .name = "xm_pcie_g4x1",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0xd000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_pcie_gemnoc },
+};
+
+static struct qcom_icc_node qnm_aggre_noc = {
+ .name = "qnm_aggre_noc",
+ .channels = 1,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x20000 },
+ .prio = 2,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 0,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_gemnoc_sf },
+};
+
+static struct qcom_icc_node qnm_apss_noc = {
+ .name = "qnm_apss_noc",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x1e000 },
+ .prio = 2,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_gemnoc_sf },
+};
+
+static struct qcom_icc_node qnm_cnoc_data = {
+ .name = "qnm_cnoc_data",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x1f000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_gemnoc_sf },
+};
+
+static struct qcom_icc_node qns_a1noc_snoc = {
+ .name = "qns_a1noc_snoc",
+ .channels = 1,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qnm_aggre_noc },
+};
+
+static struct qcom_icc_node qns_lpass_aggnoc = {
+ .name = "qns_lpass_aggnoc",
+ .channels = 1,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qnm_lpiaon_noc },
+};
+
+static struct qcom_icc_node qhm_qspi = {
+ .name = "qhm_qspi",
+ .channels = 1,
+ .buswidth = 4,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x49000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node qhm_qup2 = {
+ .name = "qhm_qup2",
+ .channels = 1,
+ .buswidth = 4,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x48000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node qhm_qup3 = {
+ .name = "qhm_qup3",
+ .channels = 1,
+ .buswidth = 4,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x46000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node qhm_qup4 = {
+ .name = "qhm_qup4",
+ .channels = 1,
+ .buswidth = 4,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x47000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node qxm_crypto = {
+ .name = "qxm_crypto",
+ .channels = 1,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x40000 },
+ .prio = 2,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node qxm_ipa = {
+ .name = "qxm_ipa",
+ .channels = 1,
+ .buswidth = 16,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x41000 },
+ .prio = 2,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node qxm_qup1 = {
+ .name = "qxm_qup1",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x4d000 },
+ .prio = 2,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node qxm_soccp = {
+ .name = "qxm_soccp",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x45000 },
+ .prio = 2,
+ .urg_fwd = 1,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node xm_qdss_etr_0 = {
+ .name = "xm_qdss_etr_0",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x42000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node xm_qdss_etr_1 = {
+ .name = "xm_qdss_etr_1",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x43000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node xm_sdc2 = {
+ .name = "xm_sdc2",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x44000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node xm_sdc4 = {
+ .name = "xm_sdc4",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x4a000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node xm_ufs_mem = {
+ .name = "xm_ufs_mem",
+ .channels = 1,
+ .buswidth = 32,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x4b000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node xm_usb3 = {
+ .name = "xm_usb3",
+ .channels = 1,
+ .buswidth = 8,
+ .qosbox = &(const struct qcom_icc_qosbox) {
+ .num_ports = 1,
+ .port_offsets = { 0x4c000 },
+ .prio = 2,
+ .urg_fwd = 0,
+ .prio_fwd_disable = 1,
+ },
+ .num_links = 1,
+ .link_nodes = { &qns_a1noc_snoc },
+};
+
+static struct qcom_icc_node qnm_lpass_lpinoc = {
+ .name = "qnm_lpass_lpinoc",
+ .channels = 1,
+ .buswidth = 32,
+ .num_links = 2,
+ .link_nodes = { &qns_llc_lpinoc, &qns_lpass_aggnoc },
+};
+
+static struct qcom_icc_node qns_lpi_aon_noc = {
+ .name = "qns_lpi_aon_noc",
+ .channels = 1,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qnm_lpass_lpinoc },
+};
+
+static struct qcom_icc_node qnm_lpinoc_dsp_qns4m = {
+ .name = "qnm_lpinoc_dsp_qns4m",
+ .channels = 1,
+ .buswidth = 32,
+ .num_links = 1,
+ .link_nodes = { &qns_lpi_aon_noc },
+};
+
+static struct qcom_icc_bcm bcm_acv = {
+ .name = "ACV",
+ .enable_mask = BIT(3),
+ .num_nodes = 1,
+ .nodes = { &ebi },
+};
+
+static struct qcom_icc_bcm bcm_ce0 = {
+ .name = "CE0",
+ .num_nodes = 1,
+ .nodes = { &qxm_crypto },
+};
+
+static struct qcom_icc_bcm bcm_cn0 = {
+ .name = "CN0",
+ .enable_mask = BIT(0),
+ .keepalive = true,
+ .num_nodes = 23,
+ .nodes = { &qnm_gemnoc_cnoc, &qnm_gemnoc_pcie,
+ &qhs_aoss, &qhs_ipa,
+ &qhs_ipc_router_fence, &qhs_soccp,
+ &qhs_tme_cfg, &qss_cfg,
+ &qss_ddrss_cfg, &qxs_imem,
+ &xs_pcie, &qsm_cfg_center,
+ &qsm_cfg_east, &qsm_cfg_mm,
+ &qsm_cfg_north, &qsm_cfg_south,
+ &qsm_cfg_southwest, &qhs_ahb2phy0,
+ &qhs_boot_rom, &qhs_camera_cfg,
+ &qhs_clk_ctl, &qhs_crypto_cfg,
+ &qhs_eva_cfg },
+};
+
+static struct qcom_icc_bcm bcm_cn1 = {
+ .name = "CN1",
+ .num_nodes = 1,
+ .nodes = { &qhs_display_cfg },
+};
+
+static struct qcom_icc_bcm bcm_co0 = {
+ .name = "CO0",
+ .enable_mask = BIT(0),
+ .num_nodes = 2,
+ .nodes = { &qnm_nsp, &qns_nsp_gemnoc },
+};
+
+static struct qcom_icc_bcm bcm_de0 = {
+ .name = "DE0",
+ .enable_mask = BIT(0),
+ .num_nodes = 1,
+ .nodes = { &ddr_eff_veto_slave },
+};
+
+static struct qcom_icc_bcm bcm_lp0 = {
+ .name = "LP0",
+ .num_nodes = 5,
+ .nodes = { &qnm_lpiaon_noc_llclpi_noc, &qns_lb,
+ &qnm_lpass_lpinoc, &qns_llc_lpinoc,
+ &qns_lpass_aggnoc },
+};
+
+static struct qcom_icc_bcm bcm_mc0 = {
+ .name = "MC0",
+ .keepalive = true,
+ .num_nodes = 1,
+ .nodes = { &ebi },
+};
+
+static struct qcom_icc_bcm bcm_mc5 = {
+ .name = "MC5",
+ .num_nodes = 1,
+ .nodes = { &ddr_rt_slave },
+};
+
+static struct qcom_icc_bcm bcm_mm0 = {
+ .name = "MM0",
+ .num_nodes = 1,
+ .nodes = { &qns_mem_noc_hf },
+};
+
+static struct qcom_icc_bcm bcm_mm1 = {
+ .name = "MM1",
+ .enable_mask = BIT(0),
+ .num_nodes = 9,
+ .nodes = { &qnm_camnoc_hf, &qnm_camnoc_nrt_icp_sf,
+ &qnm_camnoc_rt_cdm_sf, &qnm_camnoc_sf,
+ &qnm_vapss_hcp, &qnm_video_cv_cpu,
+ &qnm_video_mvp, &qnm_video_v_cpu,
+ &qns_mem_noc_sf },
+};
+
+static struct qcom_icc_bcm bcm_qpc0 = {
+ .name = "QPC0",
+ .num_nodes = 1,
+ .nodes = { &qnm_qpace },
+};
+
+static struct qcom_icc_bcm bcm_qup0 = {
+ .name = "QUP0",
+ .keepalive = true,
+ .vote_scale = 1,
+ .num_nodes = 1,
+ .nodes = { &qup0_core_slave },
+};
+
+static struct qcom_icc_bcm bcm_qup1 = {
+ .name = "QUP1",
+ .keepalive = true,
+ .vote_scale = 1,
+ .num_nodes = 1,
+ .nodes = { &qup1_core_slave },
+};
+
+static struct qcom_icc_bcm bcm_qup2 = {
+ .name = "QUP2",
+ .keepalive = true,
+ .vote_scale = 1,
+ .num_nodes = 1,
+ .nodes = { &qup2_core_slave },
+};
+
+static struct qcom_icc_bcm bcm_qup3 = {
+ .name = "QUP3",
+ .keepalive = true,
+ .vote_scale = 1,
+ .num_nodes = 1,
+ .nodes = { &qup3_core_slave },
+};
+
+static struct qcom_icc_bcm bcm_qup4 = {
+ .name = "QUP4",
+ .keepalive = true,
+ .vote_scale = 1,
+ .num_nodes = 1,
+ .nodes = { &qup4_core_slave },
+};
+
+static struct qcom_icc_bcm bcm_sh0 = {
+ .name = "SH0",
+ .keepalive = true,
+ .num_nodes = 1,
+ .nodes = { &qns_llcc },
+};
+
+static struct qcom_icc_bcm bcm_sh1 = {
+ .name = "SH1",
+ .enable_mask = BIT(0),
+ .num_nodes = 15,
+ .nodes = { &alm_gic, &alm_gpu_tcu,
+ &alm_sys_tcu, &chm_apps,
+ &qnm_gpu, &qnm_lpass_gemnoc,
+ &qnm_mdsp, &qnm_mnoc_hf,
+ &qnm_mnoc_sf, &qnm_nsp_gemnoc,
+ &qnm_pcie, &qnm_snoc_sf,
+ &qnm_wlan_q6, &qns_gem_noc_cnoc,
+ &qns_pcie },
+};
+
+static struct qcom_icc_bcm bcm_sn0 = {
+ .name = "SN0",
+ .keepalive = true,
+ .num_nodes = 1,
+ .nodes = { &qns_gemnoc_sf },
+};
+
+static struct qcom_icc_bcm bcm_sn2 = {
+ .name = "SN2",
+ .num_nodes = 1,
+ .nodes = { &qnm_aggre_noc },
+};
+
+static struct qcom_icc_bcm bcm_sn3 = {
+ .name = "SN3",
+ .num_nodes = 1,
+ .nodes = { &qns_pcie_gemnoc },
+};
+
+static struct qcom_icc_bcm * const aggre1_noc_bcms[] = {
+ &bcm_ce0,
+};
+
+static struct qcom_icc_node * const aggre1_noc_nodes[] = {
+ [MASTER_QSPI_0] = &qhm_qspi,
+ [MASTER_QUP_2] = &qhm_qup2,
+ [MASTER_QUP_3] = &qhm_qup3,
+ [MASTER_QUP_4] = &qhm_qup4,
+ [MASTER_CRYPTO] = &qxm_crypto,
+ [MASTER_IPA] = &qxm_ipa,
+ [MASTER_QUP_1] = &qxm_qup1,
+ [MASTER_SOCCP_PROC] = &qxm_soccp,
+ [MASTER_QDSS_ETR] = &xm_qdss_etr_0,
+ [MASTER_QDSS_ETR_1] = &xm_qdss_etr_1,
+ [MASTER_SDCC_2] = &xm_sdc2,
+ [MASTER_SDCC_4] = &xm_sdc4,
+ [MASTER_UFS_MEM] = &xm_ufs_mem,
+ [MASTER_USB3] = &xm_usb3,
+ [SLAVE_A1NOC_SNOC] = &qns_a1noc_snoc,
+};
+
+static const struct regmap_config hawi_aggre1_noc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x54400,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_aggre1_noc = {
+ .config = &hawi_aggre1_noc_regmap_config,
+ .nodes = aggre1_noc_nodes,
+ .num_nodes = ARRAY_SIZE(aggre1_noc_nodes),
+ .bcms = aggre1_noc_bcms,
+ .num_bcms = ARRAY_SIZE(aggre1_noc_bcms),
+ .qos_requires_clocks = true,
+};
+
+static struct qcom_icc_bcm * const clk_virt_bcms[] = {
+ &bcm_de0,
+ &bcm_qup0,
+ &bcm_qup1,
+ &bcm_qup2,
+ &bcm_qup3,
+ &bcm_qup4,
+};
+
+static struct qcom_icc_node * const clk_virt_nodes[] = {
+ [MASTER_DDR_EFF_VETO] = &ddr_eff_veto_master,
+ [MASTER_QUP_CORE_0] = &qup0_core_master,
+ [MASTER_QUP_CORE_1] = &qup1_core_master,
+ [MASTER_QUP_CORE_2] = &qup2_core_master,
+ [MASTER_QUP_CORE_3] = &qup3_core_master,
+ [MASTER_QUP_CORE_4] = &qup4_core_master,
+ [SLAVE_DDR_EFF_VETO] = &ddr_eff_veto_slave,
+ [SLAVE_QUP_CORE_0] = &qup0_core_slave,
+ [SLAVE_QUP_CORE_1] = &qup1_core_slave,
+ [SLAVE_QUP_CORE_2] = &qup2_core_slave,
+ [SLAVE_QUP_CORE_3] = &qup3_core_slave,
+ [SLAVE_QUP_CORE_4] = &qup4_core_slave,
+};
+
+static const struct qcom_icc_desc hawi_clk_virt = {
+ .nodes = clk_virt_nodes,
+ .num_nodes = ARRAY_SIZE(clk_virt_nodes),
+ .bcms = clk_virt_bcms,
+ .num_bcms = ARRAY_SIZE(clk_virt_bcms),
+};
+
+static struct qcom_icc_bcm * const cnoc_main_bcms[] = {
+ &bcm_cn0,
+};
+
+static struct qcom_icc_node * const cnoc_main_nodes[] = {
+ [MASTER_GEM_NOC_CNOC] = &qnm_gemnoc_cnoc,
+ [MASTER_GEM_NOC_PCIE_SNOC] = &qnm_gemnoc_pcie,
+ [SLAVE_AOSS] = &qhs_aoss,
+ [SLAVE_IPA_CFG] = &qhs_ipa,
+ [SLAVE_IPC_ROUTER_FENCE] = &qhs_ipc_router_fence,
+ [SLAVE_SOCCP] = &qhs_soccp,
+ [SLAVE_TME_CFG] = &qhs_tme_cfg,
+ [SLAVE_CNOC_CFG] = &qss_cfg,
+ [SLAVE_DDRSS_CFG] = &qss_ddrss_cfg,
+ [SLAVE_IMEM] = &qxs_imem,
+ [SLAVE_PCIE_0] = &xs_pcie,
+};
+
+static const struct regmap_config hawi_cnoc_main_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x20000,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_cnoc_main = {
+ .config = &hawi_cnoc_main_regmap_config,
+ .nodes = cnoc_main_nodes,
+ .num_nodes = ARRAY_SIZE(cnoc_main_nodes),
+ .bcms = cnoc_main_bcms,
+ .num_bcms = ARRAY_SIZE(cnoc_main_bcms),
+};
+
+static struct qcom_icc_bcm * const gem_noc_bcms[] = {
+ &bcm_qpc0,
+ &bcm_sh0,
+ &bcm_sh1,
+};
+
+static struct qcom_icc_node * const gem_noc_nodes[] = {
+ [MASTER_GIC] = &alm_gic,
+ [MASTER_GPU_TCU] = &alm_gpu_tcu,
+ [MASTER_SYS_TCU] = &alm_sys_tcu,
+ [MASTER_APPSS_PROC] = &chm_apps,
+ [MASTER_GFX3D] = &qnm_gpu,
+ [MASTER_LPASS_GEM_NOC] = &qnm_lpass_gemnoc,
+ [MASTER_MSS_PROC] = &qnm_mdsp,
+ [MASTER_MNOC_HF_MEM_NOC] = &qnm_mnoc_hf,
+ [MASTER_MNOC_SF_MEM_NOC] = &qnm_mnoc_sf,
+ [MASTER_COMPUTE_NOC] = &qnm_nsp_gemnoc,
+ [MASTER_ANOC_PCIE_GEM_NOC] = &qnm_pcie,
+ [MASTER_QPACE] = &qnm_qpace,
+ [MASTER_SNOC_SF_MEM_NOC] = &qnm_snoc_sf,
+ [MASTER_WLAN_Q6] = &qnm_wlan_q6,
+ [SLAVE_GEM_NOC_CNOC] = &qns_gem_noc_cnoc,
+ [SLAVE_LLCC] = &qns_llcc,
+ [SLAVE_MEM_NOC_PCIE_SNOC] = &qns_pcie,
+};
+
+static const struct regmap_config hawi_gem_noc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x160200,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_gem_noc = {
+ .config = &hawi_gem_noc_regmap_config,
+ .nodes = gem_noc_nodes,
+ .num_nodes = ARRAY_SIZE(gem_noc_nodes),
+ .bcms = gem_noc_bcms,
+ .num_bcms = ARRAY_SIZE(gem_noc_bcms),
+};
+
+static struct qcom_icc_bcm * const llclpi_noc_bcms[] = {
+ &bcm_lp0,
+};
+
+static struct qcom_icc_node * const llclpi_noc_nodes[] = {
+ [MASTER_LPIAON_NOC_LLCLPI_NOC] = &qnm_lpiaon_noc_llclpi_noc,
+ [SLAVE_LPASS_LPI_CC] = &qhs_lpi_cc,
+ [SLAVE_LLCC_ISLAND] = &qns_lb,
+ [SLAVE_SERVICE_LLCLPI_NOC] = &srvc_llclpi_noc,
+ [SLAVE_SERVICE_LLCLPI_NOC_CHIPCX] = &srvc_llclpi_noc_chipcx,
+};
+
+static const struct regmap_config hawi_llclpi_noc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x17200,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_llclpi_noc = {
+ .config = &hawi_llclpi_noc_regmap_config,
+ .nodes = llclpi_noc_nodes,
+ .num_nodes = ARRAY_SIZE(llclpi_noc_nodes),
+ .bcms = llclpi_noc_bcms,
+ .num_bcms = ARRAY_SIZE(llclpi_noc_bcms),
+};
+
+static struct qcom_icc_node * const lpass_ag_noc_nodes[] = {
+ [MASTER_LPIAON_NOC] = &qnm_lpiaon_noc,
+ [SLAVE_LPASS_GEM_NOC] = &qns_lpass_ag_noc_gemnoc,
+};
+
+static const struct regmap_config hawi_lpass_ag_noc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0xc080,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_lpass_ag_noc = {
+ .config = &hawi_lpass_ag_noc_regmap_config,
+ .nodes = lpass_ag_noc_nodes,
+ .num_nodes = ARRAY_SIZE(lpass_ag_noc_nodes),
+};
+
+static struct qcom_icc_bcm * const lpass_lpiaon_noc_bcms[] = {
+ &bcm_lp0,
+};
+
+static struct qcom_icc_node * const lpass_lpiaon_noc_nodes[] = {
+ [MASTER_LPASS_LPINOC] = &qnm_lpass_lpinoc,
+ [SLAVE_LPIAON_NOC_LLCLPI_NOC] = &qns_llc_lpinoc,
+ [SLAVE_LPIAON_NOC_LPASS_AG_NOC] = &qns_lpass_aggnoc,
+};
+
+static const struct regmap_config hawi_lpass_lpiaon_noc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x19080,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_lpass_lpiaon_noc = {
+ .config = &hawi_lpass_lpiaon_noc_regmap_config,
+ .nodes = lpass_lpiaon_noc_nodes,
+ .num_nodes = ARRAY_SIZE(lpass_lpiaon_noc_nodes),
+ .bcms = lpass_lpiaon_noc_bcms,
+ .num_bcms = ARRAY_SIZE(lpass_lpiaon_noc_bcms),
+};
+
+static struct qcom_icc_node * const lpass_lpicx_noc_nodes[] = {
+ [MASTER_LPASS_PROC] = &qnm_lpinoc_dsp_qns4m,
+ [SLAVE_LPICX_NOC_LPIAON_NOC] = &qns_lpi_aon_noc,
+};
+
+static const struct regmap_config hawi_lpass_lpicx_noc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x46080,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_lpass_lpicx_noc = {
+ .config = &hawi_lpass_lpicx_noc_regmap_config,
+ .nodes = lpass_lpicx_noc_nodes,
+ .num_nodes = ARRAY_SIZE(lpass_lpicx_noc_nodes),
+};
+
+static struct qcom_icc_bcm * const mc_virt_bcms[] = {
+ &bcm_acv,
+ &bcm_mc0,
+ &bcm_mc5,
+};
+
+static struct qcom_icc_node * const mc_virt_nodes[] = {
+ [MASTER_LLCC] = &llcc_mc,
+ [MASTER_DDR_RT] = &ddr_rt_mc,
+ [SLAVE_EBI1] = &ebi,
+ [SLAVE_DDR_RT] = &ddr_rt_slave,
+};
+
+static const struct qcom_icc_desc hawi_mc_virt = {
+ .nodes = mc_virt_nodes,
+ .num_nodes = ARRAY_SIZE(mc_virt_nodes),
+ .bcms = mc_virt_bcms,
+ .num_bcms = ARRAY_SIZE(mc_virt_bcms),
+};
+
+static struct qcom_icc_bcm * const mmss_noc_bcms[] = {
+ &bcm_mm0,
+ &bcm_mm1,
+};
+
+static struct qcom_icc_node * const mmss_noc_nodes[] = {
+ [MASTER_CAMNOC_HF] = &qnm_camnoc_hf,
+ [MASTER_CAMNOC_NRT_ICP_SF] = &qnm_camnoc_nrt_icp_sf,
+ [MASTER_CAMNOC_RT_CDM_SF] = &qnm_camnoc_rt_cdm_sf,
+ [MASTER_CAMNOC_SF] = &qnm_camnoc_sf,
+ [MASTER_MDP] = &qnm_mdp,
+ [MASTER_MDSS_DCP] = &qnm_mdss_dcp,
+ [MASTER_CDSP_HCP] = &qnm_vapss_hcp,
+ [MASTER_VIDEO_CV_PROC] = &qnm_video_cv_cpu,
+ [MASTER_VIDEO_EVA] = &qnm_video_eva,
+ [MASTER_VIDEO_MVP] = &qnm_video_mvp,
+ [MASTER_VIDEO_V_PROC] = &qnm_video_v_cpu,
+ [SLAVE_MNOC_HF_MEM_NOC] = &qns_mem_noc_hf,
+ [SLAVE_MNOC_SF_MEM_NOC] = &qns_mem_noc_sf,
+};
+
+static const struct regmap_config hawi_mmss_noc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x5f800,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_mmss_noc = {
+ .config = &hawi_mmss_noc_regmap_config,
+ .nodes = mmss_noc_nodes,
+ .num_nodes = ARRAY_SIZE(mmss_noc_nodes),
+ .bcms = mmss_noc_bcms,
+ .num_bcms = ARRAY_SIZE(mmss_noc_bcms),
+};
+
+static struct qcom_icc_bcm * const nsp_noc_bcms[] = {
+ &bcm_co0,
+};
+
+static struct qcom_icc_node * const nsp_noc_nodes[] = {
+ [MASTER_CDSP_PROC] = &qnm_nsp,
+ [SLAVE_CDSP_MEM_NOC] = &qns_nsp_gemnoc,
+};
+
+static const struct regmap_config hawi_nsp_noc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x21280,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_nsp_noc = {
+ .config = &hawi_nsp_noc_regmap_config,
+ .nodes = nsp_noc_nodes,
+ .num_nodes = ARRAY_SIZE(nsp_noc_nodes),
+ .bcms = nsp_noc_bcms,
+ .num_bcms = ARRAY_SIZE(nsp_noc_bcms),
+};
+
+static struct qcom_icc_bcm * const pcie_anoc_bcms[] = {
+ &bcm_sn3,
+};
+
+static struct qcom_icc_node * const pcie_anoc_nodes[] = {
+ [MASTER_PCIE_ANOC_CFG] = &qsm_pcie_anoc_cfg,
+ [MASTER_PCIE_0] = &xm_pcie,
+ [MASTER_PCIE_1] = &xm_pcie_g4x1,
+ [SLAVE_ANOC_PCIE_GEM_NOC] = &qns_pcie_gemnoc,
+ [SLAVE_SERVICE_PCIE_ANOC] = &srvc_pcie_aggre_noc,
+};
+
+static const struct regmap_config hawi_pcie_anoc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x12400,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_pcie_anoc = {
+ .config = &hawi_pcie_anoc_regmap_config,
+ .nodes = pcie_anoc_nodes,
+ .num_nodes = ARRAY_SIZE(pcie_anoc_nodes),
+ .bcms = pcie_anoc_bcms,
+ .num_bcms = ARRAY_SIZE(pcie_anoc_bcms),
+ .qos_requires_clocks = true,
+};
+
+static struct qcom_icc_bcm * const stdst_cfg_bcms[] = {
+ &bcm_cn0,
+ &bcm_cn1,
+};
+
+static struct qcom_icc_node * const stdst_cfg_nodes[] = {
+ [MASTER_CFG_CENTER] = &qsm_cfg_center,
+ [MASTER_CFG_EAST] = &qsm_cfg_east,
+ [MASTER_CFG_MM] = &qsm_cfg_mm,
+ [MASTER_CFG_NORTH] = &qsm_cfg_north,
+ [MASTER_CFG_SOUTH] = &qsm_cfg_south,
+ [MASTER_CFG_SOUTHWEST] = &qsm_cfg_southwest,
+ [SLAVE_AHB2PHY_SOUTH] = &qhs_ahb2phy0,
+ [SLAVE_BOOT_ROM] = &qhs_boot_rom,
+ [SLAVE_CAMERA_CFG] = &qhs_camera_cfg,
+ [SLAVE_CLK_CTL] = &qhs_clk_ctl,
+ [SLAVE_CRYPTO_CFG] = &qhs_crypto_cfg,
+ [SLAVE_DISPLAY_CFG] = &qhs_display_cfg,
+ [SLAVE_EVA_CFG] = &qhs_eva_cfg,
+ [SLAVE_GFX3D_CFG] = &qhs_gpuss_cfg,
+ [SLAVE_I2C] = &qhs_i2c,
+ [SLAVE_IMEM_CFG] = &qhs_imem_cfg,
+ [SLAVE_IPC_ROUTER_CFG] = &qhs_ipc_router,
+ [SLAVE_IRIS_CFG] = &qhs_iris_cfg,
+ [SLAVE_CNOC_MSS] = &qhs_mss_cfg,
+ [SLAVE_PCIE_0_CFG] = &qhs_pcie_cfg,
+ [SLAVE_PCIE_1_CFG] = &qhs_pcie_g4x1_cfg,
+ [SLAVE_PRNG] = &qhs_prng,
+ [SLAVE_QSPI_0] = &qhs_qspi,
+ [SLAVE_QUP_1] = &qhs_qup1,
+ [SLAVE_QUP_2] = &qhs_qup2,
+ [SLAVE_QUP_3] = &qhs_qup3,
+ [SLAVE_QUP_4] = &qhs_qup4,
+ [SLAVE_SDCC_2] = &qhs_sdc2,
+ [SLAVE_SDCC_4] = &qhs_sdc4,
+ [SLAVE_TLMM] = &qhs_tlmm,
+ [SLAVE_UFS_MEM_CFG] = &qhs_ufs_mem_cfg,
+ [SLAVE_USB3] = &qhs_usb3,
+ [SLAVE_VSENSE_CTRL_CFG] = &qhs_vsense_ctrl_cfg,
+ [SLAVE_PCIE_ANOC_CFG] = &qss_pcie_anoc_cfg,
+ [SLAVE_QDSS_CFG] = &qss_qdss_cfg,
+ [SLAVE_QDSS_STM] = &qss_qdss_stm,
+ [SLAVE_TCSR] = &qss_tcsr,
+ [SLAVE_TCU] = &xs_sys_tcu_cfg,
+};
+
+static const struct regmap_config hawi_stdst_cfg_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0xb1000,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_stdst_cfg = {
+ .config = &hawi_stdst_cfg_regmap_config,
+ .nodes = stdst_cfg_nodes,
+ .num_nodes = ARRAY_SIZE(stdst_cfg_nodes),
+ .bcms = stdst_cfg_bcms,
+ .num_bcms = ARRAY_SIZE(stdst_cfg_bcms),
+};
+
+static struct qcom_icc_node * const stdst_main_nodes[] = {
+ [MASTER_CNOC_STARDUST] = &qsm_cnoc_main,
+ [SLAVE_STARDUST_CENTER_CFG] = &qss_stdst_center_cfg,
+ [SLAVE_STARDUST_EAST_CFG] = &qss_stdst_east_cfg,
+ [SLAVE_STARDUST_MM_CFG] = &qss_stdst_mm_cfg,
+ [SLAVE_STARDUST_NORTH_CFG] = &qss_stdst_north_cfg,
+ [SLAVE_STARDUST_SOUTH_CFG] = &qss_stdst_south_cfg,
+ [SLAVE_STARDUST_SOUTHWEST_CFG] = &qss_stdst_southwest_cfg,
+};
+
+static const struct regmap_config hawi_stdst_main_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x10000,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_stdst_main = {
+ .config = &hawi_stdst_main_regmap_config,
+ .nodes = stdst_main_nodes,
+ .num_nodes = ARRAY_SIZE(stdst_main_nodes),
+};
+
+static struct qcom_icc_bcm * const system_noc_bcms[] = {
+ &bcm_sn0,
+ &bcm_sn2,
+};
+
+static struct qcom_icc_node * const system_noc_nodes[] = {
+ [MASTER_A1NOC_SNOC] = &qnm_aggre_noc,
+ [MASTER_APSS_NOC] = &qnm_apss_noc,
+ [MASTER_CNOC_SNOC] = &qnm_cnoc_data,
+ [SLAVE_SNOC_GEM_NOC_SF] = &qns_gemnoc_sf,
+};
+
+static const struct regmap_config hawi_system_noc_regmap_config = {
+ .reg_bits = 32,
+ .reg_stride = 4,
+ .val_bits = 32,
+ .max_register = 0x20080,
+ .fast_io = true,
+};
+
+static const struct qcom_icc_desc hawi_system_noc = {
+ .config = &hawi_system_noc_regmap_config,
+ .nodes = system_noc_nodes,
+ .num_nodes = ARRAY_SIZE(system_noc_nodes),
+ .bcms = system_noc_bcms,
+ .num_bcms = ARRAY_SIZE(system_noc_bcms),
+};
+
+static const struct of_device_id qnoc_of_match[] = {
+ { .compatible = "qcom,hawi-aggre1-noc", .data = &hawi_aggre1_noc },
+ { .compatible = "qcom,hawi-clk-virt", .data = &hawi_clk_virt },
+ { .compatible = "qcom,hawi-cnoc-main", .data = &hawi_cnoc_main },
+ { .compatible = "qcom,hawi-gem-noc", .data = &hawi_gem_noc },
+ { .compatible = "qcom,hawi-llclpi-noc", .data = &hawi_llclpi_noc },
+ { .compatible = "qcom,hawi-lpass-ag-noc", .data = &hawi_lpass_ag_noc },
+ { .compatible = "qcom,hawi-lpass-lpiaon-noc", .data = &hawi_lpass_lpiaon_noc },
+ { .compatible = "qcom,hawi-lpass-lpicx-noc", .data = &hawi_lpass_lpicx_noc },
+ { .compatible = "qcom,hawi-mc-virt", .data = &hawi_mc_virt },
+ { .compatible = "qcom,hawi-mmss-noc", .data = &hawi_mmss_noc },
+ { .compatible = "qcom,hawi-nsp-noc", .data = &hawi_nsp_noc },
+ { .compatible = "qcom,hawi-pcie-anoc", .data = &hawi_pcie_anoc },
+ { .compatible = "qcom,hawi-stdst-cfg", .data = &hawi_stdst_cfg },
+ { .compatible = "qcom,hawi-stdst-main", .data = &hawi_stdst_main },
+ { .compatible = "qcom,hawi-system-noc", .data = &hawi_system_noc },
+ { }
+};
+MODULE_DEVICE_TABLE(of, qnoc_of_match);
+
+static struct platform_driver qnoc_driver = {
+ .probe = qcom_icc_rpmh_probe,
+ .remove = qcom_icc_rpmh_remove,
+ .driver = {
+ .name = "qnoc-hawi",
+ .of_match_table = qnoc_of_match,
+ .sync_state = icc_sync_state,
+ },
+};
+
+static int __init qnoc_driver_init(void)
+{
+ return platform_driver_register(&qnoc_driver);
+}
+core_initcall(qnoc_driver_init);
+
+static void __exit qnoc_driver_exit(void)
+{
+ platform_driver_unregister(&qnoc_driver);
+}
+module_exit(qnoc_driver_exit);
+
+MODULE_DESCRIPTION("Qualcomm Hawi NoC driver");
+MODULE_LICENSE("GPL");
--
2.34.1
^ permalink raw reply related
* [PATCH v3 1/2] dt-bindings: interconnect: qcom: document the RPMh NoC for Hawi SoC
From: Vivek Aknurwar @ 2026-04-09 21:01 UTC (permalink / raw)
To: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-pm, devicetree, linux-kernel, Mike Tipton,
Vivek Aknurwar
In-Reply-To: <20260409-icc-hawi-v3-0-851cac12a81d@oss.qualcomm.com>
Document the RPMh Network-On-Chip interconnect for the Qualcomm Hawi SoC.
Signed-off-by: Vivek Aknurwar <vivek.aknurwar@oss.qualcomm.com>
---
.../bindings/interconnect/qcom,hawi-rpmh.yaml | 131 ++++++++++++++++
include/dt-bindings/interconnect/qcom,hawi-rpmh.h | 164 +++++++++++++++++++++
2 files changed, 295 insertions(+)
diff --git a/Documentation/devicetree/bindings/interconnect/qcom,hawi-rpmh.yaml b/Documentation/devicetree/bindings/interconnect/qcom,hawi-rpmh.yaml
new file mode 100644
index 000000000000..49a2dca5db62
--- /dev/null
+++ b/Documentation/devicetree/bindings/interconnect/qcom,hawi-rpmh.yaml
@@ -0,0 +1,131 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interconnect/qcom,hawi-rpmh.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm RPMh Network-On-Chip Interconnect on Hawi
+
+maintainers:
+ - Vivek Aknurwar <vivek.aknurwar@oss.qualcomm.com>
+
+description: |
+ RPMh interconnect providers support system bandwidth requirements through
+ RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is
+ able to communicate with the BCM through the Resource State Coordinator (RSC)
+ associated with each execution environment. Provider nodes must point to at
+ least one RPMh device child node pertaining to their RSC and each provider
+ can map to multiple RPMh resources.
+
+ See also: include/dt-bindings/interconnect/qcom,hawi-rpmh.h
+
+properties:
+ compatible:
+ enum:
+ - qcom,hawi-aggre1-noc
+ - qcom,hawi-clk-virt
+ - qcom,hawi-cnoc-main
+ - qcom,hawi-gem-noc
+ - qcom,hawi-llclpi-noc
+ - qcom,hawi-lpass-ag-noc
+ - qcom,hawi-lpass-lpiaon-noc
+ - qcom,hawi-lpass-lpicx-noc
+ - qcom,hawi-mc-virt
+ - qcom,hawi-mmss-noc
+ - qcom,hawi-nsp-noc
+ - qcom,hawi-pcie-anoc
+ - qcom,hawi-stdst-cfg
+ - qcom,hawi-stdst-main
+ - qcom,hawi-system-noc
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ minItems: 2
+ maxItems: 3
+
+required:
+ - compatible
+
+allOf:
+ - $ref: qcom,rpmh-common.yaml#
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,hawi-clk-virt
+ - qcom,hawi-mc-virt
+ then:
+ properties:
+ reg: false
+ else:
+ required:
+ - reg
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,hawi-pcie-anoc
+ then:
+ properties:
+ clocks:
+ items:
+ - description: aggre-NOC PCIe AXI clock
+ - description: cfg-NOC PCIe a-NOC AHB clock
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,hawi-aggre1-noc
+ then:
+ properties:
+ clocks:
+ items:
+ - description: aggre UFS PHY AXI clock
+ - description: aggre USB3 PRIM AXI clock
+ - description: RPMH CC IPA clock
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,hawi-aggre1-noc
+ - qcom,hawi-pcie-anoc
+ then:
+ required:
+ - clocks
+ else:
+ properties:
+ clocks: false
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ clk_virt: interconnect-0 {
+ compatible = "qcom,hawi-clk-virt";
+ #interconnect-cells = <2>;
+ qcom,bcm-voters = <&apps_bcm_voter>;
+ };
+
+ aggre_noc: interconnect@f00000 {
+ compatible = "qcom,hawi-aggre1-noc";
+ reg = <0x0 0xf00000 0x0 0x54400>;
+ #interconnect-cells = <2>;
+ clocks = <&gcc_aggre_ufs_phy_axi_clk>,
+ <&gcc_aggre_usb3_prim_axi_clk>,
+ <&rpmhcc_ipa_clk>;
+ qcom,bcm-voters = <&apps_bcm_voter>;
+ };
+ };
diff --git a/include/dt-bindings/interconnect/qcom,hawi-rpmh.h b/include/dt-bindings/interconnect/qcom,hawi-rpmh.h
new file mode 100644
index 000000000000..a018248ac6b8
--- /dev/null
+++ b/include/dt-bindings/interconnect/qcom,hawi-rpmh.h
@@ -0,0 +1,164 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_HAWI_H
+#define __DT_BINDINGS_INTERCONNECT_QCOM_HAWI_H
+
+#define MASTER_QSPI_0 0
+#define MASTER_QUP_2 1
+#define MASTER_QUP_3 2
+#define MASTER_QUP_4 3
+#define MASTER_CRYPTO 4
+#define MASTER_IPA 5
+#define MASTER_QUP_1 6
+#define MASTER_SOCCP_PROC 7
+#define MASTER_QDSS_ETR 8
+#define MASTER_QDSS_ETR_1 9
+#define MASTER_SDCC_2 10
+#define MASTER_SDCC_4 11
+#define MASTER_UFS_MEM 12
+#define MASTER_USB3 13
+#define SLAVE_A1NOC_SNOC 14
+
+#define MASTER_DDR_EFF_VETO 0
+#define MASTER_QUP_CORE_0 1
+#define MASTER_QUP_CORE_1 2
+#define MASTER_QUP_CORE_2 3
+#define MASTER_QUP_CORE_3 4
+#define MASTER_QUP_CORE_4 5
+#define SLAVE_DDR_EFF_VETO 6
+#define SLAVE_QUP_CORE_0 7
+#define SLAVE_QUP_CORE_1 8
+#define SLAVE_QUP_CORE_2 9
+#define SLAVE_QUP_CORE_3 10
+#define SLAVE_QUP_CORE_4 11
+
+#define MASTER_GEM_NOC_CNOC 0
+#define MASTER_GEM_NOC_PCIE_SNOC 1
+#define SLAVE_AOSS 2
+#define SLAVE_IPA_CFG 3
+#define SLAVE_IPC_ROUTER_FENCE 4
+#define SLAVE_SOCCP 5
+#define SLAVE_TME_CFG 6
+#define SLAVE_CNOC_CFG 7
+#define SLAVE_DDRSS_CFG 8
+#define SLAVE_IMEM 9
+#define SLAVE_PCIE_0 10
+
+#define MASTER_GIC 0
+#define MASTER_GPU_TCU 1
+#define MASTER_SYS_TCU 2
+#define MASTER_APPSS_PROC 3
+#define MASTER_GFX3D 4
+#define MASTER_LPASS_GEM_NOC 5
+#define MASTER_MSS_PROC 6
+#define MASTER_MNOC_HF_MEM_NOC 7
+#define MASTER_MNOC_SF_MEM_NOC 8
+#define MASTER_COMPUTE_NOC 9
+#define MASTER_ANOC_PCIE_GEM_NOC 10
+#define MASTER_QPACE 11
+#define MASTER_SNOC_SF_MEM_NOC 12
+#define MASTER_WLAN_Q6 13
+#define SLAVE_GEM_NOC_CNOC 14
+#define SLAVE_LLCC 15
+#define SLAVE_MEM_NOC_PCIE_SNOC 16
+
+#define MASTER_LPIAON_NOC_LLCLPI_NOC 0
+#define SLAVE_LPASS_LPI_CC 1
+#define SLAVE_LLCC_ISLAND 2
+#define SLAVE_SERVICE_LLCLPI_NOC 3
+#define SLAVE_SERVICE_LLCLPI_NOC_CHIPCX 4
+
+#define MASTER_LPIAON_NOC 0
+#define SLAVE_LPASS_GEM_NOC 1
+
+#define MASTER_LPASS_LPINOC 0
+#define SLAVE_LPIAON_NOC_LLCLPI_NOC 1
+#define SLAVE_LPIAON_NOC_LPASS_AG_NOC 2
+
+#define MASTER_LPASS_PROC 0
+#define SLAVE_LPICX_NOC_LPIAON_NOC 1
+
+#define MASTER_LLCC 0
+#define MASTER_DDR_RT 1
+#define SLAVE_EBI1 2
+#define SLAVE_DDR_RT 3
+
+#define MASTER_CAMNOC_HF 0
+#define MASTER_CAMNOC_NRT_ICP_SF 1
+#define MASTER_CAMNOC_RT_CDM_SF 2
+#define MASTER_CAMNOC_SF 3
+#define MASTER_MDP 4
+#define MASTER_MDSS_DCP 5
+#define MASTER_CDSP_HCP 6
+#define MASTER_VIDEO_CV_PROC 7
+#define MASTER_VIDEO_EVA 8
+#define MASTER_VIDEO_MVP 9
+#define MASTER_VIDEO_V_PROC 10
+#define SLAVE_MNOC_HF_MEM_NOC 11
+#define SLAVE_MNOC_SF_MEM_NOC 12
+
+#define MASTER_CDSP_PROC 0
+#define SLAVE_CDSP_MEM_NOC 1
+
+#define MASTER_PCIE_ANOC_CFG 0
+#define MASTER_PCIE_0 1
+#define MASTER_PCIE_1 2
+#define SLAVE_ANOC_PCIE_GEM_NOC 3
+#define SLAVE_SERVICE_PCIE_ANOC 4
+
+#define MASTER_CFG_CENTER 0
+#define MASTER_CFG_EAST 1
+#define MASTER_CFG_MM 2
+#define MASTER_CFG_NORTH 3
+#define MASTER_CFG_SOUTH 4
+#define MASTER_CFG_SOUTHWEST 5
+#define SLAVE_AHB2PHY_SOUTH 6
+#define SLAVE_BOOT_ROM 7
+#define SLAVE_CAMERA_CFG 8
+#define SLAVE_CLK_CTL 9
+#define SLAVE_CRYPTO_CFG 10
+#define SLAVE_DISPLAY_CFG 11
+#define SLAVE_EVA_CFG 12
+#define SLAVE_GFX3D_CFG 13
+#define SLAVE_I2C 14
+#define SLAVE_IMEM_CFG 15
+#define SLAVE_IPC_ROUTER_CFG 16
+#define SLAVE_IRIS_CFG 17
+#define SLAVE_CNOC_MSS 18
+#define SLAVE_PCIE_0_CFG 19
+#define SLAVE_PCIE_1_CFG 20
+#define SLAVE_PRNG 21
+#define SLAVE_QSPI_0 22
+#define SLAVE_QUP_1 23
+#define SLAVE_QUP_2 24
+#define SLAVE_QUP_3 25
+#define SLAVE_QUP_4 26
+#define SLAVE_SDCC_2 27
+#define SLAVE_SDCC_4 28
+#define SLAVE_TLMM 29
+#define SLAVE_UFS_MEM_CFG 30
+#define SLAVE_USB3 31
+#define SLAVE_VSENSE_CTRL_CFG 32
+#define SLAVE_PCIE_ANOC_CFG 33
+#define SLAVE_QDSS_CFG 34
+#define SLAVE_QDSS_STM 35
+#define SLAVE_TCSR 36
+#define SLAVE_TCU 37
+
+#define MASTER_CNOC_STARDUST 0
+#define SLAVE_STARDUST_CENTER_CFG 1
+#define SLAVE_STARDUST_EAST_CFG 2
+#define SLAVE_STARDUST_MM_CFG 3
+#define SLAVE_STARDUST_NORTH_CFG 4
+#define SLAVE_STARDUST_SOUTH_CFG 5
+#define SLAVE_STARDUST_SOUTHWEST_CFG 6
+
+#define MASTER_A1NOC_SNOC 0
+#define MASTER_APSS_NOC 1
+#define MASTER_CNOC_SNOC 2
+#define SLAVE_SNOC_GEM_NOC_SF 3
+
+#endif
--
2.34.1
^ permalink raw reply related
* [PATCH v3 0/2] interconnect: qcom: Add support for upcoming Hawi SoC
From: Vivek Aknurwar @ 2026-04-09 21:01 UTC (permalink / raw)
To: Georgi Djakov, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-pm, devicetree, linux-kernel, Mike Tipton,
Vivek Aknurwar, Konrad Dybcio, Dmitry Baryshkov,
Krzysztof Kozlowski
Add interconnect bindings and RPMh-based interconnect
driver support for the upcoming Qualcomm Hawi SoC.
Signed-off-by: Vivek Aknurwar <vivek.aknurwar@oss.qualcomm.com>
---
Changes in v3:
- Fix alignment of macros in the binding header.
- Update binding header commit summary and description to mention
Qualcomm SoC
- Collected missing Reviewed-bys.
- Link to v2: https://lore.kernel.org/r/20260406-icc-hawi-v2-0-6cfee87a1d25@oss.qualcomm.com
Changes in v2:
- Fix warning reported by dt_binding_check.
- Collected Acked-bys
- Link to v1: https://lore.kernel.org/r/20260330-icc-hawi-v1-0-4b54a9e7d38c@oss.qualcomm.com
---
Vivek Aknurwar (2):
dt-bindings: interconnect: qcom: document the RPMh NoC for Hawi SoC
interconnect: qcom: add Hawi interconnect provider driver
.../bindings/interconnect/qcom,hawi-rpmh.yaml | 131 ++
drivers/interconnect/qcom/Kconfig | 9 +
drivers/interconnect/qcom/Makefile | 2 +
drivers/interconnect/qcom/hawi.c | 2021 ++++++++++++++++++++
include/dt-bindings/interconnect/qcom,hawi-rpmh.h | 164 ++
5 files changed, 2327 insertions(+)
---
base-commit: e3b32dcb9f23e3c3927ef3eec6a5842a988fb574
change-id: 20260311-icc-hawi-d6dc165f8935
Best regards,
--
Vivek Aknurwar <vivek.aknurwar@oss.qualcomm.com>
^ permalink raw reply
* Re: [GIT PULL] pmdomain fixes for v7.0-rc8
From: pr-tracker-bot @ 2026-04-09 20:57 UTC (permalink / raw)
To: Ulf Hansson; +Cc: Linus, linux-pm, linux-kernel, Ulf Hansson, linux-arm-kernel
In-Reply-To: <20260409150950.28527-1-ulf.hansson@linaro.org>
The pull request you sent on Thu, 9 Apr 2026 17:09:50 +0200:
> git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm.git tags/pmdomain-v7.0-rc6
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/d58305b2dbe3434c9b21ede210329b97c44ee9e8
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply
* [GIT PULL] thermal drivers changes for v7.1-rc1
From: Daniel Lezcano @ 2026-04-09 20:18 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Linux Kernel Mailing List, Linux PM mailing list, Alexander Stein,
Thorsten Blum, Richard Acayan, Manaf Meethalavalappu Pallikunhi,
Krzysztof Kozlowski, Gopi Krishna Menon, John Madieu
Hi Rafael,
The following changes since commit 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681:
Linux 7.0-rc3 (2026-03-08 16:56:54 -0700)
are available in the Git repository at:
ssh://git@gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git
tags/thermal-v7.1-rc1
for you to fetch changes up to bf746e2a41efd98668c97759e06d436ae5af5a82:
thermal: renesas: rzg3e: Remove stale @trim_offset kernel-doc entry
(2026-04-09 21:47:15 +0200)
----------------------------------------------------------------
- Added an OF node address to output message to make sensor names more
distinguishable (Alexander Stein)
- Added hwmon support for the i.MX97 thermal sensor (Alexander Stein)
- Clamped correctly the results when doing value/temperature conversion
in the Spreadtrum driver (Thorsten Blum)
- Added the SDM670 compatible DT bindings for the Tsens and the lMH
drivers (Richard Acayan)
- Added the SM8750 compatible DT bindings for the Tsens (Manaf
Meethalavalappu Pallikunhi)
- Added the Eliza SoC compatible DT bindings for the Tsens (Krzysztof
Kozlowski)
- Fixed inverted condition check on error in the Spear driver (Gopi
Krishna Menon)
- Converted the DT bindings documentation into DT schema (Gopi Krishna
Menon)
- Used max() macro to increase readibility in the Broadcom STB thermal
sensor (Thorsten Blum)
- Removed stale @trim_offset kernel-doc entry (John Madieu)
----------------------------------------------------------------
Alexander Stein (2):
thermal/of: Add OF node address to output message
thermal/drivers/imx91: Add hwmon support
Gopi Krishna Menon (2):
thermal/drivers/spear: Fix error condition for reading
st,thermal-flags
dt-bindings: thermal: st,thermal-spear1340: convert to dtschema
John Madieu (1):
thermal: renesas: rzg3e: Remove stale @trim_offset kernel-doc entry
Krzysztof Kozlowski (1):
dt-bindings: thermal: qcom-tsens: Add Eliza SoC TSENS
Manaf Meethalavalappu Pallikunhi (1):
dt-bindings: thermal: qcom-tsens: Document the SM8750 Temperature
Sensor
Richard Acayan (2):
dt-bindings: thermal: tsens: add SDM670 compatible
dt-bindings: thermal: lmh: Add SDM670 compatible
Thorsten Blum (4):
thermal/drivers/sprd: Fix temperature clamping in
sprd_thm_temp_to_rawdata
thermal/drivers/sprd: Fix raw temperature clamping in
sprd_thm_rawdata_to_temp
thermal/drivers/sprd: Use min instead of clamp in
sprd_thm_temp_to_rawdata
thermal/drivers/brcmstb_thermal: Use max to simplify brcmstb_get_temp
.../devicetree/bindings/thermal/qcom-lmh.yaml | 3 ++
.../devicetree/bindings/thermal/qcom-tsens.yaml | 3 ++
.../devicetree/bindings/thermal/spear-thermal.txt | 14 ---------
.../bindings/thermal/st,thermal-spear1340.yaml | 36
++++++++++++++++++++++
drivers/thermal/broadcom/brcmstb_thermal.c | 8 ++---
drivers/thermal/imx91_thermal.c | 4 +++
drivers/thermal/renesas/rzg3e_thermal.c | 1 -
drivers/thermal/spear_thermal.c | 2 +-
drivers/thermal/sprd_thermal.c | 6 ++--
drivers/thermal/thermal_of.c | 20 ++++++------
10 files changed, 63 insertions(+), 34 deletions(-)
delete mode 100644
Documentation/devicetree/bindings/thermal/spear-thermal.txt
create mode 100644
Documentation/devicetree/bindings/thermal/st,thermal-spear1340.yaml
^ permalink raw reply
* Re: [patch V2 09/11] power: supply: charger-manager: Switch to alarm_start_timer()
From: Sebastian Reichel @ 2026-04-09 19:20 UTC (permalink / raw)
To: Thomas Gleixner
Cc: LKML, linux-pm, Calvin Owens, Anna-Maria Behnsen,
Frederic Weisbecker, Peter Zijlstra (Intel), John Stultz,
Stephen Boyd, Alexander Viro, Christian Brauner, Jan Kara,
linux-fsdevel, Pablo Neira Ayuso, Florian Westphal, Phil Sutter,
netfilter-devel, coreteam
In-Reply-To: <20260408114952.536945376@kernel.org>
[-- Attachment #1: Type: text/plain, Size: 1730 bytes --]
Hi,
On Wed, Apr 08, 2026 at 01:54:24PM +0200, Thomas Gleixner wrote:
> The existing alarm_start() interface is replaced with the new
> alarm_start_timer() mechanism, which does not longer queue an already
> expired timer and returns the state. Adjust the code to utilize this.
>
> No functional change intended.
>
> Signed-off-by: Thomas Gleixner <tglx@kernel.org>
> Cc: Sebastian Reichel <sre@kernel.org>
> Cc: linux-pm@vger.kernel.org
> ---
> V2: Rename to alarm_start_timer()
> ---
Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Greetings,
-- Sebastian
> drivers/power/supply/charger-manager.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
> --- a/drivers/power/supply/charger-manager.c
> +++ b/drivers/power/supply/charger-manager.c
> @@ -881,7 +881,7 @@ static bool cm_setup_timer(void)
> mutex_unlock(&cm_list_mtx);
>
> if (timer_req && cm_timer) {
> - ktime_t now, add;
> + ktime_t exp;
>
> /*
> * Set alarm with the polling interval (wakeup_ms)
> @@ -893,14 +893,16 @@ static bool cm_setup_timer(void)
>
> pr_info("Charger Manager wakeup timer: %u ms\n", wakeup_ms);
>
> - now = ktime_get_boottime();
> - add = ktime_set(wakeup_ms / MSEC_PER_SEC,
> + exp = ktime_set(wakeup_ms / MSEC_PER_SEC,
> (wakeup_ms % MSEC_PER_SEC) * NSEC_PER_MSEC);
> - alarm_start(cm_timer, ktime_add(now, add));
>
> cm_suspend_duration_ms = wakeup_ms;
>
> - return true;
> + /*
> + * The timer should always be queued as the timeout is at least
> + * two seconds out. Handle it correctly nevertheless.
> + */
> + return alarm_start_timer(cm_timer, exp, true);
> }
> return false;
> }
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply
* Re: [BUG] Lenovo 83JL / WD SN7100S: intermittent loss of secondary NVMe after s2idle resume, root port 00:02.1 retraining fails
From: Jacopo Labardi @ 2026-04-09 19:18 UTC (permalink / raw)
To: Bjorn Helgaas; +Cc: linux-nvme, linux-pci, linux-pm
In-Reply-To: <20260409190515.GA407093@bhelgaas>
Bjorn,
Thanks. Below are the redacted logs from the reproducer boot. In that
specific run the failure occurred on the third suspend/resume cycle,
but the issue is intermittent in general and may happen on the first
cycle or only after several cycles.
Redactions are limited to:
- system serial number
- SMBIOS UUID
- root filesystem UUID
- hostname
- Wi-Fi MAC/BSSID
- NVMe serial numbers
===== uname =====
### COMMAND: uname -a
Linux <HOST> 6.19.11-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 02 Apr 2026
23:33:01 +0000 x86_64 GNU/Linux
===== root_cmdline =====
### COMMAND: cat /proc/cmdline
quiet nowatchdog rw rootflags=subvol=/@ rootfstype=btrfs
root=UUID=<ROOT_UUID> amd_pstate=active iommu=pt i8042.nopnp
loglevel=3 8250.nr_uarts=0 tpm_tis.interrupts=0 random.trust_cpu=on
snd_hda_intel.power_save=10 snd_hda_intel.power_save_controller=Y
===== kernel_tainted =====
### COMMAND: cat /proc/sys/kernel/tainted
0
===== mem_sleep =====
### COMMAND: cat /sys/power/mem_sleep
[s2idle]
===== pacman_versions =====
### COMMAND: pacman -Q linux linux-headers linux-cachyos
linux-cachyos-headers acpi_call-dkms
linux 6.19.11.arch1-1
linux-headers 6.19.11.arch1-1
linux-cachyos 6.19.11-1
linux-cachyos-headers 6.19.11-1
acpi_call-dkms 1.2.2-3
===== nvme_list =====
### COMMAND: nvme list
Node Generic SN Model
Namespace Usage
Format FW Rev
--------------------- --------------------- --------------------
---------------------------------------- ----------
-------------------------- ---------------- --------
/dev/nvme0n1 /dev/ng0n1 <LEXAR_SN> Lexar SSD
NM790 2TB 0x1 2.05 TB / 2.05 TB
512 B + 0 B 18950
===== lspci_rootport =====
### COMMAND: lspci -nnvv -s 00:02.1
00:02.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device
[1022:1126] (prog-if 00 [Normal decode])
Subsystem: Advanced Micro Devices, Inc. [AMD] Device [1022:1453]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupts: MSI(X) routed to IRQ 32
IOMMU group: 5
Bus: primary=00, secondary=bf, subordinate=bf, sec-latency=0
I/O behind bridge: [disabled] [32-bit]
Memory behind bridge: 90c00000-90cfffff [size=1M] [32-bit]
Prefetchable memory behind bridge: [disabled] [64-bit]
Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- <SERR- <PERR-
BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: <access denied>
Kernel driver in use: pcieport
Kernel modules: shpchp
===== lspci_wd =====
### COMMAND: lspci -nnvv -s bf:00.0
bf:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD PC
SN7100S M.2 2242 NVMe SSD (DRAM-less) [15b7:5044] (rev 01) (prog-if 02
[NVM Express])
Subsystem: Sandisk Corp WD PC SN7100S M.2 2242 NVMe SSD
(DRAM-less) [15b7:5044]
!!! Unknown header type 7f
IOMMU group: 16
Region 0: Memory at 90c00000 (64-bit, non-prefetchable) [size=16K]
Kernel driver in use: nvme
Kernel modules: nvme
===== lspci_tree =====
### COMMAND: lspci -tv
-[0000:00]-+-00.0 Advanced Micro Devices, Inc. [AMD] Krackan Root Complex
+-00.2 Advanced Micro Devices, Inc. [AMD] Krackan IOMMU
+-01.0 Advanced Micro Devices, Inc. [AMD] Device 1124
+-01.1-[01-5f]--
+-01.2-[60-be]--
+-02.0 Advanced Micro Devices, Inc. [AMD] Device 1124
+-02.1-[bf]----00.0 Sandisk Corp WD PC SN7100S M.2 2242
NVMe SSD (DRAM-less)
+-02.2-[c0]----00.0 O2 Micro, Inc. OZ711 SD/MMC Card
Reader Controller
+-02.3-[c1]----00.0 Intel Corporation Wi-Fi 6E(802.11ax)
AX210/AX1675* 2x2 [Typhoon Peak]
+-03.0 Advanced Micro Devices, Inc. [AMD] Device 1124
+-03.2-[c2]----00.0 Shenzhen Longsys Electronics Co., Ltd.
Lexar NM790 / Patriot Viper VP4300 Lite NVMe SSD (DRAM-less)
+-08.0 Advanced Micro Devices, Inc. [AMD] Device 1124
+-08.1-[c3]--+-00.0 Advanced Micro Devices, Inc. [AMD/ATI]
Krackan [Radeon 840M / 860M Graphics]
| +-00.1 Advanced Micro Devices, Inc. [AMD/ATI]
Radeon High Definition Audio Controller
| +-00.2 Advanced Micro Devices, Inc. [AMD]
Strix/Krackan/Strix Halo CCP/ASP
| +-00.4 Advanced Micro Devices, Inc. [AMD] Device 1128
| +-00.5 Advanced Micro Devices, Inc. [AMD]
Audio Coprocessor
| \-00.6 Advanced Micro Devices, Inc. [AMD]
Ryzen HD Audio Controller
+-08.2-[c4]--+-00.0 Advanced Micro Devices, Inc. [AMD]
Krackan PCIe Dummy Function
| \-00.1 Advanced Micro Devices, Inc. [AMD]
Strix/Krackan/Strix Halo Neural Processing Unit
+-08.3-[c5]--+-00.0 Advanced Micro Devices, Inc. [AMD] Device 1118
| +-00.3 Advanced Micro Devices, Inc. [AMD] Device 111c
| +-00.4 Advanced Micro Devices, Inc. [AMD] Device 111e
| +-00.5 Advanced Micro Devices, Inc. [AMD] Device 1120
| \-00.6 Advanced Micro Devices, Inc. [AMD] Device 1121
+-14.0 Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller
+-14.3 Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge
+-18.0 Advanced Micro Devices, Inc. [AMD] Krackan Data
Fabric; Function 0
+-18.1 Advanced Micro Devices, Inc. [AMD] Krackan Data
Fabric; Function 1
+-18.2 Advanced Micro Devices, Inc. [AMD] Krackan Data
Fabric; Function 2
+-18.3 Advanced Micro Devices, Inc. [AMD] Krackan Data
Fabric; Function 3
+-18.4 Advanced Micro Devices, Inc. [AMD] Krackan Data
Fabric; Function 4
+-18.5 Advanced Micro Devices, Inc. [AMD] Krackan Data
Fabric; Function 5
+-18.6 Advanced Micro Devices, Inc. [AMD] Krackan Data
Fabric; Function 6
\-18.7 Advanced Micro Devices, Inc. [AMD] Krackan Data
Fabric; Function 7
===== journal_suspend_current =====
### COMMAND: sudo journalctl -b -u systemd-suspend.service --no-pager
apr 09 16:23:10 <HOST> systemd[1]: Starting System Suspend...
apr 09 16:23:10 <HOST> systemd-sleep[3579]: Successfully froze unit
'user.slice'.
apr 09 16:23:10 <HOST> systemd-sleep[3579]: Performing sleep operation
'suspend'...
apr 09 16:23:37 <HOST> systemd-sleep[3579]: System returned from sleep
operation 'suspend'.
apr 09 16:23:37 <HOST> systemd-sleep[3579]: Successfully thawed unit
'user.slice'.
apr 09 16:23:37 <HOST> systemd[1]: systemd-suspend.service:
Deactivated successfully.
apr 09 16:23:37 <HOST> systemd[1]: Finished System Suspend.
apr 09 16:24:10 <HOST> systemd[1]: Starting System Suspend...
apr 09 16:24:10 <HOST> systemd-sleep[3861]: Successfully froze unit
'user.slice'.
apr 09 16:24:10 <HOST> systemd-sleep[3861]: Performing sleep operation
'suspend'...
apr 09 16:24:14 <HOST> systemd-sleep[3861]: System returned from sleep
operation 'suspend'.
apr 09 16:24:14 <HOST> systemd-sleep[3861]: Successfully thawed unit
'user.slice'.
apr 09 16:24:14 <HOST> systemd[1]: systemd-suspend.service:
Deactivated successfully.
apr 09 16:24:14 <HOST> systemd[1]: Finished System Suspend.
apr 09 16:24:34 <HOST> systemd[1]: Starting System Suspend...
apr 09 16:24:34 <HOST> systemd-sleep[4078]: Successfully froze unit
'user.slice'.
apr 09 16:24:34 <HOST> systemd-sleep[4078]: Performing sleep operation
'suspend'...
apr 09 16:24:54 <HOST> systemd-sleep[4078]: System returned from sleep
operation 'suspend'.
apr 09 16:24:54 <HOST> systemd-sleep[4078]: Successfully thawed unit
'user.slice'.
apr 09 16:24:54 <HOST> systemd[1]: systemd-suspend.service:
Deactivated successfully.
apr 09 16:24:54 <HOST> systemd[1]: Finished System Suspend.
===== journal_kernel_current =====
### COMMAND: sudo journalctl -k -b --no-pager
apr 09 16:19:36 archlinux kernel: Linux version 6.19.11-arch1-1
(linux@archlinux) (gcc (GCC) 15.2.1 20260209, GNU ld (GNU Binutils)
2.46) #1 SMP PREEMPT_DYNAMIC Thu, 02 Apr 2026 23:33:01 +0000
apr 09 16:19:36 archlinux kernel: Command line: quiet nowatchdog rw
rootflags=subvol=/@ rootfstype=btrfs root=UUID=<ROOT_UUID>
amd_pstate=active iommu=pt i8042.nopnp loglevel=3 8250.nr_uarts=0
tpm_tis.interrupts=0 random.trust_cpu=on snd_hda_intel.power_save=10
snd_hda_intel.power_save_controller=Y
apr 09 16:19:36 archlinux kernel: x86/split lock detection: #DB:
warning on user-space bus_locks
apr 09 16:19:36 archlinux kernel: BIOS-provided physical RAM map:
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000000000000-0x000000000009efff] usable
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000000009f000-0x00000000000fffff] reserved
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000000100000-0x0000000009afffff] usable
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000009b00000-0x0000000009dfffff] reserved
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000009e00000-0x0000000009efffff] usable
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000009f00000-0x0000000009f3bfff] ACPI NVS
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000009f3c000-0x000000006894dfff] usable
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000006894e000-0x000000006ab4dfff] reserved
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000006ab4e000-0x000000006ab66fff] usable
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000006ab67000-0x000000006ab6cfff] reserved
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000006ab6d000-0x000000006ab6efff] usable
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000006ab6f000-0x000000006ab6ffff] reserved
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000006ab70000-0x0000000076d7efff] usable
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000076d7f000-0x000000007977efff] reserved
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000007977f000-0x0000000079f7efff] ACPI NVS
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000079f7f000-0x0000000079ffefff] ACPI data
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000079fff000-0x0000000079ffffff] usable
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000007a000000-0x000000007bffffff] reserved
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x000000007d675000-0x00000000ffffffff] reserved
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x0000000100000000-0x00000007fe27ffff] usable
apr 09 16:19:36 archlinux kernel: BIOS-e820: [mem
0x00000007fe280000-0x00000008a01fffff] reserved
apr 09 16:19:36 archlinux kernel: NX (Execute Disable) protection: active
apr 09 16:19:36 archlinux kernel: APIC: Static calls initialized
apr 09 16:19:36 archlinux kernel: efi: EFI v2.9 by INSYDE Corp.
apr 09 16:19:36 archlinux kernel: efi: ACPI=0x79ffe000 ACPI
2.0=0x79ffe014 TPMFinalLog=0x79f3e000 SMBIOS=0x77e6e000 SMBIOS
3.0=0x77e6b000 MEMATTR=0x7236a018 ESRT=0x72396a98
apr 09 16:19:36 archlinux kernel: efi: [Firmware Bug]: Invalid EFI
memory map entries:
apr 09 16:19:36 archlinux kernel: efi: mem65:
[type=1605912689|attr=0xed5d4358e11d435c]
range=[0xee55f47ae215f47e-0xd66cb75821dbf35b47d] (invalid)
apr 09 16:19:36 archlinux kernel: efi: mem66:
[type=1159884594|attr=0xcd65669ac125669e]
range=[0x4a6ad814462ad810-0xf65a9ae87b5a56eb80f] (invalid)
apr 09 16:19:36 archlinux kernel: efi: Removing 2 invalid memory map entries.
apr 09 16:19:36 archlinux kernel: efi: Remove mem62: MMIO
range=[0x80000000-0xffffffff] (2048MB) from e820 map
apr 09 16:19:36 archlinux kernel: e820: remove [mem
0x80000000-0xffffffff] reserved
apr 09 16:19:36 archlinux kernel: efi: Remove mem64: MMIO
range=[0x880000000-0x8a01fffff] (514MB) from e820 map
apr 09 16:19:36 archlinux kernel: e820: remove [mem
0x880000000-0x8a01fffff] reserved
apr 09 16:19:36 archlinux kernel: SMBIOS 3.3.0 present.
apr 09 16:19:36 archlinux kernel: DMI: LENOVO 83JL/LNVNB161216, BIOS
QKCN29WW 12/23/2025
apr 09 16:19:36 archlinux kernel: DMI: Memory slots populated: 4/4
apr 09 16:19:36 archlinux kernel: tsc: Fast TSC calibration using PIT
apr 09 16:19:36 archlinux kernel: tsc: Detected 1996.356 MHz processor
apr 09 16:19:36 archlinux kernel: e820: update [mem
0x00000000-0x00000fff] usable ==> reserved
apr 09 16:19:36 archlinux kernel: e820: remove [mem
0x000a0000-0x000fffff] usable
apr 09 16:19:36 archlinux kernel: last_pfn = 0x7fe280 max_arch_pfn = 0x400000000
apr 09 16:19:36 archlinux kernel: MTRR map: 8 entries (3 fixed + 5
variable; max 20), built from 9 variable MTRRs
apr 09 16:19:36 archlinux kernel: x86/PAT: Configuration [0-7]: WB WC
UC- UC WB WP UC- WT
apr 09 16:19:36 archlinux kernel: last_pfn = 0x7a000 max_arch_pfn = 0x400000000
apr 09 16:19:36 archlinux kernel: esrt: Reserving ESRT space from
0x0000000072396a98 to 0x0000000072396b98.
apr 09 16:19:36 archlinux kernel: e820: update [mem
0x72396000-0x72396fff] usable ==> reserved
apr 09 16:19:36 archlinux kernel: Using GB pages for direct mapping
apr 09 16:19:36 archlinux kernel: Secure boot could not be determined
apr 09 16:19:36 archlinux kernel: RAMDISK: [mem 0x5d100000-0x60f2afff]
apr 09 16:19:36 archlinux kernel: ACPI: Early table checksum
verification disabled
apr 09 16:19:36 archlinux kernel: ACPI: RSDP 0x0000000079FFE014 000024
(v02 LENOVO)
apr 09 16:19:36 archlinux kernel: ACPI: XSDT 0x0000000079F9F228 0001CC
(v01 LENOVO CB-01 00000001 01000013)
apr 09 16:19:36 archlinux kernel: ACPI: FACP 0x0000000079FDE000 000114
(v06 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: DSDT 0x0000000079FB4000 0091FB
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: FACS 0x0000000079EB1000 000040
apr 09 16:19:36 archlinux kernel: ACPI: UEFI 0x0000000079F66000 0001CF
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FFC000 000103
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FEF000 00C922
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FEE000 00094F
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FED000 000033
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FEB000 001011
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FE3000 007F18
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FE2000 00033E
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: MSDM 0x0000000079FE1000 000055
(v03 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: ASF! 0x0000000079FE0000 0000A5
(v32 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: BOOT 0x0000000079FDF000 000028
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: HPET 0x0000000079FDD000 000038
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: MCFG 0x0000000079FDC000 00003C
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SLIC 0x0000000079FDB000 000176
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: APIC 0x0000000079FCF000 0000EA
(v06 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: VFCT 0x0000000079FC9000 005484
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: ABLT 0x0000000079FC8000 0002C2
(v00 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FFD000 0000FA
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SDEV 0x0000000079FC6000 000144
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FC5000 00021A
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: PCCT 0x0000000079FC4000 0000D4
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FBE000 00547E
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FD8000 000D54
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FD6000 001504
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FD5000 000A70
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FD3000 001DB7
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FD2000 0006CD
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FD1000 000CA9
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FB1000 002AA6
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FA7000 009A53
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: FPDT 0x0000000079FD0000 000044
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: BGRT 0x0000000079FA6000 000038
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: WSMT 0x0000000079FA5000 000028
(v01 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: TPM2 0x0000000079FDA000 000050
(v05 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FA3000 001B4C
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FD9000 00010D
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FA2000 000051
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: IVRS 0x0000000079FA1000 0001F6
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FA0000 000B9B
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079FC7000 000D1E
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F9E000 000D1E
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F9D000 0004AE
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F9B000 00192F
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F9A000 000500
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F99000 000813
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F97000 00101C
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F8D000 0097CD
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F88000 004606
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F87000 0008DF
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F86000 00096A
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F85000 00008D
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: SSDT 0x0000000079F84000 000F5C
(v02 LENOVO CB-01 00000001 ACPI 00040000)
apr 09 16:19:36 archlinux kernel: ACPI: Reserving FACP table memory at
[mem 0x79fde000-0x79fde113]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving DSDT table memory at
[mem 0x79fb4000-0x79fbd1fa]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving FACS table memory at
[mem 0x79eb1000-0x79eb103f]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving UEFI table memory at
[mem 0x79f66000-0x79f661ce]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79ffc000-0x79ffc102]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fef000-0x79ffb921]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fee000-0x79fee94e]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fed000-0x79fed032]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79feb000-0x79fec010]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fe3000-0x79feaf17]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fe2000-0x79fe233d]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving MSDM table memory at
[mem 0x79fe1000-0x79fe1054]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving ASF! table memory at
[mem 0x79fe0000-0x79fe00a4]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving BOOT table memory at
[mem 0x79fdf000-0x79fdf027]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving HPET table memory at
[mem 0x79fdd000-0x79fdd037]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving MCFG table memory at
[mem 0x79fdc000-0x79fdc03b]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SLIC table memory at
[mem 0x79fdb000-0x79fdb175]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving APIC table memory at
[mem 0x79fcf000-0x79fcf0e9]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving VFCT table memory at
[mem 0x79fc9000-0x79fce483]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving ABLT table memory at
[mem 0x79fc8000-0x79fc82c1]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79ffd000-0x79ffd0f9]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SDEV table memory at
[mem 0x79fc6000-0x79fc6143]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fc5000-0x79fc5219]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving PCCT table memory at
[mem 0x79fc4000-0x79fc40d3]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fbe000-0x79fc347d]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fd8000-0x79fd8d53]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fd6000-0x79fd7503]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fd5000-0x79fd5a6f]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fd3000-0x79fd4db6]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fd2000-0x79fd26cc]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fd1000-0x79fd1ca8]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fb1000-0x79fb3aa5]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fa7000-0x79fb0a52]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving FPDT table memory at
[mem 0x79fd0000-0x79fd0043]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving BGRT table memory at
[mem 0x79fa6000-0x79fa6037]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving WSMT table memory at
[mem 0x79fa5000-0x79fa5027]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving TPM2 table memory at
[mem 0x79fda000-0x79fda04f]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fa3000-0x79fa4b4b]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fd9000-0x79fd910c]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fa2000-0x79fa2050]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving IVRS table memory at
[mem 0x79fa1000-0x79fa11f5]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fa0000-0x79fa0b9a]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79fc7000-0x79fc7d1d]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f9e000-0x79f9ed1d]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f9d000-0x79f9d4ad]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f9b000-0x79f9c92e]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f9a000-0x79f9a4ff]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f99000-0x79f99812]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f97000-0x79f9801b]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f8d000-0x79f967cc]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f88000-0x79f8c605]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f87000-0x79f878de]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f86000-0x79f86969]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f85000-0x79f8508c]
apr 09 16:19:36 archlinux kernel: ACPI: Reserving SSDT table memory at
[mem 0x79f84000-0x79f84f5b]
apr 09 16:19:36 archlinux kernel: No NUMA configuration found
apr 09 16:19:36 archlinux kernel: Faking a node at [mem
0x0000000000000000-0x00000007fe27ffff]
apr 09 16:19:36 archlinux kernel: NODE_DATA(0) allocated [mem
0x7fe255280-0x7fe27ffff]
apr 09 16:19:36 archlinux kernel: Zone ranges:
apr 09 16:19:36 archlinux kernel: DMA [mem
0x0000000000001000-0x0000000000ffffff]
apr 09 16:19:36 archlinux kernel: DMA32 [mem
0x0000000001000000-0x00000000ffffffff]
apr 09 16:19:36 archlinux kernel: Normal [mem
0x0000000100000000-0x00000007fe27ffff]
apr 09 16:19:36 archlinux kernel: Device empty
apr 09 16:19:36 archlinux kernel: Movable zone start for each node
apr 09 16:19:36 archlinux kernel: Early memory node ranges
apr 09 16:19:36 archlinux kernel: node 0: [mem
0x0000000000001000-0x000000000009efff]
apr 09 16:19:36 archlinux kernel: node 0: [mem
0x0000000000100000-0x0000000009afffff]
apr 09 16:19:36 archlinux kernel: node 0: [mem
0x0000000009e00000-0x0000000009efffff]
apr 09 16:19:36 archlinux kernel: node 0: [mem
0x0000000009f3c000-0x000000006894dfff]
apr 09 16:19:36 archlinux kernel: node 0: [mem
0x000000006ab4e000-0x000000006ab66fff]
apr 09 16:19:36 archlinux kernel: node 0: [mem
0x000000006ab6d000-0x000000006ab6efff]
apr 09 16:19:36 archlinux kernel: node 0: [mem
0x000000006ab70000-0x0000000076d7efff]
apr 09 16:19:36 archlinux kernel: node 0: [mem
0x0000000079fff000-0x0000000079ffffff]
apr 09 16:19:36 archlinux kernel: node 0: [mem
0x0000000100000000-0x00000007fe27ffff]
apr 09 16:19:36 archlinux kernel: Initmem setup node 0 [mem
0x0000000000001000-0x00000007fe27ffff]
apr 09 16:19:36 archlinux kernel: On node 0, zone DMA: 1 pages in
unavailable ranges
apr 09 16:19:36 archlinux kernel: On node 0, zone DMA: 97 pages in
unavailable ranges
apr 09 16:19:36 archlinux kernel: On node 0, zone DMA32: 768 pages in
unavailable ranges
apr 09 16:19:36 archlinux kernel: On node 0, zone DMA32: 60 pages in
unavailable ranges
apr 09 16:19:36 archlinux kernel: On node 0, zone DMA32: 8704 pages in
unavailable ranges
apr 09 16:19:36 archlinux kernel: On node 0, zone DMA32: 6 pages in
unavailable ranges
apr 09 16:19:36 archlinux kernel: On node 0, zone DMA32: 1 pages in
unavailable ranges
apr 09 16:19:36 archlinux kernel: On node 0, zone DMA32: 12928 pages
in unavailable ranges
apr 09 16:19:36 archlinux kernel: On node 0, zone Normal: 24576 pages
in unavailable ranges
apr 09 16:19:36 archlinux kernel: On node 0, zone Normal: 7552 pages
in unavailable ranges
apr 09 16:19:36 archlinux kernel: ACPI: PM-Timer IO Port: 0x408
apr 09 16:19:36 archlinux kernel: ACPI: X2APIC_NMI (uid[0xffffffff]
high level lint[0x1])
apr 09 16:19:36 archlinux kernel: ACPI: LAPIC_NMI (acpi_id[0xff] high
level lint[0x1])
apr 09 16:19:36 archlinux kernel: IOAPIC[0]: apic_id 33, version 33,
address 0xfec00000, GSI 0-23
apr 09 16:19:36 archlinux kernel: IOAPIC[1]: apic_id 34, version 33,
address 0xfd280000, GSI 24-55
apr 09 16:19:36 archlinux kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 0
global_irq 2 dfl dfl)
apr 09 16:19:36 archlinux kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 9
global_irq 9 low level)
apr 09 16:19:36 archlinux kernel: ACPI: Using ACPI (MADT) for SMP
configuration information
apr 09 16:19:36 archlinux kernel: ACPI: HPET id: 0x10228201 base: 0xfed00000
apr 09 16:19:36 archlinux kernel: e820: update [mem
0x70e19000-0x71078fff] usable ==> reserved
apr 09 16:19:36 archlinux kernel: CPU topo: Max. logical packages: 1
apr 09 16:19:36 archlinux kernel: CPU topo: Max. logical nodes: 1
apr 09 16:19:36 archlinux kernel: CPU topo: Num. nodes per package: 1
apr 09 16:19:36 archlinux kernel: CPU topo: Max. logical dies: 1
apr 09 16:19:36 archlinux kernel: CPU topo: Max. dies per package: 1
apr 09 16:19:36 archlinux kernel: CPU topo: Max. threads per core: 2
apr 09 16:19:36 archlinux kernel: CPU topo: Num. cores per package: 8
apr 09 16:19:36 archlinux kernel: CPU topo: Num. threads per package: 16
apr 09 16:19:36 archlinux kernel: CPU topo: Allowing 16 present CPUs
plus 0 hotplug CPUs
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x00000000-0x00000fff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x0009f000-0x000fffff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x09b00000-0x09dfffff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x09f00000-0x09f3bfff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x6894e000-0x6ab4dfff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x6ab67000-0x6ab6cfff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x6ab6f000-0x6ab6ffff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x70e19000-0x71078fff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x72396000-0x72396fff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x76d7f000-0x79ffefff]
apr 09 16:19:36 archlinux kernel: PM: hibernation: Registered nosave
memory: [mem 0x7a000000-0xffffffff]
apr 09 16:19:36 archlinux kernel: [mem 0x80000000-0xffffffff]
available for PCI devices
apr 09 16:19:36 archlinux kernel: Booting paravirtualized kernel on
bare hardware
apr 09 16:19:36 archlinux kernel: clocksource: refined-jiffies: mask:
0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
apr 09 16:19:36 archlinux kernel: setup_percpu: NR_CPUS:8192
nr_cpumask_bits:16 nr_cpu_ids:16 nr_node_ids:1
apr 09 16:19:36 archlinux kernel: percpu: Embedded 63 pages/cpu
s221184 r8192 d28672 u262144
apr 09 16:19:36 archlinux kernel: pcpu-alloc: s221184 r8192 d28672
u262144 alloc=1*2097152
apr 09 16:19:36 archlinux kernel: pcpu-alloc: [0] 00 01 02 03 04 05 06
07 [0] 08 09 10 11 12 13 14 15
apr 09 16:19:36 archlinux kernel: Kernel command line: quiet
nowatchdog rw rootflags=subvol=/@ rootfstype=btrfs
root=UUID=<ROOT_UUID> amd_pstate=active iommu=pt i8042.nopnp
loglevel=3 8250.nr_uarts=0 tpm_tis.interrupts=0 random.trust_cpu=on
snd_hda_intel.power_save=10 snd_hda_intel.power_save_controller=Y
apr 09 16:19:36 archlinux kernel: random: crng init done
apr 09 16:19:36 archlinux kernel: printk: log buffer data + meta data:
131072 + 458752 = 589824 bytes
apr 09 16:19:36 archlinux kernel: Dentry cache hash table entries:
4194304 (order: 13, 33554432 bytes, linear)
apr 09 16:19:36 archlinux kernel: Inode-cache hash table entries:
2097152 (order: 12, 16777216 bytes, linear)
apr 09 16:19:36 archlinux kernel: software IO TLB: area num 16.
apr 09 16:19:36 archlinux kernel: Fallback order for Node 0: 0
apr 09 16:19:36 archlinux kernel: Built 1 zonelists, mobility grouping
on. Total pages: 7809627
apr 09 16:19:36 archlinux kernel: Policy zone: Normal
apr 09 16:19:36 archlinux kernel: mem auto-init: stack:all(zero), heap
alloc:on, heap free:off
apr 09 16:19:36 archlinux kernel: SLUB: HWalign=64, Order=0-3,
MinObjects=0, CPUs=16, Nodes=1
apr 09 16:19:36 archlinux kernel: ftrace: allocating 57677 entries in 228 pages
apr 09 16:19:36 archlinux kernel: ftrace: allocated 228 pages with 4 groups
apr 09 16:19:36 archlinux kernel: Dynamic Preempt: full
apr 09 16:19:36 archlinux kernel: rcu: Preemptible hierarchical RCU
implementation.
apr 09 16:19:36 archlinux kernel: rcu: RCU restricting CPUs
from NR_CPUS=8192 to nr_cpu_ids=16.
apr 09 16:19:36 archlinux kernel: rcu: RCU priority boosting:
priority 1 delay 500 ms.
apr 09 16:19:36 archlinux kernel: Trampoline variant of Tasks
RCU enabled.
apr 09 16:19:36 archlinux kernel: Rude variant of Tasks RCU enabled.
apr 09 16:19:36 archlinux kernel: Tracing variant of Tasks RCU enabled.
apr 09 16:19:36 archlinux kernel: rcu: RCU calculated value of
scheduler-enlistment delay is 100 jiffies.
apr 09 16:19:36 archlinux kernel: rcu: Adjusting geometry for
rcu_fanout_leaf=16, nr_cpu_ids=16
apr 09 16:19:36 archlinux kernel: RCU Tasks: Setting shift to 4 and
lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=16.
apr 09 16:19:36 archlinux kernel: RCU Tasks Rude: Setting shift to 4
and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=16.
apr 09 16:19:36 archlinux kernel: RCU Tasks Trace: Setting shift to 4
and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=16.
apr 09 16:19:36 archlinux kernel: NR_IRQS: 524544, nr_irqs: 1096,
preallocated irqs: 16
apr 09 16:19:36 archlinux kernel: rcu: srcu_init: Setting srcu_struct
sizes based on contention.
apr 09 16:19:36 archlinux kernel: kfence: initialized - using 2097152
bytes for 255 objects at 0x(____ptrval____)-0x(____ptrval____)
apr 09 16:19:36 archlinux kernel: Console: colour dummy device 80x25
apr 09 16:19:36 archlinux kernel: printk: legacy console [tty0] enabled
apr 09 16:19:36 archlinux kernel: ACPI: Core revision 20250807
apr 09 16:19:36 archlinux kernel: clocksource: hpet: mask: 0xffffffff
max_cycles: 0xffffffff, max_idle_ns: 133484873504 ns
apr 09 16:19:36 archlinux kernel: APIC: Switch to symmetric I/O mode setup
apr 09 16:19:36 archlinux kernel: AMD-Vi: ivrs, add hid:AMDI0020,
uid:ID00, rdevid:0xa0
apr 09 16:19:36 archlinux kernel: AMD-Vi: ivrs, add hid:AMDI0020,
uid:ID01, rdevid:0xa0
apr 09 16:19:36 archlinux kernel: AMD-Vi: ivrs, add hid:AMDI0020,
uid:ID02, rdevid:0xa0
apr 09 16:19:36 archlinux kernel: AMD-Vi: ivrs, add hid:AMDI0020,
uid:ID03, rdevid:0x98
apr 09 16:19:36 archlinux kernel: AMD-Vi: ivrs, add hid:MSFT0201,
uid:1, rdevid:0x60
apr 09 16:19:36 archlinux kernel: AMD-Vi: ivrs, add hid:AMDI0020,
uid:ID04, rdevid:0x98
apr 09 16:19:36 archlinux kernel: AMD-Vi: Using global IVHD
EFR:0x246577efa2254afa, EFR2:0x10
apr 09 16:19:36 archlinux kernel: ..TIMER: vector=0x30 apic1=0 pin1=2
apic2=-1 pin2=-1
apr 09 16:19:36 archlinux kernel: clocksource: tsc-early: mask:
0xffffffffffffffff max_cycles: 0x398d7801cfe, max_idle_ns:
881590659101 ns
apr 09 16:19:36 archlinux kernel: Calibrating delay loop (skipped),
value calculated using timer frequency.. 3992.71 BogoMIPS
(lpj=1996356)
apr 09 16:19:36 archlinux kernel: x86/cpu: User Mode Instruction
Prevention (UMIP) activated
apr 09 16:19:36 archlinux kernel: LVT offset 1 assigned for vector 0xf9
apr 09 16:19:36 archlinux kernel: LVT offset 2 assigned for vector 0xf4
apr 09 16:19:36 archlinux kernel: Last level iTLB entries: 4KB 64, 2MB
64, 4MB 32
apr 09 16:19:36 archlinux kernel: Last level dTLB entries: 4KB 128,
2MB 128, 4MB 64, 1GB 0
apr 09 16:19:36 archlinux kernel: process: using mwait in idle threads
apr 09 16:19:36 archlinux kernel: mitigations: Enabled attack vectors:
user_kernel, user_user, guest_host, guest_guest, SMT mitigations: auto
apr 09 16:19:36 archlinux kernel: Speculative Store Bypass:
Mitigation: Speculative Store Bypass disabled via prctl
apr 09 16:19:36 archlinux kernel: Spectre V2 : Mitigation: Enhanced /
Automatic IBRS
apr 09 16:19:36 archlinux kernel: Spectre V2 : User space: Mitigation:
STIBP always-on protection
apr 09 16:19:36 archlinux kernel: Speculative Return Stack Overflow:
Mitigation: IBPB on VMEXIT only
apr 09 16:19:36 archlinux kernel: VMSCAPE: Mitigation: IBPB on VMEXIT
apr 09 16:19:36 archlinux kernel: Spectre V1 : Mitigation:
usercopy/swapgs barriers and __user pointer sanitization
apr 09 16:19:36 archlinux kernel: Spectre V2 : mitigation: Enabling
conditional Indirect Branch Prediction Barrier
apr 09 16:19:36 archlinux kernel: x86/fpu: Supporting XSAVE feature
0x001: 'x87 floating point registers'
apr 09 16:19:36 archlinux kernel: x86/fpu: Supporting XSAVE feature
0x002: 'SSE registers'
apr 09 16:19:36 archlinux kernel: x86/fpu: Supporting XSAVE feature
0x004: 'AVX registers'
apr 09 16:19:36 archlinux kernel: x86/fpu: Supporting XSAVE feature
0x020: 'AVX-512 opmask'
apr 09 16:19:36 archlinux kernel: x86/fpu: Supporting XSAVE feature
0x040: 'AVX-512 Hi256'
apr 09 16:19:36 archlinux kernel: x86/fpu: Supporting XSAVE feature
0x080: 'AVX-512 ZMM_Hi256'
apr 09 16:19:36 archlinux kernel: x86/fpu: Supporting XSAVE feature
0x200: 'Protection Keys User registers'
apr 09 16:19:36 archlinux kernel: x86/fpu: Supporting XSAVE feature
0x800: 'Control-flow User registers'
apr 09 16:19:36 archlinux kernel: x86/fpu: Supporting XSAVE feature
0x1000: 'Control-flow Kernel registers (KVM only)'
apr 09 16:19:36 archlinux kernel: x86/fpu: xstate_offset[2]: 576,
xstate_sizes[2]: 256
apr 09 16:19:36 archlinux kernel: x86/fpu: xstate_offset[5]: 832,
xstate_sizes[5]: 64
apr 09 16:19:36 archlinux kernel: x86/fpu: xstate_offset[6]: 896,
xstate_sizes[6]: 512
apr 09 16:19:36 archlinux kernel: x86/fpu: xstate_offset[7]: 1408,
xstate_sizes[7]: 1024
apr 09 16:19:36 archlinux kernel: x86/fpu: xstate_offset[9]: 2432,
xstate_sizes[9]: 8
apr 09 16:19:36 archlinux kernel: x86/fpu: xstate_offset[11]: 2440,
xstate_sizes[11]: 16
apr 09 16:19:36 archlinux kernel: x86/fpu: xstate_offset[12]: 2456,
xstate_sizes[12]: 24
apr 09 16:19:36 archlinux kernel: x86/fpu: Enabled xstate features
0x1ae7, context size is 2480 bytes, using 'compacted' format.
apr 09 16:19:36 archlinux kernel: Freeing SMP alternatives memory: 56K
apr 09 16:19:36 archlinux kernel: pid_max: default: 32768 minimum: 301
apr 09 16:19:36 archlinux kernel: landlock: Up and running.
apr 09 16:19:36 archlinux kernel: Yama: becoming mindful.
apr 09 16:19:36 archlinux kernel: LSM support for eBPF active
apr 09 16:19:36 archlinux kernel: Mount-cache hash table entries:
65536 (order: 7, 524288 bytes, linear)
apr 09 16:19:36 archlinux kernel: Mountpoint-cache hash table entries:
65536 (order: 7, 524288 bytes, linear)
apr 09 16:19:36 archlinux kernel: smpboot: CPU0: AMD Ryzen AI 7 350 w/
Radeon 860M (family: 0x1a, model: 0x60, stepping: 0x0)
apr 09 16:19:36 archlinux kernel: Performance Events: Fam17h+ 16-deep
LBR, core perfctr, AMD PMU driver.
apr 09 16:19:36 archlinux kernel: ... version: 2
apr 09 16:19:36 archlinux kernel: ... bit width: 48
apr 09 16:19:36 archlinux kernel: ... generic counters: 6
apr 09 16:19:36 archlinux kernel: ... generic bitmap:
000000000000003f
apr 09 16:19:36 archlinux kernel: ... fixed-purpose counters: 0
apr 09 16:19:36 archlinux kernel: ... fixed-purpose bitmap:
0000000000000000
apr 09 16:19:36 archlinux kernel: ... value mask:
0000ffffffffffff
apr 09 16:19:36 archlinux kernel: ... max period:
00007fffffffffff
apr 09 16:19:36 archlinux kernel: ... global_ctrl mask:
000000000000003f
apr 09 16:19:36 archlinux kernel: signal: max sigframe size: 3376
apr 09 16:19:36 archlinux kernel: rcu: Hierarchical SRCU implementation.
apr 09 16:19:36 archlinux kernel: rcu: Max phase no-delay
instances is 400.
apr 09 16:19:36 archlinux kernel: Timer migration: 2 hierarchy levels;
8 children per group; 2 crossnode level
apr 09 16:19:36 archlinux kernel: MCE: In-kernel MCE decoding enabled.
apr 09 16:19:36 archlinux kernel: smp: Bringing up secondary CPUs ...
apr 09 16:19:36 archlinux kernel: smpboot: x86: Booting SMP configuration:
apr 09 16:19:36 archlinux kernel: .... node #0, CPUs: #1 #2
#3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15
apr 09 16:19:36 archlinux kernel: Spectre V2 : Update user space SMT
mitigation: STIBP always-on
apr 09 16:19:36 archlinux kernel: smp: Brought up 1 node, 16 CPUs
apr 09 16:19:36 archlinux kernel: smpboot: Total of 16 processors
activated (63883.39 BogoMIPS)
apr 09 16:19:36 archlinux kernel: Memory: 30350944K/31238508K
available (20570K kernel code, 2951K rwdata, 16744K rodata, 4776K
init, 4596K bss, 869516K reserved, 0K cma-reserved)
apr 09 16:19:36 archlinux kernel: devtmpfs: initialized
apr 09 16:19:36 archlinux kernel: x86/mm: Memory block size: 128MB
apr 09 16:19:36 archlinux kernel: ACPI: PM: Registering ACPI NVS
region [mem 0x09f00000-0x09f3bfff] (245760 bytes)
apr 09 16:19:36 archlinux kernel: ACPI: PM: Registering ACPI NVS
region [mem 0x7977f000-0x79f7efff] (8388608 bytes)
apr 09 16:19:36 archlinux kernel: clocksource: jiffies: mask:
0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
apr 09 16:19:36 archlinux kernel: posixtimers hash table entries: 8192
(order: 5, 131072 bytes, linear)
apr 09 16:19:36 archlinux kernel: futex hash table entries: 4096
(262144 bytes on 1 NUMA nodes, total 256 KiB, linear).
apr 09 16:19:36 archlinux kernel: PM: RTC time: 14:19:34, date: 2026-04-09
apr 09 16:19:36 archlinux kernel: NET: Registered PF_NETLINK/PF_ROUTE
protocol family
apr 09 16:19:36 archlinux kernel: DMA: preallocated 4096 KiB
GFP_KERNEL pool for atomic allocations
apr 09 16:19:36 archlinux kernel: DMA: preallocated 4096 KiB
GFP_KERNEL|GFP_DMA pool for atomic allocations
apr 09 16:19:36 archlinux kernel: DMA: preallocated 4096 KiB
GFP_KERNEL|GFP_DMA32 pool for atomic allocations
apr 09 16:19:36 archlinux kernel: audit: initializing netlink subsys (disabled)
apr 09 16:19:36 archlinux kernel: audit: type=2000
audit(1775744373.159:1): state=initialized audit_enabled=0 res=1
apr 09 16:19:36 archlinux kernel: thermal_sys: Registered thermal
governor 'fair_share'
apr 09 16:19:36 archlinux kernel: thermal_sys: Registered thermal
governor 'bang_bang'
apr 09 16:19:36 archlinux kernel: thermal_sys: Registered thermal
governor 'step_wise'
apr 09 16:19:36 archlinux kernel: thermal_sys: Registered thermal
governor 'user_space'
apr 09 16:19:36 archlinux kernel: thermal_sys: Registered thermal
governor 'power_allocator'
apr 09 16:19:36 archlinux kernel: cpuidle: using governor ladder
apr 09 16:19:36 archlinux kernel: cpuidle: using governor menu
apr 09 16:19:36 archlinux kernel: Detected 1 PCC Subspaces
apr 09 16:19:36 archlinux kernel: Registering PCC driver as Mailbox controller
apr 09 16:19:36 archlinux kernel: Simple Boot Flag at 0x44 set to 0x1
apr 09 16:19:36 archlinux kernel: efi: Freeing EFI boot services memory: 129648K
apr 09 16:19:36 archlinux kernel: acpiphp: ACPI Hot Plug PCI
Controller Driver version: 0.5
apr 09 16:19:36 archlinux kernel: PCI: ECAM [mem
0xe0000000-0xefffffff] (base 0xe0000000) for domain 0000 [bus 00-ff]
apr 09 16:19:36 archlinux kernel: PCI: Using configuration type 1 for
base access
apr 09 16:19:36 archlinux kernel: kprobes: kprobe jump-optimization is
enabled. All kprobes are optimized if possible.
apr 09 16:19:36 archlinux kernel: HugeTLB: registered 1.00 GiB page
size, pre-allocated 0 pages
apr 09 16:19:36 archlinux kernel: HugeTLB: 16380 KiB vmemmap can be
freed for a 1.00 GiB page
apr 09 16:19:36 archlinux kernel: HugeTLB: registered 2.00 MiB page
size, pre-allocated 0 pages
apr 09 16:19:36 archlinux kernel: HugeTLB: 28 KiB vmemmap can be freed
for a 2.00 MiB page
apr 09 16:19:36 archlinux kernel: raid6: skipped pq benchmark and
selected avx512x4
apr 09 16:19:36 archlinux kernel: raid6: using avx512x2 recovery algorithm
apr 09 16:19:36 archlinux kernel: ACPI: Added _OSI(Module Device)
apr 09 16:19:36 archlinux kernel: ACPI: Added _OSI(Processor Device)
apr 09 16:19:36 archlinux kernel: ACPI: Added _OSI(Processor Aggregator Device)
apr 09 16:19:36 archlinux kernel: ACPI BIOS Error (bug): Failure
creating named object [\_SB.PCI0.GPP5.WLAN._DSM], AE_ALREADY_EXISTS
(20250807/dswload2-326)
apr 09 16:19:36 archlinux kernel: ACPI Error: AE_ALREADY_EXISTS,
During name lookup/catalog (20250807/psobject-220)
apr 09 16:19:36 archlinux kernel: ACPI: Skipping parse of AML opcode:
Method (0x0014)
apr 09 16:19:36 archlinux kernel: ACPI: 36 ACPI AML tables
successfully acquired and loaded
apr 09 16:19:36 archlinux kernel: ACPI: USB4 _OSC: OS supports USB3+
DisplayPort+ PCIe+ XDomain+
apr 09 16:19:36 archlinux kernel: ACPI: USB4 _OSC: OS controls USB3+
DisplayPort+ PCIe+ XDomain+
apr 09 16:19:36 archlinux kernel: ACPI: EC: EC started
apr 09 16:19:36 archlinux kernel: ACPI: EC: interrupt blocked
apr 09 16:19:36 archlinux kernel: ACPI: EC: EC_CMD/EC_SC=0x66, EC_DATA=0x62
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.LPC0.EC0_: Boot
DSDT EC used to handle transactions
apr 09 16:19:36 archlinux kernel: ACPI: Interpreter enabled
apr 09 16:19:36 archlinux kernel: ACPI: PM: (supports S0 S4 S5)
apr 09 16:19:36 archlinux kernel: ACPI: Using IOAPIC for interrupt routing
apr 09 16:19:36 archlinux kernel: PCI: Using host bridge windows from
ACPI; if necessary, use "pci=nocrs" and report a bug
apr 09 16:19:36 archlinux kernel: PCI: Ignoring E820 reservations for
host bridge windows
apr 09 16:19:36 archlinux kernel: ACPI: Enabled 3 GPEs in block 00 to 1F
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPP0.PWRS: New power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPP0.SWUS.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPP1.PWRS: New power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPP1.SWUS.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPP3.P0NV: New power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPP5.PWSR: New power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GP10.P0NV: New power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPA.PWRS: New power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPA.VGA_.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPA.ACP_.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPA.AZAL.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPA.HDAU.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPA.XHC1.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPC.XHC0.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPC.XHC3.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPC.XHC4.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPC.NHI0.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.GPPC.NHI1.PWRS: New
power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PRWL: New power resource
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PRWB: New power resource
apr 09 16:19:36 archlinux kernel: ACPI: PCI Root Bridge [PCI0] (domain
0000 [bus 00-ff])
apr 09 16:19:36 archlinux kernel: acpi PNP0A08:00: _OSC: OS supports
[ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]
apr 09 16:19:36 archlinux kernel: acpi PNP0A08:00: _OSC: platform does
not support [SHPCHotplug AER]
apr 09 16:19:36 archlinux kernel: acpi PNP0A08:00: _OSC: OS now
controls [PCIeHotplug PME PCIeCapability LTR DPC]
apr 09 16:19:36 archlinux kernel: PCI host bridge to bus 0000:00
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[io 0x0000-0x0cf7 window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[io 0x0d00-0xfeff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0x000a0000-0x000bffff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0x000c0000-0x000cffff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0x000d0000-0x000effff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0x80000000-0xdfffffff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0xf0000000-0xfcffffff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0xfec00000-0xfec01fff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0xfed45000-0xfed811ff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0xfed81900-0xfed81fff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0xfedc0000-0xfedc0fff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0xfedc6000-0xfedc6fff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0xfee01000-0xffffffff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource
[mem 0x8a0200000-0x833fffffff window]
apr 09 16:19:36 archlinux kernel: pci_bus 0000:00: root bus resource [bus 00-ff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:00.0: [1022:1122] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:00.2: [1022:1123] type
00 class 0x080600 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.0: [1022:1124] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: [1022:1125] type
01 class 0x060400 PCIe Root Port
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: PCI bridge to [bus 01-5f]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: bridge window
[io 0x6000-0x9fff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: bridge window
[mem 0xac000000-0xc3ffffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: bridge window
[mem 0x3000000000-0x4fffffffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: [1022:1125] type
01 class 0x060400 PCIe Root Port
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: PCI bridge to [bus 60-be]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: bridge window
[io 0x2000-0x5fff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: bridge window
[mem 0x94000000-0xabffffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: bridge window
[mem 0x1000000000-0x2fffffffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.0: [1022:1124] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.1: [1022:1126] type
01 class 0x060400 PCIe Root Port
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.1: PCI bridge to [bus bf]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.1: bridge window
[mem 0x90c00000-0x90cfffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.1: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.2: [1022:1126] type
01 class 0x060400 PCIe Root Port
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.2: PCI bridge to [bus c0]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.2: bridge window
[mem 0x90b00000-0x90bfffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.2: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.3: [1022:1126] type
01 class 0x060400 PCIe Root Port
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.3: PCI bridge to [bus c1]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.3: bridge window
[mem 0x90a00000-0x90afffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.3: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:03.0: [1022:1124] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:03.2: [1022:1126] type
01 class 0x060400 PCIe Root Port
apr 09 16:19:36 archlinux kernel: pci 0000:00:03.2: PCI bridge to [bus c2]
apr 09 16:19:36 archlinux kernel: pci 0000:00:03.2: bridge window
[mem 0x90900000-0x909fffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:03.2: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.0: [1022:1124] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.1: [1022:1110] type
01 class 0x060400 PCIe Root Port
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.1: PCI bridge to [bus c3]
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.1: bridge window
[io 0x1000-0x1fff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.1: bridge window
[mem 0x80000000-0x902fffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.1: bridge window
[mem 0x5000000000-0x50807fffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.1: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.1: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.2: [1022:1111] type
01 class 0x060400 PCIe Root Port
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.2: PCI bridge to [bus c4]
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.2: bridge window
[mem 0x90700000-0x908fffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.2: bridge window
[mem 0x5080800000-0x50808fffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.2: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.2: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.3: [1022:1112] type
01 class 0x060400 PCIe Root Port
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.3: PCI bridge to [bus c5]
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.3: bridge window
[mem 0x90300000-0x906fffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.3: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.3: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:14.0: [1022:790b] type
00 class 0x0c0500 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:14.3: [1022:790e] type
00 class 0x060100 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:18.0: [1022:1248] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:18.1: [1022:1249] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:18.2: [1022:124a] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:18.3: [1022:124b] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:18.4: [1022:124c] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:18.5: [1022:124d] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:18.6: [1022:124e] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:18.7: [1022:124f] type
00 class 0x060000 conventional PCI endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: PCI bridge to [bus 01-5f]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: PCI bridge to [bus 60-be]
apr 09 16:19:36 archlinux kernel: pci 0000:bf:00.0: [15b7:5044] type
00 class 0x010802 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:bf:00.0: BAR 0 [mem
0x90c00000-0x90c03fff 64bit]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.1: PCI bridge to [bus bf]
apr 09 16:19:36 archlinux kernel: pci 0000:c0:00.0: [1217:8621] type
00 class 0x080501 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c0:00.0: BAR 0 [mem
0x90b01000-0x90b01fff]
apr 09 16:19:36 archlinux kernel: pci 0000:c0:00.0: BAR 1 [mem
0x90b00000-0x90b007ff]
apr 09 16:19:36 archlinux kernel: pci 0000:c0:00.0: PME# supported
from D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.2: PCI bridge to [bus c0]
apr 09 16:19:36 archlinux kernel: pci 0000:c1:00.0: [8086:2725] type
00 class 0x028000 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c1:00.0: BAR 0 [mem
0x90a00000-0x90a03fff 64bit]
apr 09 16:19:36 archlinux kernel: pci 0000:c1:00.0: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.3: PCI bridge to [bus c1]
apr 09 16:19:36 archlinux kernel: pci 0000:c2:00.0: [1d97:1602] type
00 class 0x010802 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c2:00.0: BAR 0 [mem
0x90900000-0x90903fff 64bit]
apr 09 16:19:36 archlinux kernel: pci 0000:00:03.2: PCI bridge to [bus c2]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.0: [1002:1114] type
00 class 0x038000 PCIe Legacy Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.0: BAR 0 [mem
0x5000000000-0x507fffffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.0: BAR 2 [mem
0x80000000-0x8fffffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.0: BAR 4 [io 0x1000-0x10ff]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.0: BAR 5 [mem
0x90200000-0x9027ffff]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.0: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.0: PME# supported
from D1 D2 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.1: [1002:1640] type
00 class 0x040300 PCIe Legacy Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.1: BAR 0 [mem
0x902c8000-0x902cbfff]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.1: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.1: PME# supported
from D1 D2 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.2: [1022:17e0] type
00 class 0x108000 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.2: BAR 2 [mem
0x90100000-0x901fffff]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.2: BAR 5 [mem
0x902cc000-0x902cdfff]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.2: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.4: [1022:1128] type
00 class 0x0c0330 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.4: BAR 0 [mem
0x90000000-0x900fffff 64bit]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.4: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.4: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.5: [1022:15e2] type
00 class 0x048000 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.5: BAR 0 [mem
0x90280000-0x902bffff]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.5: BAR 2 [mem
0x5080000000-0x50807fffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.5: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.5: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.6: [1022:15e3] type
00 class 0x040300 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.6: BAR 0 [mem
0x902c0000-0x902c7fff]
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.6: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c3:00.6: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.1: PCI bridge to [bus c3]
apr 09 16:19:36 archlinux kernel: pci 0000:c4:00.0: [1022:1116] type
00 class 0x130000 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c4:00.0: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c4:00.1: [1022:17f0] type
00 class 0x118000 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c4:00.1: BAR 0 [mem
0x90700000-0x907fffff]
apr 09 16:19:36 archlinux kernel: pci 0000:c4:00.1: BAR 1 [mem
0x90800000-0x90801fff]
apr 09 16:19:36 archlinux kernel: pci 0000:c4:00.1: BAR 2 [mem
0x5080800000-0x508087ffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:c4:00.1: BAR 4 [mem
0x90803000-0x90803fff]
apr 09 16:19:36 archlinux kernel: pci 0000:c4:00.1: BAR 5 [mem
0x90802000-0x90802fff]
apr 09 16:19:36 archlinux kernel: pci 0000:c4:00.1: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.2: PCI bridge to [bus c4]
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.0: [1022:1118] type
00 class 0x0c0330 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.0: BAR 0 [mem
0x90300000-0x903fffff 64bit]
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.0: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.0: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.3: [1022:111c] type
00 class 0x0c0330 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.3: BAR 0 [mem
0x90400000-0x904fffff 64bit]
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.3: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.3: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.4: [1022:111e] type
00 class 0x0c0330 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.4: BAR 0 [mem
0x90500000-0x905fffff 64bit]
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.4: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.4: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.5: [1022:1120] type
00 class 0x0c0340 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.5: BAR 0 [mem
0x90600000-0x9067ffff 64bit]
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.5: Max Payload Size
set to 128 (was 256, max 256)
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.5: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.5: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.6: [1022:1121] type
00 class 0x0c0340 PCIe Endpoint
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.6: BAR 0 [mem
0x90680000-0x906fffff 64bit]
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.6: Max Payload Size
set to 128 (was 256, max 256)
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.6: enabling Extended Tags
apr 09 16:19:36 archlinux kernel: pci 0000:c5:00.6: PME# supported
from D0 D3hot D3cold
apr 09 16:19:36 archlinux kernel: pci 0000:00:08.3: PCI bridge to [bus c5]
apr 09 16:19:36 archlinux kernel: Low-power S0 idle used by default
for system suspend
apr 09 16:19:36 archlinux kernel: ACPI: EC: interrupt unblocked
apr 09 16:19:36 archlinux kernel: ACPI: EC: event unblocked
apr 09 16:19:36 archlinux kernel: ACPI: EC: EC_CMD/EC_SC=0x66, EC_DATA=0x62
apr 09 16:19:36 archlinux kernel: ACPI: EC: GPE=0xa
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.LPC0.EC0_: Boot
DSDT EC initialization complete
apr 09 16:19:36 archlinux kernel: ACPI: \_SB_.PCI0.LPC0.EC0_: EC: Used
to handle transactions and events
apr 09 16:19:36 archlinux kernel: iommu: Default domain type:
Passthrough (set via kernel command line)
apr 09 16:19:36 archlinux kernel: SCSI subsystem initialized
apr 09 16:19:36 archlinux kernel: libata version 3.00 loaded.
apr 09 16:19:36 archlinux kernel: ACPI: bus type USB registered
apr 09 16:19:36 archlinux kernel: usbcore: registered new interface driver usbfs
apr 09 16:19:36 archlinux kernel: usbcore: registered new interface driver hub
apr 09 16:19:36 archlinux kernel: usbcore: registered new device driver usb
apr 09 16:19:36 archlinux kernel: EDAC MC: Ver: 3.0.0
apr 09 16:19:36 archlinux kernel: efivars: Registered efivars operations
apr 09 16:19:36 archlinux kernel: NetLabel: Initializing
apr 09 16:19:36 archlinux kernel: NetLabel: domain hash size = 128
apr 09 16:19:36 archlinux kernel: NetLabel: protocols = UNLABELED
CIPSOv4 CALIPSO
apr 09 16:19:36 archlinux kernel: NetLabel: unlabeled traffic allowed
by default
apr 09 16:19:36 archlinux kernel: mctp: management component transport
protocol core
apr 09 16:19:36 archlinux kernel: NET: Registered PF_MCTP protocol family
apr 09 16:19:36 archlinux kernel: PCI: Using ACPI for IRQ routing
apr 09 16:19:36 archlinux kernel: PCI: pci_cache_line_size set to 64 bytes
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x0009f000-0x0009ffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x09b00000-0x0bffffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x09f00000-0x0bffffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x6894e000-0x6bffffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x6ab67000-0x6bffffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x6ab6f000-0x6bffffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x70e19000-0x73ffffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x72396000-0x73ffffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x76d7f000-0x77ffffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x7a000000-0x7bffffff]
apr 09 16:19:36 archlinux kernel: e820: reserve RAM buffer [mem
0x7fe280000-0x7ffffffff]
apr 09 16:19:36 archlinux kernel: vgaarb: loaded
apr 09 16:19:36 archlinux kernel: hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
apr 09 16:19:36 archlinux kernel: hpet0: 3 comparators, 32-bit
14.318180 MHz counter
apr 09 16:19:36 archlinux kernel: clocksource: Switched to clocksource tsc-early
apr 09 16:19:36 archlinux kernel: VFS: Disk quotas dquot_6.6.0
apr 09 16:19:36 archlinux kernel: VFS: Dquot-cache hash table entries:
512 (order 0, 4096 bytes)
apr 09 16:19:36 archlinux kernel: pnp: PnP ACPI init
apr 09 16:19:36 archlinux kernel: system 00:00: [mem
0xe0000000-0xefffffff] has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x0400-0x04cf]
has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x04d0-0x04d1]
has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x04d6] has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x0c00-0x0c01]
has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x0c14] has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x0c50-0x0c52]
has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x0c6c] has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x0c6f] has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x0cd0-0x0cdb]
has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x0700-0x0707]
has been reserved
apr 09 16:19:36 archlinux kernel: system 00:02: [io 0x0d00-0x0d07]
has been reserved
apr 09 16:19:36 archlinux kernel: system 00:03: [mem
0xff000000-0xffffffff] has been reserved
apr 09 16:19:36 archlinux kernel: pnp: PnP ACPI: found 5 devices
apr 09 16:19:36 archlinux kernel: clocksource: acpi_pm: mask: 0xffffff
max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
apr 09 16:19:36 archlinux kernel: NET: Registered PF_INET protocol family
apr 09 16:19:36 archlinux kernel: IP idents hash table entries: 262144
(order: 9, 2097152 bytes, linear)
apr 09 16:19:36 archlinux kernel: tcp_listen_portaddr_hash hash table
entries: 16384 (order: 6, 262144 bytes, linear)
apr 09 16:19:36 archlinux kernel: Table-perturb hash table entries:
65536 (order: 6, 262144 bytes, linear)
apr 09 16:19:36 archlinux kernel: TCP established hash table entries:
262144 (order: 9, 2097152 bytes, linear)
apr 09 16:19:36 archlinux kernel: TCP bind hash table entries: 65536
(order: 9, 2097152 bytes, linear)
apr 09 16:19:36 archlinux kernel: TCP: Hash tables configured
(established 262144 bind 65536)
apr 09 16:19:36 archlinux kernel: MPTCP token hash table entries:
32768 (order: 8, 786432 bytes, linear)
apr 09 16:19:36 archlinux kernel: UDP hash table entries: 16384
(order: 8, 1048576 bytes, linear)
apr 09 16:19:36 archlinux kernel: UDP-Lite hash table entries: 16384
(order: 8, 1048576 bytes, linear)
apr 09 16:19:36 archlinux kernel: NET: Registered PF_UNIX/PF_LOCAL
protocol family
apr 09 16:19:36 archlinux kernel: NET: Registered PF_XDP protocol family
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: PCI bridge to [bus 01-5f]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: bridge window
[io 0x6000-0x9fff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: bridge window
[mem 0xac000000-0xc3ffffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.1: bridge window
[mem 0x3000000000-0x4fffffffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: PCI bridge to [bus 60-be]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: bridge window
[io 0x2000-0x5fff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: bridge window
[mem 0x94000000-0xabffffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:01.2: bridge window
[mem 0x1000000000-0x2fffffffff 64bit pref]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.1: PCI bridge to [bus bf]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.1: bridge window
[mem 0x90c00000-0x90cfffff]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.2: PCI bridge to [bus c0]
apr 09 16:19:36 archlinux kernel: pci 0000:00:02.2: bridge window
[mem 0x90b00000-0x90bfffff]
apr 09 16:19:37 archlinux kernel: pci 0000:00:02.3: PCI bridge to [bus c1]
apr 09 16:19:37 archlinux kernel: pci 0000:00:02.3: bridge window
[mem 0x90a00000-0x90afffff]
apr 09 16:19:37 archlinux kernel: pci 0000:00:03.2: PCI bridge to [bus c2]
apr 09 16:19:37 archlinux kernel: pci 0000:00:03.2: bridge window
[mem 0x90900000-0x909fffff]
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.1: PCI bridge to [bus c3]
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.1: bridge window
[io 0x1000-0x1fff]
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.1: bridge window
[mem 0x80000000-0x902fffff]
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.1: bridge window
[mem 0x5000000000-0x50807fffff 64bit pref]
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.2: PCI bridge to [bus c4]
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.2: bridge window
[mem 0x90700000-0x908fffff]
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.2: bridge window
[mem 0x5080800000-0x50808fffff 64bit pref]
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.3: PCI bridge to [bus c5]
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.3: bridge window
[mem 0x90300000-0x906fffff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 4 [io
0x0000-0x0cf7 window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 5 [io
0x0d00-0xfeff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 6 [mem
0x000a0000-0x000bffff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 7 [mem
0x000c0000-0x000cffff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 8 [mem
0x000d0000-0x000effff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 9 [mem
0x80000000-0xdfffffff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 10 [mem
0xf0000000-0xfcffffff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 11 [mem
0xfec00000-0xfec01fff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 12 [mem
0xfed45000-0xfed811ff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 13 [mem
0xfed81900-0xfed81fff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 14 [mem
0xfedc0000-0xfedc0fff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 15 [mem
0xfedc6000-0xfedc6fff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 16 [mem
0xfee01000-0xffffffff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:00: resource 17 [mem
0x8a0200000-0x833fffffff window]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:01: resource 0 [io
0x6000-0x9fff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:01: resource 1 [mem
0xac000000-0xc3ffffff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:01: resource 2 [mem
0x3000000000-0x4fffffffff 64bit pref]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:60: resource 0 [io
0x2000-0x5fff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:60: resource 1 [mem
0x94000000-0xabffffff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:60: resource 2 [mem
0x1000000000-0x2fffffffff 64bit pref]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:bf: resource 1 [mem
0x90c00000-0x90cfffff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:c0: resource 1 [mem
0x90b00000-0x90bfffff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:c1: resource 1 [mem
0x90a00000-0x90afffff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:c2: resource 1 [mem
0x90900000-0x909fffff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:c3: resource 0 [io
0x1000-0x1fff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:c3: resource 1 [mem
0x80000000-0x902fffff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:c3: resource 2 [mem
0x5000000000-0x50807fffff 64bit pref]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:c4: resource 1 [mem
0x90700000-0x908fffff]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:c4: resource 2 [mem
0x5080800000-0x50808fffff 64bit pref]
apr 09 16:19:37 archlinux kernel: pci_bus 0000:c5: resource 1 [mem
0x90300000-0x906fffff]
apr 09 16:19:37 archlinux kernel: pci 0000:c3:00.1: D0 power state
depends on 0000:c3:00.0
apr 09 16:19:37 archlinux kernel: PCI: CLS 64 bytes, default 64
apr 09 16:19:37 archlinux kernel: pci 0000:00:00.2: AMD-Vi: IOMMU
performance counters supported
apr 09 16:19:37 archlinux kernel: Trying to unpack rootfs image as initramfs...
apr 09 16:19:37 archlinux kernel: platform MSFT0201:00: Adding to iommu group 0
apr 09 16:19:37 archlinux kernel: pci 0000:00:01.0: Adding to iommu group 1
apr 09 16:19:37 archlinux kernel: pci 0000:00:01.1: Adding to iommu group 2
apr 09 16:19:37 archlinux kernel: pci 0000:00:01.2: Adding to iommu group 3
apr 09 16:19:37 archlinux kernel: pci 0000:00:02.0: Adding to iommu group 4
apr 09 16:19:37 archlinux kernel: pci 0000:00:02.1: Adding to iommu group 5
apr 09 16:19:37 archlinux kernel: pci 0000:00:02.2: Adding to iommu group 6
apr 09 16:19:37 archlinux kernel: pci 0000:00:02.3: Adding to iommu group 7
apr 09 16:19:37 archlinux kernel: pci 0000:00:03.0: Adding to iommu group 8
apr 09 16:19:37 archlinux kernel: pci 0000:00:03.2: Adding to iommu group 9
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.0: Adding to iommu group 10
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.1: Adding to iommu group 11
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.2: Adding to iommu group 12
apr 09 16:19:37 archlinux kernel: pci 0000:00:08.3: Adding to iommu group 13
apr 09 16:19:37 archlinux kernel: pci 0000:00:14.0: Adding to iommu group 14
apr 09 16:19:37 archlinux kernel: pci 0000:00:14.3: Adding to iommu group 14
apr 09 16:19:37 archlinux kernel: pci 0000:00:18.0: Adding to iommu group 15
apr 09 16:19:37 archlinux kernel: pci 0000:00:18.1: Adding to iommu group 15
apr 09 16:19:37 archlinux kernel: pci 0000:00:18.2: Adding to iommu group 15
apr 09 16:19:37 archlinux kernel: pci 0000:00:18.3: Adding to iommu group 15
apr 09 16:19:37 archlinux kernel: pci 0000:00:18.4: Adding to iommu group 15
apr 09 16:19:37 archlinux kernel: pci 0000:00:18.5: Adding to iommu group 15
apr 09 16:19:37 archlinux kernel: pci 0000:00:18.6: Adding to iommu group 15
apr 09 16:19:37 archlinux kernel: pci 0000:00:18.7: Adding to iommu group 15
apr 09 16:19:37 archlinux kernel: pci 0000:bf:00.0: Adding to iommu group 16
apr 09 16:19:37 archlinux kernel: pci 0000:c0:00.0: Adding to iommu group 17
apr 09 16:19:37 archlinux kernel: pci 0000:c1:00.0: Adding to iommu group 18
apr 09 16:19:37 archlinux kernel: pci 0000:c2:00.0: Adding to iommu group 19
apr 09 16:19:37 archlinux kernel: pci 0000:c3:00.0: Adding to iommu group 20
apr 09 16:19:37 archlinux kernel: pci 0000:c3:00.1: Adding to iommu group 21
apr 09 16:19:37 archlinux kernel: pci 0000:c3:00.2: Adding to iommu group 22
apr 09 16:19:37 archlinux kernel: pci 0000:c3:00.4: Adding to iommu group 23
apr 09 16:19:37 archlinux kernel: pci 0000:c3:00.5: Adding to iommu group 24
apr 09 16:19:37 archlinux kernel: pci 0000:c3:00.6: Adding to iommu group 25
apr 09 16:19:37 archlinux kernel: pci 0000:c4:00.0: Adding to iommu group 26
apr 09 16:19:37 archlinux kernel: pci 0000:c4:00.1: Adding to iommu group 27
apr 09 16:19:37 archlinux kernel: pci 0000:c5:00.0: Adding to iommu group 28
apr 09 16:19:37 archlinux kernel: pci 0000:c5:00.3: Adding to iommu group 29
apr 09 16:19:37 archlinux kernel: pci 0000:c5:00.4: Adding to iommu group 30
apr 09 16:19:37 archlinux kernel: pci 0000:c5:00.5: Adding to iommu group 31
apr 09 16:19:37 archlinux kernel: pci 0000:c5:00.6: Adding to iommu group 32
apr 09 16:19:37 archlinux kernel: AMD-Vi: Extended features
(0x246577efa2254afa, 0x10): PPR NX GT [5] IA GA PC GA_vAPIC
apr 09 16:19:37 archlinux kernel: AMD-Vi: Interrupt remapping enabled
apr 09 16:19:37 archlinux kernel: AMD-Vi: Virtual APIC enabled
apr 09 16:19:37 archlinux kernel: PCI-DMA: Using software bounce
buffering for IO (SWIOTLB)
apr 09 16:19:37 archlinux kernel: software IO TLB: mapped [mem
0x000000006ce19000-0x0000000070e19000] (64MB)
apr 09 16:19:37 archlinux kernel: LVT offset 0 assigned for vector 0x400
apr 09 16:19:37 archlinux kernel: perf: AMD IBS detected (0x00081bff)
apr 09 16:19:37 archlinux kernel: perf/amd_iommu: Detected AMD IOMMU
#0 (2 banks, 4 counters/bank).
apr 09 16:19:37 archlinux kernel: Initialise system trusted keyrings
apr 09 16:19:37 archlinux kernel: Key type blacklist registered
apr 09 16:19:37 archlinux kernel: workingset: timestamp_bits=36
max_order=23 bucket_order=0
apr 09 16:19:37 archlinux kernel: fuse: init (API version 7.45)
apr 09 16:19:37 archlinux kernel: integrity: Platform Keyring initialized
apr 09 16:19:37 archlinux kernel: integrity: Machine keyring initialized
apr 09 16:19:37 archlinux kernel: xor: automatically using best
checksumming function avx
apr 09 16:19:37 archlinux kernel: Key type asymmetric registered
apr 09 16:19:37 archlinux kernel: Asymmetric key parser 'x509' registered
apr 09 16:19:37 archlinux kernel: Block layer SCSI generic (bsg)
driver version 0.4 loaded (major 245)
apr 09 16:19:37 archlinux kernel: io scheduler mq-deadline registered
apr 09 16:19:37 archlinux kernel: io scheduler kyber registered
apr 09 16:19:37 archlinux kernel: io scheduler bfq registered
apr 09 16:19:37 archlinux kernel: ledtrig-cpu: registered to indicate
activity on CPUs
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:01.1: PME:
Signaling with IRQ 30
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:01.1: pciehp: Slot
#0 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
Interlock- NoCompl+ IbPresDis- LLActRep+
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:01.2: PME:
Signaling with IRQ 31
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:01.2: pciehp: Slot
#0 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+
Interlock- NoCompl+ IbPresDis- LLActRep+
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:02.1: PME:
Signaling with IRQ 32
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:02.2: PME:
Signaling with IRQ 33
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:02.3: PME:
Signaling with IRQ 34
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:03.2: PME:
Signaling with IRQ 35
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:08.1: PME:
Signaling with IRQ 36
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:08.2: PME:
Signaling with IRQ 37
apr 09 16:19:37 archlinux kernel: pcieport 0000:00:08.3: PME:
Signaling with IRQ 38
apr 09 16:19:37 archlinux kernel: ACPI: AC: AC Adapter [ACAD] (on-line)
apr 09 16:19:37 archlinux kernel: input: Lid Switch as
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:40/PNP0C0D:00/input/input0
apr 09 16:19:37 archlinux kernel: ACPI: button: Lid Switch [LID0]
apr 09 16:19:37 archlinux kernel: input: Sleep Button as
/devices/LNXSYSTM:00/PNP0C0E:00/input/input1
apr 09 16:19:37 archlinux kernel: ACPI: button: Sleep Button [SLPB]
apr 09 16:19:37 archlinux kernel: Monitor-Mwait will be used to enter C-1 state
apr 09 16:19:37 archlinux kernel: Estimated ratio of average max
frequency by base frequency (times 1024): 1815
apr 09 16:19:37 archlinux kernel: thermal LNXTHERM:00: registered as
thermal_zone0
apr 09 16:19:37 archlinux kernel: ACPI: thermal: Thermal Zone [TZ01] (37 C)
apr 09 16:19:37 archlinux kernel: Non-volatile memory driver v1.3
apr 09 16:19:37 archlinux kernel: Linux agpgart interface v0.103
apr 09 16:19:37 archlinux kernel: ACPI: battery: Slot [BAT1] (battery present)
apr 09 16:19:37 archlinux kernel: Freeing initrd memory: 63660K
apr 09 16:19:37 archlinux kernel: tsc: Refined TSC clocksource
calibration: 1996.222 MHz
apr 09 16:19:37 archlinux kernel: clocksource: tsc: mask:
0xffffffffffffffff max_cycles: 0x398c7ae93a9, max_idle_ns:
881590667579 ns
apr 09 16:19:37 archlinux kernel: clocksource: Switched to clocksource tsc
apr 09 16:19:37 archlinux kernel: tpm_crb MSFT0101:00: Disabling hwrng
apr 09 16:19:37 archlinux kernel: ACPI: bus type drm_connector registered
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c3:00.4: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c3:00.4: new USB bus
registered, assigned bus number 1
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c3:00.4: hcc params
0x0118ffc5 hci version 0x120 quirks 0x0000000200000010
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c3:00.4: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c3:00.4: new USB bus
registered, assigned bus number 2
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c3:00.4: Host supports
USB 3.1 Enhanced SuperSpeed
apr 09 16:19:37 archlinux kernel: usb usb1: New USB device found,
idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
apr 09 16:19:37 archlinux kernel: usb usb1: New USB device strings:
Mfr=3, Product=2, SerialNumber=1
apr 09 16:19:37 archlinux kernel: usb usb1: Product: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: usb usb1: Manufacturer: Linux
6.19.11-arch1-1 xhci-hcd
apr 09 16:19:37 archlinux kernel: usb usb1: SerialNumber: 0000:c3:00.4
apr 09 16:19:37 archlinux kernel: hub 1-0:1.0: USB hub found
apr 09 16:19:37 archlinux kernel: hub 1-0:1.0: 1 port detected
apr 09 16:19:37 archlinux kernel: usb usb2: We don't know the
algorithms for LPM for this host, disabling LPM.
apr 09 16:19:37 archlinux kernel: usb usb2: New USB device found,
idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
apr 09 16:19:37 archlinux kernel: usb usb2: New USB device strings:
Mfr=3, Product=2, SerialNumber=1
apr 09 16:19:37 archlinux kernel: usb usb2: Product: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: usb usb2: Manufacturer: Linux
6.19.11-arch1-1 xhci-hcd
apr 09 16:19:37 archlinux kernel: usb usb2: SerialNumber: 0000:c3:00.4
apr 09 16:19:37 archlinux kernel: hub 2-0:1.0: USB hub found
apr 09 16:19:37 archlinux kernel: hub 2-0:1.0: 1 port detected
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.0: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.0: new USB bus
registered, assigned bus number 3
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.0: hcc params
0x0128ffc5 hci version 0x120 quirks 0x0000000200000010
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.0: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.0: new USB bus
registered, assigned bus number 4
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.0: Host supports
USB 3.1 Enhanced SuperSpeed
apr 09 16:19:37 archlinux kernel: usb usb3: New USB device found,
idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
apr 09 16:19:37 archlinux kernel: usb usb3: New USB device strings:
Mfr=3, Product=2, SerialNumber=1
apr 09 16:19:37 archlinux kernel: usb usb3: Product: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: usb usb3: Manufacturer: Linux
6.19.11-arch1-1 xhci-hcd
apr 09 16:19:37 archlinux kernel: usb usb3: SerialNumber: 0000:c5:00.0
apr 09 16:19:37 archlinux kernel: hub 3-0:1.0: USB hub found
apr 09 16:19:37 archlinux kernel: hub 3-0:1.0: 5 ports detected
apr 09 16:19:37 archlinux kernel: usb usb4: We don't know the
algorithms for LPM for this host, disabling LPM.
apr 09 16:19:37 archlinux kernel: usb usb4: New USB device found,
idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
apr 09 16:19:37 archlinux kernel: usb usb4: New USB device strings:
Mfr=3, Product=2, SerialNumber=1
apr 09 16:19:37 archlinux kernel: usb usb4: Product: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: usb usb4: Manufacturer: Linux
6.19.11-arch1-1 xhci-hcd
apr 09 16:19:37 archlinux kernel: usb usb4: SerialNumber: 0000:c5:00.0
apr 09 16:19:37 archlinux kernel: hub 4-0:1.0: USB hub found
apr 09 16:19:37 archlinux kernel: hub 4-0:1.0: 2 ports detected
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.3: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.3: new USB bus
registered, assigned bus number 5
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.3: hcc params
0x0118ffc5 hci version 0x120 quirks 0x0000000200000010
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.3: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.3: new USB bus
registered, assigned bus number 6
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.3: Host supports
USB 3.1 Enhanced SuperSpeed
apr 09 16:19:37 archlinux kernel: usb usb5: New USB device found,
idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
apr 09 16:19:37 archlinux kernel: usb usb5: New USB device strings:
Mfr=3, Product=2, SerialNumber=1
apr 09 16:19:37 archlinux kernel: usb usb5: Product: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: usb usb5: Manufacturer: Linux
6.19.11-arch1-1 xhci-hcd
apr 09 16:19:37 archlinux kernel: usb usb5: SerialNumber: 0000:c5:00.3
apr 09 16:19:37 archlinux kernel: hub 5-0:1.0: USB hub found
apr 09 16:19:37 archlinux kernel: hub 5-0:1.0: 1 port detected
apr 09 16:19:37 archlinux kernel: usb usb6: We don't know the
algorithms for LPM for this host, disabling LPM.
apr 09 16:19:37 archlinux kernel: usb usb6: New USB device found,
idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
apr 09 16:19:37 archlinux kernel: usb usb6: New USB device strings:
Mfr=3, Product=2, SerialNumber=1
apr 09 16:19:37 archlinux kernel: usb usb6: Product: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: usb usb6: Manufacturer: Linux
6.19.11-arch1-1 xhci-hcd
apr 09 16:19:37 archlinux kernel: usb usb6: SerialNumber: 0000:c5:00.3
apr 09 16:19:37 archlinux kernel: hub 6-0:1.0: USB hub found
apr 09 16:19:37 archlinux kernel: hub 6-0:1.0: 1 port detected
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.4: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.4: new USB bus
registered, assigned bus number 7
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.4: hcc params
0x0118ffc5 hci version 0x120 quirks 0x0000000200000010
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.4: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.4: new USB bus
registered, assigned bus number 8
apr 09 16:19:37 archlinux kernel: xhci_hcd 0000:c5:00.4: Host supports
USB 3.1 Enhanced SuperSpeed
apr 09 16:19:37 archlinux kernel: usb usb7: New USB device found,
idVendor=1d6b, idProduct=0002, bcdDevice= 6.19
apr 09 16:19:37 archlinux kernel: usb usb7: New USB device strings:
Mfr=3, Product=2, SerialNumber=1
apr 09 16:19:37 archlinux kernel: usb usb7: Product: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: usb usb7: Manufacturer: Linux
6.19.11-arch1-1 xhci-hcd
apr 09 16:19:37 archlinux kernel: usb usb7: SerialNumber: 0000:c5:00.4
apr 09 16:19:37 archlinux kernel: hub 7-0:1.0: USB hub found
apr 09 16:19:37 archlinux kernel: hub 7-0:1.0: 1 port detected
apr 09 16:19:37 archlinux kernel: usb usb8: We don't know the
algorithms for LPM for this host, disabling LPM.
apr 09 16:19:37 archlinux kernel: usb usb8: New USB device found,
idVendor=1d6b, idProduct=0003, bcdDevice= 6.19
apr 09 16:19:37 archlinux kernel: usb usb8: New USB device strings:
Mfr=3, Product=2, SerialNumber=1
apr 09 16:19:37 archlinux kernel: usb usb8: Product: xHCI Host Controller
apr 09 16:19:37 archlinux kernel: usb usb8: Manufacturer: Linux
6.19.11-arch1-1 xhci-hcd
apr 09 16:19:37 archlinux kernel: usb usb8: SerialNumber: 0000:c5:00.4
apr 09 16:19:37 archlinux kernel: hub 8-0:1.0: USB hub found
apr 09 16:19:37 archlinux kernel: hub 8-0:1.0: 1 port detected
apr 09 16:19:37 archlinux kernel: usbcore: registered new interface
driver usbserial_generic
apr 09 16:19:37 archlinux kernel: usbserial: USB Serial support
registered for generic
apr 09 16:19:37 archlinux kernel: i8042: PNP detection disabled
apr 09 16:19:37 archlinux kernel: usb 3-1: new full-speed USB device
number 2 using xhci_hcd
apr 09 16:19:37 archlinux kernel: usb 1-1: new high-speed USB device
number 2 using xhci_hcd
apr 09 16:19:37 archlinux kernel: serio: i8042 KBD port at 0x60,0x64 irq 1
apr 09 16:19:37 archlinux kernel: rtc_cmos 00:01: RTC can wake from S4
apr 09 16:19:37 archlinux kernel: rtc_cmos 00:01: registered as rtc0
apr 09 16:19:37 archlinux kernel: rtc_cmos 00:01: setting system clock
to 2026-04-09T14:19:36 UTC (1775744376)
apr 09 16:19:37 archlinux kernel: rtc_cmos 00:01: alarms up to one
month, y3k, 114 bytes nvram
apr 09 16:19:37 archlinux kernel: input: AT Translated Set 2 keyboard
as /devices/platform/i8042/serio0/input/input2
apr 09 16:19:37 archlinux kernel: simple-framebuffer
simple-framebuffer.0: [drm] Registered 1 planes with drm panic
apr 09 16:19:37 archlinux kernel: [drm] Initialized simpledrm 1.0.0
for simple-framebuffer.0 on minor 0
apr 09 16:19:37 archlinux kernel: fbcon: Deferring console take-over
apr 09 16:19:37 archlinux kernel: simple-framebuffer
simple-framebuffer.0: [drm] fb0: simpledrmdrmfb frame buffer device
apr 09 16:19:37 archlinux kernel: hid: raw HID events driver (C) Jiri Kosina
apr 09 16:19:37 archlinux kernel: usbcore: registered new interface
driver usbhid
apr 09 16:19:37 archlinux kernel: usbhid: USB HID core driver
apr 09 16:19:37 archlinux kernel: rust_binder: Loaded Rust Binder.
apr 09 16:19:37 archlinux kernel: drop_monitor: Initializing network
drop monitor service
apr 09 16:19:37 archlinux kernel: NET: Registered PF_INET6 protocol family
apr 09 16:19:37 archlinux kernel: Segment Routing with IPv6
apr 09 16:19:37 archlinux kernel: RPL Segment Routing with IPv6
apr 09 16:19:37 archlinux kernel: In-situ OAM (IOAM) with IPv6
apr 09 16:19:37 archlinux kernel: NET: Registered PF_PACKET protocol family
apr 09 16:19:37 archlinux kernel: x86/amd: Previous system reset
reason [0x00200800]: ACPI power state transition occurred
apr 09 16:19:37 archlinux kernel: microcode: Current revision: 0x0b600037
apr 09 16:19:37 archlinux kernel: microcode: Updated early from: 0x0b600037
apr 09 16:19:37 archlinux kernel: resctrl: L3 allocation detected
apr 09 16:19:37 archlinux kernel: resctrl: MB allocation detected
apr 09 16:19:37 archlinux kernel: resctrl: SMBA allocation detected
apr 09 16:19:37 archlinux kernel: resctrl: L3 monitoring detected
apr 09 16:19:37 archlinux kernel: IPI shorthand broadcast: enabled
apr 09 16:19:37 archlinux kernel: sched_clock: Marking stable
(2272000686, 1705177)->(2294144713, -20438850)
apr 09 16:19:37 archlinux kernel: registered taskstats version 1
apr 09 16:19:37 archlinux kernel: Loading compiled-in X.509 certificates
apr 09 16:19:37 archlinux kernel: Loaded X.509 cert 'Build time
autogenerated kernel key: 3a9ca8bee785b4bb1fe8be4990c52511f4d6bad3'
apr 09 16:19:37 archlinux kernel: zswap: loaded using pool zstd
apr 09 16:19:37 archlinux kernel: Demotion targets for Node 0: null
apr 09 16:19:37 archlinux kernel: Key type .fscrypt registered
apr 09 16:19:37 archlinux kernel: Key type fscrypt-provisioning registered
apr 09 16:19:37 archlinux kernel: Btrfs loaded, zoned=yes, fsverity=yes
apr 09 16:19:37 archlinux kernel: Key type big_key registered
apr 09 16:19:37 archlinux kernel: integrity: Loading X.509 certificate: UEFI:db
apr 09 16:19:37 archlinux kernel: integrity: Loaded X.509 cert
'Microsoft Windows Production PCA 2011:
a92902398e16c49778cd90f99e4f9ae17c55af53'
apr 09 16:19:37 archlinux kernel: integrity: Loading X.509 certificate: UEFI:db
apr 09 16:19:37 archlinux kernel: integrity: Loaded X.509 cert
'Microsoft Corporation: Windows UEFI CA 2023:
aefc5fbbbe055d8f8daa585473499417ab5a5272'
apr 09 16:19:37 archlinux kernel: integrity: Loading X.509 certificate: UEFI:db
apr 09 16:19:37 archlinux kernel: integrity: Loaded X.509 cert 'Lenovo
Consumer SMB UEFI: 5252936d671a8a37b34d76030d24385e3589d606'
apr 09 16:19:37 archlinux kernel: integrity: Loading X.509 certificate: UEFI:db
apr 09 16:19:37 archlinux kernel: integrity: Loaded X.509 cert 'OK
Certificate: c8c73a37546046ab495c33f4d0856052'
apr 09 16:19:37 archlinux kernel: PM: Magic number: 6:419:333
apr 09 16:19:37 archlinux kernel: tty tty54: hash matches
apr 09 16:19:37 archlinux kernel: memory memory183: hash matches
apr 09 16:19:37 archlinux kernel: RAS: Correctable Errors collector initialized.
apr 09 16:19:37 archlinux kernel: clk: Disabling unused clocks
apr 09 16:19:37 archlinux kernel: PM: genpd: Disabling unused power domains
apr 09 16:19:37 archlinux kernel: Freeing unused decrypted memory: 2028K
apr 09 16:19:37 archlinux kernel: Freeing unused kernel image
(initmem) memory: 4776K
apr 09 16:19:37 archlinux kernel: Write protecting the kernel
read-only data: 40960k
apr 09 16:19:37 archlinux kernel: Freeing unused kernel image
(text/rodata gap) memory: 1956K
apr 09 16:19:37 archlinux kernel: Freeing unused kernel image
(rodata/data gap) memory: 1688K
apr 09 16:19:37 archlinux kernel: x86/mm: Checked W+X mappings:
passed, no W+X pages found.
apr 09 16:19:37 archlinux kernel: rodata_test: all tests were successful
apr 09 16:19:37 archlinux kernel: Run /init as init process
apr 09 16:19:37 archlinux kernel: with arguments:
apr 09 16:19:37 archlinux kernel: /init
apr 09 16:19:37 archlinux kernel: with environment:
apr 09 16:19:37 archlinux kernel: HOME=/
apr 09 16:19:37 archlinux kernel: TERM=linux
apr 09 16:19:37 archlinux systemd[1]: Successfully made /usr/ read-only.
apr 09 16:19:37 archlinux kernel: usb 1-1: New USB device found,
idVendor=04f2, idProduct=b829, bcdDevice=78.01
apr 09 16:19:37 archlinux kernel: usb 1-1: New USB device strings:
Mfr=3, Product=1, SerialNumber=2
apr 09 16:19:37 archlinux kernel: usb 1-1: Product: Integrated Camera
apr 09 16:19:37 archlinux kernel: usb 1-1: Manufacturer: Chicony
Electronics Co.,Ltd.
apr 09 16:19:37 archlinux kernel: usb 1-1: SerialNumber: 0001
apr 09 16:19:37 archlinux kernel: usb 3-1: New USB device found,
idVendor=046d, idProduct=c52b, bcdDevice=24.10
apr 09 16:19:37 archlinux kernel: usb 3-1: New USB device strings:
Mfr=1, Product=2, SerialNumber=0
apr 09 16:19:37 archlinux kernel: usb 3-1: Product: USB Receiver
apr 09 16:19:37 archlinux kernel: usb 3-1: Manufacturer: Logitech
apr 09 16:19:37 archlinux kernel: input: Logitech USB Receiver as
/devices/pci0000:00/0000:00:08.3/0000:c5:00.0/usb3/3-1/3-1:1.0/0003:046D:C52B.0001/input/input3
apr 09 16:19:37 archlinux kernel: hid-generic 0003:046D:C52B.0001:
input,hidraw0: USB HID v1.11 Keyboard [Logitech USB Receiver] on
usb-0000:c5:00.0-1/input0
apr 09 16:19:37 archlinux kernel: input: Logitech USB Receiver Mouse
as /devices/pci0000:00/0000:00:08.3/0000:c5:00.0/usb3/3-1/3-1:1.1/0003:046D:C52B.0002/input/input4
apr 09 16:19:37 archlinux kernel: input: Logitech USB Receiver
Consumer Control as
/devices/pci0000:00/0000:00:08.3/0000:c5:00.0/usb3/3-1/3-1:1.1/0003:046D:C52B.0002/input/input5
apr 09 16:19:37 archlinux kernel: input: Logitech USB Receiver System
Control as /devices/pci0000:00/0000:00:08.3/0000:c5:00.0/usb3/3-1/3-1:1.1/0003:046D:C52B.0002/input/input6
apr 09 16:19:37 archlinux kernel: hid-generic 0003:046D:C52B.0002:
input,hiddev96,hidraw1: USB HID v1.11 Mouse [Logitech USB Receiver] on
usb-0000:c5:00.0-1/input1
apr 09 16:19:37 archlinux kernel: hid-generic 0003:046D:C52B.0003:
hiddev97,hidraw2: USB HID v1.11 Device [Logitech USB Receiver] on
usb-0000:c5:00.0-1/input2
apr 09 16:19:37 archlinux systemd[1]: systemd 260.1-1-arch running in
system mode (+PAM +AUDIT -SELINUX +APPARMOR -IMA +IPE +SMACK +SECCOMP
+GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2
+KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2
+PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD
+BPF_FRAMEWORK +BTF +XKBCOMMON +UTMP +LIBARCHIVE)
apr 09 16:19:37 archlinux systemd[1]: Detected architecture x86-64.
apr 09 16:19:37 archlinux systemd[1]: Running in initrd.
apr 09 16:19:37 archlinux systemd[1]: Initializing machine ID from
random generator.
apr 09 16:19:37 archlinux kernel: usb 3-5: new full-speed USB device
number 3 using xhci_hcd
apr 09 16:19:37 archlinux systemd[1]: Queued start job for default
target Initrd Default Target.
apr 09 16:19:37 archlinux systemd[1]: Expecting device
/dev/disk/by-uuid/<ROOT_UUID>...
apr 09 16:19:37 archlinux systemd[1]: Reached target Path Units.
apr 09 16:19:37 archlinux systemd[1]: Reached target Slice Units.
apr 09 16:19:37 archlinux systemd[1]: Reached target Swaps.
apr 09 16:19:37 archlinux systemd[1]: Reached target Timer Units.
apr 09 16:19:37 archlinux systemd[1]: Listening on Journal Socket (/dev/log).
apr 09 16:19:37 archlinux systemd[1]: Listening on Journal Sockets.
apr 09 16:19:37 archlinux systemd[1]: Listening on udev Control Socket.
apr 09 16:19:37 archlinux systemd[1]: Listening on udev Kernel Socket.
apr 09 16:19:37 archlinux systemd[1]: Reached target Socket Units.
apr 09 16:19:37 archlinux systemd[1]: Create List of Static Device
Nodes skipped, unmet condition check
ConditionFileNotEmpty=/lib/modules/6.19.11-arch1-1/modules.devname
apr 09 16:19:37 archlinux systemd[1]: Starting Journal Service...
apr 09 16:19:37 archlinux systemd[1]: Starting Load Kernel Modules...
apr 09 16:19:37 archlinux systemd[1]: TPM PCR Barrier (initrd)
skipped, unmet condition check ConditionSecurity=measured-uki
apr 09 16:19:37 archlinux systemd[1]: Starting Create Static Device
Nodes in /dev...
apr 09 16:19:37 archlinux systemd[1]: Starting Coldplug All udev Devices...
apr 09 16:19:37 archlinux systemd[1]: Starting Virtual Console Setup...
apr 09 16:19:37 archlinux systemd[1]: Finished Create Static Device
Nodes in /dev.
apr 09 16:19:37 archlinux systemd-journald[233]: Collecting audit
messages is disabled.
apr 09 16:19:37 archlinux systemd[1]: Finished Virtual Console Setup.
apr 09 16:19:37 archlinux systemd[1]: Reached target Preparation for
Local File Systems.
apr 09 16:19:37 archlinux systemd[1]: Reached target Local File Systems.
apr 09 16:19:37 archlinux systemd[1]: Starting Rule-based Manager for
Device Events and Files...
apr 09 16:19:37 archlinux kernel: wmi_bus wmi_bus-PNP0C14:02:
[Firmware Bug]: WQA4 data block query control method not found
apr 09 16:19:37 archlinux kernel: wmi_bus wmi_bus-PNP0C14:02:
[Firmware Bug]: WQA6 data block query control method not found
apr 09 16:19:37 archlinux kernel: wmi_bus wmi_bus-PNP0C14:02:
[Firmware Bug]: WQA7 data block query control method not found
apr 09 16:19:37 archlinux kernel: wmi_bus wmi_bus-PNP0C14:02:
[Firmware Bug]: WQA8 data block query control method not found
apr 09 16:19:37 archlinux kernel: wmi_bus wmi_bus-PNP0C14:02:
[Firmware Bug]: WQA9 data block query control method not found
apr 09 16:19:37 archlinux kernel: wmi_bus wmi_bus-PNP0C14:02:
[Firmware Bug]: WMA9 method block execution control method not found
apr 09 16:19:37 archlinux kernel: ACPI: video: Video Device [VGA]
(multi-head: yes rom: no post: no)
apr 09 16:19:37 archlinux kernel: input: Video Bus as
/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:16/LNXVIDEO:00/input/input8
apr 09 16:19:37 archlinux systemd[1]: Started Rule-based Manager for
Device Events and Files.
apr 09 16:19:37 archlinux systemd[1]: Started Journal Service.
apr 09 16:19:37 archlinux kernel: usb 3-5: New USB device found,
idVendor=8087, idProduct=0032, bcdDevice= 0.00
apr 09 16:19:37 archlinux kernel: usb 3-5: New USB device strings:
Mfr=0, Product=0, SerialNumber=0
apr 09 16:19:37 archlinux kernel: fbcon: Taking over console
apr 09 16:19:37 archlinux kernel: Console: switching to colour frame
buffer device 180x56
apr 09 16:19:38 archlinux kernel: Key type psk registered
apr 09 16:19:38 archlinux kernel: sdhci: Secure Digital Host
Controller Interface driver
apr 09 16:19:38 archlinux kernel: sdhci: Copyright(c) Pierre Ossman
apr 09 16:19:38 archlinux kernel: sdhci-pci 0000:c0:00.0: SDHCI
controller found [1217:8621] (rev 1)
apr 09 16:19:38 archlinux kernel: sdhci-pci 0000:c0:00.0: enabling
device (0000 -> 0002)
apr 09 16:19:38 archlinux kernel: nvme 0000:c2:00.0: platform quirk:
setting simple suspend
apr 09 16:19:38 archlinux kernel: nvme 0000:bf:00.0: platform quirk:
setting simple suspend
apr 09 16:19:38 archlinux kernel: nvme nvme0: pci function 0000:c2:00.0
apr 09 16:19:38 archlinux kernel: nvme nvme1: pci function 0000:bf:00.0
apr 09 16:19:38 archlinux kernel: amdgpu: Virtual CRAT table created for CPU
apr 09 16:19:38 archlinux kernel: amdgpu: Topology: Add CPU node
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: enabling device
(0006 -> 0007)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
initializing kernel modesetting (IP DISCOVERY 0x1002:0x1114
0x17AA:0x3801 0xC2).
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
register mmio base: 0x90200000
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
register mmio size: 524288
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 0 <common_v1_0_0> (soc21_common)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 1 <gmc_v11_0_0> (gmc_v11_0)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 2 <ih_v6_0_0> (ih_v6_1)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 3 <psp_v13_0_0> (psp)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 4 <smu_v14_0_0> (smu)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 5 <dce_v1_0_0> (dm)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 6 <gfx_v11_0_0> (gfx_v11_0)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 7 <sdma_v6_0_0> (sdma_v6_0)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 8 <vcn_v4_0_5> (vcn_v4_0_5)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 9 <jpeg_v4_0_5> (jpeg_v4_0_5)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 10 <mes_v11_0_0> (mes_v11_0)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
detected ip block number 11 <vpe_v6_1_0> (vpe_v6_1)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: Fetched
VBIOS from VFCT
apr 09 16:19:38 archlinux kernel: amdgpu: ATOM BIOS: 113-STRIXEMU-001
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: VPE:
collaborate mode false
apr 09 16:19:38 archlinux kernel: nvme nvme0: allocated 40 MiB host
memory buffer (10 segments).
apr 09 16:19:38 archlinux kernel: mmc0: SDHCI controller on PCI
[0000:c0:00.0] using ADMA
apr 09 16:19:38 archlinux kernel: Console: switching to colour dummy
device 80x25
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: Trusted
Memory Zone (TMZ) feature disabled as experimental (default)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: vm size
is 262144 GB, 4 levels, block size is 9-bit, fragment size is 9-bit
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: VRAM:
2048M 0x0000008000000000 - 0x000000807FFFFFFF (2048M used)
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: GART:
512M 0x00007FFF00000000 - 0x00007FFF1FFFFFFF
apr 09 16:19:38 archlinux kernel: [drm] Detected VRAM RAM=2048M, BAR=2048M
apr 09 16:19:38 archlinux kernel: [drm] RAM width 128bits LPDDR5
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: amdgpu:
2048M of VRAM memory ready
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: amdgpu:
14928M of GTT memory ready.
apr 09 16:19:38 archlinux kernel: [drm] GART: num cpu pages 131072,
num gpu pages 131072
apr 09 16:19:38 archlinux kernel: [drm] PCIE GART of 512M enabled
(table at 0x000000807FB00000).
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
Loading DMUB firmware via PSP: version=0x09003E00
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [VCN
instance 0] Found VCN firmware Version ENC: 1.24 DEC: 9 VEP: 0
Revision: 16
apr 09 16:19:38 archlinux kernel: nvme nvme0: 16/0/0 default/read/poll queues
apr 09 16:19:38 archlinux kernel: logitech-djreceiver
0003:046D:C52B.0003: hiddev96,hidraw0: USB HID v1.11 Device [Logitech
USB Receiver] on usb-0000:c5:00.0-1/input2
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: reserve
0x1100000 from 0x807c000000 for PSP TMR
apr 09 16:19:38 archlinux kernel: nvme nvme1: allocated 32 MiB host
memory buffer (8 segments).
apr 09 16:19:38 archlinux kernel: nvme nvme1: 16/0/0 default/read/poll queues
apr 09 16:19:38 archlinux kernel: nvme0n1: p1 p2
apr 09 16:19:38 archlinux kernel: nvme1n1: p1 p2 p3 p4 p5
apr 09 16:19:38 archlinux kernel: BTRFS: device label cachyos devid 1
transid 68735 /dev/nvme0n1p2 (259:2) scanned by mount (350)
apr 09 16:19:38 archlinux kernel: BTRFS info (device nvme0n1p2): first
mount of filesystem <ROOT_UUID>
apr 09 16:19:38 archlinux kernel: BTRFS info (device nvme0n1p2): using
crc32c (crc32c-lib) checksum algorithm
apr 09 16:19:38 archlinux kernel: BTRFS info (device nvme0n1p2):
enabling ssd optimizations
apr 09 16:19:38 archlinux kernel: BTRFS info (device nvme0n1p2):
turning on async discard
apr 09 16:19:38 archlinux kernel: BTRFS info (device nvme0n1p2):
enabling free space tree
apr 09 16:19:38 archlinux kernel: input: Logitech Wireless Device
PID:404a Keyboard as
/devices/pci0000:00/0000:00:08.3/0000:c5:00.0/usb3/3-1/3-1:1.2/0003:046D:C52B.0003/0003:046D:404A.0004/input/input9
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: RAS:
optional ras ta ucode is not available
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: RAP:
optional rap ta ucode is not available
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu:
SECUREDISPLAY: optional securedisplay ta ucode is not available
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: SMU is
initialized successfully!
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
Display Core v3.2.359 initialized on DCN 3.5
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
DP-HDMI FRL PCON supported
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
DMUB hardware initialized: version=0x09003E00
apr 09 16:19:38 archlinux kernel: input: Logitech Wireless Device
PID:404a Mouse as
/devices/pci0000:00/0000:00:08.3/0000:c5:00.0/usb3/3-1/3-1:1.2/0003:046D:C52B.0003/0003:046D:404A.0004/input/input10
apr 09 16:19:38 archlinux kernel: hid-generic 0003:046D:404A.0004:
input,hidraw1: USB HID v1.11 Keyboard [Logitech Wireless Device
PID:404a] on usb-0000:c5:00.0-1/input2:1
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
Using ACPI provided EDID for eDP-1
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
eDP-1: PSR support 1, DC PSR ver 0, sink PSR ver 1 DPCD caps 0x76
su_y_granularity 4
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
HDMI-A-1: PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0
su_y_granularity 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
DP-1: PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0
su_y_granularity 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
DP-2: PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0
su_y_granularity 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
DP-3: PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0
su_y_granularity 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
DP-4: PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0
su_y_granularity 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
DP-5: PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0
su_y_granularity 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
DP-6: PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0
su_y_granularity 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
DP-7: PSR support 0, DC PSR ver -1, sink PSR ver 0 DPCD caps 0x0
su_y_granularity 0
apr 09 16:19:38 archlinux kernel: kfd kfd: amdgpu: Allocated 3969056
bytes on gart
apr 09 16:19:38 archlinux kernel: kfd kfd: amdgpu: Total number of KFD
nodes to be created: 1
apr 09 16:19:38 archlinux kernel: amdgpu: Virtual CRAT table created for GPU
apr 09 16:19:38 archlinux kernel: amdgpu: Topology: Add dGPU node
[0x1114:0x1002]
apr 09 16:19:38 archlinux kernel: kfd kfd: amdgpu: added device 1002:1114
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: SE 1,
SH per SE 2, CU per SH 4, active_cu_number 8
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
gfx_0.0.0 uses VM inv eng 0 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.0.0 uses VM inv eng 1 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.1.0 uses VM inv eng 4 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.2.0 uses VM inv eng 6 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.3.0 uses VM inv eng 7 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.0.1 uses VM inv eng 8 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.1.1 uses VM inv eng 9 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.2.1 uses VM inv eng 10 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.3.1 uses VM inv eng 11 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
sdma0 uses VM inv eng 12 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
vcn_unified_0 uses VM inv eng 0 on hub 8
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
jpeg_dec_0 uses VM inv eng 1 on hub 8
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
mes_kiq_3.1.0 uses VM inv eng 13 on hub 0
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: ring
vpe uses VM inv eng 4 on hub 8
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: Runtime
PM not available
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: amdgpu: [drm]
Using custom brightness curve
apr 09 16:19:38 archlinux kernel: amdgpu 0000:c3:00.0: [drm]
Registered 4 planes with drm panic
apr 09 16:19:38 archlinux kernel: [drm] Initialized amdgpu 3.64.0 for
0000:c3:00.0 on minor 1
apr 09 16:19:38 archlinux kernel: fbcon: amdgpudrmfb (fb0) is primary device
apr 09 16:19:38 archlinux kernel: [drm] pre_validate_dsc:1667 MST_DSC
dsc precompute is not needed
apr 09 16:19:38 archlinux kernel: input: Logitech MX Anywhere 2 as
/devices/pci0000:00/0000:00:08.3/0000:c5:00.0/usb3/3-1/3-1:1.2/0003:046D:C52B.0003/0003:046D:404A.0004/input/input14
apr 09 16:19:38 archlinux kernel: logitech-hidpp-device
0003:046D:404A.0004: input,hidraw1: USB HID v1.11 Keyboard [Logitech
MX Anywhere 2] on usb-0000:c5:00.0-1/input2:1
apr 09 16:19:40 archlinux kernel: Console: switching to colour frame
buffer device 180x56
apr 09 16:19:40 archlinux kernel: amdgpu 0000:c3:00.0: [drm] fb0:
amdgpudrmfb frame buffer device
apr 09 16:19:41 <HOST> systemd-journald[233]: Received SIGTERM from
PID 1 (systemd).
apr 09 16:19:41 <HOST> systemd[1]: systemd 260.1-1-arch running in
system mode (+PAM +AUDIT -SELINUX +APPARMOR -IMA +IPE +SMACK +SECCOMP
+GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2
+KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2
+PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD
+BPF_FRAMEWORK +BTF +XKBCOMMON +UTMP +LIBARCHIVE)
apr 09 16:19:41 <HOST> systemd[1]: Detected architecture x86-64.
apr 09 16:19:41 <HOST> systemd[1]: Hostname set to <<HOST>>.
apr 09 16:19:41 <HOST> systemd[1]: bpf-restrict-fs: LSM BPF program attached
apr 09 16:19:41 <HOST> kernel: zram: Added device: zram0
apr 09 16:19:41 <HOST> systemd[1]: initrd-switch-root.service:
Deactivated successfully.
apr 09 16:19:41 <HOST> systemd[1]: Stopped Switch Root.
apr 09 16:19:41 <HOST> systemd[1]: systemd-journald.service: Scheduled
restart job, restart counter is at 1.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice /system/dirmngr.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice /system/getty.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice /system/gpg-agent.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice
/system/gpg-agent-browser.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice /system/gpg-agent-extra.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice /system/gpg-agent-ssh.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice /system/keyboxd.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice /system/modprobe.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice /system/systemd-fsck.
apr 09 16:19:41 <HOST> systemd[1]: Created slice Slice
/system/systemd-zram-setup.
apr 09 16:19:41 <HOST> systemd[1]: Created slice User and Session Slice.
apr 09 16:19:41 <HOST> systemd[1]: systemd-ask-password-plymouth.path:
Deactivated successfully.
apr 09 16:19:41 <HOST> systemd[1]: Stopped Forward Password Requests
to Plymouth Directory Watch.
apr 09 16:19:41 <HOST> systemd[1]: Started Forward Password Requests
to Wall Directory Watch.
apr 09 16:19:41 <HOST> systemd[1]: Set up automount Arbitrary
Executable File Formats File System Automount Point.
apr 09 16:19:41 <HOST> systemd[1]: Expecting device
/dev/disk/by-uuid/A25D-6277...
apr 09 16:19:41 <HOST> systemd[1]: Expecting device
/dev/disk/by-uuid/<ROOT_UUID>...
apr 09 16:19:41 <HOST> systemd[1]: Expecting device /dev/zram0...
apr 09 16:19:41 <HOST> systemd[1]: Reached target Login Prompts.
apr 09 16:19:41 <HOST> systemd[1]: Reached target Image Downloads.
apr 09 16:19:41 <HOST> systemd[1]: Stopped target Switch Root.
apr 09 16:19:41 <HOST> systemd[1]: Stopped target Initrd File Systems.
apr 09 16:19:41 <HOST> systemd[1]: Stopped target Initrd Root File System.
apr 09 16:19:41 <HOST> systemd[1]: Reached target Local Integrity
Protected Volumes.
apr 09 16:19:41 <HOST> systemd[1]: Reached target Remote File Systems.
apr 09 16:19:41 <HOST> systemd[1]: Reached target Slice Units.
apr 09 16:19:41 <HOST> systemd[1]: Reached target Local Verity
Protected Volumes.
apr 09 16:19:41 <HOST> systemd[1]: Listening on Device-mapper event
daemon FIFOs.
apr 09 16:19:41 <HOST> systemd[1]: Listening on LVM2 poll daemon socket.
apr 09 16:19:41 <HOST> systemd[1]: Listening on Query the User
Interactively for a Password.
apr 09 16:19:41 <HOST> systemd[1]: Listening on Process Core Dump Socket.
apr 09 16:19:41 <HOST> systemd[1]: Listening on Credential
Encryption/Decryption.
apr 09 16:19:41 <HOST> systemd[1]: Listening on Factory Reset Management.
apr 09 16:19:41 <HOST> systemd[1]: Listening on Console Output Muting
Service Socket.
apr 09 16:19:41 <HOST> systemd[1]: TPM PCR Measurements skipped, unmet
condition check ConditionSecurity=measured-uki
apr 09 16:19:41 <HOST> systemd[1]: Make TPM PCR Policy skipped, unmet
condition check ConditionSecurity=measured-uki
apr 09 16:19:41 <HOST> systemd[1]: Listening on Disk Repartitioning
Service Socket.
apr 09 16:19:41 <HOST> systemd[1]: Listening on Resolve Monitor Varlink Socket.
apr 09 16:19:41 <HOST> systemd[1]: Listening on Resolve Service Varlink Socket.
apr 09 16:19:41 <HOST> systemd[1]: Listening on udev Control Socket.
apr 09 16:19:41 <HOST> systemd[1]: Listening on udev Varlink Socket.
apr 09 16:19:41 <HOST> systemd[1]: Listening on User Database Manager Socket.
apr 09 16:19:41 <HOST> systemd[1]: Mounting Huge Pages File System...
apr 09 16:19:41 <HOST> systemd[1]: Mounting POSIX Message Queue File System...
apr 09 16:19:41 <HOST> systemd[1]: Mounting Kernel Debug File System...
apr 09 16:19:41 <HOST> systemd[1]: Mounting Kernel Trace File System...
apr 09 16:19:41 <HOST> systemd[1]: Starting Create List of Static
Device Nodes...
apr 09 16:19:41 <HOST> systemd[1]: Starting Monitoring of LVM2
mirrors, snapshots etc. using dmeventd or progress polling...
apr 09 16:19:41 <HOST> systemd[1]: Load Kernel Module configfs
skipped, unmet condition check ConditionKernelModuleLoaded=!configfs
apr 09 16:19:41 <HOST> systemd[1]: Mounting Kernel Configuration File System...
apr 09 16:19:41 <HOST> systemd[1]: Load Kernel Module drm skipped,
unmet condition check ConditionKernelModuleLoaded=!drm
apr 09 16:19:41 <HOST> systemd[1]: Load Kernel Module fuse skipped,
unmet condition check ConditionKernelModuleLoaded=!fuse
apr 09 16:19:41 <HOST> systemd[1]: Mounting FUSE Control File System...
apr 09 16:19:41 <HOST> systemd[1]: Stopping plymouth-start.service...
apr 09 16:19:41 <HOST> systemd[1]: plymouth-switch-root.service:
Deactivated successfully.
apr 09 16:19:41 <HOST> systemd[1]: Stopped Plymouth switch root service.
apr 09 16:19:41 <HOST> systemd[1]: Clear Stale Hibernate Storage Info
skipped, unmet condition check
ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67
apr 09 16:19:41 <HOST> systemd[1]: Starting Journal Service...
apr 09 16:19:41 <HOST> systemd[1]: Starting Load Kernel Modules...
apr 09 16:19:41 <HOST> systemd[1]: TPM PCR Machine ID Measurement
skipped, unmet condition check ConditionSecurity=measured-uki
apr 09 16:19:41 <HOST> systemd[1]: TPM NvPCR Product ID Measurement
skipped, unmet condition check ConditionSecurity=measured-uki
apr 09 16:19:41 <HOST> systemd[1]: Starting Remount Root and Kernel
File Systems...
apr 09 16:19:41 <HOST> systemd[1]: Early TPM SRK Setup skipped, unmet
condition check ConditionSecurity=measured-uki
apr 09 16:19:41 <HOST> systemd[1]: Starting Load udev Rules from Credentials...
apr 09 16:19:41 <HOST> systemd[1]: Starting Coldplug All udev Devices...
apr 09 16:19:41 <HOST> systemd[1]: systemd-vconsole-setup.service:
Deactivated successfully.
apr 09 16:19:41 <HOST> systemd[1]: Stopped Virtual Console Setup.
apr 09 16:19:41 <HOST> systemd[1]: Mounted Huge Pages File System.
apr 09 16:19:41 <HOST> systemd[1]: Mounted POSIX Message Queue File System.
apr 09 16:19:41 <HOST> systemd[1]: Mounted Kernel Debug File System.
apr 09 16:19:41 <HOST> systemd[1]: Mounted Kernel Trace File System.
apr 09 16:19:41 <HOST> systemd[1]: Finished Create List of Static Device Nodes.
apr 09 16:19:41 <HOST> systemd[1]: Mounted Kernel Configuration File System.
apr 09 16:19:41 <HOST> systemd[1]: Mounted FUSE Control File System.
apr 09 16:19:41 <HOST> systemd[1]: Starting Create Static Device Nodes
in /dev gracefully...
apr 09 16:19:41 <HOST> kernel: BTRFS info (device nvme0n1p2 state M):
use zstd compression, level 1
apr 09 16:19:41 <HOST> systemd[1]: Finished Remount Root and Kernel
File Systems.
apr 09 16:19:41 <HOST> systemd[1]: Finished Load udev Rules from Credentials.
apr 09 16:19:41 <HOST> kernel: Asymmetric key parser 'pkcs8' registered
apr 09 16:19:41 <HOST> systemd[1]: Rebuild Hardware Database skipped,
unmet condition check ConditionNeedsUpdate=/etc
apr 09 16:19:41 <HOST> kernel: i2c_dev: i2c /dev entries driver
apr 09 16:19:41 <HOST> systemd[1]: Starting Load/Save OS Random Seed...
apr 09 16:19:41 <HOST> systemd[1]: TPM SRK Setup skipped, unmet
condition check ConditionSecurity=measured-uki
apr 09 16:19:41 <HOST> systemd[1]: TPM PCR NvPCR Initialization
Separator skipped, unmet condition check
ConditionSecurity=measured-uki
apr 09 16:19:41 <HOST> systemd[1]: Finished Load Kernel Modules.
apr 09 16:19:41 <HOST> systemd-journald[589]: Collecting audit
messages is disabled.
apr 09 16:19:41 <HOST> systemd[1]: Starting Apply Kernel Variables...
apr 09 16:19:41 <HOST> systemd[1]: Started Journal Service.
apr 09 16:19:41 <HOST> kernel: device-mapper: uevent: version 1.0.3
apr 09 16:19:41 <HOST> kernel: device-mapper: ioctl: 4.50.0-ioctl
(2025-04-28) initialised: dm-devel@lists.linux.dev
apr 09 16:19:42 <HOST> kernel: zram0: detected capacity change from 0
to 61145088
apr 09 16:19:42 <HOST> kernel: ccp 0000:c3:00.2: enabling device (0000 -> 0002)
apr 09 16:19:42 <HOST> kernel: ccp 0000:c3:00.2: tee enabled
apr 09 16:19:42 <HOST> kernel: ccp 0000:c3:00.2: psp enabled
apr 09 16:19:42 <HOST> kernel: amdxdna 0000:c4:00.1: enabling device
(0000 -> 0002)
apr 09 16:19:42 <HOST> kernel: ACPI: bus type thunderbolt registered
apr 09 16:19:42 <HOST> kernel: cfg80211: Loading compiled-in X.509
certificates for regulatory database
apr 09 16:19:42 <HOST> kernel: mc: Linux media interface: v0.10
apr 09 16:19:42 <HOST> kernel: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
apr 09 16:19:42 <HOST> kernel: Loaded X.509 cert 'wens:
61c038651aabdcf94bd0ac7ff06c7248db18c600'
apr 09 16:19:42 <HOST> kernel: ACPI: battery: new hook: Ideapad
Battery Extension
apr 09 16:19:42 <HOST> kernel: input: Ideapad extra buttons as
/devices/pci0000:00/0000:00:14.3/PNP0C09:00/VPC2004:00/input/input15
apr 09 16:19:42 <HOST> kernel: RAPL PMU: API unit is 2^-32 Joules, 2
fixed counters, 163840 ms ovfl timer
apr 09 16:19:42 <HOST> kernel: RAPL PMU: hw unit of domain package 2^-16 Joules
apr 09 16:19:42 <HOST> kernel: RAPL PMU: hw unit of domain core 2^-16 Joules
apr 09 16:19:42 <HOST> kernel: input: PC Speaker as
/devices/platform/pcspkr/input/input16
apr 09 16:19:42 <HOST> kernel: mousedev: PS/2 mouse device common for all mice
apr 09 16:19:42 <HOST> kernel: Bluetooth: Core ver 2.22
apr 09 16:19:42 <HOST> kernel: NET: Registered PF_BLUETOOTH protocol family
apr 09 16:19:42 <HOST> kernel: Bluetooth: HCI device and connection
manager initialized
apr 09 16:19:42 <HOST> kernel: Bluetooth: HCI socket layer initialized
apr 09 16:19:42 <HOST> kernel: Bluetooth: L2CAP socket layer initialized
apr 09 16:19:42 <HOST> kernel: Bluetooth: SCO socket layer initialized
apr 09 16:19:42 <HOST> kernel: input: SYNA2BA6:00 06CB:CF00 Mouse as
/devices/platform/AMDI0010:00/i2c-0/i2c-SYNA2BA6:00/0018:06CB:CF00.0005/input/input17
apr 09 16:19:42 <HOST> kernel: input: SYNA2BA6:00 06CB:CF00 Touchpad
as /devices/platform/AMDI0010:00/i2c-0/i2c-SYNA2BA6:00/0018:06CB:CF00.0005/input/input18
apr 09 16:19:42 <HOST> kernel: hid-generic 0018:06CB:CF00.0005:
input,hidraw2: I2C HID v1.00 Mouse [SYNA2BA6:00 06CB:CF00] on
i2c-SYNA2BA6:00
apr 09 16:19:42 <HOST> kernel: hid-generic 0018:048D:8353.0006:
hidraw3: I2C HID v1.00 Device [ITE8353:00 048D:8353] on i2c-ITE8353:00
apr 09 16:19:42 <HOST> kernel: [drm] Initialized amdxdna_accel_driver
0.6.0 for 0000:c4:00.1 on minor 0
apr 09 16:19:42 <HOST> kernel: piix4_smbus 0000:00:14.0: SMBus Host
Controller at 0xb00, revision 0
apr 09 16:19:42 <HOST> kernel: piix4_smbus 0000:00:14.0: Using
register 0x02 for SMBus port selection
apr 09 16:19:42 <HOST> kernel: videodev: Linux video capture interface: v2.00
apr 09 16:19:42 <HOST> kernel: Adding 30572540k swap on /dev/zram0.
Priority:100 extents:1 across:30572540k SSDsc
apr 09 16:19:42 <HOST> kernel: piix4_smbus 0000:00:14.0: Auxiliary
SMBus Host Controller at 0xb20
apr 09 16:19:42 <HOST> kernel: i2c i2c-23: Successfully instantiated SPD at 0x50
apr 09 16:19:42 <HOST> kernel: i2c i2c-23: Successfully instantiated SPD at 0x51
apr 09 16:19:42 <HOST> kernel: i2c i2c-23: Successfully instantiated SPD at 0x52
apr 09 16:19:42 <HOST> kernel: i2c i2c-23: Successfully instantiated SPD at 0x53
apr 09 16:19:42 <HOST> kernel: lenovo_wmi_other
DC2A8805-3A8C-41BA-A6F7-092E0089CD3B-16: bound
7A8F5407-CB67-4D6E-B547-39B3BE018154-10 (ops lwmi_cd01_component_ops
[lenovo_wmi_capdata01])
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0: enabling device
(0000 -> 0002)
apr 09 16:19:42 <HOST> kernel: usbcore: registered new interface driver btusb
apr 09 16:19:42 <HOST> kernel: input: gpio-keys as
/devices/platform/ACPI0011:00/gpio-keys.1.auto/input/input20
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: Device revision is 0
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: Secure boot is enabled
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: OTP lock is enabled
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: API lock is enabled
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: Debug lock is disabled
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: Minimum firmware build
1 week 10 2014
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: Bootloader timestamp
2019.40 buildtype 1 build 38
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: No dsm support to set
reset delay
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0: Detected crf-id
0x400410, cnv-id 0x400410 wfpm id 0x80000000
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0: PCI dev
2725/0024, rev=0x420, rfid=0x10d000
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0: Detected Intel(R)
Wi-Fi 6E AX210 160MHz
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: Found device firmware:
intel/ibt-0041-0041.sfi
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: Boot Address: 0x100800
apr 09 16:19:42 <HOST> kernel: Bluetooth: hci0: Firmware Version: 202-5.26
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0: loaded firmware
version 89.123cf747.0 ty-a0-gf-a0-89.ucode op_mode iwlmvm
apr 09 16:19:42 <HOST> kernel: snd_acp_pci 0000:c3:00.5: enabling
device (0000 -> 0002)
apr 09 16:19:42 <HOST> kernel: kvm_amd: TSC scaling supported
apr 09 16:19:42 <HOST> kernel: kvm_amd: Nested Virtualization enabled
apr 09 16:19:42 <HOST> kernel: kvm_amd: Nested Paging enabled
apr 09 16:19:42 <HOST> kernel: kvm_amd: LBR virtualization supported
apr 09 16:19:42 <HOST> kernel: kvm_amd: AVIC enabled
apr 09 16:19:42 <HOST> kernel: kvm_amd: x2AVIC enabled (max 512 vCPUs)
apr 09 16:19:42 <HOST> kernel: kvm_amd: Virtual VMLOAD VMSAVE supported
apr 09 16:19:42 <HOST> kernel: kvm_amd: Virtual GIF supported
apr 09 16:19:42 <HOST> kernel: kvm_amd: Virtual NMI enabled
apr 09 16:19:42 <HOST> kernel: uvcvideo 1-1:1.0: Found UVC 1.50 device
Integrated Camera (04f2:b829)
apr 09 16:19:42 <HOST> kernel: hid-sensor-hub 0018:048D:8353.0006:
hidraw3: I2C HID v1.00 Device [ITE8353:00 048D:8353] on i2c-ITE8353:00
apr 09 16:19:42 <HOST> kernel: pps_core: LinuxPPS API ver. 1 registered
apr 09 16:19:42 <HOST> kernel: pps_core: Software ver. 5.3.6 -
Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
apr 09 16:19:42 <HOST> kernel: PTP clock support registered
apr 09 16:19:42 <HOST> kernel: snd_hda_intel 0000:c3:00.1: enabling
device (0000 -> 0002)
apr 09 16:19:42 <HOST> kernel: snd_hda_intel 0000:c3:00.1: Handle
vga_switcheroo audio client
apr 09 16:19:42 <HOST> kernel: snd_hda_intel 0000:c3:00.6: enabling
device (0000 -> 0002)
apr 09 16:19:42 <HOST> kernel: uvcvideo 1-1:1.2: Found UVC 1.50 device
Integrated Camera (04f2:b829)
apr 09 16:19:42 <HOST> kernel: amd-pmf AMDI0107:00: No Smart PC policy present
apr 09 16:19:42 <HOST> kernel: amd-pmf AMDI0107:00: registered PMF
device successfully
apr 09 16:19:42 <HOST> kernel: usbcore: registered new interface driver uvcvideo
apr 09 16:19:42 <HOST> kernel: snd_hda_intel 0000:c3:00.1: bound
0000:c3:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
apr 09 16:19:42 <HOST> kernel: input: HD-Audio Generic HDMI/DP,pcm=3
as /devices/pci0000:00/0000:00:08.1/0000:c3:00.1/sound/card0/input21
apr 09 16:19:42 <HOST> kernel: input: HD-Audio Generic HDMI/DP,pcm=7
as /devices/pci0000:00/0000:00:08.1/0000:c3:00.1/sound/card0/input22
apr 09 16:19:42 <HOST> kernel: input: HD-Audio Generic HDMI/DP,pcm=8
as /devices/pci0000:00/0000:00:08.1/0000:c3:00.1/sound/card0/input23
apr 09 16:19:42 <HOST> kernel: input: HD-Audio Generic HDMI/DP,pcm=9
as /devices/pci0000:00/0000:00:08.1/0000:c3:00.1/sound/card0/input24
apr 09 16:19:42 <HOST> kernel: input: SYNA2BA6:00 06CB:CF00 Mouse as
/devices/platform/AMDI0010:00/i2c-0/i2c-SYNA2BA6:00/0018:06CB:CF00.0005/input/input25
apr 09 16:19:42 <HOST> kernel: input: SYNA2BA6:00 06CB:CF00 Touchpad
as /devices/platform/AMDI0010:00/i2c-0/i2c-SYNA2BA6:00/0018:06CB:CF00.0005/input/input26
apr 09 16:19:42 <HOST> kernel: hid-multitouch 0018:06CB:CF00.0005:
input,hidraw2: I2C HID v1.00 Mouse [SYNA2BA6:00 06CB:CF00] on
i2c-SYNA2BA6:00
apr 09 16:19:42 <HOST> kernel: amd_atl: AMD Address Translation
Library initialized
apr 09 16:19:42 <HOST> kernel: intel_rapl_common: Found RAPL domain package
apr 09 16:19:42 <HOST> kernel: intel_rapl_common: Found RAPL domain core
apr 09 16:19:42 <HOST> kernel: snd_hda_codec_alc269 hdaudioC1D0:
ALC287: picked fixup for PCI SSID 17aa:0000
apr 09 16:19:42 <HOST> kernel: snd_hda_codec_alc269 hdaudioC1D0:
autoconfig for ALC287: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
apr 09 16:19:42 <HOST> kernel: snd_hda_codec_alc269 hdaudioC1D0:
speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
apr 09 16:19:42 <HOST> kernel: snd_hda_codec_alc269 hdaudioC1D0:
hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
apr 09 16:19:42 <HOST> kernel: snd_hda_codec_alc269 hdaudioC1D0:
mono: mono_out=0x0
apr 09 16:19:42 <HOST> kernel: snd_hda_codec_alc269 hdaudioC1D0: inputs:
apr 09 16:19:42 <HOST> kernel: snd_hda_codec_alc269 hdaudioC1D0: Mic=0x19
apr 09 16:19:42 <HOST> kernel: input: HD-Audio Generic Mic as
/devices/pci0000:00/0000:00:08.1/0000:c3:00.6/sound/card1/input28
apr 09 16:19:42 <HOST> kernel: input: HD-Audio Generic Headphone as
/devices/pci0000:00/0000:00:08.1/0000:c3:00.6/sound/card1/input29
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_UMAC_PD_NOTIFICATION: 0x20
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_LMAC2_PD_NOTIFICATION: 0x1f
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0: WFPM_AUTH_KEY_0: 0x90
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0: Detected RF GF,
rfid=0x10d000
apr 09 16:19:42 <HOST> kernel: iwlwifi 0000:c1:00.0: base HW address: <WLAN_MAC>
apr 09 16:19:43 <HOST> systemd-journald[589]: Received client request
to flush runtime journal.
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Waiting for firmware
download to complete
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Firmware loaded in 1080100 usecs
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Waiting for device to boot
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Device booted in 27116 usecs
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Found Intel DDC
parameters: intel/ibt-0041-0041.ddc
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Applying Intel DDC
parameters completed
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Firmware timestamp
2026.5 buildtype 1 build 82122
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Firmware SHA1: 0x2925677d
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Fseq status: Success (0x00)
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Fseq executed: 00.00.02.41
apr 09 16:19:43 <HOST> kernel: Bluetooth: hci0: Fseq BT Top: 00.00.02.41
apr 09 16:19:51 <HOST> kernel: Bluetooth: BNEP (Ethernet Emulation) ver 1.3
apr 09 16:19:51 <HOST> kernel: Bluetooth: BNEP filters: protocol multicast
apr 09 16:19:51 <HOST> kernel: Bluetooth: BNEP socket layer initialized
apr 09 16:19:51 <HOST> kernel: Bluetooth: MGMT ver 1.23
apr 09 16:19:51 <HOST> kernel: NET: Registered PF_ALG protocol family
apr 09 16:19:51 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_UMAC_PD_NOTIFICATION: 0x20
apr 09 16:19:51 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_LMAC2_PD_NOTIFICATION: 0x1f
apr 09 16:19:51 <HOST> kernel: iwlwifi 0000:c1:00.0: WFPM_AUTH_KEY_0: 0x90
apr 09 16:19:51 <HOST> kernel: iwlwifi 0000:c1:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
apr 09 16:19:52 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_UMAC_PD_NOTIFICATION: 0x20
apr 09 16:19:52 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_LMAC2_PD_NOTIFICATION: 0x1f
apr 09 16:19:52 <HOST> kernel: iwlwifi 0000:c1:00.0: WFPM_AUTH_KEY_0: 0x90
apr 09 16:19:52 <HOST> kernel: iwlwifi 0000:c1:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
apr 09 16:19:52 <HOST> kernel: Bluetooth: RFCOMM TTY layer initialized
apr 09 16:19:52 <HOST> kernel: Bluetooth: RFCOMM socket layer initialized
apr 09 16:19:52 <HOST> kernel: Bluetooth: RFCOMM ver 1.11
apr 09 16:19:53 <HOST> kernel: wlan0: authenticate with <AP_BSSID>
(local address=<WLAN_MAC>)
apr 09 16:19:53 <HOST> kernel: wlan0: send auth to <AP_BSSID> (try 1/3)
apr 09 16:19:53 <HOST> kernel: wlan0: authenticated
apr 09 16:19:53 <HOST> kernel: wlan0: associate with <AP_BSSID> (try 1/3)
apr 09 16:19:53 <HOST> kernel: wlan0: RX AssocResp from <AP_BSSID>
(capab=0x1011 status=0 aid=16)
apr 09 16:19:53 <HOST> kernel: wlan0: associated
apr 09 16:19:53 <HOST> kernel: wlan0: Limiting TX power to 30 (30 - 0)
dBm as advertised by <AP_BSSID>
apr 09 16:19:53 <HOST> systemd-journald[589]: Time jumped backwards, rotating.
apr 09 16:19:57 <HOST> kernel: ntfs3: Enabled Linux POSIX ACLs support
apr 09 16:19:57 <HOST> kernel: ntfs3: Read-only LZX/Xpress compression included
apr 09 16:19:57 <HOST> kernel: nvme nvme0: using unchecked data buffer
apr 09 16:19:57 <HOST> kernel: block nvme0n1: No UUID available
providing old NGUID
apr 09 16:19:58 <HOST> kernel: logitech-hidpp-device
0003:046D:404A.0004: HID++ 4.5 device connected.
apr 09 16:19:59 <HOST> kernel: warning: `kdeconnectd' uses wireless
extensions which will stop working for Wi-Fi 7 hardware; use nl80211
apr 09 16:19:59 <HOST> kernel: ideapad_acpi VPC2004:00:
conservation_mode attribute has been deprecated, see charge_types.
apr 09 16:23:09 <HOST> kernel: wlan0: deauthenticating from <AP_BSSID>
by local choice (Reason: 3=DEAUTH_LEAVING)
apr 09 16:23:10 <HOST> kernel: PM: suspend entry (s2idle)
apr 09 16:23:10 <HOST> kernel: Filesystems sync: 0.011 seconds
apr 09 16:23:37 <HOST> kernel: Freezing user space processes
apr 09 16:23:37 <HOST> kernel: Freezing user space processes completed
(elapsed 0.001 seconds)
apr 09 16:23:37 <HOST> kernel: OOM killer disabled.
apr 09 16:23:37 <HOST> kernel: Freezing remaining freezable tasks
apr 09 16:23:37 <HOST> kernel: Freezing remaining freezable tasks
completed (elapsed 0.001 seconds)
apr 09 16:23:37 <HOST> kernel: printk: Suspending console(s) (use
no_console_suspend to debug)
apr 09 16:23:37 <HOST> kernel: ACPI: EC: interrupt blocked
apr 09 16:23:37 <HOST> kernel: ACPI: EC: interrupt unblocked
apr 09 16:23:37 <HOST> kernel: [drm] PCIE GART of 512M enabled (table
at 0x000000807FB00000).
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: SMU is resuming...
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: SMU is
resumed successfully!
apr 09 16:23:37 <HOST> kernel: nvme nvme1: 16/0/0 default/read/poll queues
apr 09 16:23:37 <HOST> kernel: nvme nvme0: 16/0/0 default/read/poll queues
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
gfx_0.0.0 uses VM inv eng 0 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.0.0 uses VM inv eng 1 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.1.0 uses VM inv eng 4 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.2.0 uses VM inv eng 6 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.3.0 uses VM inv eng 7 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.0.1 uses VM inv eng 8 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.1.1 uses VM inv eng 9 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.2.1 uses VM inv eng 10 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.3.1 uses VM inv eng 11 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring sdma0
uses VM inv eng 12 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
vcn_unified_0 uses VM inv eng 0 on hub 8
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
jpeg_dec_0 uses VM inv eng 1 on hub 8
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
mes_kiq_3.1.0 uses VM inv eng 13 on hub 0
apr 09 16:23:37 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring vpe
uses VM inv eng 4 on hub 8
apr 09 16:23:37 <HOST> kernel: OOM killer enabled.
apr 09 16:23:37 <HOST> kernel: Restarting tasks: Starting
apr 09 16:23:37 <HOST> kernel: Restarting tasks: Done
apr 09 16:23:37 <HOST> kernel: efivarfs: resyncing variable state
apr 09 16:23:37 <HOST> kernel: efivarfs: finished resyncing variable state
apr 09 16:23:37 <HOST> kernel: random: crng reseeded on system resumption
apr 09 16:23:37 <HOST> kernel: PM: suspend exit
apr 09 16:23:37 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_UMAC_PD_NOTIFICATION: 0x20
apr 09 16:23:37 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_LMAC2_PD_NOTIFICATION: 0x1f
apr 09 16:23:37 <HOST> kernel: iwlwifi 0000:c1:00.0: WFPM_AUTH_KEY_0: 0x90
apr 09 16:23:37 <HOST> kernel: iwlwifi 0000:c1:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
apr 09 16:23:39 <HOST> kernel: wlan0: authenticate with <AP_BSSID>
(local address=<WLAN_MAC>)
apr 09 16:23:39 <HOST> kernel: wlan0: send auth to <AP_BSSID> (try 1/3)
apr 09 16:23:39 <HOST> kernel: wlan0: authenticated
apr 09 16:23:39 <HOST> kernel: wlan0: associate with <AP_BSSID> (try 1/3)
apr 09 16:23:39 <HOST> kernel: wlan0: RX AssocResp from <AP_BSSID>
(capab=0x1011 status=0 aid=8)
apr 09 16:23:39 <HOST> kernel: wlan0: associated
apr 09 16:23:39 <HOST> kernel: wlan0: Limiting TX power to 30 (30 - 0)
dBm as advertised by <AP_BSSID>
apr 09 16:24:09 <HOST> kernel: wlan0: deauthenticating from <AP_BSSID>
by local choice (Reason: 3=DEAUTH_LEAVING)
apr 09 16:24:10 <HOST> kernel: PM: suspend entry (s2idle)
apr 09 16:24:10 <HOST> kernel: Filesystems sync: 0.013 seconds
apr 09 16:24:14 <HOST> kernel: Freezing user space processes
apr 09 16:24:14 <HOST> kernel: Freezing user space processes completed
(elapsed 0.001 seconds)
apr 09 16:24:14 <HOST> kernel: OOM killer disabled.
apr 09 16:24:14 <HOST> kernel: Freezing remaining freezable tasks
apr 09 16:24:14 <HOST> kernel: Freezing remaining freezable tasks
completed (elapsed 0.000 seconds)
apr 09 16:24:14 <HOST> kernel: printk: Suspending console(s) (use
no_console_suspend to debug)
apr 09 16:24:14 <HOST> kernel: ACPI: EC: interrupt blocked
apr 09 16:24:14 <HOST> kernel: ACPI: EC: interrupt unblocked
apr 09 16:24:14 <HOST> kernel: [drm] PCIE GART of 512M enabled (table
at 0x000000807FB00000).
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: SMU is resuming...
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: SMU is
resumed successfully!
apr 09 16:24:14 <HOST> kernel: nvme nvme1: 16/0/0 default/read/poll queues
apr 09 16:24:14 <HOST> kernel: nvme nvme0: 16/0/0 default/read/poll queues
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
gfx_0.0.0 uses VM inv eng 0 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.0.0 uses VM inv eng 1 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.1.0 uses VM inv eng 4 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.2.0 uses VM inv eng 6 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.3.0 uses VM inv eng 7 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.0.1 uses VM inv eng 8 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.1.1 uses VM inv eng 9 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.2.1 uses VM inv eng 10 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.3.1 uses VM inv eng 11 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring sdma0
uses VM inv eng 12 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
vcn_unified_0 uses VM inv eng 0 on hub 8
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
jpeg_dec_0 uses VM inv eng 1 on hub 8
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
mes_kiq_3.1.0 uses VM inv eng 13 on hub 0
apr 09 16:24:14 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring vpe
uses VM inv eng 4 on hub 8
apr 09 16:24:14 <HOST> kernel: OOM killer enabled.
apr 09 16:24:14 <HOST> kernel: Restarting tasks: Starting
apr 09 16:24:14 <HOST> kernel: Restarting tasks: Done
apr 09 16:24:14 <HOST> kernel: efivarfs: resyncing variable state
apr 09 16:24:14 <HOST> kernel: efivarfs: finished resyncing variable state
apr 09 16:24:14 <HOST> kernel: random: crng reseeded on system resumption
apr 09 16:24:14 <HOST> kernel: PM: suspend exit
apr 09 16:24:14 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_UMAC_PD_NOTIFICATION: 0x20
apr 09 16:24:14 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_LMAC2_PD_NOTIFICATION: 0x1f
apr 09 16:24:14 <HOST> kernel: iwlwifi 0000:c1:00.0: WFPM_AUTH_KEY_0: 0x90
apr 09 16:24:14 <HOST> kernel: iwlwifi 0000:c1:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
apr 09 16:24:16 <HOST> kernel: wlan0: authenticate with <AP_BSSID>
(local address=<WLAN_MAC>)
apr 09 16:24:16 <HOST> kernel: wlan0: send auth to <AP_BSSID> (try 1/3)
apr 09 16:24:16 <HOST> kernel: wlan0: authenticated
apr 09 16:24:16 <HOST> kernel: wlan0: associate with <AP_BSSID> (try 1/3)
apr 09 16:24:16 <HOST> kernel: wlan0: RX AssocResp from <AP_BSSID>
(capab=0x1011 status=0 aid=9)
apr 09 16:24:16 <HOST> kernel: wlan0: associated
apr 09 16:24:16 <HOST> kernel: wlan0: Limiting TX power to 30 (30 - 0)
dBm as advertised by <AP_BSSID>
apr 09 16:24:33 <HOST> kernel: wlan0: deauthenticating from <AP_BSSID>
by local choice (Reason: 3=DEAUTH_LEAVING)
apr 09 16:24:34 <HOST> kernel: PM: suspend entry (s2idle)
apr 09 16:24:34 <HOST> kernel: Filesystems sync: 0.019 seconds
apr 09 16:24:54 <HOST> kernel: Freezing user space processes
apr 09 16:24:54 <HOST> kernel: Freezing user space processes completed
(elapsed 0.001 seconds)
apr 09 16:24:54 <HOST> kernel: OOM killer disabled.
apr 09 16:24:54 <HOST> kernel: Freezing remaining freezable tasks
apr 09 16:24:54 <HOST> kernel: Freezing remaining freezable tasks
completed (elapsed 0.001 seconds)
apr 09 16:24:54 <HOST> kernel: printk: Suspending console(s) (use
no_console_suspend to debug)
apr 09 16:24:54 <HOST> kernel: ACPI: EC: interrupt blocked
apr 09 16:24:54 <HOST> kernel: ACPI: EC: interrupt unblocked
apr 09 16:24:54 <HOST> kernel: pcieport 0000:00:02.1: broken device,
retraining non-functional downstream link at 2.5GT/s
apr 09 16:24:54 <HOST> kernel: pcieport 0000:00:02.1: retraining failed
apr 09 16:24:54 <HOST> kernel: pcieport 0000:00:02.1: Data Link Layer
Link Active not set in 100 msec
apr 09 16:24:54 <HOST> kernel: nvme nvme1: Disabling device after
reset failure: -19
apr 09 16:24:54 <HOST> kernel: [drm] PCIE GART of 512M enabled (table
at 0x000000807FB00000).
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: SMU is resuming...
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: SMU is
resumed successfully!
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
gfx_0.0.0 uses VM inv eng 0 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.0.0 uses VM inv eng 1 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.1.0 uses VM inv eng 4 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.2.0 uses VM inv eng 6 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.3.0 uses VM inv eng 7 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.0.1 uses VM inv eng 8 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.1.1 uses VM inv eng 9 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.2.1 uses VM inv eng 10 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
comp_1.3.1 uses VM inv eng 11 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring sdma0
uses VM inv eng 12 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
vcn_unified_0 uses VM inv eng 0 on hub 8
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
jpeg_dec_0 uses VM inv eng 1 on hub 8
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring
mes_kiq_3.1.0 uses VM inv eng 13 on hub 0
apr 09 16:24:54 <HOST> kernel: amdgpu 0000:c3:00.0: amdgpu: ring vpe
uses VM inv eng 4 on hub 8
apr 09 16:24:54 <HOST> kernel: OOM killer enabled.
apr 09 16:24:54 <HOST> kernel: Restarting tasks: Starting
apr 09 16:24:54 <HOST> kernel: Restarting tasks: Done
apr 09 16:24:54 <HOST> kernel: efivarfs: resyncing variable state
apr 09 16:24:54 <HOST> kernel: efivarfs: finished resyncing variable state
apr 09 16:24:54 <HOST> kernel: random: crng reseeded on system resumption
apr 09 16:24:54 <HOST> kernel: PM: suspend exit
apr 09 16:24:54 <HOST> kernel: nvme nvme0: 16/0/0 default/read/poll queues
apr 09 16:24:55 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_UMAC_PD_NOTIFICATION: 0x20
apr 09 16:24:55 <HOST> kernel: iwlwifi 0000:c1:00.0:
WFPM_LMAC2_PD_NOTIFICATION: 0x1f
apr 09 16:24:55 <HOST> kernel: iwlwifi 0000:c1:00.0: WFPM_AUTH_KEY_0: 0x90
apr 09 16:24:55 <HOST> kernel: iwlwifi 0000:c1:00.0: CNVI_SCU_SEQ_DATA_DW9: 0x0
apr 09 16:24:56 <HOST> kernel: wlan0: authenticate with <AP_BSSID>
(local address=<WLAN_MAC>)
apr 09 16:24:56 <HOST> kernel: wlan0: send auth to <AP_BSSID> (try 1/3)
apr 09 16:24:56 <HOST> kernel: wlan0: authenticated
apr 09 16:24:56 <HOST> kernel: wlan0: associate with <AP_BSSID> (try 1/3)
apr 09 16:24:56 <HOST> kernel: wlan0: RX AssocResp from <AP_BSSID>
(capab=0x1011 status=0 aid=11)
apr 09 16:24:56 <HOST> kernel: wlan0: associated
apr 09 16:24:56 <HOST> kernel: wlan0: Limiting TX power to 30 (30 - 0)
dBm as advertised by <AP_BSSID>
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10c000
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10c000
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10c000
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10c000
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10b000
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10b000
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10c000
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10c000
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10b000
apr 09 16:25:04 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10c000
apr 09 16:25:26 <HOST> kernel: ntfs3: 107 callbacks suppressed
apr 09 16:25:26 <HOST> kernel: ntfs3(nvme1n1p5): failed to read volume
at offset 0x10c000
apr 09 16:25:40 <HOST> kernel: nvme nvme1: Identify namespace failed (-5)
===== sysfs_bridge_power =====
### COMMAND: sh -c for\ f\ in\
/sys/bus/pci/devices/0000:00:02.1/power_state\
/sys/bus/pci/devices/0000:00:02.1/power/runtime_status\
/sys/bus/pci/devices/0000:00:02.1/d3cold_allowed\
/sys/bus/pci/devices/0000:00:02.1/power/control\;\ do\ echo\ \"##\
\$f\"\;\ cat\ \"\$f\"\;\ echo\;\ done
## /sys/bus/pci/devices/0000:00:02.1/power_state
D0
## /sys/bus/pci/devices/0000:00:02.1/power/runtime_status
active
## /sys/bus/pci/devices/0000:00:02.1/d3cold_allowed
1
## /sys/bus/pci/devices/0000:00:02.1/power/control
auto
===== sysfs_wd_power =====
### COMMAND: sh -c for\ f\ in\
/sys/bus/pci/devices/0000:bf:00.0/power_state\
/sys/bus/pci/devices/0000:bf:00.0/power/runtime_status\
/sys/bus/pci/devices/0000:bf:00.0/d3cold_allowed\
/sys/bus/pci/devices/0000:bf:00.0/power/control\;\ do\ echo\ \"##\
\$f\"\;\ cat\ \"\$f\"\;\ echo\;\ done
## /sys/bus/pci/devices/0000:bf:00.0/power_state
D3cold
## /sys/bus/pci/devices/0000:bf:00.0/power/runtime_status
active
## /sys/bus/pci/devices/0000:bf:00.0/d3cold_allowed
1
## /sys/bus/pci/devices/0000:bf:00.0/power/control
on
===== dmidecode_system =====
### COMMAND: sudo dmidecode -t system -t bios
# dmidecode 3.7
Getting SMBIOS data from sysfs.
SMBIOS 3.3.0 present.
Handle 0x0000, DMI type 0, 26 bytes
Platform Firmware Information
Vendor: LENOVO
Version: QKCN29WW
Release Date: 12/23/2025
ROM Size: 32 MiB
Characteristics:
PCI is supported
PNP is supported
Firmware is upgradeable
Firmware shadowing is allowed
Boot from CD is supported
Selectable boot is supported
EDD is supported
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Function key-initiated network boot is supported
Targeted content distribution is supported
UEFI is supported
Platform Firmware Revision: 1.29
Embedded Controller Firmware Revision: 1.29
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: LENOVO
Product Name: 83JL
Version: IdeaPad Pro 5 14AKP10
Serial Number: <SYSTEM_SERIAL>
UUID: <DMI_UUID>
Wake-up Type: Power Switch
SKU Number: LENOVO_MT_83JL_BU_idea_FM_IdeaPad Pro 5 14AKP10
Family: IdeaPad Pro 5 14AKP10
Handle 0x001B, DMI type 12, 5 bytes
System Configuration Options
Option 1: String1 for Type12 Equipment Manufacturer
Option 2: String2 for Type12 Equipment Manufacturer
Option 3: String3 for Type12 Equipment Manufacturer
Option 4: String4 for Type12 Equipment Manufacturer
Handle 0x001C, DMI type 13, 22 bytes
Firmware Language Information
Language Description Format: Long
Installable Languages: 4
en|US|iso8859-1
fr|FR|iso8859-1
ja|JP|unicode
zh|TW|unicode
Currently Installed Language: en|US|iso8859-1
Handle 0x0030, DMI type 32, 11 bytes
System Boot Information
Status: No errors detected
Il giorno gio 9 apr 2026 alle ore 21:05 Bjorn Helgaas
<helgaas@kernel.org> ha scritto:
> Providing the complete logs with private information redacted would be
> a good first step.
^ permalink raw reply
* Re: [PATCH] tools/power turbostat: Allow execution to continue after perf_l2_init() failure
From: Len Brown @ 2026-04-09 19:13 UTC (permalink / raw)
To: David Arcari; +Cc: linux-pm, linux-kernel
In-Reply-To: <20260319140307.441950-1-darcari@redhat.com>
Hmm, the check of perf_model_support covers unknown CPUs.
(and this code runs fine on my Alderlake)
So the failure you see must be from the kernel perf support failing?
What is the kernel config?
thanks,
-Len
On Thu, Mar 19, 2026 at 10:04 AM David Arcari <darcari@redhat.com> wrote:
>
> Currently, if perf_l2_init() fails turbostat exits after issuing the
> following error (which was encountered on AlderLake):
>
> turbostat: perf_l2_init(cpu0, 0x0, 0xff24) REFS: Invalid argument
>
> This occurs because perf_l2_init() calls err(). However, the code has been
> written in such a manner that it is able to perform cleanup and continue.
> Therefore, this issue can be addressed by changing the appropriate calls
> to err() to warnx().
>
> Additionally, correct the PMU type arguments passed to the warning strings
> in the ecore and lcore blocks so the logs accurately reflect the failing
> counter type.
>
> Signed-off-by: David Arcari <darcari@redhat.com>
> Cc: Len Brown <lenb@kernel.org>
> Cc: linux-pm@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> ---
> tools/power/x86/turbostat/turbostat.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
> index 1a2671c28209..f1b8059a4eec 100644
> --- a/tools/power/x86/turbostat/turbostat.c
> +++ b/tools/power/x86/turbostat/turbostat.c
> @@ -9403,13 +9403,13 @@ void perf_l2_init(void)
> if (!is_hybrid) {
> fd_l2_percpu[cpu] = open_perf_counter(cpu, perf_pmu_types.uniform, perf_model_support->first.refs, -1, PERF_FORMAT_GROUP);
> if (fd_l2_percpu[cpu] == -1) {
> - err(-1, "%s(cpu%d, 0x%x, 0x%llx) REFS", __func__, cpu, perf_pmu_types.uniform, perf_model_support->first.refs);
> + warnx("%s(cpu%d, 0x%x, 0x%llx) REFS", __func__, cpu, perf_pmu_types.uniform, perf_model_support->first.refs);
> free_fd_l2_percpu();
> return;
> }
> retval = open_perf_counter(cpu, perf_pmu_types.uniform, perf_model_support->first.hits, fd_l2_percpu[cpu], PERF_FORMAT_GROUP);
> if (retval == -1) {
> - err(-1, "%s(cpu%d, 0x%x, 0x%llx) HITS", __func__, cpu, perf_pmu_types.uniform, perf_model_support->first.hits);
> + warnx("%s(cpu%d, 0x%x, 0x%llx) HITS", __func__, cpu, perf_pmu_types.uniform, perf_model_support->first.hits);
> free_fd_l2_percpu();
> return;
> }
> @@ -9418,39 +9418,39 @@ void perf_l2_init(void)
> if (perf_pcore_set && CPU_ISSET_S(cpu, cpu_possible_setsize, perf_pcore_set)) {
> fd_l2_percpu[cpu] = open_perf_counter(cpu, perf_pmu_types.pcore, perf_model_support->first.refs, -1, PERF_FORMAT_GROUP);
> if (fd_l2_percpu[cpu] == -1) {
> - err(-1, "%s(cpu%d, 0x%x, 0x%llx) REFS", __func__, cpu, perf_pmu_types.pcore, perf_model_support->first.refs);
> + warnx("%s(cpu%d, 0x%x, 0x%llx) REFS", __func__, cpu, perf_pmu_types.pcore, perf_model_support->first.refs);
> free_fd_l2_percpu();
> return;
> }
> retval = open_perf_counter(cpu, perf_pmu_types.pcore, perf_model_support->first.hits, fd_l2_percpu[cpu], PERF_FORMAT_GROUP);
> if (retval == -1) {
> - err(-1, "%s(cpu%d, 0x%x, 0x%llx) HITS", __func__, cpu, perf_pmu_types.pcore, perf_model_support->first.hits);
> + warnx("%s(cpu%d, 0x%x, 0x%llx) HITS", __func__, cpu, perf_pmu_types.pcore, perf_model_support->first.hits);
> free_fd_l2_percpu();
> return;
> }
> } else if (perf_ecore_set && CPU_ISSET_S(cpu, cpu_possible_setsize, perf_ecore_set)) {
> fd_l2_percpu[cpu] = open_perf_counter(cpu, perf_pmu_types.ecore, perf_model_support->second.refs, -1, PERF_FORMAT_GROUP);
> if (fd_l2_percpu[cpu] == -1) {
> - err(-1, "%s(cpu%d, 0x%x, 0x%llx) REFS", __func__, cpu, perf_pmu_types.pcore, perf_model_support->second.refs);
> + warnx("%s(cpu%d, 0x%x, 0x%llx) REFS", __func__, cpu, perf_pmu_types.ecore, perf_model_support->second.refs);
> free_fd_l2_percpu();
> return;
> }
> retval = open_perf_counter(cpu, perf_pmu_types.ecore, perf_model_support->second.hits, fd_l2_percpu[cpu], PERF_FORMAT_GROUP);
> if (retval == -1) {
> - err(-1, "%s(cpu%d, 0x%x, 0x%llx) HITS", __func__, cpu, perf_pmu_types.pcore, perf_model_support->second.hits);
> + warnx("%s(cpu%d, 0x%x, 0x%llx) HITS", __func__, cpu, perf_pmu_types.ecore, perf_model_support->second.hits);
> free_fd_l2_percpu();
> return;
> }
> } else if (perf_lcore_set && CPU_ISSET_S(cpu, cpu_possible_setsize, perf_lcore_set)) {
> fd_l2_percpu[cpu] = open_perf_counter(cpu, perf_pmu_types.lcore, perf_model_support->third.refs, -1, PERF_FORMAT_GROUP);
> if (fd_l2_percpu[cpu] == -1) {
> - err(-1, "%s(cpu%d, 0x%x, 0x%llx) REFS", __func__, cpu, perf_pmu_types.pcore, perf_model_support->third.refs);
> + warnx("%s(cpu%d, 0x%x, 0x%llx) REFS", __func__, cpu, perf_pmu_types.lcore, perf_model_support->third.refs);
> free_fd_l2_percpu();
> return;
> }
> retval = open_perf_counter(cpu, perf_pmu_types.lcore, perf_model_support->third.hits, fd_l2_percpu[cpu], PERF_FORMAT_GROUP);
> if (retval == -1) {
> - err(-1, "%s(cpu%d, 0x%x, 0x%llx) HITS", __func__, cpu, perf_pmu_types.pcore, perf_model_support->third.hits);
> + warnx("%s(cpu%d, 0x%x, 0x%llx) HITS", __func__, cpu, perf_pmu_types.lcore, perf_model_support->third.hits);
> free_fd_l2_percpu();
> return;
> }
> --
> 2.53.0
>
>
--
Len Brown, Intel Open Source Technology Center
^ permalink raw reply
* Re: [BUG] Lenovo 83JL / WD SN7100S: intermittent loss of secondary NVMe after s2idle resume, root port 00:02.1 retraining fails
From: Bjorn Helgaas @ 2026-04-09 19:05 UTC (permalink / raw)
To: Jacopo Labardi; +Cc: linux-nvme, linux-pci, linux-pm
In-Reply-To: <CANrGBMBDftu58R71jvEcZ94D8vJB2Y_dHG=BbNSsNMOS=3k0+g@mail.gmail.com>
On Thu, Apr 09, 2026 at 04:52:20PM +0200, Jacopo Labardi wrote:
> Hello,
>
> I am reporting an intermittent suspend/resume failure on a Lenovo IdeaPad Pro 5
> 14AKP10 (machine type 83JL) where the secondary NVMe drive can become unusable
> after s2idle resume on Linux.
> ...
> I collected a local bundle containing:
> - full kernel log from the reproducer boot
> - systemd suspend log
> - lspci -nnvv for 0000:00:02.1 and 0000:bf:00.0
> - sysfs power-state snapshots
> - dmidecode output
>
> The raw bundle contains machine serial/UUID, so I am not attaching it publicly
> as-is. I can provide redacted logs or specific files immediately if requested.
Providing the complete logs with private information redacted would be
a good first step.
^ permalink raw reply
* Re: [PATCH 00/61] treewide: Use IS_ERR_OR_NULL over manual NULL check - refactor
From: Al Viro @ 2026-04-09 18:16 UTC (permalink / raw)
To: Philipp Hahn
Cc: amd-gfx, apparmor, bpf, ceph-devel, cocci, dm-devel, dri-devel,
gfs2, intel-gfx, intel-wired-lan, iommu, kvm, linux-arm-kernel,
linux-block, linux-bluetooth, linux-btrfs, linux-cifs, linux-clk,
linux-erofs, linux-ext4, linux-fsdevel, linux-gpio, linux-hyperv,
linux-input, linux-kernel, linux-leds, linux-media, linux-mips,
linux-mm, linux-modules, linux-mtd, linux-nfs, linux-omap,
linux-phy, linux-pm, linux-rockchip, linux-s390, linux-scsi,
linux-sctp, linux-security-module, linux-sh, linux-sound,
linux-stm32, linux-trace-kernel, linux-usb, linux-wireless,
netdev, ntfs3, samba-technical, sched-ext, target-devel,
tipc-discussion, v9fs, Julia Lawall, Nicolas Palix, Chris Mason,
David Sterba, Ilya Dryomov, Alex Markuze, Viacheslav Dubeyko,
Theodore Ts'o, Andreas Dilger, Steve French, Paulo Alcantara,
Ronnie Sahlberg, Shyam Prasad N, Tom Talpey, Bharath SM,
Eric Van Hensbergen, Latchesar Ionkov, Dominique Martinet,
Christian Schoenebeck, Gao Xiang, Chao Yu, Yue Hu, Jeffle Xu,
Sandeep Dhavale, Hongbo Li, Chunhai Guo, Miklos Szeredi,
Konstantin Komarov, Andreas Gruenbacher, Kees Cook, Tony Luck,
Guilherme G. Piccoli, Jan Kara, Phillip Lougher,
Christian Brauner, Jan Kara, Steven Rostedt, Masami Hiramatsu,
Mathieu Desnoyers, Tejun Heo, David Vernet, Andrea Righi,
Changwoo Min, Ingo Molnar, Peter Zijlstra, Juri Lelli,
Vincent Guittot, Dietmar Eggemann, Ben Segall, Mel Gorman,
Valentin Schneider, Luis Chamberlain, Petr Pavlu, Daniel Gomez,
Sami Tolvanen, Aaron Tomlin, Sylwester Nawrocki, Liam Girdwood,
Mark Brown, Jaroslav Kysela, Takashi Iwai, Max Filippov,
Paolo Bonzini, John Johansen, Paul Moore, James Morris,
Serge E. Hallyn, Andrew Morton, Alasdair Kergon, Mike Snitzer,
Mikulas Patocka, Benjamin Marzinski, David S. Miller, David Ahern,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Simon Horman,
Marcel Holtmann, Johan Hedberg, Luiz Augusto von Dentz,
Alexei Starovoitov, Daniel Borkmann, Jesper Dangaard Brouer,
John Fastabend, Stanislav Fomichev, Jamal Hadi Salim, Jiri Pirko,
Marcelo Ricardo Leitner, Xin Long, Trond Myklebust,
Anna Schumaker, Chuck Lever, Jeff Layton, NeilBrown,
Olga Kornievskaia, Dai Ngo, Jon Maloy, Johannes Berg,
Catalin Marinas, Russell King, John Crispin, Thomas Bogendoerfer,
Yoshinori Sato, Rich Felker, John Paul Adrian Glaubitz,
Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
Jonas Karlman, Jernej Skrabec, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Zhenyu Wang,
Zhi Wang, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
Tvrtko Ursulin, Alex Deucher, Christian König, Sandy Huang,
Heiko Stübner, Andy Yan, Igor Russkikh, Andrew Lunn,
Pavan Chebbi, Michael Chan, Potnuri Bharat Teja, Tony Nguyen,
Przemek Kitszel, Taras Chornyi, Maxime Coquelin, Alexandre Torgue,
Iyappan Subramanian, Keyur Chudgar, Quan Nguyen, Heiner Kallweit,
Marc Zyngier, Thomas Gleixner, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, Vinod Koul, Linus Walleij, Ulf Hansson,
Heiko Carstens, Vasily Gorbik, Alexander Gordeev,
Christian Borntraeger, Sven Schnelle, Martin K. Petersen,
Eduardo Valentin, Keerthy, Rafael J. Wysocki, Daniel Lezcano,
Zhang Rui, Lukasz Luba, Alex Williamson, Mark Greer,
Miquel Raynal, Richard Weinberger, Vignesh Raghavendra,
Shuah Khan, Kieran Bingham, Mauro Carvalho Chehab, Joerg Roedel,
Will Deacon, Robin Murphy, Lee Jones, Pavel Machek, Dave Penkler,
K. Y. Srinivasan, Haiyang Zhang, Wei Liu, Dexuan Cui, Long Li,
Justin Sanders, Jens Axboe, Georgi Djakov, Michael Turquette,
Stephen Boyd, Philipp Zabel, Borislav Petkov, Dave Hansen, x86,
H. Peter Anvin, Pali Rohár, Dmitry Torokhov
In-Reply-To: <20260310-b4-is_err_or_null-v1-0-bd63b656022d@avm.de>
On Tue, Mar 10, 2026 at 12:48:26PM +0100, Philipp Hahn wrote:
> While doing some static code analysis I stumbled over a common pattern,
> where IS_ERR() is combined with a NULL check. For that there is
> IS_ERR_OR_NULL().
... and valid uses of IS_ERR_OR_NULL are rare as hen teeth.
Most of those are "I'm not sure how this function returns an
error, let's use that just in case".
Please, do not introduce more of that crap.
^ permalink raw reply
* Re: [patch V2 04/11] posix-timers: Handle the timer_[re]arm() return value
From: Frederic Weisbecker @ 2026-04-09 15:49 UTC (permalink / raw)
To: Thomas Gleixner
Cc: LKML, Peter Zijlstra (Intel), Anna-Maria Behnsen, Calvin Owens,
John Stultz, Stephen Boyd, Alexander Viro, Christian Brauner,
Jan Kara, linux-fsdevel, Sebastian Reichel, linux-pm,
Pablo Neira Ayuso, Florian Westphal, Phil Sutter, netfilter-devel,
coreteam
In-Reply-To: <20260408114952.198028466@kernel.org>
Le Wed, Apr 08, 2026 at 01:54:01PM +0200, Thomas Gleixner a écrit :
> The [re]arm callbacks will return true when the timer was queued and false
> if it was already expired at enqueue time.
>
> In both cases the call sites can trivially queue the signal right there,
> when the timer was already expired. That avoids a full round trip through
> the hrtimer interrupt.
>
> Signed-off-by: Thomas Gleixner <tglx@kernel.org>
> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> Cc: Anna-Maria Behnsen <anna-maria@linutronix.de>
> Cc: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
--
Frederic Weisbecker
SUSE Labs
^ permalink raw reply
* [GIT PULL] pmdomain fixes for v7.0-rc8
From: Ulf Hansson @ 2026-04-09 15:09 UTC (permalink / raw)
To: Linus, linux-pm, linux-kernel; +Cc: Ulf Hansson, linux-arm-kernel
Hi Linus,
Here's a pull-request with a couple of pmdomain/firmware fixes intended for
v7.0-rc8. I have also included a patch to update my email in MAINTAINERS and
mailmap. Details about the highlights are as usual found in the signed tag.
Please pull this in!
Kind regards
Ulf Hansson
The following changes since commit 7aaa8047eafd0bd628065b15757d9b48c5f9c07d:
Linux 7.0-rc6 (2026-03-29 15:40:00 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm.git tags/pmdomain-v7.0-rc6
for you to fetch changes up to c2812c0cb909211a1d2e7cec862406e32833b9de:
MAINTAINERS, mailmap: Change Ulf Hansson's email (2026-04-07 14:17:48 +0200)
----------------------------------------------------------------
pmdomain providers:
- imx: Prevent hang at power down for imx8mp-blk-ctrl
firmware:
- thead: Fix buffer overflow for TH1520 AON driver
MAINTAINERS, mailmap:
- Change Ulf Hansson's email
----------------------------------------------------------------
Jacky Bai (1):
pmdomain: imx8mp-blk-ctrl: Keep the NOC_HDCP clock enabled
Michal Wilczynski (1):
firmware: thead: Fix buffer overflow and use standard endian macros
Ulf Hansson (1):
MAINTAINERS, mailmap: Change Ulf Hansson's email
.mailmap | 2 +
MAINTAINERS | 14 ++---
drivers/firmware/thead,th1520-aon.c | 7 +--
drivers/pmdomain/imx/imx8mp-blk-ctrl.c | 8 +--
include/linux/firmware/thead/thead,th1520-aon.h | 74 -------------------------
5 files changed, 13 insertions(+), 92 deletions(-)
^ permalink raw reply
* [BUG] Lenovo 83JL / WD SN7100S: intermittent loss of secondary NVMe after s2idle resume, root port 00:02.1 retraining fails
From: Jacopo Labardi @ 2026-04-09 14:52 UTC (permalink / raw)
To: linux-nvme; +Cc: linux-pci, linux-pm
Hello,
I am reporting an intermittent suspend/resume failure on a Lenovo IdeaPad Pro 5
14AKP10 (machine type 83JL) where the secondary NVMe drive can become unusable
after s2idle resume on Linux.
I am CCing linux-nvme, linux-pci and linux-pm because the visible failure path
starts with PCIe root-port link retraining on 0000:00:02.1 during resume and
ends with nvme reset failure on the downstream device at 0000:bf:00.0.
Summary
- The problem is intermittent. It does not always happen on a fixed cycle.
- On this machine it may happen on the first resume or only after several
suspend/resume cycles.
- The clean reproducer below failed on the third suspend/resume cycle, but that
cycle count is not stable and should not be interpreted as deterministic.
- When it fails, the secondary/data NVMe is effectively lost until a full
reboot.
- The system NVMe on 0000:c2:00.0 survives.
Hardware
- Laptop: Lenovo IdeaPad Pro 5 14AKP10 (83JL)
- BIOS: LENOVO QKCN29WW, release date 2025-12-23
- Platform: AMD Krackan / Ryzen AI 350
- Root port for failing device: 0000:00:02.1, AMD [1022:1126]
- System NVMe: Lexar NM790 2TB at 0000:c2:00.0
- Secondary/data NVMe: Sandisk/WD PC SN7100S M.2 2242 NVMe SSD (DRAM-less)
[15b7:5044] at 0000:bf:00.0
- PCIe topology:
0000:00:02.1 -> 0000:bf:00.0
Software
- Kernel for the clean reproducer: 6.19.11-arch1-1
- Kernel taint during reproducer: 0
- Sleep mode exposed by the platform on Linux: [s2idle]
- acpi_call-dkms is installed on disk, but the acpi_call module was not loaded
during the reproducer and the kernel was not tainted
- Boot command line used for the clean reproducer:
quiet nowatchdog rw rootflags=subvol=/@ rootfstype=btrfs
root=UUID=<redacted> amd_pstate=active iommu=pt i8042.nopnp loglevel=3
8250.nr_uarts=0 tpm_tis.interrupts=0 random.trust_cpu=on
snd_hda_intel.power_save=10 snd_hda_intel.power_save_controller=Y
At boot on this kernel, both NVMe controllers log:
- nvme 0000:c2:00.0: platform quirk: setting simple suspend
- nvme 0000:bf:00.0: platform quirk: setting simple suspend
Clean reproduction used for this report
- No NVMe-specific udev overrides were active
- No custom NVMe-related systemd sleep hooks or suspend services were active
- No NVMe-specific kernel parameters were active
Reproducer
1. Boot the machine into 6.19.11-arch1-1.
2. Confirm tainted=0 and that both NVMe devices are present.
3. Suspend to s2idle and resume.
4. Repeat suspend/resume until the failure occurs.
Observed behavior
- In one clean run used for this report:
- first cycle resumed successfully
- second cycle resumed successfully
- third cycle resumed with the WD drive lost
- In prior testing on the same machine, the failure sometimes happened on the
first cycle and sometimes only after several cycles.
Relevant kernel log excerpt from the failing run
Apr 09 16:24:34 kernel: PM: suspend entry (s2idle)
Apr 09 16:24:54 kernel: pcieport 0000:00:02.1: broken device,
retraining non-functional downstream link at 2.5GT/s
Apr 09 16:24:54 kernel: pcieport 0000:00:02.1: retraining failed
Apr 09 16:24:54 kernel: pcieport 0000:00:02.1: Data Link Layer Link
Active not set in 100 msec
Apr 09 16:24:54 kernel: nvme nvme1: Disabling device after reset failure: -19
Apr 09 16:24:54 kernel: PM: suspend exit
Apr 09 16:25:04 kernel: ntfs3(nvme1n1p5): failed to read volume at
offset 0x10c000
Apr 09 16:25:26 kernel: ntfs3: 107 callbacks suppressed
Apr 09 16:25:40 kernel: nvme nvme1: Identify namespace failed (-5)
State after the failure
- nvme list shows only the system Lexar drive; the WD is no longer listed
- lspci -nnvv -s bf:00.0 still shows the device, but with:
- !!! Unknown header type 7f
- Kernel driver in use: nvme
- sysfs state at collection time:
- /sys/bus/pci/devices/0000:bf:00.0/power_state = D3cold
- /sys/bus/pci/devices/0000:bf:00.0/power/runtime_status = active
- /sys/bus/pci/devices/0000:bf:00.0/d3cold_allowed = 1
- /sys/bus/pci/devices/0000:bf:00.0/power/control = on
- /sys/bus/pci/devices/0000:00:02.1/power_state = D0
- /sys/bus/pci/devices/0000:00:02.1/power/runtime_status = active
- /sys/bus/pci/devices/0000:00:02.1/d3cold_allowed = 1
- /sys/bus/pci/devices/0000:00:02.1/power/control = auto
- smartctl -x /dev/nvme1 failed with "Resource temporarily unavailable"
Expected behavior
- The secondary WD NVMe should resume normally and remain usable after s2idle.
Previous mitigation/debug attempts on the same machine
These are not part of the clean reproducer above; they are prior experiments
done to narrow the failure mode.
- The issue also reproduced while the machine was configured with
pcie_aspm.policy=performance; removing that option did not eliminate it
- nvme_core.default_ps_max_latency_us=2000
- no fix; failure still reproduced
- Force power/control=on and d3cold_allowed=0 on both 0000:00:02.1 and
0000:bf:00.0
- no fix; in failing runs the WD could still end up inaccessible / in D3cold
- pm_async=off
- same failure mode
- SuspendState=freeze via systemd sleep configuration
- ineffective on this platform; kernel still reported s2idle behavior and the
issue remained
- nvme.noacpi=1
- removed the "platform quirk: setting simple suspend" message, but resume
often degraded into a black screen / forced reboot instead of fixing the WD
- pcie_port_pm=off
- no usable fix; often resulted in black-screen resume / forced reboot
- pcie_ports=compat
- no usable fix; often resulted in black-screen resume / forced reboot
- User-space suspend/resume hooks that tried unbind/bind/remove/rescan around
the WD path
- no reliable recovery; they only lengthened resume and still ended in reset
failure / missing device
Additional context
- Linux on this machine exposes only s2idle.
- The issue was reproduced on multiple Linux distributions, not only one
userspace/kernel packaging combination.
- Windows on the same hardware resumes correctly.
- I do not currently have a known-good Linux kernel version on this machine, so
I am not claiming this is a regression in a specific upstream release.
I am not sure whether the underlying bug belongs primarily in nvme/pci, PCIe
power-management, or a platform/firmware interaction. The first failing
messages in the clean repro are from the root-port retraining path, which is
why I am CCing PCI/PM in addition to NVMe.
I collected a local bundle containing:
- full kernel log from the reproducer boot
- systemd suspend log
- lspci -nnvv for 0000:00:02.1 and 0000:bf:00.0
- sysfs power-state snapshots
- dmidecode output
The raw bundle contains machine serial/UUID, so I am not attaching it publicly
as-is. I can provide redacted logs or specific files immediately if requested.
If useful, I can also test additional debug options or a current mainline/-rc
kernel.
Thanks.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox