Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
1860 |
6641 d 1 h |
jermar |
/trunk/kernel/ |
A lot of untested sparc64 stuff:
- Write ASID to hardware when a thread is about to run in userspace.
- Add userspace() and switch_to_userspace() functions.
- Handle special cases when the userspace spill/fill handler causes MMU trap.
- Resolve some TODOs in the existing sparc64 code.
- sparc64 has now C99 compliant header guards.
- Formatting and indentation fixes. |
|
/trunk/kernel/arch/sparc64/include/arch.h /trunk/kernel/arch/sparc64/include/arg.h /trunk/kernel/arch/sparc64/include/asm.h /trunk/kernel/arch/sparc64/include/atomic.h /trunk/kernel/arch/sparc64/include/barrier.h /trunk/kernel/arch/sparc64/include/byteorder.h /trunk/kernel/arch/sparc64/include/console.h /trunk/kernel/arch/sparc64/include/context.h /trunk/kernel/arch/sparc64/include/cpu.h /trunk/kernel/arch/sparc64/include/debug.h /trunk/kernel/arch/sparc64/include/drivers/tick.h /trunk/kernel/arch/sparc64/include/elf.h /trunk/kernel/arch/sparc64/include/faddr.h /trunk/kernel/arch/sparc64/include/fpu_context.h /trunk/kernel/arch/sparc64/include/interrupt.h /trunk/kernel/arch/sparc64/include/memstr.h /trunk/kernel/arch/sparc64/include/mm/as.h /trunk/kernel/arch/sparc64/include/mm/frame.h /trunk/kernel/arch/sparc64/include/mm/memory_init.h /trunk/kernel/arch/sparc64/include/mm/mmu.h /trunk/kernel/arch/sparc64/include/mm/tlb.h /trunk/kernel/arch/sparc64/include/mm/tte.h /trunk/kernel/arch/sparc64/include/proc/task.h /trunk/kernel/arch/sparc64/include/regdef.h /trunk/kernel/arch/sparc64/include/trap/exception.h /trunk/kernel/arch/sparc64/include/trap/interrupt.h /trunk/kernel/arch/sparc64/include/trap/mmu.h /trunk/kernel/arch/sparc64/include/trap/regwin.h /trunk/kernel/arch/sparc64/include/trap/trap.h /trunk/kernel/arch/sparc64/include/trap/trap_table.h /trunk/kernel/arch/sparc64/include/types.h /trunk/kernel/arch/sparc64/src/asm.S /trunk/kernel/arch/sparc64/src/ddi/ddi.c /trunk/kernel/arch/sparc64/src/dummy.s /trunk/kernel/arch/sparc64/src/mm/as.c /trunk/kernel/arch/sparc64/src/mm/tlb.c /trunk/kernel/arch/sparc64/src/proc/scheduler.c /trunk/kernel/arch/sparc64/src/sparc64.c /trunk/kernel/arch/sparc64/src/start.S /trunk/kernel/arch/sparc64/src/trap/trap_table.S /trunk/kernel/generic/include/align.h
|
1856 |
6642 d 8 h |
jermar |
/trunk/kernel/ |
sparc64 work.
- Modify before_thread_runs_arch() to store addresses of the kernel stack and
userspace window buffer, resp., to registers %g6 and %g7, resp, in the
alternate and interrupt global sets.
- Modify after_thread_ran_arch() to sample %g7 from the alternate globals.
- Implement trap handler for spilling register windows into userspace window buffer.
- Implement assembly language functions to access %g6 and %g7 registers in the alternate sets.
- Initialize the trap table so that there are now also spill_1_normal, spill_2_normal,
spill_0_other and fill_1_normal handlers. These handlers are used in different situations
and for different purposes. |
|
/trunk/kernel/arch/sparc64/include/asm.h /trunk/kernel/arch/sparc64/include/context.h /trunk/kernel/arch/sparc64/include/trap/regwin.h /trunk/kernel/arch/sparc64/src/asm.S /trunk/kernel/arch/sparc64/src/proc/scheduler.c /trunk/kernel/arch/sparc64/src/trap/trap_table.S /trunk/kernel/generic/include/config.h
|
1790 |
6690 d 2 h |
jermar |
/trunk/ |
Remove OpenFirmware calls from kernel/ entirely.
Switch the sparc64 port to use bootinfo.
Copy memcpy from boot/ to sparc64 kernel/ and
adjust it for memcpy_from/to_uspace. |
|
/trunk/kernel/genarch/include/ofw /trunk/kernel/genarch/src/ofw
/trunk/boot/arch/sparc64/loader/asm.S /trunk/boot/arch/sparc64/loader/main.c /trunk/boot/arch/sparc64/loader/main.h /trunk/boot/genarch/ofw.c /trunk/boot/genarch/ofw.h /trunk/kernel/arch/ppc32/src/ppc32.c /trunk/kernel/arch/sparc64/Makefile.inc /trunk/kernel/arch/sparc64/_link.ld.in /trunk/kernel/arch/sparc64/include/boot/boot.h /trunk/kernel/arch/sparc64/include/drivers/fb.h /trunk/kernel/arch/sparc64/include/drivers/i8042.h /trunk/kernel/arch/sparc64/include/drivers/tick.h /trunk/kernel/arch/sparc64/src/asm.S /trunk/kernel/arch/sparc64/src/console.c /trunk/kernel/arch/sparc64/src/drivers/i8042.c /trunk/kernel/arch/sparc64/src/mm/frame.c /trunk/kernel/arch/sparc64/src/mm/memory_init.c /trunk/kernel/arch/sparc64/src/sparc64.c /trunk/kernel/arch/sparc64/src/start.S /trunk/kernel/genarch/Makefile.inc /trunk/kernel/genarch/src/fb/fb.c /trunk/kernel/generic/src/mm/frame.c
|
1789 |
6690 d 5 h |
jermar |
/trunk/ |
Fix ofw_memmap() in boot infrastructure.
The cell size is 32-bit and not equal sizeof(ofw_arg_t).
Define architecture dependant #address-cells and #size-cells for cases
the respective properties are missing in the OpenFirmware device tree.
The algorithm now works both for ppc32 and sparc64.
Add memmap_t, screen_t and keyboard_t to sparc64 bootinfo structure.
Be more verbose during sparc64 boot.
Move ALIGN_UP to generic part of boot/.
Change header guards in several places so that they don't contain double underscore. |
|
/trunk/boot/arch/ppc32/loader/ofwarch.c /trunk/boot/arch/ppc32/loader/ofwarch.h /trunk/boot/arch/ppc64/loader/ofwarch.c /trunk/boot/arch/ppc64/loader/ofwarch.h /trunk/boot/arch/sparc64/loader/ofwarch.c /trunk/boot/arch/sparc64/loader/ofwarch.h /trunk/boot/generic/align.h /trunk/kernel/arch/sparc64/include/regdef.h
/trunk/boot/arch/ppc32/loader/ofw.c /trunk/boot/arch/ppc64/loader/ofw.c /trunk/boot/arch/sparc64/loader/ofw.c
/trunk/boot/arch/ppc32/loader/Makefile /trunk/boot/arch/ppc32/loader/asm.h /trunk/boot/arch/ppc32/loader/boot.S /trunk/boot/arch/ppc32/loader/main.c /trunk/boot/arch/ppc32/loader/main.h /trunk/boot/arch/ppc32/loader/types.h /trunk/boot/arch/ppc64/loader/Makefile /trunk/boot/arch/ppc64/loader/boot.S /trunk/boot/arch/ppc64/loader/main.c /trunk/boot/arch/ppc64/loader/main.h /trunk/boot/arch/ppc64/loader/types.h /trunk/boot/arch/sparc64/loader/Makefile /trunk/boot/arch/sparc64/loader/asm.h /trunk/boot/arch/sparc64/loader/boot.S /trunk/boot/arch/sparc64/loader/main.c /trunk/boot/arch/sparc64/loader/main.h /trunk/boot/arch/sparc64/loader/types.h /trunk/boot/genarch/ofw.c /trunk/boot/genarch/ofw.h /trunk/boot/generic/gentypes.h /trunk/boot/generic/printf.h /trunk/kernel/arch/sparc64/include/register.h /trunk/kernel/arch/sparc64/src/asm.S /trunk/kernel/arch/sparc64/src/start.S
|
1787 |
6692 d 1 h |
decky |
/ |
move kernel/trunk, uspace/trunk and boot/trunk to trunk/kernel, trunk/uspace and trunk/boot |
|
/trunk /trunk/boot /trunk/kernel /trunk/uspace
/boot/trunk /kernel/trunk /uspace/trunk
|
1784 |
6692 d 23 h |
jermar |
/kernel/trunk/ |
Sync OpenFirmware functionality with boot.
Random cleanup. |
|
/kernel/trunk/arch/sparc64/include/asm.h /kernel/trunk/arch/sparc64/include/atomic.h /kernel/trunk/arch/sparc64/include/barrier.h /kernel/trunk/arch/sparc64/include/console.h /kernel/trunk/arch/sparc64/include/drivers/fb.h /kernel/trunk/arch/sparc64/include/drivers/i8042.h /kernel/trunk/arch/sparc64/include/elf.h /kernel/trunk/arch/sparc64/include/register.h /kernel/trunk/arch/sparc64/include/stack.h /kernel/trunk/arch/sparc64/include/trap/interrupt.h /kernel/trunk/arch/sparc64/src/asm.S /kernel/trunk/arch/sparc64/src/console.c /kernel/trunk/arch/sparc64/src/drivers/i8042.c /kernel/trunk/arch/sparc64/src/mm/frame.c /kernel/trunk/arch/sparc64/src/mm/memory_init.c /kernel/trunk/arch/sparc64/src/proc/scheduler.c /kernel/trunk/arch/sparc64/src/sparc64.c /kernel/trunk/arch/sparc64/src/start.S /kernel/trunk/genarch/include/ofw/memory_init.h /kernel/trunk/genarch/include/ofw/ofw.h /kernel/trunk/genarch/src/ofw/memory_init.c /kernel/trunk/genarch/src/ofw/ofw.c
|
1288 |
6759 d 8 h |
jermar |
/kernel/trunk/ |
Complete implementation of copy_from_uspace() and copy_to_uspace()
for amd64 and ia32. Other architectures still compile and run,
but need to implement their own assembly-only memcpy(), memcpy_from_uspace(),
memcpy_to_uspace() and their failover parts. For these architectures
only dummy implementations are provided. |
|
/kernel/trunk/generic/include/syscall/copy.h /kernel/trunk/generic/src/syscall/copy.c
/kernel/trunk/Makefile /kernel/trunk/arch/amd64/include/interrupt.h /kernel/trunk/arch/amd64/src/asm_utils.S /kernel/trunk/arch/amd64/src/mm/page.c /kernel/trunk/arch/ia32/include/interrupt.h /kernel/trunk/arch/ia32/src/asm.S /kernel/trunk/arch/ia32/src/boot/boot.S /kernel/trunk/arch/ia32/src/interrupt.c /kernel/trunk/arch/ia64/include/interrupt.h /kernel/trunk/arch/ia64/src/asm.S /kernel/trunk/arch/ia64/src/mm/tlb.c /kernel/trunk/arch/mips32/include/exception.h /kernel/trunk/arch/mips32/src/asm.S /kernel/trunk/arch/mips32/src/mm/tlb.c /kernel/trunk/arch/ppc32/include/exception.h /kernel/trunk/arch/ppc32/include/interrupt.h /kernel/trunk/arch/ppc32/src/asm.S /kernel/trunk/arch/ppc32/src/mm/tlb.c /kernel/trunk/arch/sparc64/include/interrupt.h /kernel/trunk/arch/sparc64/src/asm.S /kernel/trunk/generic/include/interrupt.h /kernel/trunk/generic/include/mm/as.h /kernel/trunk/generic/include/mm/page.h /kernel/trunk/generic/include/proc/thread.h /kernel/trunk/generic/src/ddi/ddi.c /kernel/trunk/generic/src/ipc/irq.c /kernel/trunk/generic/src/ipc/sysipc.c /kernel/trunk/generic/src/mm/as.c /kernel/trunk/generic/src/mm/slab.c /kernel/trunk/generic/src/printf/vsnprintf.c /kernel/trunk/generic/src/proc/task.c /kernel/trunk/generic/src/proc/thread.c /kernel/trunk/generic/src/smp/ipi.c /kernel/trunk/generic/src/synch/waitq.c
|
534 |
6911 d 0 h |
jermar |
/ |
Rename HelenOS/SPARTAN to HelenOS/kernel again. |
|
/kernel
/SPARTAN
|
532 |
6911 d 0 h |
jermar |
/ |
Revert renaming of HelenOS/SPARTAN to HelenOS/kernel because of important pending patch. |
|
/SPARTAN
/kernel
|
501 |
6923 d 4 h |
jermar |
/ |
Rename HelenOS/SPARTAN to HelenOS/kernel. |
|
/kernel
/SPARTAN
|
426 |
6946 d 6 h |
jermar |
/SPARTAN/trunk/ |
sparc64 work.
Add context_save(), context_set() and context_restore().
Remove putchar() definition from ofw.c.
Add sparc64 putchar().
Add ppc32 putchar() (i.e. the original ofw.c putchar()).
Make arg.h use the builtin va_* constructs. |
|
/SPARTAN/trunk/arch/ppc32/src/console.c /SPARTAN/trunk/arch/sparc64/src/asm.S /SPARTAN/trunk/arch/sparc64/src/console.c /SPARTAN/trunk/arch/sparc64/src/context.S /SPARTAN/trunk/arch/sparc64/src/mm /SPARTAN/trunk/arch/sparc64/src/mm/frame.c /SPARTAN/trunk/arch/sparc64/src/mm/page.c /SPARTAN/trunk/tools/sparc64 /SPARTAN/trunk/tools/sparc64/gencontext.c
/SPARTAN/trunk/arch/mips32/include/arg.h /SPARTAN/trunk/arch/ppc32/Makefile.inc /SPARTAN/trunk/arch/sparc64/Makefile.inc /SPARTAN/trunk/arch/sparc64/_link.ld /SPARTAN/trunk/arch/sparc64/include/arg.h /SPARTAN/trunk/arch/sparc64/include/asm.h /SPARTAN/trunk/arch/sparc64/include/context.h /SPARTAN/trunk/arch/sparc64/include/types.h /SPARTAN/trunk/arch/sparc64/src/dummy.s /SPARTAN/trunk/arch/sparc64/src/start.S /SPARTAN/trunk/build.sparc64 /SPARTAN/trunk/clean.sparc64 /SPARTAN/trunk/genarch/include/firmware/ofw/ofw.h /SPARTAN/trunk/genarch/src/firmware/ofw/ofw.c
|