Hey all,
I've been working on porting TianoCore to KVM on AArch64, and I've recently
run into an issue which I'm hoping someone can help me to debug. Recent
proposed changes to KVM place the address space for BootROMs and persistent
storage from 0x0-0x8000000, with the early boot code for Tiano startng at
0x0. My problem is that when the FDF is set to generate an image for this
load location, it appears to create a malformed FD file.
Under normal circumstances, the very first bits of the .fd file are a
branch instruction to the start of the PEI. This generates correctly when
the FDF is set to any BaseAddress that != 0x0.
For example:
Here's a known good image
$ hexdump Build/AArch64Virtualization-KVM/DEBUG_ARMLINUXGCC/FV/KVM_EFI.fd |
head
0000000 01e2 1400 0000 0000 0000 0000 0000 0000
0000010 e578 8c8c 8a3d 4f1c 3599 6189 c385 d32d
The same code, compiled with my updated FDF generates the following:
$ hexdump Build/AArch64Virtualization-KVM/DEBUG_ARMLINUXGCC/FV/KVM_EFI.fd |
head
0000000 0000 0000 0000 0000 0000 0000 0000 0000
0000010 e578 8c8c 8a3d 4f1c 3599 6189 c385 d32d
I've tried and failed to locate the code responsible for writing out the
initial branch statement, so I'm hoping somewhere here can get me a pointer
on where to look. The relevant bit of my FDF is inline below.
[FD.KVM_EFI]
BaseAddress = 0x0000000|gArmTokenSpaceGuid.PcdFdBaseAddress # KVM
assigns 0 - 0x8000000 for a BootROM
Size = 0x8000000|gArmTokenSpaceGuid.PcdFdSize # The size
in bytes of the FLASH Device
ErasePolarity = 1
# This one is tricky, it must be: BlockSize * NumBlocks = Size
BlockSize = 0x00001000
NumBlocks = 0x8000
As best I can tell, GenFds appears to be the relevant utility, but nothing
in the code jumps out as relevent, and I admit I'm completely unfamiliar
with this area of the tree.
Thanks in advance,
Michael
------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel