This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/991967/am3358-uart-wakeup
器件型号:AM3358我正在处理 am3358在挂起到 ram (待机)后的 UART 唤醒问题。 即使我向/sys/class/tty/ttyS0/power/wakeup.写入已启用、处理器似乎也不会唤醒 GPIO 唤醒工作正常。 我正在使用内核4.14.79。
我一直在调试该问题、如果我省略了器件勘误表的软复位修复、似乎可以解决该问题。 我使用了以下补丁并在器件树中将"ti、no-idle"添加到 uart0中。 唤醒源仍然被错误检测(MPU_WAKE)。 这是启用 uart0唤醒的正确方法吗?如果不是,您可以建议改进方法吗? 器件勘误表指出、在使用 DMA 之后和空闲之前需要进行软复位。 但是、软复位后唤醒不起作用。 是否可以将 UART 器件设置为空闲状态并仍然唤醒?
增补程序
日期:2021年4月7日星期三16:29:20 +0300
主题:[PATCH] UART:请勿执行软复位以解决器件勘误表问题
如果不在挂起模式中进入空闲状态。
--
drivers/tty/ serial/8250/8250_omap.c | 5 +++-
1个文件已更改,4个插入(+),1个删除(-)
diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c
索引851d29ff3d19..2a5a74f449db 100644
-- a/drivers/tty/serial/8250/8250_omap.c
++ b/drivers/tty/serial/8250/8250_omap.c
@@-120、6 +120、7 @@ struct omap8250_priv
spinlock_t rx_dma_lock;
bool rx_dma_broken;
bool 油门;
+ bool no_idle;
};
struct omap8250_platdata{
@@-1283,6+1284,8 @@静态 int omap8250_probe (struct platform_device *pdev)
pdata =(struct omap8250_platdata *) of _device_get_match_data (&pdev->dev);
IF (pdata)
PRIV->Habit |= pdata -> Habit;
+ IF (of _find_property (pdev->dev.of 节点、"ti、no-idle"、NULL))
+ priv->no_idle = true;
}否则{
RET = pdev->id;
}
@@-1501、7 +1504、7 @@静态 int omap8250_runtime_suspend (struct device *dev)
return -EBUSY;
}
-如果(priv->Habit & UART_errata_clock_disable){
+ if (priv->Habit & UART_errata_clock_disable &&!priv->no_idle){
/*保存模块级唤醒寄存器*/
u32 wer = serial_in (up、UART_OMA_WER);
内转台;
--
2.27.0
dmesg 的输出
[85.948351] PM:暂停进入(浅)
[85.948365] PM:正在同步文件系统... 完成。
[85.966354]冻结用户空间进程... (已用0.001秒)。
[85.967768]禁用杀手锏。
[85.967773]冻结剩余可自由执行的任务... (已用0.001秒)。
[85.969251]暂停控制台(使用 NO_console_suspend 进行调试)
[85.989523] pm33xx pm33xx:pm:成功地将所有电源域置于目标状态
[85.989523] PM:唤醒源 MPU_WAKE
[91.962347]启用了 Killer oom。
[91.962386]正在重新启动任务...
[91.987302]完成。
[92.012512] PM:挂起退出
ttyS0和 GPIO 唤醒后的/sys/kernel/debug/wakeup_sources 输出。
将 ACTIVE_COUNT EVENT_COUNT WAKEUP_COUNT 命名为 EXPILOE_COUNT ACTIVE_INVE_INVE_TIME TOTAL_TIME max_TIME LAST_CHANGE INVE_SUSPEND_TIME
ttyS0 0 0 0 0 0 0 0 18891 0
按钮3 3 0 0 0 3 2 363657 0
您好!
您是否在处理器 SDK Linux v6.3中使用内核 v4.19进行了测试?
AM335x GP EVM 使用 UART0作为 Linux 控制台、通过 UART0唤醒在 EVM 上工作正常。 如何在平台中使用 UART0? 如果它不是 Linux 控制台、它连接到什么?
您好!
我们尚未测试 v4.19、因为我们有一些驱动程序尚未移植 v4.19。 如果可能、请坚持使用 v4.14。
我们使用的是自定义电路板、其中 UART0连接到外设、UART1用于控制台。
您好、Mikko、
客户能否在 BeagleBone Black wither Processor SDK Linux v4.19上重现此问题?
我们没有用4.19复制它
您能否在使用内核 v4.14的 BeagleBone Black 上重现此问题、以便我可以在本地对其进行调试?