On 26 April 2018 at 23:03, Michael Clark <m...@sifive.com> wrote: > > > On Thu, Apr 26, 2018 at 10:47 PM, Peter Maydell <peter.mayd...@linaro.org> > wrote: >> >> Currently we use memory_region_init_ram_nomigrate() to create >> the "highbank.sysram" memory region, and we don't manually >> register it with vmstate_register_ram(). This currently >> means that its contents are migrated but as a ram block >> whose name is the empty string; in future it may mean they >> are not migrated at all. Use memory_region_init_ram() instead. > > > It is self evident that memory_region_init_ram() implies normal migration.
Yes; using the _nomigrate functions in these files looks odd but it only looks odd as a result of a refactor we did. Previously we had: * memory_region_init_ram() -- doesn't register the ram for migration * everybody has to manually call vmstate_register_ram() Then we refactored so that: * the old memory_region_init_ram() is renamed to _nomigrate() * a new memory_region_init_ram() does that plus calls vmstate_register_ram() for you * callsites that were doing both calls got automatically rewritten to call the new memory_region_init_ram() * callsites that forgot the vmstate_register_ram() got rewritten to call memory_region_init_ram_nomigrate() So board code that was previously making an easy and hard-to-spot mistake (forgetting to call vmstate_register_ram()) got rewritten so the mistake is more obvious (calling memory_region_init_ram_nomigrate for no good reason). thanks -- PMM