per_cpu_pages = hypervisor_header.max_cpus *
sizeof(struct per_cpu) / PAGE_SIZE;
- system_config = (struct jailhouse_system *)
- (__page_pool + per_cpu_pages * PAGE_SIZE);
config_pages = PAGES(jailhouse_system_config_size(system_config));
page_offset = JAILHOUSE_BASE -
static void init_early(unsigned int cpu_id)
{
- unsigned long core_and_percpu_size;
+ unsigned long core_and_percpu_size = hypervisor_header.core_size +
+ sizeof(struct per_cpu) * hypervisor_header.max_cpus;
struct jailhouse_memory hv_page;
master_cpu_id = cpu_id;
+ system_config = (struct jailhouse_system *)
+ (JAILHOUSE_BASE + core_and_percpu_size);
+
arch_dbg_write_init();
printk("\nInitializing Jailhouse hypervisor %s on CPU %d\n",
hv_page.virt_start = paging_hvirt2phys(&hypervisor_header);
hv_page.size = PAGE_SIZE;
hv_page.flags = JAILHOUSE_MEM_READ;
- core_and_percpu_size = (unsigned long)system_config - JAILHOUSE_BASE;
while (core_and_percpu_size > 0) {
error = arch_map_memory_region(&root_cell, &hv_page);
if (error)