1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #ifndef __ALPHA_SETUP_H
3 #define __ALPHA_SETUP_H
4 
5 #include <uapi/asm/setup.h>
6 
7 /*
8  * We leave one page for the initial stack page, and one page for
9  * the initial process structure. Also, the console eats 3 MB for
10  * the initial bootloader (one of which we can reclaim later).
11  */
12 #define BOOT_PCB	0x20000000
13 #define BOOT_ADDR	0x20000000
14 /* Remove when official MILO sources have ELF support: */
15 #define BOOT_SIZE	(16*1024)
16 
17 #ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
18 #define KERNEL_START_PHYS	0x300000 /* Old bootloaders hardcoded this.  */
19 #else
20 #define KERNEL_START_PHYS	0x1000000 /* required: Wildfire/Titan/Marvel */
21 #endif
22 
23 #define KERNEL_START	(PAGE_OFFSET+KERNEL_START_PHYS)
24 #define SWAPPER_PGD	KERNEL_START
25 #define INIT_STACK	(PAGE_OFFSET+KERNEL_START_PHYS+0x02000)
26 #define EMPTY_PGT	(PAGE_OFFSET+KERNEL_START_PHYS+0x04000)
27 #define EMPTY_PGE	(PAGE_OFFSET+KERNEL_START_PHYS+0x08000)
28 #define ZERO_PGE	(PAGE_OFFSET+KERNEL_START_PHYS+0x0A000)
29 
30 #define START_ADDR	(PAGE_OFFSET+KERNEL_START_PHYS+0x10000)
31 
32 /*
33  * This is setup by the secondary bootstrap loader.  Because
34  * the zero page is zeroed out as soon as the vm system is
35  * initialized, we need to copy things out into a more permanent
36  * place.
37  */
38 #define PARAM			ZERO_PGE
39 #define COMMAND_LINE		((char *)(absolute_pointer(PARAM + 0x0000)))
40 #define INITRD_START		(*(unsigned long *) (PARAM+0x100))
41 #define INITRD_SIZE		(*(unsigned long *) (PARAM+0x108))
42 
43 #endif
44