Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
4638 |
5514 d 22 h |
rimsky |
/branches/sparc/kernel/ |
SMP on Niagara made working: debugged the problem with the 'non-deterministic' symptoms, implemented the IPI mechanism. |
|
/branches/sparc/kernel/arch/sparc64/include/sun4v/ipi.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4u/interrupt.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4v/interrupt.h /branches/sparc/kernel/arch/sparc64/src/smp/sun4u/ipi.c /branches/sparc/kernel/arch/sparc64/src/smp/sun4v/ipi.c /branches/sparc/kernel/arch/sparc64/src/trap/sun4u/interrupt.c /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/interrupt.c
/branches/sparc/kernel/arch/sparc64/Makefile.inc /branches/sparc/kernel/arch/sparc64/include/sun4v/hypercall.h /branches/sparc/kernel/arch/sparc64/include/sun4v/md.h /branches/sparc/kernel/arch/sparc64/include/trap/interrupt.h /branches/sparc/kernel/arch/sparc64/include/trap/mmu.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4v/mmu.h /branches/sparc/kernel/arch/sparc64/src/cpu/sun4v/cpu.c /branches/sparc/kernel/arch/sparc64/src/drivers/tick.c /branches/sparc/kernel/arch/sparc64/src/smp/ipi.c /branches/sparc/kernel/arch/sparc64/src/smp/sun4v/smp.c /branches/sparc/kernel/arch/sparc64/src/sun4u/asm.S /branches/sparc/kernel/arch/sparc64/src/sun4v/asm.S /branches/sparc/kernel/arch/sparc64/src/sun4v/md.c /branches/sparc/kernel/arch/sparc64/src/sun4v/start.S /branches/sparc/kernel/arch/sparc64/src/trap/interrupt.c /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S /branches/sparc/kernel/generic/src/main/kinit.c /branches/sparc/kernel/generic/src/mm/tlb.c
|
4614 |
5521 d 18 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/ |
Waking CPUs up on sun4v. Weird errors occur when accessing the THE structure. |
|
/branches/sparc/kernel/arch/sparc64/include/asm.h /branches/sparc/kernel/arch/sparc64/src/smp/sun4v/smp.c /branches/sparc/kernel/arch/sparc64/src/sun4v/start.S
|
4433 |
5561 d 20 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/ |
Fixed a TSB problem. |
|
/branches/sparc/kernel/arch/sparc64/include/trap/exception.h /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/as.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/tsb.c /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S
|
4383 |
5575 d 0 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/ |
Fixed instruction access exception and data access exception in the trap table. Added new traps defined by UltraSPARC Architecture 2007 (which UltraSPARC T2 follows). |
|
/branches/sparc/kernel/arch/sparc64/include/trap/exception.h /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S
|
4369 |
5578 d 18 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/ |
Kernel stack and userspace window buffer pointers are stored in scratchpad registers instead of memory. |
|
/branches/sparc/kernel/arch/sparc64/include/sun4v/arch.h /branches/sparc/kernel/arch/sparc64/include/sun4v/cpu.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4v/regwin.h /branches/sparc/kernel/arch/sparc64/src/proc/sun4v/scheduler.c /branches/sparc/kernel/arch/sparc64/src/sun4v/start.S /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S
|
4130 |
5634 d 18 h |
rimsky |
/branches/sparc/ |
Cleanup of the Niagara port. The main purpose of these changes is to make it easy to find out which code is generic, which is sun4u-specific and which is sun4v-specific. |
|
/branches/sparc/kernel/arch/sparc64/include/mm/sun4u/cache_spec.h /branches/sparc/kernel/arch/sparc64/include/sun4u/cpu_family.h /branches/sparc/kernel/arch/sparc64/include/sun4u/cpu_node.h /branches/sparc/kernel/arch/sparc64/include/sun4u/register.h /branches/sparc/kernel/arch/sparc64/include/sun4v/register.h /branches/sparc/kernel/arch/sparc64/src/mm/sun4u/cache.S /branches/sparc/kernel/arch/sparc64/src/sparc64.c /branches/sparc/kernel/arch/sparc64/src/sun4u/console.c /branches/sparc/kernel/arch/sparc64/src/sun4v/console.c
/branches/sparc/kernel/arch/sparc64/include/cpu_family.h /branches/sparc/kernel/arch/sparc64/include/cpu_node.h /branches/sparc/kernel/arch/sparc64/include/mm/cache_spec.h /branches/sparc/kernel/arch/sparc64/src/mm/cache.S
/branches/sparc/kernel/arch/sparc64/Makefile.inc /branches/sparc/kernel/arch/sparc64/include/asm.h /branches/sparc/kernel/arch/sparc64/include/barrier.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4u/tlb.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/frame.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/tlb.h /branches/sparc/kernel/arch/sparc64/include/register.h /branches/sparc/kernel/arch/sparc64/include/sun4u/asm.h /branches/sparc/kernel/arch/sparc64/src/console.c /branches/sparc/kernel/arch/sparc64/src/cpu/sun4u/cpu.c /branches/sparc/kernel/arch/sparc64/src/cpu/sun4v/cpu.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4u/tlb.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/as.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/tlb.c /branches/sparc/kernel/arch/sparc64/src/smp/sun4u/smp.c /branches/sparc/kernel/arch/sparc64/src/smp/sun4v/smp.c /branches/sparc/kernel/arch/sparc64/src/sun4u/sparc64.c /branches/sparc/kernel/arch/sparc64/src/sun4v/sparc64.c /branches/sparc/uspace/app/init/init.c
|
4129 |
5635 d 14 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/ |
Implemented missing features in Niagara memory management, minor cleanup. |
|
/branches/sparc/kernel/arch/sparc64/Makefile.inc /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/as.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/page.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/tlb.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/tsb.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/tte.h /branches/sparc/kernel/arch/sparc64/include/sun4v/regdef.h /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/as.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/tlb.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/tsb.c /branches/sparc/kernel/arch/sparc64/src/trap/exception.c
|
4073 |
5637 d 18 h |
rimsky |
/branches/sparc/ |
Implemented input and output drivers for Niagara. Written in the old-fashion style (do not use the new DDI infrastructure nor the new keyboard driver). Anyway, tetris can be played. |
|
/branches/sparc/uspace/srv/fb/niagara.c /branches/sparc/uspace/srv/fb/niagara.h /branches/sparc/uspace/srv/kbd/arch/sparc64/include/niagara.h /branches/sparc/uspace/srv/kbd/arch/sparc64/src/niagara.c
/branches/sparc/kernel/arch/sparc64/include/drivers/niagara.h /branches/sparc/kernel/arch/sparc64/src/console.c /branches/sparc/kernel/arch/sparc64/src/drivers/niagara.c /branches/sparc/kernel/generic/include/ddi/irq.h /branches/sparc/kernel/generic/src/ipc/irq.c /branches/sparc/kernel/generic/src/ipc/kbox.c /branches/sparc/kernel/generic/src/udebug/udebug.c /branches/sparc/kernel/generic/src/udebug/udebug_ipc.c /branches/sparc/kernel/generic/src/udebug/udebug_ops.c /branches/sparc/uspace/srv/fb/Makefile /branches/sparc/uspace/srv/fb/main.c /branches/sparc/uspace/srv/kbd/Makefile /branches/sparc/uspace/srv/kbd/arch/sparc64/src/kbd.c /branches/sparc/uspace/srv/kbd/genarch/src/nofb.c
|
4068 |
5639 d 16 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/src/trap/sun4v/ |
Fixed a stupid bug. |
|
/branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S
|
4065 |
5640 d 16 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/src/ |
minor cleanup |
|
/branches/sparc/kernel/arch/sparc64/src/mm/frame.c /branches/sparc/kernel/arch/sparc64/src/sun4v/sparc64.c
|
4064 |
5640 d 16 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/src/trap/sun4v/ |
Workaround for the bug which usually caused rewriting saved register window data on the uspace stack. More investigation needed. |
|
/branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S
|
3993 |
5647 d 15 h |
rimsky |
/branches/sparc/kernel/ |
Implemented preemptible trap handler for userspace (including syscalls - did not forget enabling interrupts for them) and the ralated stuff. Implemented handlers of instruction/data MMU miss/protection. Now some userspace tasks are run; there are, however, still some bugs causing unexpected data MMU misses. |
|
/branches/sparc/kernel/arch/sparc64/include/sun4u/asm.h /branches/sparc/kernel/arch/sparc64/include/sun4v/asm.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4u/regwin.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4v/regwin.h /branches/sparc/kernel/arch/sparc64/src/proc/sun4u /branches/sparc/kernel/arch/sparc64/src/proc/sun4u/scheduler.c /branches/sparc/kernel/arch/sparc64/src/proc/sun4v /branches/sparc/kernel/arch/sparc64/src/proc/sun4v/scheduler.c
/branches/sparc/kernel/arch/sparc64/src/proc/scheduler.c
/branches/sparc/kernel/arch/sparc64/Makefile.inc /branches/sparc/kernel/arch/sparc64/include/asm.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/tlb.h /branches/sparc/kernel/arch/sparc64/include/sun4v/cpu.h /branches/sparc/kernel/arch/sparc64/include/trap/regwin.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4v/mmu.h /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/tlb.c /branches/sparc/kernel/arch/sparc64/src/sun4u/start.S /branches/sparc/kernel/arch/sparc64/src/sun4v/asm.S /branches/sparc/kernel/arch/sparc64/src/sun4v/start.S /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S /branches/sparc/kernel/generic/src/main/kinit.c /branches/sparc/kernel/generic/src/mm/as.c
|
3864 |
5668 d 16 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/src/sun4v/ |
Allocated bigger memory block for the Machine Description. This was the problem which prevented running HelenOS on real Niagara. Now all kernel tests except for 'slab2' pass on real Niagara. |
|
/branches/sparc/kernel/arch/sparc64/src/sun4v/md.c
|
3863 |
5669 d 15 h |
rimsky |
/branches/sparc/ |
Simics machine: modifications needed to run userspace (the next step will be to implement the trap handler for uspace); real machine: small fixes, after them the machine passes some parts of the initialization, but fails to determine CPU frequency (probably due to a different format of Machine Description). |
|
/branches/sparc/boot/arch/sparc64/loader/asm.S /branches/sparc/kernel/arch/sparc64/include/sun4v/regdef.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4v/mmu.h /branches/sparc/kernel/arch/sparc64/src/drivers/niagara.c /branches/sparc/kernel/arch/sparc64/src/sun4v/asm.S /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S
|
3862 |
5672 d 15 h |
rimsky |
/branches/sparc/kernel/ |
Changed the structure of header files, which have sun4u and sun4v versions. Implemented some sun4v TSB functions. |
|
/branches/sparc/kernel/arch/sparc64/include/mm/mmu.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4u/as.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4u/frame.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4u/page.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4u/tsb.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/as.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/frame.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/page.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/tsb.h /branches/sparc/kernel/arch/sparc64/include/mm/tlb.h /branches/sparc/kernel/arch/sparc64/include/mm/tte.h /branches/sparc/kernel/arch/sparc64/include/regdef.h /branches/sparc/kernel/arch/sparc64/include/trap/mmu.h /branches/sparc/kernel/arch/sparc64/src/mm/sun4u/tsb.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/tsb.c
/branches/sparc/kernel/arch/sparc64/src/mm/tsb.c
/branches/sparc/kernel/arch/sparc64/Makefile.inc /branches/sparc/kernel/arch/sparc64/include/arch.h /branches/sparc/kernel/arch/sparc64/include/cpu.h /branches/sparc/kernel/arch/sparc64/include/cpu_family.h /branches/sparc/kernel/arch/sparc64/include/interrupt.h /branches/sparc/kernel/arch/sparc64/include/mm/as.h /branches/sparc/kernel/arch/sparc64/include/mm/frame.h /branches/sparc/kernel/arch/sparc64/include/mm/page.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4u/tlb.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/mmu.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/tlb.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/tte.h /branches/sparc/kernel/arch/sparc64/include/mm/tsb.h /branches/sparc/kernel/arch/sparc64/include/register.h /branches/sparc/kernel/arch/sparc64/include/sun4u/cpu.h /branches/sparc/kernel/arch/sparc64/include/sun4v/cpu.h /branches/sparc/kernel/arch/sparc64/include/sun4v/regdef.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4u/mmu.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4v/mmu.h /branches/sparc/kernel/arch/sparc64/src/console.c /branches/sparc/kernel/arch/sparc64/src/cpu/sun4u/cpu.c /branches/sparc/kernel/arch/sparc64/src/cpu/sun4v/cpu.c /branches/sparc/kernel/arch/sparc64/src/drivers/sgcn.c /branches/sparc/kernel/arch/sparc64/src/mm/page.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4u/as.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4u/tlb.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/as.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/tlb.c /branches/sparc/kernel/arch/sparc64/src/smp/sun4v/smp.c /branches/sparc/kernel/arch/sparc64/src/trap/exception.c /branches/sparc/kernel/arch/sparc64/src/trap/trap.c /branches/sparc/kernel/generic/src/console/cmd.c /branches/sparc/kernel/generic/src/console/console.c /branches/sparc/kernel/generic/src/cpu/cpu.c /branches/sparc/kernel/generic/src/ddi/ddi.c /branches/sparc/kernel/generic/src/ddi/irq.c /branches/sparc/kernel/generic/src/interrupt/interrupt.c /branches/sparc/kernel/generic/src/ipc/ipc.c /branches/sparc/kernel/generic/src/ipc/ipcrsc.c /branches/sparc/kernel/generic/src/ipc/irq.c /branches/sparc/kernel/generic/src/ipc/sysipc.c /branches/sparc/kernel/generic/src/main/kinit.c /branches/sparc/kernel/generic/src/main/uinit.c /branches/sparc/kernel/generic/src/mm/backend_anon.c /branches/sparc/kernel/generic/src/mm/backend_elf.c /branches/sparc/kernel/generic/src/mm/backend_phys.c /branches/sparc/kernel/generic/src/mm/slab.c /branches/sparc/kernel/generic/src/mm/tlb.c /branches/sparc/kernel/generic/src/proc/program.c /branches/sparc/kernel/generic/src/proc/task.c /branches/sparc/kernel/generic/src/security/cap.c /branches/sparc/kernel/generic/src/synch/futex.c /branches/sparc/kernel/generic/src/synch/spinlock.c /branches/sparc/kernel/generic/src/syscall/copy.c /branches/sparc/kernel/generic/src/syscall/syscall.c /branches/sparc/kernel/generic/src/time/clock.c /branches/sparc/kernel/test/mm/falloc2.c /branches/sparc/kernel/test/mm/slab1.c /branches/sparc/kernel/test/mm/slab2.c /branches/sparc/kernel/test/synch/rwlock2.c /branches/sparc/kernel/test/synch/rwlock3.c /branches/sparc/kernel/test/synch/rwlock4.c /branches/sparc/kernel/test/synch/rwlock5.c /branches/sparc/kernel/test/synch/semaphore1.c /branches/sparc/kernel/test/synch/semaphore2.c /branches/sparc/kernel/test/thread/thread1.c
|
3835 |
5677 d 15 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/ |
Niagara: Implemented (and debugged) installing identity mapping for kernel. Now all the kernel tests pass on Simics. |
|
/branches/sparc/kernel/arch/sparc64/include/sun4v/arch.h /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/mmu.S
/branches/sparc/kernel/arch/sparc64/src/trap/mmu.S
/branches/sparc/kernel/arch/sparc64/Makefile.inc /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/mmu.h /branches/sparc/kernel/arch/sparc64/include/mm/sun4v/tlb.h /branches/sparc/kernel/arch/sparc64/include/trap/sun4v/mmu.h /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/tlb.c /branches/sparc/kernel/arch/sparc64/src/sun4v/start.S /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S
|
3817 |
5685 d 15 h |
rimsky |
/branches/sparc/kernel/ |
Progress on Niagara: Commented out portions of mm, which are not required for kernel threads (temporarily). Scheduler is working. Implemented a driver of hypervisor's standard input. Kernel console is usable. |
|
/branches/sparc/kernel/arch/sparc64/src/mm/sun4u/as.c /branches/sparc/kernel/arch/sparc64/src/mm/sun4v/as.c
/branches/sparc/kernel/arch/sparc64/src/mm/as.c
/branches/sparc/kernel/arch/sparc64/Makefile.inc /branches/sparc/kernel/arch/sparc64/include/drivers/kbd.h /branches/sparc/kernel/arch/sparc64/include/drivers/niagara.h /branches/sparc/kernel/arch/sparc64/include/sun4v/hypercall.h /branches/sparc/kernel/arch/sparc64/src/console.c /branches/sparc/kernel/arch/sparc64/src/drivers/niagara.c /branches/sparc/kernel/arch/sparc64/src/sun4v/sparc64.c /branches/sparc/kernel/generic/src/main/kinit.c
|
3801 |
5689 d 17 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/src/trap/sun4v/ |
Minor fixes in the preemptible trap handler. |
|
/branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S
|
3798 |
5690 d 15 h |
rimsky |
/branches/sparc/kernel/ |
Implemented preemptible trap handler for sun4v for trapping from kernel (not userspace). Not properly tested/debugged yet. HelenOS now reaches the as_install_arch function (where it, of course, fails). |
|
/branches/sparc/kernel/arch/sparc64/Makefile.inc /branches/sparc/kernel/arch/sparc64/include/cpu.h /branches/sparc/kernel/arch/sparc64/include/sun4v/regdef.h /branches/sparc/kernel/arch/sparc64/src/cpu/sun4v/cpu.c /branches/sparc/kernel/arch/sparc64/src/trap/sun4v/trap_table.S /branches/sparc/kernel/generic/src/main/main.c /branches/sparc/kernel/generic/src/proc/scheduler.c
|
3783 |
5702 d 16 h |
rimsky |
/branches/sparc/kernel/arch/sparc64/ |
Machine description traversal implemented. Now used to detect CPU frequency. |
|
/branches/sparc/kernel/arch/sparc64/include/sun4v/md.h /branches/sparc/kernel/arch/sparc64/src/sun4v/md.c
/branches/sparc/kernel/arch/sparc64/Makefile.inc /branches/sparc/kernel/arch/sparc64/include/cpu.h /branches/sparc/kernel/arch/sparc64/include/sun4v/hypercall.h /branches/sparc/kernel/arch/sparc64/src/cpu/sun4v/cpu.c /branches/sparc/kernel/arch/sparc64/src/sun4v/sparc64.c
|