mirror of https://gitee.com/openkylin/qemu.git
* Two reboot fixes for the s390-ccw bios
-----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAl+7iOURHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbU9bg//Z12+bZspIobOTjEm/BKbgpnnogo8JOTl +YEmwnWFByq9YwUuiS5nyy0h3eBZlxR/TBeX+IFUOnnMGm+vCX9zZyUG9fd4gThz UEV3VoW6Llw+m3mukrC9X4cdZjQxPl1OJ3pq4S/kydXlciCWZqJ3/rG7ZWJyC/+B lNYPHSWmsNA4PHZ6FoQzg1blb+Ezhm7Vlz0gJw8f3mhLyDftFshEwKPTKkTmWB3L oOSh8tL6Qy0/kEz1HZyJfPnuef/r9T3iZ/uUiVS0as58Bi+LHg40k/K4Z3jl4nto RApqSge3xe1GbYzIKMi3BwNSis9kVGLmkWBvFuIOnFi+u5JY64wV6fBZ22TNL+G/ UBfX+1+DBO3afrKlLcJBGrsJSCjmRidWkKGVAxsMlR/3mop1qVcaOYuNqoBeQMaB AQDaIm4v5HhEOZu7V1/pnKS9lqlCu72zHmD+PdFqPWO6h+gy0CPNPEltHzpOeBkq fydM60jxesjplOER/FDIWM2hznuzd/8MP6wrmGm3WMeKLJEw1K6/6Q4nuM6IaeKB av2d+S9P3Lo4BFN2pDO4Dxh3C/1aW1MHsStIT6ZD72eV6tf49r2wOrpVv65OjFoq kh6zpGeIxUXpEcFRQKyuDWg5MEGRqRqHuGhcI9nMlNWCn3LafquNXiV/p4mcrwOZ ybKpAWKBrWc= =Qmki -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2020-11-23' into staging * Two reboot fixes for the s390-ccw bios # gpg: Signature made Mon 23 Nov 2020 10:03:17 GMT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * remotes/huth-gitlab/tags/pull-request-2020-11-23: pc-bios/s390: Update the s390-ccw bios binaries pc-bios: s390x: Clear out leftover S390EP string pc-bios: s390x: Ensure Read IPL memory is clean Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
fb764373ea
Binary file not shown.
|
@ -100,6 +100,9 @@ static void make_readipl(void)
|
|||
{
|
||||
Ccw0 *ccwIplRead = (Ccw0 *)0x00;
|
||||
|
||||
/* Clear out any existing data */
|
||||
memset(ccwIplRead, 0, sizeof(Ccw0));
|
||||
|
||||
/* Create Read IPL ccw at address 0 */
|
||||
ccwIplRead->cmd_code = CCW_CMD_READ_IPL;
|
||||
ccwIplRead->cda = 0x00; /* Read into address 0x00 in main memory */
|
||||
|
|
|
@ -78,7 +78,7 @@ void jump_to_low_kernel(void)
|
|||
* kernel start address (when jumping to the PSW-at-zero address instead,
|
||||
* the kernel startup code fails when we booted from a network device).
|
||||
*/
|
||||
if (!memcmp((char *)0x10008, "S390EP", 6)) {
|
||||
if (!memcmp((char *)S390EP, "S390EP", 6)) {
|
||||
jump_to_IPL_code(KERN_IMAGE_START);
|
||||
}
|
||||
|
||||
|
|
|
@ -178,6 +178,12 @@ static void boot_setup(void)
|
|||
memcpy(lpmsg + 10, loadparm_str, 8);
|
||||
sclp_print(lpmsg);
|
||||
|
||||
/*
|
||||
* Clear out any potential S390EP magic (see jump_to_low_kernel()),
|
||||
* so we don't taint our decision-making process during a reboot.
|
||||
*/
|
||||
memset((char *)S390EP, 0, 6);
|
||||
|
||||
have_iplb = store_iplb(&iplb);
|
||||
}
|
||||
|
||||
|
|
|
@ -95,6 +95,9 @@ typedef struct LowCore {
|
|||
|
||||
extern LowCore *lowcore;
|
||||
|
||||
/* Location of "S390EP" in a Linux binary (see arch/s390/boot/head.S) */
|
||||
#define S390EP 0x10008
|
||||
|
||||
static inline void set_prefix(uint32_t address)
|
||||
{
|
||||
asm volatile("spx %0" : : "m" (address) : "memory");
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue