On 02/20/2017 05:21 AM, zhufuwengang wrote:
Hi ,all Lately I've been having a problem when I tried to boot kernel from EMMC.
I'll respond in another e-mail shortly. This is just part one...
GUID Partition Table is the basic essentials for UEFI and must be stored on the device before power on;It has two header structures:the primary and the backup.The primary GPT Header must be located in LBA 1 (i.e., the second logical block of EMMC), which is also the storage place of Bootloader, and the backup GPT Header must be located in the last LBA of the device. Therefore,there is a conflict between GPT and Bootloader in
. . .
I have asked several people for help,and got two methods as follows:
. . .
#2.Add an offset when read or write block .
No, this is a bad idea. There is no standard way to communicate to Linux that the device needs to accessed using an offset like this. I don't know for sure but I suspect GPT tools on Linux would not work properly if we tried to do this.
-Alex
This method will reserve a 1M space for Bootloader at the start address of EMMC. And the primary GPT will be placed in a start address of 1M. We should add a 1M offset when we use the BlockIO functions to read or write block devices.This method maybe need to modify the EDKII core code;Honestly, I have not try this method.
How to solve the conflicts between GPT and Bootloader is really a thorny problem for me.Can you give me some advises about this problem?
Best regards, Wengang