]> Git Repo - qemu.git/commit
hw/arm/virt: Split the memory map description
authorEric Auger <[email protected]>
Mon, 4 Mar 2019 10:13:32 +0000 (11:13 +0100)
committerPeter Maydell <[email protected]>
Tue, 5 Mar 2019 15:55:09 +0000 (15:55 +0000)
commit350a9c9e181b1986163e445b27c3a67722ded91b
tree55c48bc3639eb391c696cb5e41c3b9c4575991bd
parentbf424a121643b56b8c017ca484623fd0c254e26c
hw/arm/virt: Split the memory map description

In the prospect to introduce an extended memory map supporting more
RAM, let's split the memory map array into two parts:

- the former a15memmap, renamed base_memmap, contains regions below
  and including the RAM. MemMapEntries initialized in this array
  have a static size and base address.
- extended_memmap, only initialized with entries located after the
  RAM. MemMapEntries initialized in this array only get their size
  initialized. Their base address is dynamically computed depending
  on the the top of the RAM, with same alignment as their size.

Eventually base_memmap entries are copied into the extended_memmap
array. Using two separate arrays however clarifies which entries
are statically allocated and those which are dynamically allocated.

This new split will allow to grow the RAM size without changing the
description of the high IO entries.

We introduce a new virt_set_memmap() helper function which
"freezes" the memory map. We call it in machvirt_init as
memory attributes of the machine are not yet set when
virt_instance_init() gets called.

The memory map is unchanged (the top of the initial RAM still is
256GiB). Then come the high IO regions with same layout as before.

Signed-off-by: Eric Auger <[email protected]>
Reviewed-by: Igor Mammedov <[email protected]>
Message-id: 20190304101339[email protected]
Signed-off-by: Peter Maydell <[email protected]>
hw/arm/virt.c
include/hw/arm/virt.h
This page took 0.026017 seconds and 4 git commands to generate.