为什么 guest 只能用虚拟串口设备 hvc1?

在RISCV虚拟环境中,通常期望的首个虚拟串口设备hvc0被发现在实际测试中被opensbi占用,导致guest系统必须使用hvc1作为console。只有当设置bootargs为'console=hvc1,115200'时,guest才能访问到可用的虚拟串口。通过深入研究hvc_alloc函数,揭示了这一现象的原因。" 129902312,5891101,非局部欧式中值滤波NLEM的Matlab实现,"['图像处理', '计算机视觉', 'Matlab']
摘要由CSDN通过智能技术生成

通常在虚拟 guest 中可用的第一个虚拟串口设备 hvc 应该是hvc0,为什么我们在 RISCV 平台上测试中发现第一个 guest 能用的 hvc 设备是 hvc1 而不是 hvc0 呢? 当guest 系统设置 bootargs = "console=hvc1,115200“ ,才有虚拟串口可用。

通过debug虚拟串口分配函数 hvc_alloc,我们发现hvc0已经被opensbi给申请了,

struct hvc_struct *hvc_alloc(uint32_t vtermno, int data,
			     const struct hv_ops *ops,
			     int outbuf_size)
{
    ...

	list_add_tail(&(hp->next), &hvc_structs);
	mutex_unlock(&hvc_structs_mutex);

	/* check if we need to re-register the kernel console */
	hvc_check_console(i);

    // debug code
    dump_stack();
    printk(">>> vtermnos[%d] = %d\n", i, vtermon);

	return hp;
}
EXPORT_SYMBOL_GPL(hvc_alloc);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值