1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | #ifndef _PPC_BOOT_REG_H |
3 | #define _PPC_BOOT_REG_H |
4 | /* |
5 | * Copyright 2007 Davud Gibson, IBM Corporation. |
6 | */ |
7 | |
8 | static inline u32 mfpvr(void) |
9 | { |
10 | u32 pvr; |
11 | asm volatile ("mfpvr %0" : "=r" (pvr)); |
12 | return pvr; |
13 | } |
14 | |
15 | #define __stringify_1(x) #x |
16 | #define __stringify(x) __stringify_1(x) |
17 | |
18 | #define mfspr(rn) ({unsigned long rval; \ |
19 | asm volatile("mfspr %0," __stringify(rn) \ |
20 | : "=r" (rval)); rval; }) |
21 | #define mtspr(rn, v) asm volatile("mtspr " __stringify(rn) ",%0" : : "r" (v)) |
22 | |
23 | register void *__stack_pointer asm("r1" ); |
24 | #define get_sp() (__stack_pointer) |
25 | |
26 | #endif /* _PPC_BOOT_REG_H */ |
27 | |