at v3.1 146 lines 4.4 kB view raw
1/* 2 * include/asm-s390/setup.h 3 * 4 * S390 version 5 * Copyright IBM Corp. 1999,2010 6 */ 7 8#ifndef _ASM_S390_SETUP_H 9#define _ASM_S390_SETUP_H 10 11#define COMMAND_LINE_SIZE 4096 12 13#define ARCH_COMMAND_LINE_SIZE 896 14 15#ifdef __KERNEL__ 16 17#define PARMAREA 0x10400 18#define MEMORY_CHUNKS 256 19 20#ifndef __ASSEMBLY__ 21 22#include <asm/lowcore.h> 23#include <asm/types.h> 24 25#ifndef __s390x__ 26#define IPL_DEVICE (*(unsigned long *) (0x10404)) 27#define INITRD_START (*(unsigned long *) (0x1040C)) 28#define INITRD_SIZE (*(unsigned long *) (0x10414)) 29#else /* __s390x__ */ 30#define IPL_DEVICE (*(unsigned long *) (0x10400)) 31#define INITRD_START (*(unsigned long *) (0x10408)) 32#define INITRD_SIZE (*(unsigned long *) (0x10410)) 33#endif /* __s390x__ */ 34#define COMMAND_LINE ((char *) (0x10480)) 35 36#define CHUNK_READ_WRITE 0 37#define CHUNK_READ_ONLY 1 38 39struct mem_chunk { 40 unsigned long addr; 41 unsigned long size; 42 int type; 43}; 44 45extern struct mem_chunk memory_chunk[]; 46extern unsigned long real_memory_size; 47extern int memory_end_set; 48extern unsigned long memory_end; 49 50void detect_memory_layout(struct mem_chunk chunk[]); 51 52#define PRIMARY_SPACE_MODE 0 53#define ACCESS_REGISTER_MODE 1 54#define SECONDARY_SPACE_MODE 2 55#define HOME_SPACE_MODE 3 56 57extern unsigned int user_mode; 58 59/* 60 * Machine features detected in head.S 61 */ 62 63#define MACHINE_FLAG_VM (1UL << 0) 64#define MACHINE_FLAG_IEEE (1UL << 1) 65#define MACHINE_FLAG_CSP (1UL << 3) 66#define MACHINE_FLAG_MVPG (1UL << 4) 67#define MACHINE_FLAG_DIAG44 (1UL << 5) 68#define MACHINE_FLAG_IDTE (1UL << 6) 69#define MACHINE_FLAG_DIAG9C (1UL << 7) 70#define MACHINE_FLAG_MVCOS (1UL << 8) 71#define MACHINE_FLAG_KVM (1UL << 9) 72#define MACHINE_FLAG_HPAGE (1UL << 10) 73#define MACHINE_FLAG_PFMF (1UL << 11) 74#define MACHINE_FLAG_LPAR (1UL << 12) 75#define MACHINE_FLAG_SPP (1UL << 13) 76#define MACHINE_FLAG_TOPOLOGY (1UL << 14) 77 78#define MACHINE_IS_VM (S390_lowcore.machine_flags & MACHINE_FLAG_VM) 79#define MACHINE_IS_KVM (S390_lowcore.machine_flags & MACHINE_FLAG_KVM) 80#define MACHINE_IS_LPAR (S390_lowcore.machine_flags & MACHINE_FLAG_LPAR) 81 82#define MACHINE_HAS_DIAG9C (S390_lowcore.machine_flags & MACHINE_FLAG_DIAG9C) 83 84#ifndef __s390x__ 85#define MACHINE_HAS_IEEE (S390_lowcore.machine_flags & MACHINE_FLAG_IEEE) 86#define MACHINE_HAS_CSP (S390_lowcore.machine_flags & MACHINE_FLAG_CSP) 87#define MACHINE_HAS_IDTE (0) 88#define MACHINE_HAS_DIAG44 (1) 89#define MACHINE_HAS_MVPG (S390_lowcore.machine_flags & MACHINE_FLAG_MVPG) 90#define MACHINE_HAS_MVCOS (0) 91#define MACHINE_HAS_HPAGE (0) 92#define MACHINE_HAS_PFMF (0) 93#define MACHINE_HAS_SPP (0) 94#define MACHINE_HAS_TOPOLOGY (0) 95#else /* __s390x__ */ 96#define MACHINE_HAS_IEEE (1) 97#define MACHINE_HAS_CSP (1) 98#define MACHINE_HAS_IDTE (S390_lowcore.machine_flags & MACHINE_FLAG_IDTE) 99#define MACHINE_HAS_DIAG44 (S390_lowcore.machine_flags & MACHINE_FLAG_DIAG44) 100#define MACHINE_HAS_MVPG (1) 101#define MACHINE_HAS_MVCOS (S390_lowcore.machine_flags & MACHINE_FLAG_MVCOS) 102#define MACHINE_HAS_HPAGE (S390_lowcore.machine_flags & MACHINE_FLAG_HPAGE) 103#define MACHINE_HAS_PFMF (S390_lowcore.machine_flags & MACHINE_FLAG_PFMF) 104#define MACHINE_HAS_SPP (S390_lowcore.machine_flags & MACHINE_FLAG_SPP) 105#define MACHINE_HAS_TOPOLOGY (S390_lowcore.machine_flags & MACHINE_FLAG_TOPOLOGY) 106#endif /* __s390x__ */ 107 108#define ZFCPDUMP_HSA_SIZE (32UL<<20) 109 110/* 111 * Console mode. Override with conmode= 112 */ 113extern unsigned int console_mode; 114extern unsigned int console_devno; 115extern unsigned int console_irq; 116 117extern char vmhalt_cmd[]; 118extern char vmpoff_cmd[]; 119 120#define CONSOLE_IS_UNDEFINED (console_mode == 0) 121#define CONSOLE_IS_SCLP (console_mode == 1) 122#define CONSOLE_IS_3215 (console_mode == 2) 123#define CONSOLE_IS_3270 (console_mode == 3) 124#define SET_CONSOLE_SCLP do { console_mode = 1; } while (0) 125#define SET_CONSOLE_3215 do { console_mode = 2; } while (0) 126#define SET_CONSOLE_3270 do { console_mode = 3; } while (0) 127 128#define NSS_NAME_SIZE 8 129extern char kernel_nss_name[]; 130 131#else /* __ASSEMBLY__ */ 132 133#ifndef __s390x__ 134#define IPL_DEVICE 0x10404 135#define INITRD_START 0x1040C 136#define INITRD_SIZE 0x10414 137#else /* __s390x__ */ 138#define IPL_DEVICE 0x10400 139#define INITRD_START 0x10408 140#define INITRD_SIZE 0x10410 141#endif /* __s390x__ */ 142#define COMMAND_LINE 0x10480 143 144#endif /* __ASSEMBLY__ */ 145#endif /* __KERNEL__ */ 146#endif /* _ASM_S390_SETUP_H */