• Michael Ellerman's avatar
    powerpc/64s: Fix NULL AT_BASE_PLATFORM when using DT CPU features · e4b79900
    Michael Ellerman authored
    When running virtualised the powerpc kernel is able to run the system
    in "compat mode" - which means the kernel and hardware are pretending
    to userspace that the CPU is an older version than it actually is.
    
    AT_BASE_PLATFORM is an AUXV entry that we export to userspace for use
    when we're running in that mode, which tells userspace the "platform"
    string for the real CPU version, as opposed to the faked version.
    
    Although we don't support compat mode when using DT CPU features, and
    arguably don't need to set AT_BASE_PLATFORM, the existing cputable
    based code always sets it even when we're running bare metal. That
    means the lack of AT_BASE_PLATFORM is a user-visible artifact of the
    fact that the kernel is using DT CPU features, which we don't want.
    
    So set it in the DT CPU features code also.
    
    This results in eg:
      $ LD_SHOW_AUXV=1 /bin/true | grep "AT_.*PLATFORM"
      AT_PLATFORM:     power9
      AT_BASE_PLATFORM:power9
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Reviewed-by: default avatarNicholas Piggin <npiggin@gmail.com>
    e4b79900
dt_cpu_ftrs.c 24.3 KB