s390x updates:
- add bpb/ppa15 features to default cpu model for z196 and later - rework TOD handling and fix cpu hotplug under tcg - various fixes -----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEEw9DWbcNiT/aowBjO3s9rk8bwL68FAls6B/QSHGNvaHVja0By ZWRoYXQuY29tAAoJEN7Pa5PG8C+vqCIQAII2fFuPicarkERO8DBbn/nzPWMNp20f UUkhmS5w7Bng3Fq2hL3aihmRijMM7K4+6M4m0/mEf6Z07dQmC5M/FGNsV22/ToFb wjGUZM/SaqJF+gosEvA/pzhc8GmgPCDF3z2Phbdqsa4Ck33sMKyZIGveH8jF9lDf 8HoljDQ06ckXhaIsX1DZ9I6o6u5CpoCOSLrwuLpVfzFK1fimD04B44GINZg/oJQ0 e++ac2OwyV7OgjdLiNlVJOI5UV7iVrgZRvtGLqLzRCWLJVDl85I2JwhQwx0mHv4Y Of0SyiY3SF5jiV/FCLdd/k9CxMUzBXhZvq5vi7qtejakiVbVA+W5E1hugUUl794a gjlsrkKnpFFAW6QU8/4bq88I9e0F4LXLfaK1dCnOsJX3kGIruUjLGfOTM/T2Cuz9 0oJPYgZs0NAxTh+9wsFOlhS0EBr8jczn+DRRQjUPrzWk2INLtl8kKyjh71UW9yl5 vYCZevK9KUuZXNGBsqVn2pS1rKbryoJVm3IZudJXBvyj5EPo4q3Tdxm7NZKGPIlu e6VXHinhMtk7BZt5J2HNKGFIo5IPCcYQJCgs6+M1wRTHK6VtquVvas0y5aW5Wvl8 0lHI0fmflDoHbPiyRH9xvOS3r/y9xNYoUUG2GxjQqteW7tJAuhYy/rQIvBbVKufL 0xFKC4vdhV7c =GF+m -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20180702' into staging s390x updates: - add bpb/ppa15 features to default cpu model for z196 and later - rework TOD handling and fix cpu hotplug under tcg - various fixes # gpg: Signature made Mon 02 Jul 2018 12:09:40 BST # gpg: using RSA key DECF6B93C6F02FAF # gpg: Good signature from "Cornelia Huck <conny@cornelia-huck.de>" # gpg: aka "Cornelia Huck <huckc@linux.vnet.ibm.com>" # gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>" # gpg: aka "Cornelia Huck <cohuck@kernel.org>" # gpg: aka "Cornelia Huck <cohuck@redhat.com>" # Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0 18CE DECF 6B93 C6F0 2FAF * remotes/cohuck/tags/s390x-20180702: s390x/tcg: fix locking problem with tcg_s390_tod_updated s390x/kvm: indicate alignment in legacy_s390_alloc() s390x/kvm: legacy_s390_alloc() only supports one allocation s390x/tcg: fix CPU hotplug with single-threaded TCG s390x/tcg: rearm the CKC timer during migration s390x/tcg: implement SET CLOCK s390x/tcg: SET CLOCK COMPARATOR can clear CKC interrupts s390x/tcg: properly implement the TOD s390x/tcg: drop tod_basetime s390x/tod: factor out TOD into separate device s390x/kvm: pass values instead of pointers to kvm_s390_set_clock_*() s390x/tcg: avoid overflows in time2tod/tod2time s390x/cpumodel: default enable bpb and ppa15 for z196 and later loader: Check access size when calling rom_ptr() to avoid crashes s390/ipl: fix ipl with -no-reboot Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
7320bb2cb0
30 changed files with 543 additions and 166 deletions
|
|
@ -226,7 +226,7 @@ void rom_set_fw(FWCfgState *f);
|
|||
void rom_set_order_override(int order);
|
||||
void rom_reset_order_override(void);
|
||||
int rom_copy(uint8_t *dest, hwaddr addr, size_t size);
|
||||
void *rom_ptr(hwaddr addr);
|
||||
void *rom_ptr(hwaddr addr, size_t size);
|
||||
void hmp_info_roms(Monitor *mon, const QDict *qdict);
|
||||
|
||||
#define rom_add_file_fixed(_f, _a, _i) \
|
||||
|
|
|
|||
65
include/hw/s390x/tod.h
Normal file
65
include/hw/s390x/tod.h
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
/*
|
||||
* TOD (Time Of Day) clock
|
||||
*
|
||||
* Copyright 2018 Red Hat, Inc.
|
||||
* Author(s): David Hildenbrand <david@redhat.com>
|
||||
*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#ifndef HW_S390_TOD_H
|
||||
#define HW_S390_TOD_H
|
||||
|
||||
#include "hw/qdev.h"
|
||||
|
||||
typedef struct S390TOD {
|
||||
uint8_t high;
|
||||
uint64_t low;
|
||||
} S390TOD;
|
||||
|
||||
#define TYPE_S390_TOD "s390-tod"
|
||||
#define S390_TOD(obj) OBJECT_CHECK(S390TODState, (obj), TYPE_S390_TOD)
|
||||
#define S390_TOD_CLASS(oc) OBJECT_CLASS_CHECK(S390TODClass, (oc), \
|
||||
TYPE_S390_TOD)
|
||||
#define S390_TOD_GET_CLASS(obj) OBJECT_GET_CLASS(S390TODClass, (obj), \
|
||||
TYPE_S390_TOD)
|
||||
#define TYPE_KVM_S390_TOD TYPE_S390_TOD "-kvm"
|
||||
#define TYPE_QEMU_S390_TOD TYPE_S390_TOD "-qemu"
|
||||
|
||||
typedef struct S390TODState {
|
||||
/* private */
|
||||
DeviceState parent_obj;
|
||||
|
||||
/* unused by KVM implementation */
|
||||
S390TOD base;
|
||||
} S390TODState;
|
||||
|
||||
typedef struct S390TODClass {
|
||||
/* private */
|
||||
DeviceClass parent_class;
|
||||
|
||||
/* public */
|
||||
void (*get)(const S390TODState *td, S390TOD *tod, Error **errp);
|
||||
void (*set)(S390TODState *td, const S390TOD *tod, Error **errp);
|
||||
} S390TODClass;
|
||||
|
||||
/* The value of the TOD clock for 1.1.1970. */
|
||||
#define TOD_UNIX_EPOCH 0x7d91048bca000000ULL
|
||||
|
||||
/* Converts ns to s390's clock format */
|
||||
static inline uint64_t time2tod(uint64_t ns)
|
||||
{
|
||||
return (ns << 9) / 125 + (((ns & 0xff10000000000000ull) / 125) << 9);
|
||||
}
|
||||
|
||||
/* Converts s390's clock format to ns */
|
||||
static inline uint64_t tod2time(uint64_t t)
|
||||
{
|
||||
return ((t >> 9) * 125) + (((t & 0x1ff) * 125) >> 9);
|
||||
}
|
||||
|
||||
void s390_init_tod(void);
|
||||
S390TODState *s390_get_todstate(void);
|
||||
|
||||
#endif
|
||||
|
|
@ -44,6 +44,10 @@ typedef enum ShutdownCause {
|
|||
turns that into a shutdown */
|
||||
SHUTDOWN_CAUSE_GUEST_PANIC, /* Guest panicked, and command line turns
|
||||
that into a shutdown */
|
||||
SHUTDOWN_CAUSE_SUBSYSTEM_RESET,/* Partial guest reset that does not trigger
|
||||
QMP events and ignores --no-reboot. This
|
||||
is useful for sanitize hypercalls on s390
|
||||
that are used during kexec/kdump/boot */
|
||||
SHUTDOWN_CAUSE__MAX,
|
||||
} ShutdownCause;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue