linux/drivers/misc/habanalabs/include/hw_ip/mmu/mmu_general.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0
   2 *
   3 * Copyright 2016-2020 HabanaLabs, Ltd.
   4 * All Rights Reserved.
   5 *
   6 */
   7
   8#ifndef INCLUDE_MMU_GENERAL_H_
   9#define INCLUDE_MMU_GENERAL_H_
  10
  11#define PAGE_SHIFT_4KB                  12
  12#define PAGE_SHIFT_2MB                  21
  13#define PAGE_SIZE_2MB                   (_AC(1, UL) << PAGE_SHIFT_2MB)
  14#define PAGE_SIZE_4KB                   (_AC(1, UL) << PAGE_SHIFT_4KB)
  15
  16#define PAGE_PRESENT_MASK               0x0000000000001ull
  17#define SWAP_OUT_MASK                   0x0000000000004ull
  18#define LAST_MASK                       0x0000000000800ull
  19#define HOP0_MASK                       0x3000000000000ull
  20#define HOP1_MASK                       0x0FF8000000000ull
  21#define HOP2_MASK                       0x0007FC0000000ull
  22#define HOP3_MASK                       0x000003FE00000ull
  23#define HOP4_MASK                       0x00000001FF000ull
  24#define FLAGS_MASK                      0x0000000000FFFull
  25
  26#define HOP0_SHIFT                      48
  27#define HOP1_SHIFT                      39
  28#define HOP2_SHIFT                      30
  29#define HOP3_SHIFT                      21
  30#define HOP4_SHIFT                      12
  31
  32#define MMU_ARCH_5_HOPS                 5
  33
  34#define HOP_PHYS_ADDR_MASK              (~FLAGS_MASK)
  35
  36#define HL_PTE_SIZE                     sizeof(u64)
  37#define HOP_TABLE_SIZE                  PAGE_SIZE_4KB
  38#define PTE_ENTRIES_IN_HOP              (HOP_TABLE_SIZE / HL_PTE_SIZE)
  39#define HOP0_TABLES_TOTAL_SIZE          (HOP_TABLE_SIZE * MAX_ASID)
  40
  41#define MMU_HOP0_PA43_12_SHIFT          12
  42#define MMU_HOP0_PA49_44_SHIFT          (12 + 32)
  43
  44#define MMU_CONFIG_TIMEOUT_USEC         2000 /* 2 ms */
  45
  46#endif /* INCLUDE_MMU_GENERAL_H_ */
  47