Linux-libre 4.14.44-gnu
[librecmc/linux-libre.git] / tools / testing / selftests / powerpc / pmu / ebb / reg_access_test.c
1 /*
2  * Copyright 2014, Michael Ellerman, IBM Corp.
3  * Licensed under GPLv2.
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  */
16 int 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
37 int main(void)
38 {
39         return test_harness(reg_access, "reg_access");
40 }