mirror of https://gitee.com/openkylin/qemu.git
hw/arm/sbsa-ref : Add embedded controller in secure memory
Add the previously created sbsa-ec device to the sbsa-ref machine in secure memory so the PSCI implementation in ARM-TF can access it, but not expose it to non secure firmware or OS except by via ARM-TF. Signed-off-by: Graeme Gregory <graeme@nuviainc.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com> Tested-by: Leif Lindholm <leif@nuviainc.com> Message-id: 20200826141952.136164-3-graeme@nuviainc.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
dccb92b5ca
commit
3f462bf0f6
|
@ -62,6 +62,7 @@ enum {
|
|||
SBSA_CPUPERIPHS,
|
||||
SBSA_GIC_DIST,
|
||||
SBSA_GIC_REDIST,
|
||||
SBSA_SECURE_EC,
|
||||
SBSA_SMMU,
|
||||
SBSA_UART,
|
||||
SBSA_RTC,
|
||||
|
@ -107,6 +108,7 @@ static const MemMapEntry sbsa_ref_memmap[] = {
|
|||
[SBSA_CPUPERIPHS] = { 0x40000000, 0x00040000 },
|
||||
[SBSA_GIC_DIST] = { 0x40060000, 0x00010000 },
|
||||
[SBSA_GIC_REDIST] = { 0x40080000, 0x04000000 },
|
||||
[SBSA_SECURE_EC] = { 0x50000000, 0x00001000 },
|
||||
[SBSA_UART] = { 0x60000000, 0x00001000 },
|
||||
[SBSA_RTC] = { 0x60010000, 0x00001000 },
|
||||
[SBSA_GPIO] = { 0x60020000, 0x00001000 },
|
||||
|
@ -608,6 +610,16 @@ static void *sbsa_ref_dtb(const struct arm_boot_info *binfo, int *fdt_size)
|
|||
return board->fdt;
|
||||
}
|
||||
|
||||
static void create_secure_ec(MemoryRegion *mem)
|
||||
{
|
||||
hwaddr base = sbsa_ref_memmap[SBSA_SECURE_EC].base;
|
||||
DeviceState *dev = qdev_new("sbsa-ec");
|
||||
SysBusDevice *s = SYS_BUS_DEVICE(dev);
|
||||
|
||||
memory_region_add_subregion(mem, base,
|
||||
sysbus_mmio_get_region(s, 0));
|
||||
}
|
||||
|
||||
static void sbsa_ref_init(MachineState *machine)
|
||||
{
|
||||
unsigned int smp_cpus = machine->smp.cpus;
|
||||
|
@ -731,6 +743,8 @@ static void sbsa_ref_init(MachineState *machine)
|
|||
|
||||
create_pcie(sms);
|
||||
|
||||
create_secure_ec(secure_sysmem);
|
||||
|
||||
sms->bootinfo.ram_size = machine->ram_size;
|
||||
sms->bootinfo.nb_cpus = smp_cpus;
|
||||
sms->bootinfo.board_id = -1;
|
||||
|
|
Loading…
Reference in New Issue