On Fri, Jul 2, 2021 at 1:20 PM Alistair Francis
<alistair.fran...@wdc.com> wrote:

Could you add some commit message to explain this alias?

>
> Signed-off-by: Alistair Francis <alistair.fran...@wdc.com>
> ---
>  include/hw/riscv/opentitan.h | 2 ++
>  hw/riscv/opentitan.c         | 6 ++++++
>  2 files changed, 8 insertions(+)
>
> diff --git a/include/hw/riscv/opentitan.h b/include/hw/riscv/opentitan.h
> index a488f5e8ec..9f93bebdac 100644
> --- a/include/hw/riscv/opentitan.h
> +++ b/include/hw/riscv/opentitan.h
> @@ -40,6 +40,7 @@ struct LowRISCIbexSoCState {
>
>      MemoryRegion flash_mem;
>      MemoryRegion rom;
> +    MemoryRegion flash_alias;
>  };
>
>  typedef struct OpenTitanState {
> @@ -54,6 +55,7 @@ enum {
>      IBEX_DEV_ROM,
>      IBEX_DEV_RAM,
>      IBEX_DEV_FLASH,
> +    IBEX_DEV_FLASH_VIRTUAL,

Is this virtual address? But it is still physical?

>      IBEX_DEV_UART,
>      IBEX_DEV_GPIO,
>      IBEX_DEV_SPI,
> diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c
> index 933c211b11..36a41c8b5b 100644
> --- a/hw/riscv/opentitan.c
> +++ b/hw/riscv/opentitan.c
> @@ -59,6 +59,7 @@ static const MemMapEntry ibex_memmap[] = {
>      [IBEX_DEV_NMI_GEN] =        {  0x411c0000,  0x1000  },
>      [IBEX_DEV_OTBN] =           {  0x411d0000,  0x10000 },
>      [IBEX_DEV_PERI] =           {  0x411f0000,  0x10000 },
> +    [IBEX_DEV_FLASH_VIRTUAL] =  {  0x80000000,  0x80000 },
>  };
>
>  static void opentitan_board_init(MachineState *machine)
> @@ -134,8 +135,13 @@ static void lowrisc_ibex_soc_realize(DeviceState 
> *dev_soc, Error **errp)
>      /* Flash memory */
>      memory_region_init_rom(&s->flash_mem, OBJECT(dev_soc), 
> "riscv.lowrisc.ibex.flash",
>                             memmap[IBEX_DEV_FLASH].size, &error_fatal);
> +    memory_region_init_alias(&s->flash_alias, OBJECT(dev_soc),
> +                             "riscv.lowrisc.ibex.flash_virtual", 
> &s->flash_mem, 0,
> +                             memmap[IBEX_DEV_FLASH_VIRTUAL].size);
>      memory_region_add_subregion(sys_mem, memmap[IBEX_DEV_FLASH].base,
>                                  &s->flash_mem);
> +    memory_region_add_subregion(sys_mem, memmap[IBEX_DEV_FLASH_VIRTUAL].base,
> +                                &s->flash_alias);
>
>      /* PLIC */
>      if (!sysbus_realize(SYS_BUS_DEVICE(&s->plic), errp)) {
> --

Regards,
Bin

Reply via email to