[U-Boot] [PATCH v2 36/47] x86: Add an enum for some commonly-used GDT bits

Bin Meng bmeng.cn at gmail.com
Tue Aug 4 08:56:32 CEST 2015


On Fri, Jul 31, 2015 at 11:31 PM, Simon Glass <sjg at chromium.org> wrote:
> Rather than add these as open-coded values, create an enum with the commonly
> used flags.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v2:
> - Add descriptor bits for the base and limit
> - Rename GDT_4GB to GDT_4KB
>
>  arch/x86/include/asm/cpu.h | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
>
> diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
> index 08284ee..5b89139 100644
> --- a/arch/x86/include/asm/cpu.h
> +++ b/arch/x86/include/asm/cpu.h
> @@ -27,6 +27,24 @@ enum {
>         X86_VENDOR_UNKNOWN = 0xff
>  };
>
> +/* Global descriptor table (GDT) bits */
> +enum {
> +       GDT_4KB                 = 1ULL << 55,
> +       GDT_32BIT               = 1ULL << 54,
> +       GDT_LONG                = 1ULL << 53,
> +       GDT_PRESENT             = 1ULL << 47,
> +       GDT_NOTSYS              = 1ULL << 44,
> +       GDT_CODE                = 1ULL << 43,
> +       GDT_LIMIT_LOW_SHIFT     = 0,
> +       GDT_LIMIT_LOW_MASK      = 0xffff,
> +       GDT_LIMIT_HIGH_SHIFT    = 48,
> +       GDT_LIMIT_HIGH_MASK     = 0xf,
> +       GDT_BASE_LOW_SHIFT      = 16,
> +       GDT_BASE_LOW_MASK       = 0xffff,
> +       GDT_BASE_HIGH_SHIFT     = 56,
> +       GDT_BASE_HIGH_MASK      = 0xf,
> +};
> +
>  struct cpuid_result {
>         uint32_t eax;
>         uint32_t ebx;
> --

Reviewed-by: Bin Meng <bmeng.cn at gmail.com>


More information about the U-Boot mailing list