Skip to content
  • Paul Burton's avatar
    MIPS: Set ISA bit in entry-y for microMIPS kernels · 5fc9484f
    Paul Burton authored
    
    
    When building a kernel for the microMIPS ISA, ensure that the ISA bit
    (ie. bit 0) in the entry address is set. Otherwise we may include an
    entry address in images which bootloaders will jump to as MIPS32 code.
    
    I originally tried using "objdump -f" to obtain the entry address, which
    works for microMIPS but it always outputs a 32 bit address for a 32 bit
    ELF whilst nm will sign extend to 64 bit. That matters for systems where
    we might want to run a MIPS32 kernel on a MIPS64 CPU & load it with a
    MIPS64 bootloader, which would then jump to a non-canonical
    (non-sign-extended) address.
    
    This works in all cases as it only changes the behaviour for microMIPS
    kernels, but isn't the prettiest solution. A possible alternative would
    be to write a custom tool to just extract, sign extend & print the entry
    point of an ELF executable. I'm open to feedback if that would be
    preferred.
    
    Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/16950/
    
    
    Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    5fc9484f