On 06.06.18 11:15, Rick Chen wrote: >> -----Original Message----- >> From: Alexander Graf [mailto:ag...@suse.de] >> Sent: Wednesday, June 06, 2018 1:21 AM >> To: u-boot@lists.denx.de >> Cc: Rick Jian-Zhi Chen(陳建志) >> Subject: [PATCH] riscv: Add support for HI20 PE relocations >> >> The PE standard allows for HI20/LOW12 relocations. Within the efi_loader >> target >> we always know that our relocation target is 4k aligned, so we don't need to >> worry about the LOW12 part. >> >> This patch adds support for the respective relocations. With this and a few >> grub >> patches I have cooking in parallel I'm able to run grub on RISC-V. >> >> Signed-off-by: Alexander Graf <ag...@suse.de> >> --- >> include/pe.h | 3 +++ >> lib/efi_loader/efi_image_loader.c | 14 ++++++++++++++ >> 2 files changed, 17 insertions(+) >> >> diff --git a/include/pe.h b/include/pe.h index d73eb142cb..36e1908b7e 100644 >> --- a/include/pe.h >> +++ b/include/pe.h >> @@ -201,10 +201,13 @@ typedef struct _IMAGE_RELOCATION >> #define IMAGE_REL_BASED_MIPS_JMPADDR 5 >> #define IMAGE_REL_BASED_ARM_MOV32A 5 /* yes, 5 too */ >> #define IMAGE_REL_BASED_ARM_MOV32 5 /* yes, 5 too */ >> +#define IMAGE_REL_BASED_RISCV_HI20 5 /* yes, 5 too */ >> #define IMAGE_REL_BASED_SECTION 6 >> #define IMAGE_REL_BASED_REL 7 >> #define IMAGE_REL_BASED_ARM_MOV32T 7 /* yes, 7 too */ >> #define IMAGE_REL_BASED_THUMB_MOV32 7 /* yes, 7 too */ >> +#define IMAGE_REL_BASED_RISCV_LOW12I 7 /* yes, 7 too */ >> +#define IMAGE_REL_BASED_RISCV_LOW12S 8 >> #define IMAGE_REL_BASED_MIPS_JMPADDR16 9 >> #define IMAGE_REL_BASED_IA64_IMM64 9 /* yes, 9 too */ >> #define IMAGE_REL_BASED_DIR64 10 >> diff --git a/lib/efi_loader/efi_image_loader.c >> b/lib/efi_loader/efi_image_loader.c >> index 3cffe9ef46..6892171ccd 100644 >> --- a/lib/efi_loader/efi_image_loader.c >> +++ b/lib/efi_loader/efi_image_loader.c >> @@ -126,6 +126,20 @@ static efi_status_t efi_loader_relocate(const >> IMAGE_BASE_RELOCATION *rel, >> case IMAGE_REL_BASED_DIR64: >> *x64 += (uint64_t)delta; >> break; >> +#ifdef __riscv >> + case IMAGE_REL_BASED_RISCV_HI20: >> + *x32 = ((*x32 & 0xfffff000) + (uint32_t)delta) >> | >> + (*x32 & 0x00000fff); >> + break; >> + case IMAGE_REL_BASED_RISCV_LOW12I: >> + case IMAGE_REL_BASED_RISCV_LOW12S: >> + /* We know that we're 4k aligned */ >> + if (delta & 0xfff) { >> + printf("Unsupported reloc offset\n"); >> + return EFI_LOAD_ERROR; >> + } >> + break; >> +#endif >> default: >> printf("Unknown Relocation off %x type %x\n", >> offset, type); >> -- >> 2.12.3 > > Hi Alex > > The title of this patch seems to be as" efi_loader: Add support for > HI20 PE relocations for RISC-V " > And I am not sure if it shall belong to efi tree.
I'll be happy to take it via the efi tree, yes. It only affects the efi PE loader. Alex _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot