uboot/arch/x86/include/asm/lapic.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * From coreboot file of same name
   4 *
   5 * Copyright (C) 2014 Google, Inc
   6 */
   7
   8#ifndef _ARCH_ASM_LAPIC_H
   9#define _ARCH_ASM_LAPIC_H
  10
  11#define LAPIC_DEFAULT_BASE              0xfee00000
  12
  13#define LAPIC_ID                        0x020
  14#define LAPIC_LVR                       0x030
  15
  16#define LAPIC_TASKPRI                   0x080
  17#define LAPIC_TPRI_MASK                 0xff
  18
  19#define LAPIC_RRR                       0x0c0
  20
  21#define LAPIC_SPIV                      0x0f0
  22#define LAPIC_SPIV_ENABLE               0x100
  23
  24#define LAPIC_ICR                       0x300
  25#define LAPIC_DEST_SELF                 0x40000
  26#define LAPIC_DEST_ALLINC               0x80000
  27#define LAPIC_DEST_ALLBUT               0xc0000
  28#define LAPIC_ICR_RR_MASK               0x30000
  29#define LAPIC_ICR_RR_INVALID            0x00000
  30#define LAPIC_ICR_RR_INPROG             0x10000
  31#define LAPIC_ICR_RR_VALID              0x20000
  32#define LAPIC_INT_LEVELTRIG             0x08000
  33#define LAPIC_INT_ASSERT                0x04000
  34#define LAPIC_ICR_BUSY                  0x01000
  35#define LAPIC_DEST_LOGICAL              0x00800
  36#define LAPIC_DM_FIXED                  0x00000
  37#define LAPIC_DM_LOWEST                 0x00100
  38#define LAPIC_DM_SMI                    0x00200
  39#define LAPIC_DM_REMRD                  0x00300
  40#define LAPIC_DM_NMI                    0x00400
  41#define LAPIC_DM_INIT                   0x00500
  42#define LAPIC_DM_STARTUP                0x00600
  43#define LAPIC_DM_EXTINT                 0x00700
  44#define LAPIC_VECTOR_MASK               0x000ff
  45
  46#define LAPIC_ICR2                      0x310
  47#define GET_LAPIC_DEST_FIELD(x)         (((x) >> 24) & 0xff)
  48#define SET_LAPIC_DEST_FIELD(x)         ((x) << 24)
  49
  50#define LAPIC_LVT0                      0x350
  51#define LAPIC_LVT1                      0x360
  52#define LAPIC_LVT_MASKED                (1 << 16)
  53#define LAPIC_LVT_LEVEL_TRIGGER         (1 << 15)
  54#define LAPIC_LVT_REMOTE_IRR            (1 << 14)
  55#define LAPIC_INPUT_POLARITY            (1 << 13)
  56#define LAPIC_SEND_PENDING              (1 << 12)
  57#define LAPIC_LVT_RESERVED_1            (1 << 11)
  58#define LAPIC_DELIVERY_MODE_MASK        (7 << 8)
  59#define LAPIC_DELIVERY_MODE_FIXED       (0 << 8)
  60#define LAPIC_DELIVERY_MODE_NMI         (4 << 8)
  61#define LAPIC_DELIVERY_MODE_EXTINT      (7 << 8)
  62
  63unsigned long lapic_read(unsigned long reg);
  64
  65void lapic_write(unsigned long reg, unsigned long v);
  66
  67void enable_lapic(void);
  68
  69void disable_lapic(void);
  70
  71unsigned long lapicid(void);
  72
  73int lapic_remote_read(int apicid, int reg, unsigned long *pvalue);
  74
  75void lapic_setup(void);
  76
  77#endif
  78