On 17 November 2013 16:10, ChenQun <chenq009@xxxxxxxxx> wrote: > Here's a bug, some examples are as follows: > 1.Assuming Guest's filesystem size 6M. > 2.For vexpress_a15, the loader_start = 2048M. > If we set guest ram_size range from 2048M+128M to 2048M+128M+6M, > then the initrd load failed. > 3.For mach-virt, the loader_start = 128M. > If we set guest ram_size range from 256M to 256M+6M, then it is > failed too. > > So,it is a bug for load initrd max mem calculation. > It should be (ram_size + loader_start - initrd_start). Yes, this is definitely a bug. The set of addresses/sizes we pass to the loader is a bit of a mess, though -- we kind of implicitly assume that "loader_start" means "bottom of RAM", and that all the ram is in one chunk. However for example realview-pbx-a9 sets loader_start to 0 when the size of that bit of RAM may be less than the total ram_size. The device tree editing code also assumes a single contiguous block of RAM... thanks -- PMM _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm