mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
target-arm queue:
* add MHU and dual-core support to Musca boards * refactor some VFP insns to be gated by ID registers * Revert "arm: Allow system registers for KVM guests to be changed by QEMU code" * Implement ARMv8.2-FHM extension * Advertise JSCVT via HWCAP for linux-user -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAlx3wM8ZHHBldGVyLm1h eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3t+yD/4hbg4UCNDNHvnHv5N0dwVo xDnEwN8Ath5jhcIlwjB4sPg44wO1dTy9PXK75UskGbUXnJfl4VFQsTVOg6GELVPc RJJ7S1hBjaipRxaS7tgBl+sE03JFSFniGaYuU5cpwxh62HWlZRBZ85+Pw3iNb9So UgrnQeThPNb9STKt2x0T8TvgjmwuS6fRYqA0DSVqUWT7FRNgIpfJ+dVkGxAhC8Mh YJVmLfR1Z/HS3lWRHkZHDBkv036by7XnrRdTEb7yftNflmFHaX0OdSO/4+Uueslf Lz9uem7LUOwnz9x0tBDSdaUrfJ4hmJSNXZhoeINR0V4MUKQBVWvRUrlfymRlFL15 SlI7i19FS0OleFTZs26TflGutgLwvMTRzAvhVR/F+pBqlYs1UxvNk4eMPLZFYPuc OlRsgoUUtmF722TjW2l+Uewixo22AMatyv9VsiR6Ut7etmLIj8HHABkDX5kQbqFc wz60pkUvPcywGGATaMImQJ+uoHOTXZhegBPyfYZYhbTVXshjvEYxFSLtmfhoyVAo SyUUhsQyu4KGRVm4zGXKQuAPALElaDcKJ/T1H11pobMrCgM48C3br3EGsSZyOEFp 2A7ulT73sYL+7EjQ2fS/4kTXUGOiIWijo1oR9ANvqYbcROQiKDYsl023oEz0dpVY n2tWg1Gzt/KjeM0md8B/Lg== =7MnB -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20190228-1' into staging target-arm queue: * add MHU and dual-core support to Musca boards * refactor some VFP insns to be gated by ID registers * Revert "arm: Allow system registers for KVM guests to be changed by QEMU code" * Implement ARMv8.2-FHM extension * Advertise JSCVT via HWCAP for linux-user # gpg: Signature made Thu 28 Feb 2019 11:06:55 GMT # gpg: using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE # gpg: issuer "peter.maydell@linaro.org" # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate] # gpg: aka "Peter Maydell <pmaydell@gmail.com>" [ultimate] # gpg: aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [ultimate] # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83 15CF 3C25 25ED 1436 0CDE * remotes/pmaydell/tags/pull-target-arm-20190228-1: linux-user: Enable HWCAP_ASIMDFHM, HWCAP_JSCVT target/arm: Enable ARMv8.2-FHM for -cpu max target/arm: Implement VFMAL and VFMSL for aarch32 target/arm: Implement FMLAL and FMLSL for aarch64 target/arm: Add helpers for FMLAL Revert "arm: Allow system registers for KVM guests to be changed by QEMU code" target/arm: Gate "miscellaneous FP" insns by ID register field target/arm: Use MVFR1 feature bits to gate A32/T32 FP16 instructions hw/arm/armsse: Unify init-svtor and cpuwait handling hw/arm/iotkit-sysctl: Implement CPUWAIT and INITSVTOR* hw/arm/iotkit-sysctl: Add SSE-200 registers hw/misc/iotkit-sysctl: Correct typo in INITSVTOR0 register name target/arm/arm-powerctl: Add new arm_set_cpu_on_and_reset() target/arm/cpu: Allow init-svtor property to be set after realize hw/arm/armsse: Wire up the MHUs hw/misc/armsse-mhu.c: Model the SSE-200 Message Handling Unit Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
9403bccfe3
24 changed files with 1139 additions and 148 deletions
|
@ -95,6 +95,7 @@
|
|||
#include "hw/misc/iotkit-sysctl.h"
|
||||
#include "hw/misc/iotkit-sysinfo.h"
|
||||
#include "hw/misc/armsse-cpuid.h"
|
||||
#include "hw/misc/armsse-mhu.h"
|
||||
#include "hw/misc/unimp.h"
|
||||
#include "hw/or-irq.h"
|
||||
#include "hw/core/split-irq.h"
|
||||
|
@ -166,7 +167,7 @@ typedef struct ARMSSE {
|
|||
IoTKitSysCtl sysctl;
|
||||
IoTKitSysCtl sysinfo;
|
||||
|
||||
UnimplementedDeviceState mhu[2];
|
||||
ARMSSEMHU mhu[2];
|
||||
UnimplementedDeviceState ppu[NUM_PPUS];
|
||||
UnimplementedDeviceState cachectrl[SSE_MAX_CPUS];
|
||||
UnimplementedDeviceState cpusecctrl[SSE_MAX_CPUS];
|
||||
|
|
44
include/hw/misc/armsse-mhu.h
Normal file
44
include/hw/misc/armsse-mhu.h
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* ARM SSE-200 Message Handling Unit (MHU)
|
||||
*
|
||||
* Copyright (c) 2019 Linaro Limited
|
||||
* Written by Peter Maydell
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 or
|
||||
* (at your option) any later version.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is a model of the Message Handling Unit (MHU) which is part of the
|
||||
* Arm SSE-200 and documented in
|
||||
* http://infocenter.arm.com/help/topic/com.arm.doc.101104_0100_00_en/corelink_sse200_subsystem_for_embedded_technical_reference_manual_101104_0100_00_en.pdf
|
||||
*
|
||||
* QEMU interface:
|
||||
* + sysbus MMIO region 0: the system information register bank
|
||||
* + sysbus IRQ 0: interrupt for CPU 0
|
||||
* + sysbus IRQ 1: interrupt for CPU 1
|
||||
*/
|
||||
|
||||
#ifndef HW_MISC_SSE_MHU_H
|
||||
#define HW_MISC_SSE_MHU_H
|
||||
|
||||
#include "hw/sysbus.h"
|
||||
|
||||
#define TYPE_ARMSSE_MHU "armsse-mhu"
|
||||
#define ARMSSE_MHU(obj) OBJECT_CHECK(ARMSSEMHU, (obj), TYPE_ARMSSE_MHU)
|
||||
|
||||
typedef struct ARMSSEMHU {
|
||||
/*< private >*/
|
||||
SysBusDevice parent_obj;
|
||||
|
||||
/*< public >*/
|
||||
MemoryRegion iomem;
|
||||
qemu_irq cpu0irq;
|
||||
qemu_irq cpu1irq;
|
||||
|
||||
uint32_t cpu0intr;
|
||||
uint32_t cpu1intr;
|
||||
} ARMSSEMHU;
|
||||
|
||||
#endif
|
|
@ -17,6 +17,9 @@
|
|||
* "system control register" blocks.
|
||||
*
|
||||
* QEMU interface:
|
||||
* + QOM property "SYS_VERSION": value of the SYS_VERSION register of the
|
||||
* system information block of the SSE
|
||||
* (used to identify whether to provide SSE-200-only registers)
|
||||
* + sysbus MMIO region 0: the system information register bank
|
||||
* + sysbus MMIO region 1: the system control register bank
|
||||
*/
|
||||
|
@ -41,9 +44,29 @@ typedef struct IoTKitSysCtl {
|
|||
uint32_t reset_syndrome;
|
||||
uint32_t reset_mask;
|
||||
uint32_t gretreg;
|
||||
uint32_t initsvrtor0;
|
||||
uint32_t initsvtor0;
|
||||
uint32_t cpuwait;
|
||||
uint32_t wicctrl;
|
||||
uint32_t scsecctrl;
|
||||
uint32_t fclk_div;
|
||||
uint32_t sysclk_div;
|
||||
uint32_t clock_force;
|
||||
uint32_t initsvtor1;
|
||||
uint32_t nmi_enable;
|
||||
uint32_t ewctrl;
|
||||
uint32_t pdcm_pd_sys_sense;
|
||||
uint32_t pdcm_pd_sram0_sense;
|
||||
uint32_t pdcm_pd_sram1_sense;
|
||||
uint32_t pdcm_pd_sram2_sense;
|
||||
uint32_t pdcm_pd_sram3_sense;
|
||||
|
||||
/* Properties */
|
||||
uint32_t sys_version;
|
||||
uint32_t cpuwait_rst;
|
||||
uint32_t initsvtor0_rst;
|
||||
uint32_t initsvtor1_rst;
|
||||
|
||||
bool is_sse200;
|
||||
} IoTKitSysCtl;
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue