GNU Linux-libre 4.19.314-gnu1
[releases.git] / arch / arm / mach-alpine / alpine_cpu_resume.h
1 /*
2  * Annapurna labs cpu-resume register structure.
3  *
4  * Copyright (C) 2015 Annapurna Labs Ltd.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  */
16
17 #ifndef ALPINE_CPU_RESUME_H_
18 #define ALPINE_CPU_RESUME_H_
19
20 /* Per-cpu regs */
21 struct al_cpu_resume_regs_per_cpu {
22         uint32_t        flags;
23         uint32_t        resume_addr;
24 };
25
26 /* general regs */
27 struct al_cpu_resume_regs {
28         /* Watermark for validating the CPU resume struct */
29         uint32_t watermark;
30         uint32_t flags;
31         struct al_cpu_resume_regs_per_cpu per_cpu[];
32 };
33
34 /* The expected magic number for validating the resume addresses */
35 #define AL_CPU_RESUME_MAGIC_NUM         0xf0e1d200
36 #define AL_CPU_RESUME_MAGIC_NUM_MASK    0xffffff00
37
38 #endif /* ALPINE_CPU_RESUME_H_ */