zynq内核启动时怎么屏蔽对sdhci的初始化
时间: 2024-10-19 13:08:58 浏览: 31
zynq裸机lwip不插网线初始化lwip库添加配置项方法lwipopts
在Zynq(Xilinx All Programmable SoCs)平台的内核启动过程中,要阻止SDHCI控制器的初始化,你需要更改内核配置或者使用内核模块加载策略。以下是一般的步骤:
1. **内核配置**:
- 打开终端,进入内核源码目录,通常是`arch/arm64/configs/zynqmp_defconfig`。
- 使用`make menuconfig`或`make xconfig`打开配置菜单。
- 寻找`SD/MMC support`下的`Device Drivers`部分,找到`Serial Bus Support > Serial Multimedia Controller (SDHC/SDIO)`。
- 将相关的条目设为禁用(如`CONFIG_PCIE_SDHCI=y`改为`n`),然后保存并退出配置。
2. **内核配置文件编辑**:
如果上述配置菜单中没有找到对应项,你可能需要直接编辑`Makefile`或者`Kconfig`文件,移除或注释掉相关的SDHCI初始化函数或者宏定义。
3. **模块加载控制**:
如果SDHCI被集成到了内核模块中,你可以通过`modprobe`命令排除加载该模块,或者在`initramfs`或`sysctl.conf`中设置禁止自动加载。
```bash
# 不加载SDHCI模块
sudo modprobe -r sdhci-hsmmc
# 在sysctl.conf中禁用模块加载
echo 'blacklist sdhci-hsmmc' >> /etc/sysctl.d/zynq_disable_sdhci.conf
```
4. **重启验证**:
完成以上步骤后,重启系统,并在启动时观察是否有SDHCI相关的错误信息,确认是否成功屏蔽了初始化。
请注意,这一步骤可能会导致SD卡无法正常工作,因此在生产环境中进行时一定要谨慎操作,并做好备份。
阅读全文