18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
28c2ecf20Sopenharmony_ci#ifndef __ALPHA_SETUP_H
38c2ecf20Sopenharmony_ci#define __ALPHA_SETUP_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#define COMMAND_LINE_SIZE	256
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci/*
88c2ecf20Sopenharmony_ci * We leave one page for the initial stack page, and one page for
98c2ecf20Sopenharmony_ci * the initial process structure. Also, the console eats 3 MB for
108c2ecf20Sopenharmony_ci * the initial bootloader (one of which we can reclaim later).
118c2ecf20Sopenharmony_ci */
128c2ecf20Sopenharmony_ci#define BOOT_PCB	0x20000000
138c2ecf20Sopenharmony_ci#define BOOT_ADDR	0x20000000
148c2ecf20Sopenharmony_ci/* Remove when official MILO sources have ELF support: */
158c2ecf20Sopenharmony_ci#define BOOT_SIZE	(16*1024)
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
188c2ecf20Sopenharmony_ci#define KERNEL_START_PHYS	0x300000 /* Old bootloaders hardcoded this.  */
198c2ecf20Sopenharmony_ci#else
208c2ecf20Sopenharmony_ci#define KERNEL_START_PHYS	0x1000000 /* required: Wildfire/Titan/Marvel */
218c2ecf20Sopenharmony_ci#endif
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci#define KERNEL_START	(PAGE_OFFSET+KERNEL_START_PHYS)
248c2ecf20Sopenharmony_ci#define SWAPPER_PGD	KERNEL_START
258c2ecf20Sopenharmony_ci#define INIT_STACK	(PAGE_OFFSET+KERNEL_START_PHYS+0x02000)
268c2ecf20Sopenharmony_ci#define EMPTY_PGT	(PAGE_OFFSET+KERNEL_START_PHYS+0x04000)
278c2ecf20Sopenharmony_ci#define EMPTY_PGE	(PAGE_OFFSET+KERNEL_START_PHYS+0x08000)
288c2ecf20Sopenharmony_ci#define ZERO_PGE	(PAGE_OFFSET+KERNEL_START_PHYS+0x0A000)
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#define START_ADDR	(PAGE_OFFSET+KERNEL_START_PHYS+0x10000)
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci/*
338c2ecf20Sopenharmony_ci * This is setup by the secondary bootstrap loader.  Because
348c2ecf20Sopenharmony_ci * the zero page is zeroed out as soon as the vm system is
358c2ecf20Sopenharmony_ci * initialized, we need to copy things out into a more permanent
368c2ecf20Sopenharmony_ci * place.
378c2ecf20Sopenharmony_ci */
388c2ecf20Sopenharmony_ci#define PARAM			ZERO_PGE
398c2ecf20Sopenharmony_ci#define COMMAND_LINE		((char*)(PARAM + 0x0000))
408c2ecf20Sopenharmony_ci#define INITRD_START		(*(unsigned long *) (PARAM+0x100))
418c2ecf20Sopenharmony_ci#define INITRD_SIZE		(*(unsigned long *) (PARAM+0x108))
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci#endif
44