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();
|
struct ihk_mc_cpu_info *cpu_info = ihk_mc_get_cpu_info();
|
||||||
|
|
||||||
trampoline_va = map_fixed_area(AP_TRAMPOLINE, AP_TRAMPOLINE_SIZE,
|
trampoline_va = map_fixed_area(ap_trampoline, AP_TRAMPOLINE_SIZE, 0);
|
||||||
0);
|
kprintf("trampoline area: 0x%lx \n", ap_trampoline);
|
||||||
first_page_va = map_fixed_area(0, PAGE_SIZE, 0);
|
first_page_va = map_fixed_area(0, PAGE_SIZE, 0);
|
||||||
|
|
||||||
kprintf("# of cpus : %d\n", cpu_info->ncpus);
|
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;
|
cpu_boot_status = 0;
|
||||||
|
|
||||||
__x86_wakeup(cpuid, AP_TRAMPOLINE);
|
__x86_wakeup(cpuid, ap_trampoline);
|
||||||
|
|
||||||
/* XXX: Time out */
|
/* XXX: Time out */
|
||||||
while (!cpu_boot_status) {
|
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);
|
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
|
#define AP_TRAMPOLINE_SIZE 0x4000
|
||||||
|
|
||||||
/* Local is cachable */
|
/* Local is cachable */
|
||||||
|
|||||||
@@ -2088,7 +2088,7 @@ void ihk_mc_reserve_arch_pages(unsigned long start, unsigned long end,
|
|||||||
/* Reserve Text + temporal heap */
|
/* Reserve Text + temporal heap */
|
||||||
cb(virt_to_phys(_head), virt_to_phys(get_last_early_heap()), 0);
|
cb(virt_to_phys(_head), virt_to_phys(get_last_early_heap()), 0);
|
||||||
/* Reserve trampoline area to boot the second ap */
|
/* 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 */
|
/* Reserve the null page */
|
||||||
cb(0, PAGE_SIZE, 0);
|
cb(0, PAGE_SIZE, 0);
|
||||||
/* Micro-arch specific */
|
/* Micro-arch specific */
|
||||||
|
|||||||
Reference in New Issue
Block a user