mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
target-arm queue:
* linux-user/elfload: Add missing arm64 hwcap values * stellaris-gamepad: Convert to qdev * docs/specs: Convert various txt docs to rST * MAINTAINERS: Make sure that gicv3_internal.h is covered, too * hw/arm/pxa2xx_gpio: Pass CPU using QOM link property * hw/watchdog/wdt_imx2: Trace MMIO access and timer activity * hw/misc/imx7_snvs: Trace MMIO access * hw/misc/imx6_ccm: Convert DPRINTF to trace events * hw/i2c/pm_smbus: Convert DPRINTF to trace events * target/arm: Enable FEAT_MOPS insns in user-mode emulation * linux-user: Report AArch64 hwcap2 fields above bit 31 * target/arm: Make FEAT_MOPS SET* insns handle Xs == XZR correctly * target/arm: Fix SVE STR increment * hw/char/stm32f2xx_usart: implement TX interrupts * target/arm: Correctly propagate stage 1 BTI guarded bit in a two-stage walk * xlnx-versal-virt: Add AMD/Xilinx TRNG device -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmVD3hEZHHBldGVyLm1h eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3kuRD/4mLL2DB+yvQJrzSvUlrjfi /orPDrY9xEQ7ln2YpNqc2BZ4wAgh947yk/ae5+lyACQcBhCPiwMyVK1bBscNxkgA 8YPmuugNem/64+IHiKkz6aroqjvC83dUzJ9R5O9ctV70mgrX32YnhXNkkYVI81Ar bEwBznyYeCiy8ZafVxc2m70fiBOlurb6htYYdt7VHsgB0ozK/80UmuFI6exOKt1r oVyYouMaidNV/AoqZBGSKT2UFvFmI57PWN0YQD8CMECLsB/mBE9TEzSvLRdlOB4G qI5hgEJks61qDL6+YMJ+hskxW+D3g3I1WjuyqhKfiAzcKmmTAp1NsiiDtva8yBzX lDUXc6bPomalrKo1SPsooJv9r4uE3hCayDOlR+qM38DL4j2soSd3QIP7dCzERbZx snrD+ZTtgXtomUN8ojbnOK+kClEfURZ+wALbUEXwAh1sBwrKBxaD4ss4lA2esq10 HJPjBJzAWoSmK2DY6GWt2xIa+GvQwdPnxMpHbp3yAddGP7i/lHM0x60q5YpjHV++ DHaZmLBA7L9wcvT1VrwmieJaB+ADcSfkzBz2KznC4usdEY8BiJhjdRAzkqdGZWV5 HKEg8QwMYHg4QRUoZxW/XdtVzdqcjO5pTSUr3HUE+85sum2e9Yee6rybg1W/EWYv 7SnVkD5zG1BU268/p5k6UA== =OgfH -----END PGP SIGNATURE----- Merge tag 'pull-target-arm-20231102' of https://git.linaro.org/people/pmaydell/qemu-arm into staging target-arm queue: * linux-user/elfload: Add missing arm64 hwcap values * stellaris-gamepad: Convert to qdev * docs/specs: Convert various txt docs to rST * MAINTAINERS: Make sure that gicv3_internal.h is covered, too * hw/arm/pxa2xx_gpio: Pass CPU using QOM link property * hw/watchdog/wdt_imx2: Trace MMIO access and timer activity * hw/misc/imx7_snvs: Trace MMIO access * hw/misc/imx6_ccm: Convert DPRINTF to trace events * hw/i2c/pm_smbus: Convert DPRINTF to trace events * target/arm: Enable FEAT_MOPS insns in user-mode emulation * linux-user: Report AArch64 hwcap2 fields above bit 31 * target/arm: Make FEAT_MOPS SET* insns handle Xs == XZR correctly * target/arm: Fix SVE STR increment * hw/char/stm32f2xx_usart: implement TX interrupts * target/arm: Correctly propagate stage 1 BTI guarded bit in a two-stage walk * xlnx-versal-virt: Add AMD/Xilinx TRNG device * tag 'pull-target-arm-20231102' of https://git.linaro.org/people/pmaydell/qemu-arm: (33 commits) tests/qtest: Introduce tests for AMD/Xilinx Versal TRNG device hw/arm: xlnx-versal-virt: Add AMD/Xilinx TRNG device hw/misc: Introduce AMD/Xilix Versal TRNG device target/arm: Correctly propagate stage 1 BTI guarded bit in a two-stage walk hw/char/stm32f2xx_usart: Add more definitions for CR1 register hw/char/stm32f2xx_usart: Update IRQ when DR is written hw/char/stm32f2xx_usart: Extract common IRQ update code to update_irq() target/arm: Fix SVE STR increment target/arm: Make FEAT_MOPS SET* insns handle Xs == XZR correctly linux-user: Report AArch64 hwcap2 fields above bit 31 target/arm: Enable FEAT_MOPS insns in user-mode emulation hw/i2c/pm_smbus: Convert DPRINTF to trace events hw/misc/imx6_ccm: Convert DPRINTF to trace events hw/misc/imx7_snvs: Trace MMIO access hw/watchdog/wdt_imx2: Trace timer activity hw/watchdog/wdt_imx2: Trace MMIO access hw/arm/pxa2xx_gpio: Pass CPU using QOM link property MAINTAINERS: Make sure that gicv3_internal.h is covered, too docs/specs/vmgenid: Convert to rST docs/specs/vmcoreinfo: Convert to rST ... Conflicts: hw/input/stellaris_input.c The qdev conversion in this pull request ("stellaris-gamepad: Convert to qdev") eliminates the vmstate_register() call that was converted to vmstate_register_any() in the conflicting migration pull request. vmstate_register_any() is no longer necessary now that this device has been converted to qdev, so take this pull request's version of stellaris_gamepad.c over the previous pull request's stellaris_input.c (the file was renamed). Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
d762bf9793
56 changed files with 2302 additions and 776 deletions
|
@ -30,6 +30,7 @@
|
|||
#include "hw/dma/xlnx_csu_dma.h"
|
||||
#include "hw/misc/xlnx-versal-crl.h"
|
||||
#include "hw/misc/xlnx-versal-pmc-iou-slcr.h"
|
||||
#include "hw/misc/xlnx-versal-trng.h"
|
||||
#include "hw/net/xlnx-versal-canfd.h"
|
||||
#include "hw/misc/xlnx-versal-cfu.h"
|
||||
#include "hw/misc/xlnx-versal-cframe-reg.h"
|
||||
|
@ -115,6 +116,7 @@ struct Versal {
|
|||
} iou;
|
||||
|
||||
XlnxZynqMPRTC rtc;
|
||||
XlnxVersalTRng trng;
|
||||
XlnxBBRam bbram;
|
||||
XlnxEFuse efuse;
|
||||
XlnxVersalEFuseCtrl efuse_ctrl;
|
||||
|
@ -159,6 +161,7 @@ struct Versal {
|
|||
#define VERSAL_OSPI_IRQ 124
|
||||
#define VERSAL_SD0_IRQ_0 126
|
||||
#define VERSAL_EFUSE_IRQ 139
|
||||
#define VERSAL_TRNG_IRQ 141
|
||||
#define VERSAL_RTC_ALARM_IRQ 142
|
||||
#define VERSAL_RTC_SECONDS_IRQ 143
|
||||
|
||||
|
@ -328,4 +331,6 @@ struct Versal {
|
|||
#define MM_PMC_CRP_SIZE 0x10000
|
||||
#define MM_PMC_RTC 0xf12a0000
|
||||
#define MM_PMC_RTC_SIZE 0x10000
|
||||
#define MM_PMC_TRNG 0xf1230000
|
||||
#define MM_PMC_TRNG_SIZE 0x10000
|
||||
#endif
|
||||
|
|
|
@ -48,10 +48,12 @@
|
|||
#define USART_SR_TC (1 << 6)
|
||||
#define USART_SR_RXNE (1 << 5)
|
||||
|
||||
#define USART_CR1_UE (1 << 13)
|
||||
#define USART_CR1_RXNEIE (1 << 5)
|
||||
#define USART_CR1_TE (1 << 3)
|
||||
#define USART_CR1_RE (1 << 2)
|
||||
#define USART_CR1_UE (1 << 13)
|
||||
#define USART_CR1_TXEIE (1 << 7)
|
||||
#define USART_CR1_TCEIE (1 << 6)
|
||||
#define USART_CR1_RXNEIE (1 << 5)
|
||||
#define USART_CR1_TE (1 << 3)
|
||||
#define USART_CR1_RE (1 << 2)
|
||||
|
||||
#define TYPE_STM32F2XX_USART "stm32f2xx-usart"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(STM32F2XXUsartState, STM32F2XX_USART)
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
/*
|
||||
* Gamepad style buttons connected to IRQ/GPIO lines
|
||||
*
|
||||
* Copyright (c) 2007 CodeSourcery.
|
||||
* Written by Paul Brook
|
||||
*
|
||||
* 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_INPUT_GAMEPAD_H
|
||||
#define HW_INPUT_GAMEPAD_H
|
||||
|
||||
|
||||
/* stellaris_input.c */
|
||||
void stellaris_gamepad_init(int n, qemu_irq *irq, const int *keycode);
|
||||
|
||||
#endif
|
37
include/hw/input/stellaris_gamepad.h
Normal file
37
include/hw/input/stellaris_gamepad.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* Gamepad style buttons connected to IRQ/GPIO lines
|
||||
*
|
||||
* Copyright (c) 2007 CodeSourcery.
|
||||
* Written by Paul Brook
|
||||
*
|
||||
* 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_INPUT_STELLARIS_GAMEPAD_H
|
||||
#define HW_INPUT_STELLARIS_GAMEPAD_H
|
||||
|
||||
#include "hw/sysbus.h"
|
||||
#include "qom/object.h"
|
||||
|
||||
/*
|
||||
* QEMU interface:
|
||||
* + QOM array property "keycodes": uint32_t QEMU keycodes to handle
|
||||
* (these are QCodes, ie the Q_KEY_* values)
|
||||
* + unnamed GPIO outputs: one per keycode, in the same order as the
|
||||
* "keycodes" array property entries; asserted when key is down
|
||||
*/
|
||||
|
||||
#define TYPE_STELLARIS_GAMEPAD "stellaris-gamepad"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(StellarisGamepad, STELLARIS_GAMEPAD)
|
||||
|
||||
struct StellarisGamepad {
|
||||
SysBusDevice parent_obj;
|
||||
|
||||
uint32_t num_buttons;
|
||||
qemu_irq *irqs;
|
||||
uint32_t *keycodes;
|
||||
uint8_t *pressed;
|
||||
};
|
||||
|
||||
#endif
|
58
include/hw/misc/xlnx-versal-trng.h
Normal file
58
include/hw/misc/xlnx-versal-trng.h
Normal file
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Non-crypto strength model of the True Random Number Generator
|
||||
* in the AMD/Xilinx Versal device family.
|
||||
*
|
||||
* Copyright (c) 2017-2020 Xilinx Inc.
|
||||
* Copyright (c) 2023 Advanced Micro Devices, Inc.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
#ifndef XLNX_VERSAL_TRNG_H
|
||||
#define XLNX_VERSAL_TRNG_H
|
||||
|
||||
#include "hw/irq.h"
|
||||
#include "hw/sysbus.h"
|
||||
#include "hw/register.h"
|
||||
|
||||
#define TYPE_XLNX_VERSAL_TRNG "xlnx.versal-trng"
|
||||
OBJECT_DECLARE_SIMPLE_TYPE(XlnxVersalTRng, XLNX_VERSAL_TRNG);
|
||||
|
||||
#define RMAX_XLNX_VERSAL_TRNG ((0xf0 / 4) + 1)
|
||||
|
||||
typedef struct XlnxVersalTRng {
|
||||
SysBusDevice parent_obj;
|
||||
qemu_irq irq;
|
||||
GRand *prng;
|
||||
|
||||
uint32_t hw_version;
|
||||
uint32_t forced_faults;
|
||||
|
||||
uint32_t rand_count;
|
||||
uint64_t rand_reseed;
|
||||
|
||||
uint64_t forced_prng_seed;
|
||||
uint64_t forced_prng_count;
|
||||
uint64_t tst_seed[2];
|
||||
|
||||
uint32_t regs[RMAX_XLNX_VERSAL_TRNG];
|
||||
RegisterInfo regs_info[RMAX_XLNX_VERSAL_TRNG];
|
||||
} XlnxVersalTRng;
|
||||
|
||||
#undef RMAX_XLNX_VERSAL_TRNG
|
||||
#endif
|
|
@ -206,6 +206,9 @@ void qdev_prop_set_macaddr(DeviceState *dev, const char *name,
|
|||
const uint8_t *value);
|
||||
void qdev_prop_set_enum(DeviceState *dev, const char *name, int value);
|
||||
|
||||
/* Takes ownership of @values */
|
||||
void qdev_prop_set_array(DeviceState *dev, const char *name, QList *values);
|
||||
|
||||
void *object_field_prop_ptr(Object *obj, Property *prop);
|
||||
|
||||
void qdev_prop_register_global(GlobalProperty *prop);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue