1/* 2 * include/asm-s390/setup.h 3 * 4 * S390 version 5 * Copyright IBM Corp. 1999,2006 6 */ 7 8#ifndef _ASM_S390_SETUP_H 9#define _ASM_S390_SETUP_H 10 11#define COMMAND_LINE_SIZE 896 12 13#ifdef __KERNEL__ 14 15#include <asm/types.h> 16 17#define PARMAREA 0x10400 18#define MEMORY_CHUNKS 16 /* max 0x7fff */ 19 20#ifndef __ASSEMBLY__ 21 22#ifndef __s390x__ 23#define IPL_DEVICE (*(unsigned long *) (0x10404)) 24#define INITRD_START (*(unsigned long *) (0x1040C)) 25#define INITRD_SIZE (*(unsigned long *) (0x10414)) 26#else /* __s390x__ */ 27#define IPL_DEVICE (*(unsigned long *) (0x10400)) 28#define INITRD_START (*(unsigned long *) (0x10408)) 29#define INITRD_SIZE (*(unsigned long *) (0x10410)) 30#endif /* __s390x__ */ 31#define COMMAND_LINE ((char *) (0x10480)) 32 33#define CHUNK_READ_WRITE 0 34#define CHUNK_READ_ONLY 1 35 36struct mem_chunk { 37 unsigned long addr; 38 unsigned long size; 39 unsigned long type; 40}; 41 42extern struct mem_chunk memory_chunk[]; 43extern unsigned long real_memory_size; 44 45#ifdef CONFIG_S390_SWITCH_AMODE 46extern unsigned int switch_amode; 47#else 48#define switch_amode (0) 49#endif 50 51#ifdef CONFIG_S390_EXEC_PROTECT 52extern unsigned int s390_noexec; 53#else 54#define s390_noexec (0) 55#endif 56 57/* 58 * Machine features detected in head.S 59 */ 60extern unsigned long machine_flags; 61 62#define MACHINE_IS_VM (machine_flags & 1) 63#define MACHINE_IS_P390 (machine_flags & 4) 64#define MACHINE_HAS_MVPG (machine_flags & 16) 65#define MACHINE_HAS_IDTE (machine_flags & 128) 66#define MACHINE_HAS_DIAG9C (machine_flags & 256) 67 68#ifndef __s390x__ 69#define MACHINE_HAS_IEEE (machine_flags & 2) 70#define MACHINE_HAS_CSP (machine_flags & 8) 71#define MACHINE_HAS_DIAG44 (1) 72#define MACHINE_HAS_MVCOS (0) 73#else /* __s390x__ */ 74#define MACHINE_HAS_IEEE (1) 75#define MACHINE_HAS_CSP (1) 76#define MACHINE_HAS_DIAG44 (machine_flags & 32) 77#define MACHINE_HAS_MVCOS (machine_flags & 512) 78#endif /* __s390x__ */ 79 80#define MACHINE_HAS_SCLP (!MACHINE_IS_P390) 81#define ZFCPDUMP_HSA_SIZE (32UL<<20) 82 83/* 84 * Console mode. Override with conmode= 85 */ 86extern unsigned int console_mode; 87extern unsigned int console_devno; 88extern unsigned int console_irq; 89 90extern char vmhalt_cmd[]; 91extern char vmpoff_cmd[]; 92 93#define CONSOLE_IS_UNDEFINED (console_mode == 0) 94#define CONSOLE_IS_SCLP (console_mode == 1) 95#define CONSOLE_IS_3215 (console_mode == 2) 96#define CONSOLE_IS_3270 (console_mode == 3) 97#define SET_CONSOLE_SCLP do { console_mode = 1; } while (0) 98#define SET_CONSOLE_3215 do { console_mode = 2; } while (0) 99#define SET_CONSOLE_3270 do { console_mode = 3; } while (0) 100 101#define NSS_NAME_SIZE 8 102extern char kernel_nss_name[]; 103 104#else /* __ASSEMBLY__ */ 105 106#ifndef __s390x__ 107#define IPL_DEVICE 0x10404 108#define INITRD_START 0x1040C 109#define INITRD_SIZE 0x10414 110#else /* __s390x__ */ 111#define IPL_DEVICE 0x10400 112#define INITRD_START 0x10408 113#define INITRD_SIZE 0x10410 114#endif /* __s390x__ */ 115#define COMMAND_LINE 0x10480 116 117#endif /* __ASSEMBLY__ */ 118#endif /* __KERNEL__ */ 119#endif /* _ASM_S390_SETUP_H */ 120