mirror of
https://abf.rosa.ru/djam/kernel-5.15.git
synced 2025-02-23 10:32:54 +00:00

Information about config values was taken from: From 804820df7bcb3d53a33ecd074b1eac277e938f24 Mon Sep 17 00:00:00 2001 From: Alexey Sheplyakov <asheplyakov@altlinux.org> Date: Thu, 4 Feb 2021 19:35:14 +0400 Subject: [PATCH] config-aarch64: adjusted for Baikal-M (MBM1.0 board) * DW_APB_TIMER=y, DW_APB_TIMER_OF=y: SoC clocks * SERIAL_8250_DW=y: serial console * I2C_DESIGNWARE_CORE=y, I2C_DESIGNWARE_PLATFORM=y: BMC (board management controller) and RTC (Real Time Clock) are connected via I2C. * GPIO_DWAPB=y: device (PCIe, PHY, etc) reset/configuration * RTC_DRV_PCF2127=y: RTC compiled in so the kernel automatically sets the system time from the hardware clock * TP_BMC=y: amongst other things handles the power button * DRM_BAIKAL_VDU=m, DRM_BAIKAL_HDMI=m: video unit and HDMI transmitter * CMA_SIZE_MBYTES=256: video display unit and GPU use system RAM, hence CMA should reserve enough (contiguous) memory. Note: CMA reserves memory during very early init, hence the size has to be hard-coded into CONFIG * MALI_MIDGARD=m: GPU driver, kernel side of proprietary mali blob. Note: kernel mode code is GPLv2, so it's fine to distribute it. * SENSORS_BT1_PVT=m: hardware temperature/voltage sensors * PCI_BAIKAL=m: PCIe root complex. Compiled as a module since takes ages (60 seconds or so) to probe the hardware. If compiled in substantially increases the boot time, and machine is completely unresponsive during probing PCIe. When built as a module probing executes concurrently with other boot activities (unless booting from a PCIe device) * STMMAC_ETH=m, STMMAC_PLATFORM=m, DWMAC_BAIKAL=m: Ethernet driver
136 lines
6.4 KiB
Diff
136 lines
6.4 KiB
Diff
From 7c3c753e3d32b250467bcc172f5abeb08dead01e Mon Sep 17 00:00:00 2001
|
|
From: Alexey Sheplyakov <asheplyakov@altlinux.org>
|
|
Date: Fri, 19 Feb 2021 12:55:03 +0400
|
|
Subject: [PATCH 620/625] cpufreq-dt: don't load on BE-M1000 SoC
|
|
|
|
Apparently the driver deadlocks the kernel in a few minutes:
|
|
|
|
[ 454.690508] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
|
|
[ 454.696839] (detected by 4, t=26002 jiffies, g=22561, q=15)
|
|
[ 454.703017] rcu: All QSes seen, last rcu_preempt kthread activity 25992 (4295121102-4295095110), jiffies_till_next_fqs=3, root ->qsmask 0x0
|
|
[ 454.715570] rcu: rcu_preempt kthread starved for 25992 jiffies! g22561 f0x2 RCU_GP_WAIT_FQS(5) ->state=0x200 ->cpu=1
|
|
[ 454.726117] rcu: Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior.
|
|
[ 454.735273] rcu: RCU grace-period kthread stack dump:
|
|
[ 454.740344] task:rcu_preempt state:R stack: 0 pid: 13 ppid: 2 flags:0x00000028
|
|
[ 454.748731] Call trace:
|
|
[ 454.751204] __switch_to+0x114/0x170
|
|
[ 454.754803] __schedule+0x370/0xa3c
|
|
[ 454.758310] schedule+0x50/0x104
|
|
[ 454.761557] schedule_timeout+0x9c/0x114
|
|
[ 454.765503] rcu_gp_kthread+0x598/0xb50
|
|
[ 454.769360] kthread+0x150/0x160
|
|
[ 454.772607] ret_from_fork+0x10/0x38
|
|
[ 454.778130]
|
|
[ 454.779631] ================================
|
|
[ 454.783912] WARNING: inconsistent lock state
|
|
[ 454.788196] 5.10.17-00041-g454ed3004040-dirty #1 Not tainted
|
|
[ 454.793867] --------------------------------
|
|
[ 454.798147] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
|
|
[ 454.804168] swapper/4/0 [HC0[0]:SC1[1]:HE0:SE0] takes:
|
|
[ 454.809319] ffff800011198498 (rcu_node_0){?.-.}-{2:2}, at: rcu_sched_clock_irq+0x480/0xce0
|
|
[ 454.817615] {IN-HARDIRQ-W} state was registered at:
|
|
[ 454.822508] __lock_acquire+0xad8/0x2094
|
|
[ 454.826530] lock_acquire.part.0+0xfc/0x360
|
|
[ 454.830813] lock_acquire+0x68/0x84
|
|
[ 454.834399] _raw_spin_lock_irqsave+0x84/0x158
|
|
[ 454.838941] rcu_exp_handler+0xcc/0x140
|
|
[ 454.842878] flush_smp_call_function_queue+0xec/0x304
|
|
[ 454.848029] generic_smp_call_function_single_interrupt+0x20/0x2c
|
|
[ 454.854225] ipi_handler+0x1d8/0x39c
|
|
[ 454.857899] handle_percpu_devid_fasteoi_ipi+0xb0/0xe0
|
|
[ 454.863137] __handle_domain_irq+0xbc/0x13c
|
|
[ 454.867419] gic_handle_irq+0xcc/0x14c
|
|
[ 454.871265] el1_irq+0xc4/0x180
|
|
[ 454.874504] lock_acquire.part.0+0x120/0x360
|
|
[ 454.878873] lock_acquire+0x68/0x84
|
|
[ 454.882461] lock_page_memcg+0x5c/0x150
|
|
[ 454.886399] page_add_file_rmap+0x28/0x27c
|
|
[ 454.890595] alloc_set_pte+0xb8/0x5c0
|
|
[ 454.894356] filemap_map_pages+0x4a4/0x4c0
|
|
[ 454.898551] handle_mm_fault+0xbcc/0xf50
|
|
[ 454.902572] do_page_fault+0x14c/0x404
|
|
[ 454.906418] do_translation_fault+0xbc/0xd8
|
|
[ 454.910701] do_mem_abort+0x4c/0xac
|
|
[ 454.914287] el0_ia+0x68/0xcc
|
|
[ 454.917351] el0_sync_handler+0x180/0x1b0
|
|
[ 454.921458] el0_sync+0x174/0x180
|
|
[ 454.924868] irq event stamp: 449729
|
|
[ 454.928368] hardirqs last enabled at (449725): [<ffff8000109fcf74>] default_idle_call+0x24/0xdc
|
|
[ 454.937171] hardirqs last disabled at (449726): [<ffff8000109f27a0>] enter_el1_irq_or_nmi+0x10/0x20
|
|
[ 454.946237] softirqs last enabled at (449728): [<ffff8000100532f0>] _local_bh_enable+0x30/0x54
|
|
[ 454.954952] softirqs last disabled at (449729): [<ffff8000100534c4>] __irq_exit_rcu+0x1b0/0x1bc
|
|
[ 454.963665]
|
|
[ 454.963665] other info that might help us debug this:
|
|
[ 454.970206] Possible unsafe locking scenario:
|
|
[ 454.970206]
|
|
[ 454.976136] CPU0
|
|
[ 454.978590] ----
|
|
[ 454.981043] lock(rcu_node_0);
|
|
[ 454.984198] <Interrupt>
|
|
[ 454.986825] lock(rcu_node_0);
|
|
[ 454.990155]
|
|
[ 454.990155] *** DEADLOCK ***
|
|
[ 454.990155]
|
|
[ 454.996087] 1 lock held by swapper/4/0:
|
|
[ 454.999932] #0: ffff800011198498 (rcu_node_0){?.-.}-{2:2}, at: rcu_sched_clock_irq+0x480/0xce0
|
|
[ 455.008662]
|
|
[ 455.008662] stack backtrace:
|
|
[ 455.013033] CPU: 4 PID: 0 Comm: swapper/4 Not tainted 5.10.17-00041-g454ed3004040-dirty #1
|
|
[ 455.021313] Hardware name: Baikal Electronics Baikal-M mitx board (DT)
|
|
[ 455.027854] Call trace:
|
|
[ 455.030311] dump_backtrace+0x0/0x1e4
|
|
[ 455.033985] show_stack+0x24/0x80
|
|
[ 455.037312] dump_stack+0xec/0x154
|
|
[ 455.040723] print_usage_bug.part.0+0x208/0x22c
|
|
[ 455.045265] mark_lock+0x88c/0x934
|
|
[ 455.048677] mark_held_locks+0x58/0x90
|
|
[ 455.052437] lockdep_hardirqs_on_prepare+0xe4/0x23c
|
|
[ 455.057330] trace_hardirqs_on+0x78/0x2e0
|
|
[ 455.061350] __do_softirq+0x114/0x6d0
|
|
[ 455.065022] __irq_exit_rcu+0x1b0/0x1bc
|
|
[ 455.068868] irq_exit+0x1c/0x54
|
|
[ 455.072020] __handle_domain_irq+0xc0/0x13c
|
|
[ 455.076214] gic_handle_irq+0xcc/0x14c
|
|
[ 455.079972] el1_irq+0xc4/0x180
|
|
[ 455.083124] arch_cpu_idle+0x18/0x30
|
|
[ 455.086710] default_idle_call+0x5c/0xdc
|
|
[ 455.090645] do_idle+0x260/0x2e0
|
|
[ 455.093883] cpu_startup_entry+0x30/0x8c
|
|
[ 455.097818] secondary_start_kernel+0x138/0x184
|
|
[ 455.102410] BUG: scheduling while atomic: swapper/4/0/0x00000002
|
|
[ 455.108449] INFO: lockdep is turned off.
|
|
[ 455.112399] Modules linked in: dm_mod designware_i2s sdhci_of_dwcmshc snd_soc_core sdhci_pltfm dw_hdmi_ahb_audio snd_pcm_dmaengine ac97_bus evdev sdhci snd_pcm at24 panfrost mmc_core snd_timer pcie_baikal_v44 snd pcie_baikal bt1_pvt gpu_sched soundcore cpufreq_dt fuse configfs efivarfs ipv6
|
|
[ 455.138295] Preemption disabled at:
|
|
[ 455.138305] [<ffff800010028c64>] secondary_start_kernel+0xb4/0x184
|
|
[ 455.148020] CPU: 4 PID: 0 Comm: swapper/4 Not tainted 5.10.17-00041-g454ed3004040-dirty #1
|
|
[ 455.156299] Hardware name: Baikal Electronics Baikal-M mitx board (DT)
|
|
[ 455.162840] Call trace:
|
|
[ 455.165296] dump_backtrace+0x0/0x1e4
|
|
[ 455.168969] show_stack+0x24/0x80
|
|
[ 455.172295] dump_stack+0xec/0x154
|
|
[ 455.175711] __schedule_bug+0xcc/0xe0
|
|
[ 455.179383] __schedule+0x928/0xa3c
|
|
[ 455.182881] schedule_idle+0x34/0x5c
|
|
[ 455.186467] do_idle+0x1dc/0x2e0
|
|
[ 455.189706] cpu_startup_entry+0x30/0x8c
|
|
[ 455.193640] secondary_start_kernel+0x138/0x184
|
|
---
|
|
drivers/cpufreq/cpufreq-dt-platdev.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c
|
|
index 1c192a42f11e..2885ad3779bf 100644
|
|
--- a/drivers/cpufreq/cpufreq-dt-platdev.c
|
|
+++ b/drivers/cpufreq/cpufreq-dt-platdev.c
|
|
@@ -105,6 +105,8 @@ static const struct of_device_id blacklist[] __initconst = {
|
|
|
|
{ .compatible = "arm,vexpress", },
|
|
|
|
+ { .compatible = "baikal,baikal-m", },
|
|
+
|
|
{ .compatible = "calxeda,highbank", },
|
|
{ .compatible = "calxeda,ecx-2000", },
|
|
|
|
--
|
|
2.31.1
|
|
|