On 17 October 2013 17:48, Peter Maydell <peter.mayd...@linaro.org> wrote:
> Add 'virt' platform support corresponding to arch/arm/mach-virt
> in the Linux kernel tree. This has no platform-specific code but
> can use any device whose kernel driver is is able to work purely
> from a device tree node. We use this to instantiate a minimal
> set of devices: a GIC and some virtio-mmio transports.

> +/* Addresses and sizes of our components.
> + * We leave the first 64K free for possible use later for
> + * flash (for running boot code such as UEFI); following
> + * that is I/O, and then everything else is RAM (which may
> + * happily spill over into the high memory region beyond 4GB).
> + */
> +static const MemMapEntry a15memmap[] = {
> +    [VIRT_FLASH] = { 0, 0x1000000 },
> +    [VIRT_CPUPERIPHS] = { 0x1000000, 0x8000 },
> +    /* GIC distributor and CPU interfaces sit inside the CPU peripheral 
> space */
> +    [VIRT_GIC_DIST] = { 0x1001000, 0x1000 },
> +    [VIRT_GIC_CPU] = { 0x1002000, 0x1000 },
> +    [VIRT_UART] = { 0x1008000, 0x1000 },
> +    [VIRT_MMIO] = { 0x2000000, 0x200 },
> +    /* ...repeating for a total of NUM_VIRTIO_TRANSPORTS, each of that size 
> */
> +    [VIRT_MEM] = { 0x8000000, 30ULL * 1024 * 1024 * 1024 },
> +};

So, following some conversations at Linaro Connect this week
it occurred to me that it might be better to arrange the mach-virt
memory map with some space so that if a miracle occurs and
we can get pci-e support into it then we don't have to have a
migration compat break when we move the RAM around.

Something like:
 0 .. 0.25GB:  flash, cpu periphs, etc, virtio-mmio as above
 0.25GB..1GB: space here for PCI memory window
 1GB and up: RAM

but since I don't have much PCI experience I dunno whether
that makes sense as a set of sizes. Comments/corrections
welcome.

 thanks
-- PMM

Reply via email to