13cb8b153SGuenter Roeck /* SPDX-License-Identifier: GPL-2.0-only */ 23cb8b153SGuenter Roeck #ifndef __ALPHA_SETUP_H 33cb8b153SGuenter Roeck #define __ALPHA_SETUP_H 43cb8b153SGuenter Roeck 53cb8b153SGuenter Roeck #include <uapi/asm/setup.h> 63cb8b153SGuenter Roeck 73cb8b153SGuenter Roeck /* 83cb8b153SGuenter Roeck * We leave one page for the initial stack page, and one page for 93cb8b153SGuenter Roeck * the initial process structure. Also, the console eats 3 MB for 103cb8b153SGuenter Roeck * the initial bootloader (one of which we can reclaim later). 113cb8b153SGuenter Roeck */ 123cb8b153SGuenter Roeck #define BOOT_PCB 0x20000000 133cb8b153SGuenter Roeck #define BOOT_ADDR 0x20000000 143cb8b153SGuenter Roeck /* Remove when official MILO sources have ELF support: */ 153cb8b153SGuenter Roeck #define BOOT_SIZE (16*1024) 163cb8b153SGuenter Roeck 173cb8b153SGuenter Roeck #ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS 183cb8b153SGuenter Roeck #define KERNEL_START_PHYS 0x300000 /* Old bootloaders hardcoded this. */ 193cb8b153SGuenter Roeck #else 203cb8b153SGuenter Roeck #define KERNEL_START_PHYS 0x1000000 /* required: Wildfire/Titan/Marvel */ 213cb8b153SGuenter Roeck #endif 223cb8b153SGuenter Roeck 233cb8b153SGuenter Roeck #define KERNEL_START (PAGE_OFFSET+KERNEL_START_PHYS) 243cb8b153SGuenter Roeck #define SWAPPER_PGD KERNEL_START 253cb8b153SGuenter Roeck #define INIT_STACK (PAGE_OFFSET+KERNEL_START_PHYS+0x02000) 263cb8b153SGuenter Roeck #define EMPTY_PGT (PAGE_OFFSET+KERNEL_START_PHYS+0x04000) 273cb8b153SGuenter Roeck #define EMPTY_PGE (PAGE_OFFSET+KERNEL_START_PHYS+0x08000) 283cb8b153SGuenter Roeck #define ZERO_PGE (PAGE_OFFSET+KERNEL_START_PHYS+0x0A000) 293cb8b153SGuenter Roeck 303cb8b153SGuenter Roeck #define START_ADDR (PAGE_OFFSET+KERNEL_START_PHYS+0x10000) 313cb8b153SGuenter Roeck 323cb8b153SGuenter Roeck /* 333cb8b153SGuenter Roeck * This is setup by the secondary bootstrap loader. Because 343cb8b153SGuenter Roeck * the zero page is zeroed out as soon as the vm system is 353cb8b153SGuenter Roeck * initialized, we need to copy things out into a more permanent 363cb8b153SGuenter Roeck * place. 373cb8b153SGuenter Roeck */ 383cb8b153SGuenter Roeck #define PARAM ZERO_PGE 39*ebdc20d7SGuenter Roeck #define COMMAND_LINE ((char *)(absolute_pointer(PARAM + 0x0000))) 403cb8b153SGuenter Roeck #define INITRD_START (*(unsigned long *) (PARAM+0x100)) 413cb8b153SGuenter Roeck #define INITRD_SIZE (*(unsigned long *) (PARAM+0x108)) 423cb8b153SGuenter Roeck 433cb8b153SGuenter Roeck #endif 44