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