xref: /linux/arch/arm/mach-alpine/alpine_cpu_resume.h (revision fcc8487d477a3452a1d0ccbdd4c5e0e1e3cb8bed)
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_ */
39