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