ハイ
eMMC boot0/boot1 パーティションから起動する場合 (ext_csd PARTITION_CONFIG 設定経由)、パーティションが起動できない場合は、i.MX 8ULP ブート ROM (?) は自動的に他のパーティションにフォールバックします。
たとえば、imx-boot イメージを /dev/mmcblk0boot1 (0/1) に書き込み、MMC を 1 (1/2) に設定しても、正常に起動します。
問題は、現在のコードでは、 EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config)に基づいて u-boot env パーティションと Linux ルート パーティションを選択する決定を下しますが、それが実際にブートされたパーティションではない可能性があることです。
そのCASE、さらなるアップデートにより、現在起動している imx-boot を複製しようとする際に、「もう一方の」側にある「正常な」 imx-boot バージョンが上書きされ、物理的な介入(シリアル ダウンローダーなど)なしではデバイスが起動できなくなるCANがあります。
SO、MMC ブートのCASEに、MMC デバイスの現在ブートされているパーティションを取得する方法はありますか?
たとえば、現在、ROM API (rom_api_query_boot_infor(QUERY_BT_DEV...)) を介してブート デバイスを照会していますが、実際にブートされたブートパーツを照会できる、私が見たことのない API があるのではないでしょうか。
よろしくお願い申し上げます。