Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3769 → Rev 3770

/branches/sparc/kernel/arch/sparc64/src/sun4v/sparc64.c
56,13 → 56,6
/** Perform sparc64 specific initialization before main_bsp() is called. */
void arch_pre_main(void)
{
/*
* Initialize Niagara input/output driver.
* This will be moved to arch_post_mm_init when the memory management
* is finished for sun4v.
*/
niagara_init();
 
/* Copy init task info. */
init.cnt = bootinfo.taskmap.count;
 
71,13 → 64,10
for (i = 0; i < bootinfo.taskmap.count; i++) {
init.tasks[i].addr = (uintptr_t) bootinfo.taskmap.tasks[i].addr;
init.tasks[i].size = bootinfo.taskmap.tasks[i].size;
printf("Task %d starts at %x and its size id %d.\n", i, init.tasks[i].addr, init.tasks[i].size);
}
/* Copy boot allocations info. */
ballocs.base = bootinfo.ballocs.base;
ballocs.size = bootinfo.ballocs.size;
ofw_tree_init(bootinfo.ofw_root);
 
// md_init();
}
 
/** Perform sparc64 specific initialization before mm is initialized. */
96,9 → 86,12
* But we only create 128 buckets.
*/
irq_init(1 << 11, 128);
}
 
standalone_sparc64_console_init();
}
/*
* Initialize Niagara input/output driver.
*/
niagara_init();
}
 
void arch_post_cpu_init(void)
/branches/sparc/kernel/arch/sparc64/src/sun4v/start.S
31,9 → 31,10
#include <arch/stack.h>
#include <arch/sun4v/regdef.h>
#include <arch/sun4v/hypercall.h>
#include <arch/mm/pagesize.h>
#include <arch/mm/sun4v/tte.h>
#include <arch/mm/sun4v/mmu.h>
#include <arch/mm/tlb.h>
#include <arch/mm/sun4v/tlb.h>
 
.register %g2, #scratch
.register %g3, #scratch
44,13 → 45,6
#define PHYSMEM_ADDR_SIZE 56
 
/*
* SILO for an unknown reason loads the image to MAPPING_OFFSET + 0x4000 bytes
* from the start of the physical memory. We pretend that the physical memory
* starts MAPPING_OFFSET bytes further than it actually does.
*/
#define MAPPING_OFFSET 0x400000
 
/*
* Flags set in the TTE data entry mapping the kernel.
*/
#ifdef CONFIG_VIRT_IDX_DCACHE
118,10 → 112,6
! l5 <= physmem_base[(PHYSMEM_ADDR_SIZE - 1):13]
sllx %l5, 13 + (63 - (PHYSMEM_ADDR_SIZE - 1)), %l5
srlx %l5, 63 - (PHYSMEM_ADDR_SIZE - 1), %l5
! pretend the physical memory starts further
set MAPPING_OFFSET, %g2
add %l5, %g2, %l5
 
/*
* Setup basic runtime environment.
/branches/sparc/kernel/arch/sparc64/src/console.c
52,7 → 52,7
#include <arch/asm.h>
#include <arch/register.h>
#include <proc/thread.h>
#include <arch/mm/tlb.h>
#include <arch/mm/sun4u/tlb.h>
#include <genarch/ofw/ofw_tree.h>
#include <arch.h>
#include <panic.h>
/branches/sparc/kernel/arch/sparc64/src/trap/exception.c
34,8 → 34,8
*/
 
#include <arch/trap/exception.h>
#include <arch/mm/tlb.h>
#include <arch/mm/sun4u/tlb.h>
#include <arch/mm/sun4u/tlb.h>
#include <arch/interrupt.h>
#include <interrupt.h>
#include <arch/asm.h>
157,7 → 157,7
{
fault_if_from_uspace(istate, "%s\n", __func__);
dump_istate(istate);
dump_sfsr_and_sfar();
describe_mmu_fault();
panic("%s\n", __func__);
}
 
/branches/sparc/kernel/arch/sparc64/src/mm/as.c
33,8 → 33,9
*/
 
#include <arch/mm/as.h>
#include <arch/mm/tlb.h>
#include <arch/mm/pagesize.h>
#include <arch/mm/sun4u/tlb.h>
#include <arch/mm/sun4u/tlb.h>
#include <genarch/mm/page_ht.h>
#include <genarch/mm/asid_fifo.h>
#include <debug.h>
/branches/sparc/kernel/arch/sparc64/src/mm/tsb.c
33,7 → 33,8
*/
 
#include <arch/mm/tsb.h>
#include <arch/mm/tlb.h>
#include <arch/mm/pagesize.h>
#include <arch/mm/sun4u/tlb.h>
#include <arch/mm/page.h>
#include <arch/barrier.h>
#include <mm/as.h>
/branches/sparc/kernel/arch/sparc64/src/mm/frame.c
56,6 → 56,8
uintptr_t start = bootinfo.memmap.zones[i].start;
size_t size = bootinfo.memmap.zones[i].size;
 
printf("Found a zone: start = %x, size = %d.\n", start, size);
 
/*
* The memmap is created by HelenOS boot loader.
* It already contains no holes.
/branches/sparc/kernel/arch/sparc64/src/mm/page.c
33,8 → 33,9
*/
 
#include <arch/mm/page.h>
#include <arch/mm/tlb.h>
#include <arch/mm/pagesize.h>
#include <arch/mm/sun4u/tlb.h>
#include <arch/mm/sun4u/tlb.h>
#include <genarch/mm/page_ht.h>
#include <mm/frame.h>
#include <arch/mm/frame.h>
/branches/sparc/kernel/arch/sparc64/src/drivers/tick.c
53,10 → 53,10
 
interrupt_register(14, "tick_int", tick_interrupt);
compare.int_dis = false;
compare.tick_cmpr = CPU->arch.clock_frequency / HZ;
compare.tick_cmpr = tick_counter_read() +
CPU->arch.clock_frequency / HZ;
CPU->arch.next_tick_cmpr = compare.tick_cmpr;
tick_compare_write(compare.value);
tick_write(0);
 
#if defined (US3)
/* disable STICK interrupts and clear any pending ones */
110,12 → 110,12
* about 812 years. If there was a 2GHz UltraSPARC computer, it would
* overflow only in 146 years.
*/
drift = tick_read() - CPU->arch.next_tick_cmpr;
drift = tick_counter_read() - CPU->arch.next_tick_cmpr;
while (drift > CPU->arch.clock_frequency / HZ) {
drift -= CPU->arch.clock_frequency / HZ;
CPU->missed_clock_ticks++;
}
CPU->arch.next_tick_cmpr = tick_read() +
CPU->arch.next_tick_cmpr = tick_counter_read() +
(CPU->arch.clock_frequency / HZ) - drift;
tick_compare_write(CPU->arch.next_tick_cmpr);
clock();
/branches/sparc/kernel/arch/sparc64/src/sun4u/start.S
28,13 → 28,13
 
#include <arch/arch.h>
#include <arch/sun4u/arch.h>
#include <arch/cpu.h>
#include <arch/sun4u/cpu.h>
#include <arch/sun4u/regdef.h>
#include <arch/boot/boot.h>
#include <arch/stack.h>
 
#include <arch/mm/pagesize.h>
#include <arch/mm/sun4u/mmu.h>
#include <arch/mm/tlb.h>
#include <arch/mm/sun4u/tlb.h>
#include <arch/mm/sun4u/tte.h>