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