Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
192 |
6919 d 17 h |
jermar |
/SPARTAN/trunk/ |
Dump implementation of THREAD, TASK and CPU.
Implement preemption-safe versions of THREAD, TASK and CPU using THE.
Get rid of CPU_ID_ARCH on all architectures.
Get rid of write_dr0() and read_dr0() on IA-32.
Get rid of cpu_private_data and cpu_private_data_t. |
|
/SPARTAN/trunk/arch/amd64/include/cpu.h /SPARTAN/trunk/arch/ia32/include/asm.h /SPARTAN/trunk/arch/ia32/include/cpu.h /SPARTAN/trunk/arch/ia32/src/ia32.c /SPARTAN/trunk/arch/ia64/include/cpu.h /SPARTAN/trunk/arch/mips/include/cpu.h /SPARTAN/trunk/arch/ppc/include/cpu.h /SPARTAN/trunk/include/arch.h /SPARTAN/trunk/include/cpu.h /SPARTAN/trunk/src/Makefile.config /SPARTAN/trunk/src/cpu/cpu.c /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/proc/scheduler.c
|
191 |
6919 d 17 h |
decky |
/SPARTAN/trunk/arch/ppc/ |
PPC memory size detection |
|
/SPARTAN/trunk/arch/ppc/src/mm/memory_init.c
/SPARTAN/trunk/arch/ppc/Makefile.inc /SPARTAN/trunk/arch/ppc/include/asm.h /SPARTAN/trunk/arch/ppc/include/asm/macro.h /SPARTAN/trunk/arch/ppc/include/drivers/ofw.h /SPARTAN/trunk/arch/ppc/src/asm.s /SPARTAN/trunk/arch/ppc/src/drivers/ofw.c /SPARTAN/trunk/arch/ppc/src/dummy.s /SPARTAN/trunk/arch/ppc/src/start.S
|
190 |
6919 d 18 h |
decky |
/SPARTAN/trunk/arch/ppc/src/debug/ |
PPC panic() |
|
/SPARTAN/trunk/arch/ppc/src/debug /SPARTAN/trunk/arch/ppc/src/debug/panic.s
|
189 |
6919 d 19 h |
decky |
/SPARTAN/trunk/arch/ppc/include/asm/ |
PPC assembler register names |
|
/SPARTAN/trunk/arch/ppc/include/asm /SPARTAN/trunk/arch/ppc/include/asm/macro.h
|
188 |
6919 d 19 h |
palkovsky |
/SPARTAN/trunk/arch/amd64/ |
AMD64 now can switch into long mode.
Basic page tables working. |
|
/SPARTAN/trunk/arch/amd64/include/mm/ptl.h
/SPARTAN/trunk/arch/amd64/_link.ld /SPARTAN/trunk/arch/amd64/include/mm/page.h /SPARTAN/trunk/arch/amd64/include/pm.h /SPARTAN/trunk/arch/amd64/src/boot/boot.S /SPARTAN/trunk/arch/amd64/src/pm.c
|
187 |
6919 d 21 h |
cejka |
/SPARTAN/trunk/ |
Licence to print1/test.c added.
New function for printing memory map at ia32. |
|
/SPARTAN/trunk/arch/ia32/include/mm/memory_init.h /SPARTAN/trunk/arch/ia32/src/ia32.c /SPARTAN/trunk/arch/ia32/src/mm/frame.c /SPARTAN/trunk/arch/ia32/src/mm/memory_init.c /SPARTAN/trunk/test/print/print1/test.c
|
186 |
6919 d 22 h |
decky |
/SPARTAN/trunk/arch/ppc/ |
add missing OpenFirmware related files |
|
/SPARTAN/trunk/arch/ppc/include/drivers /SPARTAN/trunk/arch/ppc/include/drivers/ofw.h /SPARTAN/trunk/arch/ppc/src/drivers/ofw.c
|
185 |
6919 d 22 h |
decky |
/SPARTAN/trunk/arch/ |
OpenFirmware support |
|
/SPARTAN/trunk/arch/ppc/include/ppc.h
/SPARTAN/trunk/arch/ppc/include/vga.h /SPARTAN/trunk/arch/ppc/src/drivers/vga.c
/SPARTAN/trunk/arch/ia32/src/asm.S /SPARTAN/trunk/arch/ppc/Makefile.inc /SPARTAN/trunk/arch/ppc/src/asm.s /SPARTAN/trunk/arch/ppc/src/dummy.s /SPARTAN/trunk/arch/ppc/src/ppc.c /SPARTAN/trunk/arch/ppc/src/start.S
|
184 |
6920 d 1 h |
jermar |
/SPARTAN/trunk/ |
Add lib/the.c.
Add and deploy the_initialize() and the_copy().
Make IA-32's before_thread_runs() use SP_DELTA macro. |
|
/SPARTAN/trunk/src/lib/the.c
/SPARTAN/trunk/arch/ia32/src/proc/scheduler.c /SPARTAN/trunk/include/arch.h /SPARTAN/trunk/src/Makefile /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/proc/scheduler.c /SPARTAN/trunk/src/proc/thread.c
|
183 |
6920 d 1 h |
cejka |
/SPARTAN/trunk/ |
Small improvements in print1 test and its source code format. |
|
/SPARTAN/trunk/test/print/print1 /SPARTAN/trunk/test/print/print1/test.c
/SPARTAN/trunk/test/print/test.c
/SPARTAN/trunk/src/Makefile.config
|
182 |
6920 d 1 h |
cejka |
/SPARTAN/trunk/ |
Test for printf added. |
|
/SPARTAN/trunk/test/print /SPARTAN/trunk/test/print/test.c
/SPARTAN/trunk/arch/ia32/src/mm/frame.c /SPARTAN/trunk/src/Makefile.config
|
181 |
6920 d 2 h |
cejka |
/SPARTAN/trunk/ |
Bugs in printf and va_arg functions repaired. |
|
/SPARTAN/trunk/include/print.h /SPARTAN/trunk/include/stackarg.h /SPARTAN/trunk/src/debug/print.c
|
180 |
6920 d 14 h |
jermar |
/SPARTAN/trunk/ |
Globalize 'size' and 'delta' and rename them to 'kernel_size' and 'heap_delta'.
Fix heap initialization to take 'heap_delta' into account.
Implement IA-64 get_stack_base().
Adjust SP_DELTA's to consider one extra word on stack.
(So that the stack pointer is within appropriate limits even on IA-64).
More #include cleanup. |
|
/SPARTAN/trunk/arch/ia32/include/asm.h /SPARTAN/trunk/arch/ia32/include/context.h /SPARTAN/trunk/arch/ia32/include/cpu.h /SPARTAN/trunk/arch/ia64/include/asm.h /SPARTAN/trunk/arch/ia64/include/context.h /SPARTAN/trunk/arch/mips/include/asm.h /SPARTAN/trunk/arch/mips/include/context.h /SPARTAN/trunk/src/main/main.c
|
179 |
6920 d 17 h |
decky |
/SPARTAN/trunk/ |
frmaebuffer font |
|
/SPARTAN/trunk/include/fb /SPARTAN/trunk/include/fb/font-8x16.h /SPARTAN/trunk/src/fb /SPARTAN/trunk/src/fb/font-8x16.c
/SPARTAN/trunk/src/Makefile
|
178 |
6920 d 21 h |
palkovsky |
/SPARTAN/trunk/arch/amd64/ |
Fixed linker script to include .eh_frame section.
It now boots into protected mode. |
|
/SPARTAN/trunk/arch/amd64/include/boot /SPARTAN/trunk/arch/amd64/include/boot/memmap.h /SPARTAN/trunk/arch/amd64/include/boot/memmapasm.h /SPARTAN/trunk/arch/amd64/src/boot/memmap.S /SPARTAN/trunk/arch/amd64/src/pm.c
/SPARTAN/trunk/arch/amd64/Makefile.inc /SPARTAN/trunk/arch/amd64/_link.ld /SPARTAN/trunk/arch/amd64/include/pm.h /SPARTAN/trunk/arch/amd64/src/boot/boot.S
|
177 |
6920 d 23 h |
jermar |
/SPARTAN/trunk/ |
Add some comments to IA-32 src/boot/boot.S and src/smp.S.
Make the boot stack start on page boundary.
This is required by get_stack_base().
Define 'THE' macro.
Implement preemption_disable() and preemption_enable().
Add memory barrier macros.
IA-32 macros need support for older processors.
Non IA-32 macros are dummy.
Reduction of many #include paths. |
|
/SPARTAN/trunk/arch/amd64/include/barrier.h /SPARTAN/trunk/arch/ia32/include/asm.h /SPARTAN/trunk/arch/ia32/include/barrier.h /SPARTAN/trunk/arch/ia32/src/boot/boot.S /SPARTAN/trunk/arch/ia32/src/mm/frame.c /SPARTAN/trunk/arch/ia32/src/smp/ap.S /SPARTAN/trunk/arch/ia64/include/barrier.h /SPARTAN/trunk/arch/mips/include/barrier.h /SPARTAN/trunk/arch/mips/include/cpu.h /SPARTAN/trunk/arch/mips/include/mm/page.h /SPARTAN/trunk/arch/ppc/include/barrier.h /SPARTAN/trunk/include/arch.h /SPARTAN/trunk/include/cpu.h /SPARTAN/trunk/include/proc/task.h /SPARTAN/trunk/include/proc/thread.h /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/preempt/preemption.c
|
176 |
6921 d 14 h |
jermar |
/SPARTAN/trunk/arch/ia32/src/boot/ |
Initialize the stack prior to using it. |
|
/SPARTAN/trunk/arch/ia32/src/boot/boot.S
|
175 |
6921 d 22 h |
decky |
/SPARTAN/trunk/contrib/ |
Basic PearPC configuration |
|
/SPARTAN/trunk/contrib/pearpc.conf
|
174 |
6924 d 13 h |
jermar |
/SPARTAN/trunk/ |
Small changes.
Coding style fix in main.c.
Make 'cli' be the first instruction in boot.S again. |
|
/SPARTAN/trunk/arch/ia32/src/boot/boot.S /SPARTAN/trunk/src/main/main.c
|
173 |
6924 d 14 h |
jermar |
/SPARTAN/trunk/ |
Preparations for weaker preemption model.
Make all kernel stacks (i.e. startup, scheduler and thread) be STACK_SIZE bytes long.
Reincarnate "the" structure. This time, it is planned to be located at the base of each and every kernel stack.
On IA-32 and MIPS, implement get_stack_base() functions. On the rest of supported platforms, define it to be dummy. |
|
/SPARTAN/trunk/arch/amd64/include/asm.h /SPARTAN/trunk/arch/ia32/include/asm.h /SPARTAN/trunk/arch/ia64/include/asm.h /SPARTAN/trunk/arch/ia64/include/context.h /SPARTAN/trunk/arch/mips/include/asm.h /SPARTAN/trunk/arch/ppc/include/asm.h /SPARTAN/trunk/include/arch.h /SPARTAN/trunk/include/config.h /SPARTAN/trunk/include/cpu.h /SPARTAN/trunk/include/proc/thread.h /SPARTAN/trunk/include/typedefs.h
|
172 |
6925 d 22 h |
palkovsky |
/SPARTAN/trunk/arch/amd64/ |
Do not allow red area on stack in kernel mode.
Small updates for AMD64 memory layout. |
|
/SPARTAN/trunk/arch/amd64/Makefile.inc /SPARTAN/trunk/arch/amd64/include/mm/page.h /SPARTAN/trunk/arch/amd64/include/mm/vm.h
|
171 |
6925 d 22 h |
jermar |
/SPARTAN/trunk/ |
Make rwlock test #3 compile again.
Make rwlock test #4 preemption-safe.
Prepare for preemption controlling functions. |
|
/SPARTAN/trunk/include/preemption.h /SPARTAN/trunk/src/preempt /SPARTAN/trunk/src/preempt/preemption.c
/SPARTAN/trunk/include/cpu.h /SPARTAN/trunk/src/Makefile /SPARTAN/trunk/test/synch/rwlock3/test.c /SPARTAN/trunk/test/synch/rwlock4/test.c
|
170 |
6928 d 12 h |
jermar |
/SPARTAN/trunk/ |
Add comment to scheduler.c explaining the reason behind saving CPU priority of preempted thread.
Remove two unnecessary cpu_priority_high() calls. |
|
/SPARTAN/trunk/arch/ia32/src/smp/smp.c /SPARTAN/trunk/src/main/kinit.c /SPARTAN/trunk/src/proc/scheduler.c
|
169 |
6929 d 12 h |
jermar |
/SPARTAN/trunk/arch/ |
For each architecture, add an extra type cast of x to __address to both KA2PA() and PA2KA(). |
|
/SPARTAN/trunk/arch/amd64/include/mm/page.h /SPARTAN/trunk/arch/ia32/include/mm/page.h /SPARTAN/trunk/arch/ia64/include/mm/page.h /SPARTAN/trunk/arch/mips/include/mm/page.h /SPARTAN/trunk/arch/ppc/include/mm/page.h
|
168 |
6929 d 13 h |
jermar |
/SPARTAN/trunk/ |
Add type cast to __address in vm_create().
This seems to fix the problem with userspace.
Looks like KA2PA() returned wrong address when applied on pte_t *.
Uncomment panic() in gp_fault().
Get rid of cli and sti in userspace code. |
|
/SPARTAN/trunk/arch/ia32/src/asm.S /SPARTAN/trunk/arch/ia32/src/interrupt.c /SPARTAN/trunk/src/mm/vm.c
|
167 |
6930 d 21 h |
jermar |
/SPARTAN/trunk/ |
Switch over to per vm_t page tables. (breaks ia32 userspace)
Define dummy memcopy() for amd64 and ppc to satisfy compiler.
Get rid of problematic #include <arch/mm/page.h> in mm/page.h.
Indentation fixes and small changes here and there. |
|
/SPARTAN/trunk/arch/amd64/src/dummy.s /SPARTAN/trunk/arch/ia32/src/drivers/ega.c /SPARTAN/trunk/arch/ia32/src/mm/page.c /SPARTAN/trunk/arch/ia32/src/pm.c /SPARTAN/trunk/arch/ia32/src/proc/scheduler.c /SPARTAN/trunk/arch/ppc/src/dummy.s /SPARTAN/trunk/include/mm/page.h /SPARTAN/trunk/include/mm/vm.h /SPARTAN/trunk/src/main/kinit.c /SPARTAN/trunk/src/main/main.c /SPARTAN/trunk/src/mm/vm.c /SPARTAN/trunk/src/proc/scheduler.c
|
166 |
6932 d 15 h |
decky |
/SPARTAN/trunk/arch/ppc/ |
prepare for PPC console support |
|
/SPARTAN/trunk/arch/ppc/include/vga.h /SPARTAN/trunk/arch/ppc/src/drivers /SPARTAN/trunk/arch/ppc/src/drivers/vga.c
/SPARTAN/trunk/arch/ppc/src/putchar.c
/SPARTAN/trunk/arch/ppc/Makefile.inc
|
165 |
6932 d 15 h |
palkovsky |
/SPARTAN/trunk/arch/amd64/boot/ |
Copied from ia32, bootloader can be the same. |
|
/SPARTAN/trunk/arch/amd64/boot/Makefile
|
164 |
6932 d 15 h |
palkovsky |
/SPARTAN/trunk/ |
Basics for amd64 architecture. It does compile, but it does not work yet. |
|
/SPARTAN/trunk/arch/amd64/Makefile.inc /SPARTAN/trunk/arch/amd64/_link.ld /SPARTAN/trunk/arch/amd64/boot /SPARTAN/trunk/arch/amd64/boot/boot.S /SPARTAN/trunk/arch/amd64/boot/boot.ld /SPARTAN/trunk/arch/amd64/include /SPARTAN/trunk/arch/amd64/include/arg.h /SPARTAN/trunk/arch/amd64/include/asm.h /SPARTAN/trunk/arch/amd64/include/atomic.h /SPARTAN/trunk/arch/amd64/include/barrier.h /SPARTAN/trunk/arch/amd64/include/context.h /SPARTAN/trunk/arch/amd64/include/cpu.h /SPARTAN/trunk/arch/amd64/include/faddr.h /SPARTAN/trunk/arch/amd64/include/fpu_context.h /SPARTAN/trunk/arch/amd64/include/interrupt.h /SPARTAN/trunk/arch/amd64/include/mm /SPARTAN/trunk/arch/amd64/include/mm/frame.h /SPARTAN/trunk/arch/amd64/include/mm/memory_init.h /SPARTAN/trunk/arch/amd64/include/mm/page.h /SPARTAN/trunk/arch/amd64/include/mm/vm.h /SPARTAN/trunk/arch/amd64/include/pm.h /SPARTAN/trunk/arch/amd64/include/thread.h /SPARTAN/trunk/arch/amd64/include/types.h /SPARTAN/trunk/arch/amd64/src /SPARTAN/trunk/arch/amd64/src/boot /SPARTAN/trunk/arch/amd64/src/boot/boot.S /SPARTAN/trunk/arch/amd64/src/dummy.s /SPARTAN/trunk/arch/amd64/src/fpu_context.c /SPARTAN/trunk/arch/amd64/src/putchar.c /SPARTAN/trunk/src/build.amd64 /SPARTAN/trunk/src/clean.amd64
|
163 |
6932 d 21 h |
decky |
/SPARTAN/trunk/arch/ppc/ |
first booting ELF |
|
/SPARTAN/trunk/arch/ppc/src/ppc.c
/SPARTAN/trunk/arch/ppc/src/powerpc.c
/SPARTAN/trunk/arch/ppc/Makefile.inc /SPARTAN/trunk/arch/ppc/_link.ld /SPARTAN/trunk/arch/ppc/boot/boot.s /SPARTAN/trunk/arch/ppc/src/mm/page.c /SPARTAN/trunk/arch/ppc/src/start.S
|
162 |
6932 d 23 h |
decky |
/SPARTAN/trunk/arch/ppc/ |
PPC linker script |
|
/SPARTAN/trunk/arch/ppc/src/asm.s /SPARTAN/trunk/arch/ppc/src/cpu /SPARTAN/trunk/arch/ppc/src/mm /SPARTAN/trunk/arch/ppc/src/mm/frame.c /SPARTAN/trunk/arch/ppc/src/mm/page.c /SPARTAN/trunk/arch/ppc/src/putchar.c
/SPARTAN/trunk/arch/ppc/Makefile.inc /SPARTAN/trunk/arch/ppc/_link.ld /SPARTAN/trunk/arch/ppc/boot/Makefile /SPARTAN/trunk/arch/ppc/boot/boot.s /SPARTAN/trunk/arch/ppc/src/dummy.s
|
161 |
6934 d 23 h |
jermar |
/SPARTAN/trunk/arch/ |
For all relevant architectures, rename fake.s to dummy.s to better reflect the purpose of the file.
Also define global symbol called dummy. |
|
/SPARTAN/trunk/arch/ia64/src/dummy.s /SPARTAN/trunk/arch/mips/src/dummy.s /SPARTAN/trunk/arch/ppc/src/dummy.s
/SPARTAN/trunk/arch/ia64/src/fake.s /SPARTAN/trunk/arch/mips/src/fake.s /SPARTAN/trunk/arch/ppc/src/fake.s
/SPARTAN/trunk/arch/ia64/Makefile.inc /SPARTAN/trunk/arch/mips/Makefile.inc /SPARTAN/trunk/arch/ppc/Makefile.inc
|
160 |
6938 d 11 h |
jermar |
/SPARTAN/trunk/ |
PPC work.
Define dummy implementations of many functions in fake.s.
Define kernel_image_start in start.S. |
|
/SPARTAN/trunk/arch/ppc/src/fake.s /SPARTAN/trunk/arch/ppc/src/start.S
/SPARTAN/trunk/arch/ppc/Makefile.inc /SPARTAN/trunk/arch/ppc/_link.ld /SPARTAN/trunk/src/Makefile.config
|
159 |
6938 d 12 h |
jermar |
/SPARTAN/trunk/arch/ppc/include/ |
Fix copyright dates. |
|
/SPARTAN/trunk/arch/ppc/include/cpu.h /SPARTAN/trunk/arch/ppc/include/interrupt.h /SPARTAN/trunk/arch/ppc/include/mm/page.h /SPARTAN/trunk/arch/ppc/include/thread.h /SPARTAN/trunk/arch/ppc/include/types.h
|
158 |
6938 d 20 h |
decky |
/SPARTAN/trunk/src/mm/ |
remove forgotten comment |
|
/SPARTAN/trunk/src/mm/page.c
|
157 |
6938 d 20 h |
decky |
/SPARTAN/trunk/ |
remove cyclic including, change linker script path |
|
/SPARTAN/trunk/arch/ppc/Makefile.inc /SPARTAN/trunk/arch/ppc/include/mm/page.h /SPARTAN/trunk/src/mm/page.c
|
156 |
6938 d 23 h |
decky |
/SPARTAN/trunk/ |
PPC work in progress |
|
/SPARTAN/trunk/arch/ppc /SPARTAN/trunk/arch/ppc/include /SPARTAN/trunk/arch/ppc/include/arg.h /SPARTAN/trunk/arch/ppc/include/asm.h /SPARTAN/trunk/arch/ppc/include/atomic.h /SPARTAN/trunk/arch/ppc/include/barrier.h /SPARTAN/trunk/arch/ppc/include/context.h /SPARTAN/trunk/arch/ppc/include/cpu.h /SPARTAN/trunk/arch/ppc/include/faddr.h /SPARTAN/trunk/arch/ppc/include/fpu_context.h /SPARTAN/trunk/arch/ppc/include/interrupt.h /SPARTAN/trunk/arch/ppc/include/mm /SPARTAN/trunk/arch/ppc/include/mm/frame.h /SPARTAN/trunk/arch/ppc/include/mm/memory_init.h /SPARTAN/trunk/arch/ppc/include/mm/page.h /SPARTAN/trunk/arch/ppc/include/mm/vm.h /SPARTAN/trunk/arch/ppc/include/thread.h /SPARTAN/trunk/arch/ppc/include/types.h /SPARTAN/trunk/contrib/toolchain.ppc.sh /SPARTAN/trunk/src/build.ppc /SPARTAN/trunk/src/clean.ppc
/SPARTAN/trunk/arch/powerpc /SPARTAN/trunk/contrib/toolchain.powerpc.sh
/SPARTAN/trunk/arch/ppc/Makefile.inc
|
155 |
6940 d 12 h |
decky |
/SPARTAN/trunk/arch/powerpc/boot/ |
PPC preparation work (not working yet) |
|
/SPARTAN/trunk/arch/powerpc/boot/boot.s
|
154 |
6942 d 11 h |
jermar |
/SPARTAN/trunk/ |
Update TODO.
Explicitly mark places of interest related to memory barriers on non-IA-32 architectures with TODO remarks so that they don't get forgotten. |
|
/SPARTAN/trunk/arch/ia64/include/barrier.h /SPARTAN/trunk/arch/mips/include/barrier.h /SPARTAN/trunk/doc/TODO
|
153 |
6942 d 11 h |
jermar |
/SPARTAN/trunk/ |
Add memory barriers into spinlock_*().
Implement CS_{ENTER|LEAVE}_BARRIER() for IA-32 (no-op).
Provide incomplete CS_{ENTER|LEAVE}_BARRIER() macros for IA-64 and MIPS as well.
Small changes here and there. |
|
/SPARTAN/trunk/arch/ia32/include/barrier.h /SPARTAN/trunk/arch/ia64/include/barrier.h /SPARTAN/trunk/arch/mips/include/barrier.h
/SPARTAN/trunk/src/synch/rwlock.c /SPARTAN/trunk/src/synch/spinlock.c
|