2005-04-16 15:20:36 -07:00
/*
* include / asm - s390 / setup . h
*
* S390 version
* Copyright ( C ) 1999 IBM Deutschland Entwicklung GmbH , IBM Corporation
*/
# ifndef _ASM_S390_SETUP_H
# define _ASM_S390_SETUP_H
2006-02-11 17:56:03 -08:00
# ifdef __KERNEL__
2005-10-30 15:00:11 -08:00
# include <asm/types.h>
2005-04-16 15:20:36 -07:00
# define PARMAREA 0x10400
# define COMMAND_LINE_SIZE 896
# define RAMDISK_ORIGIN 0x800000
# define RAMDISK_SIZE 0x800000
# define MEMORY_CHUNKS 16 /* max 0x7fff */
2005-10-30 15:00:11 -08:00
# define IPL_PARMBLOCK_ORIGIN 0x2000
2005-04-16 15:20:36 -07:00
# ifndef __ASSEMBLY__
# ifndef __s390x__
# define IPL_DEVICE (*(unsigned long *) (0x10404))
# define INITRD_START (*(unsigned long *) (0x1040C))
# define INITRD_SIZE (*(unsigned long *) (0x10414))
# else /* __s390x__ */
# define IPL_DEVICE (*(unsigned long *) (0x10400))
# define INITRD_START (*(unsigned long *) (0x10408))
# define INITRD_SIZE (*(unsigned long *) (0x10410))
# endif /* __s390x__ */
# define COMMAND_LINE ((char *) (0x10480))
/*
* Machine features detected in head . S
*/
extern unsigned long machine_flags ;
# define MACHINE_IS_VM (machine_flags & 1)
# define MACHINE_IS_P390 (machine_flags & 4)
# define MACHINE_HAS_MVPG (machine_flags & 16)
# define MACHINE_HAS_DIAG44 (machine_flags & 32)
# define MACHINE_HAS_IDTE (machine_flags & 128)
# ifndef __s390x__
# define MACHINE_HAS_IEEE (machine_flags & 2)
# define MACHINE_HAS_CSP (machine_flags & 8)
# else /* __s390x__ */
# define MACHINE_HAS_IEEE (1)
# define MACHINE_HAS_CSP (1)
# endif /* __s390x__ */
# define MACHINE_HAS_SCLP (!MACHINE_IS_P390)
/*
* Console mode . Override with conmode =
*/
extern unsigned int console_mode ;
extern unsigned int console_devno ;
extern unsigned int console_irq ;
# define CONSOLE_IS_UNDEFINED (console_mode == 0)
# define CONSOLE_IS_SCLP (console_mode == 1)
# define CONSOLE_IS_3215 (console_mode == 2)
# define CONSOLE_IS_3270 (console_mode == 3)
# define SET_CONSOLE_SCLP do { console_mode = 1; } while (0)
# define SET_CONSOLE_3215 do { console_mode = 2; } while (0)
# define SET_CONSOLE_3270 do { console_mode = 3; } while (0)
2005-10-30 15:00:11 -08:00
struct ipl_list_header {
u32 length ;
u8 reserved [ 3 ] ;
u8 version ;
} __attribute__ ( ( packed ) ) ;
struct ipl_block_fcp {
u32 length ;
u8 pbt ;
u8 reserved1 [ 322 - 1 ] ;
u16 devno ;
u8 reserved2 [ 4 ] ;
u64 wwpn ;
u64 lun ;
u32 bootprog ;
u8 reserved3 [ 12 ] ;
u64 br_lba ;
u32 scp_data_len ;
u8 reserved4 [ 260 ] ;
u8 scp_data [ ] ;
} __attribute__ ( ( packed ) ) ;
struct ipl_parameter_block {
union {
u32 length ;
struct ipl_list_header header ;
} hdr ;
struct ipl_block_fcp fcp ;
} __attribute__ ( ( packed ) ) ;
# define IPL_MAX_SUPPORTED_VERSION (0)
# define IPL_TYPE_FCP (0)
/*
* IPL validity flags and parameters as detected in head . S
*/
extern u32 ipl_parameter_flags ;
extern u16 ipl_devno ;
# define IPL_DEVNO_VALID (ipl_parameter_flags & 1)
# define IPL_PARMBLOCK_VALID (ipl_parameter_flags & 2)
# define IPL_PARMBLOCK_START ((struct ipl_parameter_block *) \
IPL_PARMBLOCK_ORIGIN )
# define IPL_PARMBLOCK_SIZE (IPL_PARMBLOCK_START->hdr.length)
2006-02-11 17:56:03 -08:00
# else /* __ASSEMBLY__ */
2005-04-16 15:20:36 -07:00
# ifndef __s390x__
# define IPL_DEVICE 0x10404
# define INITRD_START 0x1040C
# define INITRD_SIZE 0x10414
# else /* __s390x__ */
# define IPL_DEVICE 0x10400
# define INITRD_START 0x10408
# define INITRD_SIZE 0x10410
# endif /* __s390x__ */
# define COMMAND_LINE 0x10480
2006-02-11 17:56:03 -08:00
# endif /* __ASSEMBLY__ */
# endif /* __KERNEL__ */
# endif /* _ASM_S390_SETUP_H */