receive trampoline addr via parameter of arch_start()
This commit is contained in:
committed by
Balazs Gerofi bgerofi@riken.jp
parent
a91bf9a13d
commit
ff47261337
@@ -266,8 +266,8 @@ void ihk_mc_init_ap(void)
|
||||
{
|
||||
struct ihk_mc_cpu_info *cpu_info = ihk_mc_get_cpu_info();
|
||||
|
||||
trampoline_va = map_fixed_area(AP_TRAMPOLINE, AP_TRAMPOLINE_SIZE,
|
||||
0);
|
||||
trampoline_va = map_fixed_area(ap_trampoline, AP_TRAMPOLINE_SIZE, 0);
|
||||
kprintf("trampoline area: 0x%lx \n", ap_trampoline);
|
||||
first_page_va = map_fixed_area(0, PAGE_SIZE, 0);
|
||||
|
||||
kprintf("# of cpus : %d\n", cpu_info->ncpus);
|
||||
@@ -607,7 +607,7 @@ void ihk_mc_boot_cpu(int cpuid, unsigned long pc)
|
||||
|
||||
cpu_boot_status = 0;
|
||||
|
||||
__x86_wakeup(cpuid, AP_TRAMPOLINE);
|
||||
__x86_wakeup(cpuid, ap_trampoline);
|
||||
|
||||
/* XXX: Time out */
|
||||
while (!cpu_boot_status) {
|
||||
|
||||
@@ -246,7 +246,8 @@ void flush_tlb_single(unsigned long addr);
|
||||
|
||||
void *map_fixed_area(unsigned long phys, unsigned long size, int uncachable);
|
||||
|
||||
#define AP_TRAMPOLINE 0x10000
|
||||
extern unsigned long ap_trampoline;
|
||||
//#define AP_TRAMPOLINE 0x10000
|
||||
#define AP_TRAMPOLINE_SIZE 0x4000
|
||||
|
||||
/* Local is cachable */
|
||||
|
||||
@@ -2088,7 +2088,7 @@ void ihk_mc_reserve_arch_pages(unsigned long start, unsigned long end,
|
||||
/* Reserve Text + temporal heap */
|
||||
cb(virt_to_phys(_head), virt_to_phys(get_last_early_heap()), 0);
|
||||
/* Reserve trampoline area to boot the second ap */
|
||||
cb(AP_TRAMPOLINE, AP_TRAMPOLINE + AP_TRAMPOLINE_SIZE, 0);
|
||||
cb(ap_trampoline, ap_trampoline + AP_TRAMPOLINE_SIZE, 0);
|
||||
/* Reserve the null page */
|
||||
cb(0, PAGE_SIZE, 0);
|
||||
/* Micro-arch specific */
|
||||
|
||||
Reference in New Issue
Block a user