at v2.6.15 132 lines 3.3 kB view raw
1/* 2 * include/asm-s390/setup.h 3 * 4 * S390 version 5 * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation 6 */ 7 8#ifndef _ASM_S390_SETUP_H 9#define _ASM_S390_SETUP_H 10 11#include <asm/types.h> 12 13#define PARMAREA 0x10400 14#define COMMAND_LINE_SIZE 896 15#define RAMDISK_ORIGIN 0x800000 16#define RAMDISK_SIZE 0x800000 17#define MEMORY_CHUNKS 16 /* max 0x7fff */ 18#define IPL_PARMBLOCK_ORIGIN 0x2000 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/* 34 * Machine features detected in head.S 35 */ 36extern unsigned long machine_flags; 37 38#define MACHINE_IS_VM (machine_flags & 1) 39#define MACHINE_IS_P390 (machine_flags & 4) 40#define MACHINE_HAS_MVPG (machine_flags & 16) 41#define MACHINE_HAS_DIAG44 (machine_flags & 32) 42#define MACHINE_HAS_IDTE (machine_flags & 128) 43 44#ifndef __s390x__ 45#define MACHINE_HAS_IEEE (machine_flags & 2) 46#define MACHINE_HAS_CSP (machine_flags & 8) 47#else /* __s390x__ */ 48#define MACHINE_HAS_IEEE (1) 49#define MACHINE_HAS_CSP (1) 50#endif /* __s390x__ */ 51 52 53#define MACHINE_HAS_SCLP (!MACHINE_IS_P390) 54 55/* 56 * Console mode. Override with conmode= 57 */ 58extern unsigned int console_mode; 59extern unsigned int console_devno; 60extern unsigned int console_irq; 61 62#define CONSOLE_IS_UNDEFINED (console_mode == 0) 63#define CONSOLE_IS_SCLP (console_mode == 1) 64#define CONSOLE_IS_3215 (console_mode == 2) 65#define CONSOLE_IS_3270 (console_mode == 3) 66#define SET_CONSOLE_SCLP do { console_mode = 1; } while (0) 67#define SET_CONSOLE_3215 do { console_mode = 2; } while (0) 68#define SET_CONSOLE_3270 do { console_mode = 3; } while (0) 69 70struct ipl_list_header { 71 u32 length; 72 u8 reserved[3]; 73 u8 version; 74} __attribute__((packed)); 75 76struct ipl_block_fcp { 77 u32 length; 78 u8 pbt; 79 u8 reserved1[322-1]; 80 u16 devno; 81 u8 reserved2[4]; 82 u64 wwpn; 83 u64 lun; 84 u32 bootprog; 85 u8 reserved3[12]; 86 u64 br_lba; 87 u32 scp_data_len; 88 u8 reserved4[260]; 89 u8 scp_data[]; 90} __attribute__((packed)); 91 92struct ipl_parameter_block { 93 union { 94 u32 length; 95 struct ipl_list_header header; 96 } hdr; 97 struct ipl_block_fcp fcp; 98} __attribute__((packed)); 99 100#define IPL_MAX_SUPPORTED_VERSION (0) 101 102#define IPL_TYPE_FCP (0) 103 104/* 105 * IPL validity flags and parameters as detected in head.S 106 */ 107extern u32 ipl_parameter_flags; 108extern u16 ipl_devno; 109 110#define IPL_DEVNO_VALID (ipl_parameter_flags & 1) 111#define IPL_PARMBLOCK_VALID (ipl_parameter_flags & 2) 112 113#define IPL_PARMBLOCK_START ((struct ipl_parameter_block *) \ 114 IPL_PARMBLOCK_ORIGIN) 115#define IPL_PARMBLOCK_SIZE (IPL_PARMBLOCK_START->hdr.length) 116 117#else 118 119#ifndef __s390x__ 120#define IPL_DEVICE 0x10404 121#define INITRD_START 0x1040C 122#define INITRD_SIZE 0x10414 123#else /* __s390x__ */ 124#define IPL_DEVICE 0x10400 125#define INITRD_START 0x10408 126#define INITRD_SIZE 0x10410 127#endif /* __s390x__ */ 128#define COMMAND_LINE 0x10480 129 130#endif 131 132#endif