【无标题】关于ARM64无法 VFS: Unable to mount root fs on unknown-block(179,2)第二个分区总是无法MOUNT的问题

1.前言–遇到第二个分区总是无法MOUNT的问题

我们在开发ARM64的芯片组,比如XILINX ZYNQ ZCU111或是其它。
![在这里插入图片描述](https://img-blog.csdnimg.cn/1bcb47708df34dffbf74159c5c2417e0.jpeg#pic_center)

会遇到第二个分区总是无法MOUNT的问题,但是又有设备节点。
比如以下LOG:

[ 5.943047] (driver?)
[ 5.949577] b300 15558144 mmcblk0
[ 5.949579] driver: mmcblk
[ 5.956361] b301 2097152 mmcblk0p1 c19acb00-01
[ 5.956362]
[ 5.963149] b302 13459968 mmcblk0p2 c19acb00-02
[ 5.963150]
[ 5.969941] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
[ 5.978366] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.19.0-xilinx-v2019.2 #1
[ 5.985575] Hardware name: xlnx,zynqmp (DT)
[ 5.989742] Call trace:
[ 5.992181] dump_backtrace+0x0/0x148
[ 5.995829] show_stack+0x14/0x20
[ 5.999129] dump_stack+0x90/0xb4
[ 6.002434] panic+0x120/0x268
[ 6.005472] mount_block_root+0x1b0/0x260
[ 6.009464] mount_root+0x11c/0x148
[ 6.012936] prepare_namespace+0x158/0x1a0
[ 6.017016] kernel_init_freeable+0x1b8/0x1d4
[ 6.021356] kernel_init+0x10/0xfc
[ 6.024742] ret_from_fork+0x10/0x18
[ 6.028302] SMP: stopping secondary CPUs
[ 6.032216] Kernel Offset: disabled
[ 6.035686] CPU features: 0x0,20802004
[ 6.039418] Memory Limit: none
[ 6.042461] —[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2) ]—

2.解决方法:

VFS: Cannot open root device “mmcblk1p2” or unknown-block(179,26): error -30
看起来好像是SD卡写保护了。
mmcblk1: mmc1:0001 00000 1.89 GiB (ro)
自己找到办法了。这个问题比较典型,网上资料也比较少,贴出来可能其他人会有用。我自己折腾了好几天。
主要参考了这个帖子:http://www.zedboard.org/content/ultrazed-iocc-sd-card-ro
简单说一下原因。SD卡是有写保护的,但是TF卡是没有写保护的。根据AR#61064 (https://www.xilinx.com/support/answers/61064.html),硬件设计的时候应该把SDIO的WP脚拉低,但是EdgeBoard并没有这么做。
解决办法是在project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi文件中增加以下内容:
&sdhci1 {

status = “okay”;

max-frequency = <50000000>;

no-1-8-v; /* for 1.0 silicon */

disable-wp;

};
可以自己修改设备树:
如下
mmc@ff170000 {
u-boot,dm-pre-reloc;
compatible = “xlnx,zynqmp-8.9a”, “arasan,sdhci-8.9a”;
status = “okay”;
interrupt-parent = <0x4>;
interrupts = <0x0 0x31 0x4>;
reg = <0x0 0xff170000 0x0 0x1000>;
clock-names = “clk_xin”, “clk_ahb”;
xlnx,device_id = <0x1>;
#stream-id-cells = <0x1>;
iommus = <0xd 0x871>;
power-domains = <0xc 0x28>;
nvmem-cells = <0x10>;
nvmem-cell-names = “soc_revision”;
clocks = <0x3 0x37 0x3 0x1f>;
clock-frequency = <0xb2cfe8b>;
xlnx,mio_bank = <0x1>;
max-frequency = <0x2faf080>;
no-1-8-v;
disable-wp;

};
3.以上通用知识分享给大天朝的人们。
FROM: 蓝迪哥,2023年05月28号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值