如何在设备树中为 e.MMC 设备定义分区 table?
How to define a partition table for an e.MMC device in a device tree?
我正在开发一个定制设备,它有一个 16GB e.MMC 部分用于大容量存储。这是一个嵌入式系统,我们正在使用 Yocto 构建我们的内核和其他好东西。
据我了解,分区 table 可以在设备树中定义,这样我就可以 select 在两个或多个分区 table 之间使用单个设备树设备树中的多个分区 table,或多个设备树,每个都有自己的分区 table.
在我的一生中,我找不到一个示例来说明如何将 MMC 设备的分区 table 放入设备树中。谁能指出我可以为我们的应用程序查看和修改的 MMC/SD 存储设备分区的工作示例?
我可能错了,但是,我从未见过在设备树中指定 eMMC 分区。 eMMC 分区通常是某种闪存过程的一部分。例如,像 buildroot 和 OpenEmbedded/Yocto 这样的构建系统可以生成压缩的 ext4 rootfs 映像,并且根据 SoC 启动所需的文件位于第一个分区中,该分区通常是 FAT32。然而,也有distroboot,其中只有一个格式化为ext4的eMMC分区,并且启动所需的文件是从该分区上的/boot中挑选的。
根据您的设置和要求,您可以通过单独的步骤从引导加载程序对 eMMC 进行格式化和分区,或者使用类似 genimage 的工具,它通过采用您的 eMMC 分区要求的规范来生成单个 .img。参见 genimage。 .img 文件可用于使用简单的 "dd" 工具烧写 eMMC。
要使用 genimage,作为 Yocto 构建过程的一部分,您需要 meta-ptx 层。
附录:我忘了添加如何从 u-boot 格式化。你没有提到你正在使用的确切设备,但是像 u-boot 这样的东西的 eMMC 闪存过程对于所有 SoC 来说几乎是一样的。例如,看看 here。如果您使用 barebox 作为引导加载程序,我认为它应该几乎相同,但我不能肯定地说,因为我从未使用过 barebox。
我正在开发一个定制设备,它有一个 16GB e.MMC 部分用于大容量存储。这是一个嵌入式系统,我们正在使用 Yocto 构建我们的内核和其他好东西。
据我了解,分区 table 可以在设备树中定义,这样我就可以 select 在两个或多个分区 table 之间使用单个设备树设备树中的多个分区 table,或多个设备树,每个都有自己的分区 table.
在我的一生中,我找不到一个示例来说明如何将 MMC 设备的分区 table 放入设备树中。谁能指出我可以为我们的应用程序查看和修改的 MMC/SD 存储设备分区的工作示例?
我可能错了,但是,我从未见过在设备树中指定 eMMC 分区。 eMMC 分区通常是某种闪存过程的一部分。例如,像 buildroot 和 OpenEmbedded/Yocto 这样的构建系统可以生成压缩的 ext4 rootfs 映像,并且根据 SoC 启动所需的文件位于第一个分区中,该分区通常是 FAT32。然而,也有distroboot,其中只有一个格式化为ext4的eMMC分区,并且启动所需的文件是从该分区上的/boot中挑选的。
根据您的设置和要求,您可以通过单独的步骤从引导加载程序对 eMMC 进行格式化和分区,或者使用类似 genimage 的工具,它通过采用您的 eMMC 分区要求的规范来生成单个 .img。参见 genimage。 .img 文件可用于使用简单的 "dd" 工具烧写 eMMC。
要使用 genimage,作为 Yocto 构建过程的一部分,您需要 meta-ptx 层。
附录:我忘了添加如何从 u-boot 格式化。你没有提到你正在使用的确切设备,但是像 u-boot 这样的东西的 eMMC 闪存过程对于所有 SoC 来说几乎是一样的。例如,看看 here。如果您使用 barebox 作为引导加载程序,我认为它应该几乎相同,但我不能肯定地说,因为我从未使用过 barebox。