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 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#90206): https://edk2.groups.io/g/devel/message/90206 Mute This Topic: https://groups.io/mt/91536245/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-