You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[S390] Extra Kernel Parameters via VMPARM
Now it is possible to specify additional kernel parameters on the IPL command line using the IPL PARM option. If the Linux system is already running, the new reipl sysfs attribute 'parm' can be used to change kernel parameters for the next reboot. Examples: IPL C PARM dasd=1234 root=/dev/dasda1 IPL 1234 PARM savesys=mylnxnss echo "init=/bin/bash" > /sys/firmware/reipl/ccw/parm Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
This commit is contained in:
committed by
Heiko Carstens
parent
fe13723061
commit
a0443fbb46
+14
-3
@@ -56,15 +56,19 @@ struct ipl_block_fcp {
|
||||
u8 scp_data[];
|
||||
} __attribute__((packed));
|
||||
|
||||
#define DIAG308_VMPARM_SIZE 64
|
||||
|
||||
struct ipl_block_ccw {
|
||||
u8 load_param[8];
|
||||
u8 load_parm[8];
|
||||
u8 reserved1[84];
|
||||
u8 reserved2[2];
|
||||
u16 devno;
|
||||
u8 vm_flags;
|
||||
u8 reserved3[3];
|
||||
u32 vm_parm_len;
|
||||
u8 reserved4[80];
|
||||
u8 nss_name[8];
|
||||
u8 vm_parm[DIAG308_VMPARM_SIZE];
|
||||
u8 reserved4[8];
|
||||
} __attribute__((packed));
|
||||
|
||||
struct ipl_parameter_block {
|
||||
@@ -73,7 +77,7 @@ struct ipl_parameter_block {
|
||||
struct ipl_block_fcp fcp;
|
||||
struct ipl_block_ccw ccw;
|
||||
} ipl_info;
|
||||
} __attribute__((packed));
|
||||
} __attribute__((packed,aligned(4096)));
|
||||
|
||||
/*
|
||||
* IPL validity flags
|
||||
@@ -86,6 +90,8 @@ extern void do_reipl(void);
|
||||
extern void do_halt(void);
|
||||
extern void do_poff(void);
|
||||
extern void ipl_save_parameters(void);
|
||||
extern void ipl_update_parameters(void);
|
||||
extern void get_ipl_vmparm(char *);
|
||||
|
||||
enum {
|
||||
IPL_DEVNO_VALID = 1,
|
||||
@@ -147,6 +153,11 @@ enum diag308_flags {
|
||||
DIAG308_FLAGS_LP_VALID = 0x80,
|
||||
};
|
||||
|
||||
enum diag308_vm_flags {
|
||||
DIAG308_VM_FLAGS_NSS_VALID = 0x80,
|
||||
DIAG308_VM_FLAGS_VP_VALID = 0x40,
|
||||
};
|
||||
|
||||
enum diag308_rc {
|
||||
DIAG308_RC_OK = 1,
|
||||
};
|
||||
|
||||
@@ -8,7 +8,9 @@
|
||||
#ifndef _ASM_S390_SETUP_H
|
||||
#define _ASM_S390_SETUP_H
|
||||
|
||||
#define COMMAND_LINE_SIZE 896
|
||||
#define COMMAND_LINE_SIZE 1024
|
||||
|
||||
#define ARCH_COMMAND_LINE_SIZE 896
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
||||
Reference in New Issue
Block a user