Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/m32r/boot/compressed/boot.h
10818 views
1
/*
2
* 1. load vmlinuz
3
*
4
* CONFIG_MEMORY_START +-----------------------+
5
* | vmlinuz |
6
* +-----------------------+
7
* 2. decompressed
8
*
9
* CONFIG_MEMORY_START +-----------------------+
10
* | vmlinuz |
11
* +-----------------------+
12
* | |
13
* BOOT_RELOC_ADDR +-----------------------+
14
* | |
15
* KERNEL_DECOMPRESS_ADDR +-----------------------+
16
* | vmlinux |
17
* +-----------------------+
18
*
19
* 3. relocate copy & jump code
20
*
21
* CONFIG_MEMORY_START +-----------------------+
22
* | vmlinuz |
23
* +-----------------------+
24
* | |
25
* BOOT_RELOC_ADDR +-----------------------+
26
* | boot(copy&jump) |
27
* KERNEL_DECOMPRESS_ADDR +-----------------------+
28
* | vmlinux |
29
* +-----------------------+
30
*
31
* 4. relocate decompressed kernel
32
*
33
* CONFIG_MEMORY_START +-----------------------+
34
* | vmlinux |
35
* +-----------------------+
36
* | |
37
* BOOT_RELOC_ADDR +-----------------------+
38
* | boot(copy&jump) |
39
* KERNEL_DECOMPRESS_ADDR +-----------------------+
40
* | |
41
* +-----------------------+
42
*
43
*/
44
#ifdef __ASSEMBLY__
45
#define __val(x) x
46
#else
47
#define __val(x) (x)
48
#endif
49
50
#define DECOMPRESS_OFFSET_BASE __val(0x00900000)
51
#define BOOT_RELOC_SIZE __val(0x00001000)
52
53
#define KERNEL_EXEC_ADDR __val(CONFIG_MEMORY_START)
54
#define KERNEL_DECOMPRESS_ADDR __val(CONFIG_MEMORY_START + \
55
DECOMPRESS_OFFSET_BASE + BOOT_RELOC_SIZE)
56
#define KERNEL_ENTRY __val(CONFIG_MEMORY_START + 0x1000)
57
58
#define BOOT_EXEC_ADDR __val(CONFIG_MEMORY_START)
59
#define BOOT_RELOC_ADDR __val(CONFIG_MEMORY_START + DECOMPRESS_OFFSET_BASE)
60
61