/kernel/trunk/arch/ia64/Makefile.inc |
---|
38,14 → 38,18 |
## Make some default assumptions |
# |
INIT_ADDRESS = 0xe000000000400000 |
INIT_SIZE = 0x100000 |
INIT0_ADDRESS = 0xe000000000400000 |
INIT0_SIZE = 0x100000 |
INIT1_ADDRESS = 0xe000000000800000 |
INIT1_SIZE = 0x100000 |
CFLAGS += -mconstant-gp -fno-unwind-tables -mfixed-range=f32-f127 |
LFLAGS += -EL |
AFLAGS += -mconstant-gp |
DEFS += -D__64_BITS__ -DINIT_ADDRESS=$(INIT_ADDRESS) -DINIT_SIZE=$(INIT_SIZE) |
DEFS += -D__64_BITS__ -DINIT0_ADDRESS=$(INIT0_ADDRESS) -DINIT0_SIZE=$(INIT0_SIZE) \ |
-DINIT1_ADDRESS=$(INIT1_ADDRESS) -DINIT1_SIZE=$(INIT1_SIZE) |
## Compile with page hash table support. |
# |
/kernel/trunk/arch/ia64/src/ia64.c |
---|
52,9 → 52,11 |
it_init(); |
/* Setup usermode */ |
init.cnt = 1; |
init.tasks[0].addr = INIT_ADDRESS; |
init.tasks[0].size = INIT_SIZE; |
init.cnt = 2; |
init.tasks[0].addr = INIT0_ADDRESS; |
init.tasks[0].size = INIT0_SIZE; |
init.tasks[1].addr = INIT1_ADDRESS; |
init.tasks[1].size = INIT1_SIZE; |
} |
void arch_post_mm_init(void) |
/kernel/trunk/arch/ia32/src/smp/smp.c |
---|
55,6 → 55,9 |
void smp_init(void) |
{ |
int status; |
__address l_apic_address, io_apic_address; |
if (acpi_madt) { |
acpi_madt_parse(); |
ops = &madt_config_operations; |
64,11 → 67,22 |
ops = &mps_config_operations; |
} |
l_apic_address = PA2KA(PFN2ADDR(frame_alloc_rc(ONE_FRAME, FRAME_ATOMIC | FRAME_KA, &status))); |
if (status != FRAME_OK) |
panic("cannot allocate address for l_apic\n"); |
io_apic_address = PA2KA(PFN2ADDR(frame_alloc_rc(ONE_FRAME, FRAME_ATOMIC | FRAME_KA, &status))); |
if (status != FRAME_OK) |
panic("cannot allocate address for io_apic\n"); |
if (config.cpu_count > 1) { |
page_mapping_insert(AS_KERNEL, (__address) l_apic, (__address) l_apic, |
page_mapping_insert(AS_KERNEL, l_apic_address, (__address) l_apic, |
PAGE_NOT_CACHEABLE); |
page_mapping_insert(AS_KERNEL, (__address) io_apic, (__address) io_apic, |
page_mapping_insert(AS_KERNEL, io_apic_address, (__address) io_apic, |
PAGE_NOT_CACHEABLE); |
l_apic = (__u32 *) l_apic_address; |
io_apic = (__u32 *) io_apic_address; |
} |
/* |