Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1059 → Rev 1057

/kernel/trunk/arch/ia64/src/ia64.c
52,11 → 52,9
it_init();
/* Setup usermode */
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;
init.cnt = 1;
init.tasks[0].addr = INIT_ADDRESS;
init.tasks[0].size = INIT_SIZE;
}
 
void arch_post_mm_init(void)
/kernel/trunk/arch/ia64/Makefile.inc
38,18 → 38,14
## Make some default assumptions
#
 
INIT0_ADDRESS = 0xe000000000400000
INIT0_SIZE = 0x100000
INIT_ADDRESS = 0xe000000000400000
INIT_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__ -DINIT0_ADDRESS=$(INIT0_ADDRESS) -DINIT0_SIZE=$(INIT0_SIZE) \
-DINIT1_ADDRESS=$(INIT1_ADDRESS) -DINIT1_SIZE=$(INIT1_SIZE)
DEFS += -D__64_BITS__ -DINIT_ADDRESS=$(INIT_ADDRESS) -DINIT_SIZE=$(INIT_SIZE)
 
## Compile with page hash table support.
#
/kernel/trunk/arch/ia32/src/smp/smp.c
55,9 → 55,6
 
void smp_init(void)
{
int status;
__address l_apic_address, io_apic_address;
 
if (acpi_madt) {
acpi_madt_parse();
ops = &madt_config_operations;
67,22 → 64,11
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, l_apic_address, (__address) l_apic,
page_mapping_insert(AS_KERNEL, (__address) l_apic, (__address) l_apic,
PAGE_NOT_CACHEABLE);
page_mapping_insert(AS_KERNEL, io_apic_address, (__address) io_apic,
page_mapping_insert(AS_KERNEL, (__address) io_apic, (__address) io_apic,
PAGE_NOT_CACHEABLE);
l_apic = (__u32 *) l_apic_address;
io_apic = (__u32 *) io_apic_address;
}
 
/*
/kernel/trunk/contrib/conf/ski.conf
1,4 → 1,2
load HelenOS/boot/kernel.bin
romload HelenOS/uspace/ns/ns 0x400000
romload HelenOS/uspace/init/init 0x800000
 
romload HelenOS/uspace/init/init 0x400000
/kernel/trunk/genarch/src/mm/as_pt.c
66,21 → 66,15
if (flags & FLAG_AS_KERNEL) {
memsetb((__address) dst_ptl0, PAGE_SIZE, 0);
} else {
__address src, dst;
/*
* Copy the kernel address space portion to new PTL0.
* TODO: copy only kernel address space.
*/
ipl = interrupts_disable();
spinlock_lock(&AS_KERNEL->lock);
spinlock_lock(&AS_KERNEL->lock);
src_ptl0 = (pte_t *) PA2KA((__address) AS_KERNEL->page_table);
 
src = (__address) &src_ptl0[PTL0_INDEX(KERNEL_ADDRESS_SPACE_START)];
dst = (__address) &dst_ptl0[PTL0_INDEX(KERNEL_ADDRESS_SPACE_START)];
 
memsetb((__address) dst_ptl0, PAGE_SIZE, 0);
memcpy((void *) dst, (void *) src, PAGE_SIZE - (src - (__address) src_ptl0));
memcpy((void *) dst_ptl0,(void *) src_ptl0, PAGE_SIZE);
spinlock_unlock(&AS_KERNEL->lock);
interrupts_restore(ipl);
}