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

reg_access_test.c (673B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * Copyright 2014, Michael Ellerman, IBM Corp.
      4 */
      5
      6#include <stdio.h>
      7#include <stdlib.h>
      8
      9#include "ebb.h"
     10
     11
     12/*
     13 * Test basic access to the EBB regs, they should be user accessible with no
     14 * kernel interaction required.
     15 */
     16int reg_access(void)
     17{
     18	uint64_t val, expected;
     19
     20	SKIP_IF(!ebb_is_supported());
     21
     22	expected = 0x8000000100000000ull;
     23	mtspr(SPRN_BESCR, expected);
     24	val = mfspr(SPRN_BESCR);
     25
     26	FAIL_IF(val != expected);
     27
     28	expected = 0x0000000001000000ull;
     29	mtspr(SPRN_EBBHR, expected);
     30	val = mfspr(SPRN_EBBHR);
     31
     32	FAIL_IF(val != expected);
     33
     34	return 0;
     35}
     36
     37int main(void)
     38{
     39	return test_harness(reg_access, "reg_access");
     40}