如何使用u-boot mmc命令创建EMMC分区?

问题描述 投票:0回答:1

我正在使用 Raspberry PI 计算模块 4 进行开发。我的 RPI-cm4 具有板载 EMMC 8GB 内存。我们遵循以下布局

对于引导加载程序,我们使用 u-boot。

U-Boot> mmc list
mmcnr@7e300000: 1
mmc@7e340000: 0 (eMMC)

U-Boot> mmc part

Partition Map for MMC device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     2048            247808          dda41d44-01     0c
  2     249856          60821504        dda41d44-02     83
U-Boot>

当我给mmc硬件分区时

U-Boot> mmc hwpartition
Partition configuration:
        No enhanced user data area
        No GP1 partition
        No GP2 partition
        No GP3 partition
        No GP4 partition
U-Boot> 

我的要求是创建一个分区来支持以下内容,

  1. 存储配置文件,这些文件将被应用程序服务使用。
  2. 支持多重启动。多家银行固件升级。当bank0不活跃时,内核和rootfs应该从bank 1加载。 另外,我需要使用启动脚本(如自动化)来完成所有这些操作,u-boot 应该在使用脚本创建分区时进行所有检查。

我的问题:

  1. 存储配置文件的最佳方法是什么?我看到软件和硬件分区。有什么不同。如果我像第 1 部分和第 2 部分一样在 MMC 设备 0 中创建分区第 3 部分,我可以将其作为文件系统安装并在应用程序中使用它来访问配置文件还是我真的需要硬件分区?
  2. 如何使用 u-boot 脚本自动创建分区以支持多银行启动?

我是嵌入式域新手。

embedded-linux partitioning raspberry-pi2 u-boot multiboot
1个回答
0
投票

我不太确定如何解释硬件分区和软件分区之间的区别。我确实知道这一点,在您的情况下,软件分区很可能适合您的需求,因为您正在存储配置文件。

为了实现多银行的自动化分区,您可以尝试一下这个脚本。我不确定它是否会有效。


# define
setenv active_bank 0

# define partition layout for each one of the banks
if test "${active_bank}" = "0"; then
    # Bank 0
    setenv partitions "mmc part 1 1; mmc part 2 0; mmc part 3 0 8000"
else
    # bank 1
    setenv partitions "mmc part 1 1; mmc part 2 0; mmc part 3 0 8000"
fi

# execute partition layout based on active bank
run partitions

# more config for banks
if test "${active_bank}" = "0"; then
    # config for bank 0
else
    # config for bank 1
fi

(抱歉回答含糊)

© www.soinside.com 2019 - 2024. All rights reserved.