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 | */ |
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 | } |
41 |