cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

panfrost_features.h (3620B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/* (C) COPYRIGHT 2014-2018 ARM Limited. All rights reserved. */
      3/* Copyright 2019 Linaro, Ltd., Rob Herring <robh@kernel.org> */
      4#ifndef __PANFROST_FEATURES_H__
      5#define __PANFROST_FEATURES_H__
      6
      7#include <linux/bitops.h>
      8
      9#include "panfrost_device.h"
     10
     11enum panfrost_hw_feature {
     12	HW_FEATURE_JOBCHAIN_DISAMBIGUATION,
     13	HW_FEATURE_PWRON_DURING_PWROFF_TRANS,
     14	HW_FEATURE_XAFFINITY,
     15	HW_FEATURE_V4,
     16	HW_FEATURE_FLUSH_REDUCTION,
     17	HW_FEATURE_PROTECTED_MODE,
     18	HW_FEATURE_COHERENCY_REG,
     19	HW_FEATURE_PROTECTED_DEBUG_MODE,
     20	HW_FEATURE_AARCH64_MMU,
     21	HW_FEATURE_TLS_HASHING,
     22	HW_FEATURE_THREAD_GROUP_SPLIT,
     23	HW_FEATURE_IDVS_GROUP_SIZE,
     24	HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG,
     25};
     26
     27#define hw_features_t600 (\
     28	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
     29	BIT_ULL(HW_FEATURE_V4))
     30
     31#define hw_features_t620 hw_features_t600
     32
     33#define hw_features_t720 hw_features_t600
     34
     35#define hw_features_t760 (\
     36	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
     37	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
     38	BIT_ULL(HW_FEATURE_XAFFINITY) | \
     39	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
     40
     41#define hw_features_t860 hw_features_t760
     42
     43#define hw_features_t880 hw_features_t760
     44
     45#define hw_features_t830 hw_features_t760
     46
     47#define hw_features_t820 hw_features_t760
     48
     49#define hw_features_g71 (\
     50	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
     51	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
     52	BIT_ULL(HW_FEATURE_XAFFINITY) | \
     53	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
     54	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
     55	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
     56	BIT_ULL(HW_FEATURE_COHERENCY_REG))
     57
     58#define hw_features_g72 (\
     59	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
     60	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
     61	BIT_ULL(HW_FEATURE_XAFFINITY) | \
     62	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
     63	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
     64	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
     65	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
     66	BIT_ULL(HW_FEATURE_COHERENCY_REG))
     67
     68#define hw_features_g51 hw_features_g72
     69
     70#define hw_features_g52 (\
     71	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
     72	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
     73	BIT_ULL(HW_FEATURE_XAFFINITY) | \
     74	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
     75	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
     76	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
     77	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
     78	BIT_ULL(HW_FEATURE_IDVS_GROUP_SIZE) | \
     79	BIT_ULL(HW_FEATURE_COHERENCY_REG))
     80
     81#define hw_features_g76 (\
     82	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
     83	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
     84	BIT_ULL(HW_FEATURE_XAFFINITY) | \
     85	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
     86	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
     87	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
     88	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
     89	BIT_ULL(HW_FEATURE_COHERENCY_REG) | \
     90	BIT_ULL(HW_FEATURE_AARCH64_MMU) | \
     91	BIT_ULL(HW_FEATURE_TLS_HASHING) | \
     92	BIT_ULL(HW_FEATURE_IDVS_GROUP_SIZE) | \
     93	BIT_ULL(HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG))
     94
     95#define hw_features_g31 (\
     96	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
     97	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
     98	BIT_ULL(HW_FEATURE_XAFFINITY) | \
     99	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
    100	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
    101	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
    102	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
    103	BIT_ULL(HW_FEATURE_COHERENCY_REG) | \
    104	BIT_ULL(HW_FEATURE_AARCH64_MMU) | \
    105	BIT_ULL(HW_FEATURE_TLS_HASHING) | \
    106	BIT_ULL(HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG))
    107
    108static inline bool panfrost_has_hw_feature(struct panfrost_device *pfdev,
    109					   enum panfrost_hw_feature feat)
    110{
    111	return test_bit(feat, pfdev->features.hw_features);
    112}
    113
    114#endif