[PATCH] s390: export ipl device parameters
Sysfs interface to export ipl device parameters. Dependent on the ipl type the interface will look like this: - ccw ipl: /sys/firmware/ipl/device /ipl_type - fcp ipl: /sys/firmware/ipl/binary_parameter /bootprog /br_lba /device /ipl_type /lun /scp_data /wwpn - otherwise (unknown that is): /sys/firmware/ipl/ipl_type Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Greg KH <greg@kroah.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
ed3cb6f039
commit
1e8e338325
@@ -8,11 +8,14 @@
|
||||
#ifndef _ASM_S390_SETUP_H
|
||||
#define _ASM_S390_SETUP_H
|
||||
|
||||
#include <asm/types.h>
|
||||
|
||||
#define PARMAREA 0x10400
|
||||
#define COMMAND_LINE_SIZE 896
|
||||
#define RAMDISK_ORIGIN 0x800000
|
||||
#define RAMDISK_SIZE 0x800000
|
||||
#define MEMORY_CHUNKS 16 /* max 0x7fff */
|
||||
#define IPL_PARMBLOCK_ORIGIN 0x2000
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
@@ -64,6 +67,53 @@ extern unsigned int console_irq;
|
||||
#define SET_CONSOLE_3215 do { console_mode = 2; } while (0)
|
||||
#define SET_CONSOLE_3270 do { console_mode = 3; } while (0)
|
||||
|
||||
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)
|
||||
|
||||
#else
|
||||
|
||||
#ifndef __s390x__
|
||||
|
||||
Reference in New Issue
Block a user