mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
target-arm queue:
* hw/intc/arm_gicv3_cpuif: Tolerate spurious EOIR writes * handle some UNALLOCATED decode cases correctly rather than asserting * hw: virt: consider hw_compat_6_0 * hw/arm: add quanta-gbs-bmc machine * hw/intc/armv7m_nvic: Remove stale comment * target/arm: Fix mte page crossing test * hw/arm: quanta-q71l add pca954x muxes * target/arm: First few parts of MVE support -----BEGIN PGP SIGNATURE----- iQJNBAABCAA3FiEE4aXFk81BneKOgxXPPCUl7RQ2DN4FAmDJ/fkZHHBldGVyLm1h eWRlbGxAbGluYXJvLm9yZwAKCRA8JSXtFDYM3vMkD/4i3TFk2i/Rjrva81NaU35M S0NnCNdDRp3r3Etd8Dsz3T0JYQtq1XvkrVm+X8uTsCcr8Sd3C4JC1F3Ex6LetWYT 7seDYsZZZMsSziYaB0ukX3tWZqw5HMXmhLCyYdF3NLSnet+/A8J1ao6P7Dcmg9oO NzlQJv5/x5nedBiVeLer6yjKsks7+juzNE0e41A3BOoG5zBZh13rwUsXEipWLO7T cHeXtOWEMA+CZPsssQvwgqoGmzwBRf9rMcJCaeIVjikUU/y0de7seJqHxjlOf36S C4ZkWkyhXd53DRSQDzSGM6/plgVjGnl6WiopBumS6SVgaPITbBfylGwTh8oIDixI VzTSpuKDAM3Jz83Uw8TxoZFBZ8b3pxglTq9ShNSpjlICFjfAL1mpk/fO1NrPUtxa ppLIiX0vmVtMkprq4bxAR0ZYaI89iFIflwyLbErkkNQr7/SC/hcdBjVLKpkZtpGe xxRypMNl3A5p9xg0JKmhJxnVolz+CAvpElkFX6H8ozKOwBRM3UnBSFVsGs2Qv2eU 8P9DRF5GT+u/X34CdJ1monMVRnNvO7AlCb4AcpRe1HTLrbWUueSvYnpH9Q5drvOL Vw6qTboBX7uDpcpFghyMzg2BEHNXzTpbq2lXf3qHf25/vHsFcUZmffdqId2AWuxv GUEbWasLCLoXP0Z4RjK7xA== =gyeN -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20210616' into staging target-arm queue: * hw/intc/arm_gicv3_cpuif: Tolerate spurious EOIR writes * handle some UNALLOCATED decode cases correctly rather than asserting * hw: virt: consider hw_compat_6_0 * hw/arm: add quanta-gbs-bmc machine * hw/intc/armv7m_nvic: Remove stale comment * target/arm: Fix mte page crossing test * hw/arm: quanta-q71l add pca954x muxes * target/arm: First few parts of MVE support # gpg: Signature made Wed 16 Jun 2021 14:34:49 BST # 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-20210616: (25 commits) include/qemu/int128.h: Add function to create Int128 from int64_t bitops.h: Provide hswap32(), hswap64(), wswap64() swapping operations target/arm: Move expand_pred_b() data to vec_helper.c target/arm: Add framework for MVE decode target/arm: Implement MVE LETP insn target/arm: Implement MVE DLSTP target/arm: Implement MVE WLSTP insn target/arm: Implement MVE LCTP target/arm: Let vfp_access_check() handle late NOCP checks target/arm: Add handling for PSR.ECI/ICI target/arm: Handle VPR semantics in existing code target/arm: Enable FPSCR.QC bit for MVE target/arm: Provide and use H8 and H1_8 macros hw/arm: quanta-q71l add pca954x muxes hw/arm: gsj add pca9548 hw/arm: gsj add i2c comments target/arm: Fix mte page crossing test hw/intc/armv7m_nvic: Remove stale comment hw/arm: quanta-gbs-bmc add i2c comments hw/arm: add quanta-gbs-bmc machine ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
38848ce565
26 changed files with 967 additions and 348 deletions
|
@ -378,6 +378,7 @@ config NPCM7XX
|
|||
select SERIAL
|
||||
select SSI
|
||||
select UNIMP
|
||||
select PCA954X
|
||||
|
||||
config FSL_IMX25
|
||||
bool
|
||||
|
@ -413,6 +414,7 @@ config ASPEED_SOC
|
|||
select PCA9552
|
||||
select SERIAL
|
||||
select SMBUS_EEPROM
|
||||
select PCA954X
|
||||
select SSI
|
||||
select SSI_M25P80
|
||||
select TMP105
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "hw/arm/boot.h"
|
||||
#include "hw/arm/aspeed.h"
|
||||
#include "hw/arm/aspeed_soc.h"
|
||||
#include "hw/i2c/i2c_mux_pca954x.h"
|
||||
#include "hw/i2c/smbus_eeprom.h"
|
||||
#include "hw/misc/pca9552.h"
|
||||
#include "hw/misc/tmp105.h"
|
||||
|
@ -461,14 +462,18 @@ static void quanta_q71l_bmc_i2c_init(AspeedMachineState *bmc)
|
|||
/* TODO: i2c-1: Add Frontpanel FRU eeprom@57 24c64 */
|
||||
/* TODO: Add Memory Riser i2c mux and eeproms. */
|
||||
|
||||
/* TODO: i2c-2: pca9546@74 */
|
||||
/* TODO: i2c-2: pca9548@77 */
|
||||
i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), "pca9546", 0x74);
|
||||
i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 2), "pca9548", 0x77);
|
||||
|
||||
/* TODO: i2c-3: Add BIOS FRU eeprom@56 24c64 */
|
||||
/* TODO: i2c-7: Add pca9546@70 */
|
||||
|
||||
/* i2c-7 */
|
||||
i2c_slave_create_simple(aspeed_i2c_get_bus(&soc->i2c, 7), "pca9546", 0x70);
|
||||
/* - i2c@0: pmbus@59 */
|
||||
/* - i2c@1: pmbus@58 */
|
||||
/* - i2c@2: pmbus@58 */
|
||||
/* - i2c@3: pmbus@59 */
|
||||
|
||||
/* TODO: i2c-7: Add PDB FRU eeprom@52 */
|
||||
/* TODO: i2c-8: Add BMC FRU eeprom@50 */
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
#include "hw/arm/npcm7xx.h"
|
||||
#include "hw/core/cpu.h"
|
||||
#include "hw/i2c/i2c_mux_pca954x.h"
|
||||
#include "hw/i2c/smbus_eeprom.h"
|
||||
#include "hw/loader.h"
|
||||
#include "hw/qdev-core.h"
|
||||
|
@ -29,6 +30,7 @@
|
|||
|
||||
#define NPCM750_EVB_POWER_ON_STRAPS 0x00001ff7
|
||||
#define QUANTA_GSJ_POWER_ON_STRAPS 0x00001fff
|
||||
#define QUANTA_GBS_POWER_ON_STRAPS 0x000017ff
|
||||
|
||||
static const char npcm7xx_default_bootrom[] = "npcm7xx_bootrom.bin";
|
||||
|
||||
|
@ -220,7 +222,18 @@ static void quanta_gsj_i2c_init(NPCM7xxState *soc)
|
|||
at24c_eeprom_init(soc, 9, 0x55, 8192);
|
||||
at24c_eeprom_init(soc, 10, 0x55, 8192);
|
||||
|
||||
/* TODO: Add additional i2c devices. */
|
||||
/*
|
||||
* i2c-11:
|
||||
* - power-brick@36: delta,dps800
|
||||
* - hotswap@15: ti,lm5066i
|
||||
*/
|
||||
|
||||
/*
|
||||
* i2c-12:
|
||||
* - ucd90160@6b
|
||||
*/
|
||||
|
||||
i2c_slave_create_simple(npcm7xx_i2c_get_bus(soc, 15), "pca9548", 0x75);
|
||||
}
|
||||
|
||||
static void quanta_gsj_fan_init(NPCM7xxMachine *machine, NPCM7xxState *soc)
|
||||
|
@ -237,6 +250,65 @@ static void quanta_gsj_fan_init(NPCM7xxMachine *machine, NPCM7xxState *soc)
|
|||
npcm7xx_connect_pwm_fan(soc, &splitter[2], 0x05, 1);
|
||||
}
|
||||
|
||||
static void quanta_gbs_i2c_init(NPCM7xxState *soc)
|
||||
{
|
||||
/*
|
||||
* i2c-0:
|
||||
* pca9546@71
|
||||
*
|
||||
* i2c-1:
|
||||
* pca9535@24
|
||||
* pca9535@20
|
||||
* pca9535@21
|
||||
* pca9535@22
|
||||
* pca9535@23
|
||||
* pca9535@25
|
||||
* pca9535@26
|
||||
*
|
||||
* i2c-2:
|
||||
* sbtsi@4c
|
||||
*
|
||||
* i2c-5:
|
||||
* atmel,24c64@50 mb_fru
|
||||
* pca9546@71
|
||||
* - channel 0: max31725@54
|
||||
* - channel 1: max31725@55
|
||||
* - channel 2: max31725@5d
|
||||
* atmel,24c64@51 fan_fru
|
||||
* - channel 3: atmel,24c64@52 hsbp_fru
|
||||
*
|
||||
* i2c-6:
|
||||
* pca9545@73
|
||||
*
|
||||
* i2c-7:
|
||||
* pca9545@72
|
||||
*
|
||||
* i2c-8:
|
||||
* adi,adm1272@10
|
||||
*
|
||||
* i2c-9:
|
||||
* pca9546@71
|
||||
* - channel 0: isil,isl68137@60
|
||||
* - channel 1: isil,isl68137@61
|
||||
* - channel 2: isil,isl68137@63
|
||||
* - channel 3: isil,isl68137@45
|
||||
*
|
||||
* i2c-10:
|
||||
* pca9545@71
|
||||
*
|
||||
* i2c-11:
|
||||
* pca9545@76
|
||||
*
|
||||
* i2c-12:
|
||||
* maxim,max34451@4e
|
||||
* isil,isl68137@5d
|
||||
* isil,isl68137@5e
|
||||
*
|
||||
* i2c-14:
|
||||
* pca9545@70
|
||||
*/
|
||||
}
|
||||
|
||||
static void npcm750_evb_init(MachineState *machine)
|
||||
{
|
||||
NPCM7xxState *soc;
|
||||
|
@ -268,6 +340,23 @@ static void quanta_gsj_init(MachineState *machine)
|
|||
npcm7xx_load_kernel(machine, soc);
|
||||
}
|
||||
|
||||
static void quanta_gbs_init(MachineState *machine)
|
||||
{
|
||||
NPCM7xxState *soc;
|
||||
|
||||
soc = npcm7xx_create_soc(machine, QUANTA_GBS_POWER_ON_STRAPS);
|
||||
npcm7xx_connect_dram(soc, machine->ram);
|
||||
qdev_realize(DEVICE(soc), NULL, &error_fatal);
|
||||
|
||||
npcm7xx_load_bootrom(machine, soc);
|
||||
|
||||
npcm7xx_connect_flash(&soc->fiu[0], 0, "mx66u51235f",
|
||||
drive_get(IF_MTD, 0, 0));
|
||||
|
||||
quanta_gbs_i2c_init(soc);
|
||||
npcm7xx_load_kernel(machine, soc);
|
||||
}
|
||||
|
||||
static void npcm7xx_set_soc_type(NPCM7xxMachineClass *nmc, const char *type)
|
||||
{
|
||||
NPCM7xxClass *sc = NPCM7XX_CLASS(object_class_by_name(type));
|
||||
|
@ -316,6 +405,18 @@ static void gsj_machine_class_init(ObjectClass *oc, void *data)
|
|||
mc->default_ram_size = 512 * MiB;
|
||||
};
|
||||
|
||||
static void gbs_bmc_machine_class_init(ObjectClass *oc, void *data)
|
||||
{
|
||||
NPCM7xxMachineClass *nmc = NPCM7XX_MACHINE_CLASS(oc);
|
||||
MachineClass *mc = MACHINE_CLASS(oc);
|
||||
|
||||
npcm7xx_set_soc_type(nmc, TYPE_NPCM730);
|
||||
|
||||
mc->desc = "Quanta GBS (Cortex-A9)";
|
||||
mc->init = quanta_gbs_init;
|
||||
mc->default_ram_size = 1 * GiB;
|
||||
}
|
||||
|
||||
static const TypeInfo npcm7xx_machine_types[] = {
|
||||
{
|
||||
.name = TYPE_NPCM7XX_MACHINE,
|
||||
|
@ -332,6 +433,10 @@ static const TypeInfo npcm7xx_machine_types[] = {
|
|||
.name = MACHINE_TYPE_NAME("quanta-gsj"),
|
||||
.parent = TYPE_NPCM7XX_MACHINE,
|
||||
.class_init = gsj_machine_class_init,
|
||||
}, {
|
||||
.name = MACHINE_TYPE_NAME("quanta-gbs-bmc"),
|
||||
.parent = TYPE_NPCM7XX_MACHINE,
|
||||
.class_init = gbs_bmc_machine_class_init,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -2766,6 +2766,8 @@ DEFINE_VIRT_MACHINE_AS_LATEST(6, 1)
|
|||
|
||||
static void virt_machine_6_0_options(MachineClass *mc)
|
||||
{
|
||||
virt_machine_6_1_options(mc);
|
||||
compat_props_add(mc->compat_props, hw_compat_6_0, hw_compat_6_0_len);
|
||||
}
|
||||
DEFINE_VIRT_MACHINE(6, 0)
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/bitops.h"
|
||||
#include "qemu/log.h"
|
||||
#include "qemu/main-loop.h"
|
||||
#include "trace.h"
|
||||
#include "gicv3_internal.h"
|
||||
|
@ -1357,7 +1358,9 @@ static void icc_eoir_write(CPUARMState *env, const ARMCPRegInfo *ri,
|
|||
}
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
qemu_log_mask(LOG_GUEST_ERROR,
|
||||
"%s: IRQ %d isn't active\n", __func__, irq);
|
||||
return;
|
||||
}
|
||||
|
||||
icc_drop_prio(cs, grp);
|
||||
|
|
|
@ -2941,12 +2941,6 @@ static void armv7m_nvic_realize(DeviceState *dev, Error **errp)
|
|||
|
||||
static void armv7m_nvic_instance_init(Object *obj)
|
||||
{
|
||||
/* We have a different default value for the num-irq property
|
||||
* than our superclass. This function runs after qdev init
|
||||
* has set the defaults from the Property array and before
|
||||
* any user-specified property setting, so just modify the
|
||||
* value in the GICState struct.
|
||||
*/
|
||||
DeviceState *dev = DEVICE(obj);
|
||||
NVICState *nvic = NVIC(obj);
|
||||
SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue