RISC-V: Add sections of PLT and GOT for kernel module
authorZong Li <zong@andestech.com>
Thu, 15 Mar 2018 08:50:41 +0000 (16:50 +0800)
committerPalmer Dabbelt <palmer@sifive.com>
Tue, 3 Apr 2018 03:00:54 +0000 (20:00 -0700)
commitab1ef68e54019937cf859f2c86c9ead6f3e62f19
tree15fd30ddaaf18d61caf77f8748e291f3802987b5
parent0adb32858b0bddf4ada5f364a84ed60b196dbcda
RISC-V: Add sections of PLT and GOT for kernel module

The address of external symbols will locate more than 32-bit offset
in 64-bit kernel with sv39 or sv48 virtual addressing.

Module loader emits the GOT and PLT entries for data symbols and
function symbols respectively.

The PLT entry is a trampoline code for jumping to the 64-bit
real address. The GOT entry is just the data symbol address.

Signed-off-by: Zong Li <zong@andestech.com>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
arch/riscv/Kconfig
arch/riscv/Makefile
arch/riscv/include/asm/module.h [new file with mode: 0644]
arch/riscv/kernel/Makefile
arch/riscv/kernel/module-sections.c [new file with mode: 0644]
arch/riscv/kernel/module.lds [new file with mode: 0644]