public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [ArmVirtPkg] So in 2014 would could not start an ARM FV @ address 0x00000000, why is that still true today?
@ 2022-06-04  5:09 Andrew Fish
  0 siblings, 0 replies; only message in thread
From: Andrew Fish @ 2022-06-04  5:09 UTC (permalink / raw)
  To: edk2-devel-groups-io

I’m a little confused on why we can’t put an ARM FV at address 0x00000000 [1]? Obviously the zero vector for the FV is getting patch as this ARM code is jumping to the 1st byte of the FV when it is present at 0x1000. I don’t know of any generic limitation in our tools. This kind of feels like an 8 year old bug that got fixed at some point? Anyone know the history here? Do we need to file a BZ to get something fixed?

[1] https://github.com/tianocore/edk2/blob/master/ArmVirtPkg/ArmVirtQemu.fdf#L56

#
# UEFI has trouble dealing with FVs that reside at physical address 0x0.
# So instead, put a hardcoded 'jump to 0x1000' at offset 0x0, and put the
# real FV at offset 0x1000
#
0x00000000|0x00001000
DATA = {
!if $(ARCH) == AARCH64
  0x00, 0x04, 0x00, 0x14   # 'b 0x1000' in AArch64 ASM
!else
  0xfe, 0x03, 0x00, 0xea   # 'b 0x1000' in AArch32 ASM
!endif
}

0x00001000|$(FVMAIN_COMPACT_SIZE)
gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
FV = FVMAIN_COMPACT

Thanks,

Andrew Fish

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-06-04  5:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-04  5:09 [ArmVirtPkg] So in 2014 would could not start an ARM FV @ address 0x00000000, why is that still true today? Andrew Fish

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox