Subversion Repositories HelenOS-historic

Rev

Go to most recent revision | Hide changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff Changes
187 6874 d 16 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 6874 d 17 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 6874 d 17 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 6874 d 20 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 6874 d 20 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 6874 d 20 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 6874 d 20 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 6875 d 9 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 6875 d 12 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 6875 d 15 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 6875 d 17 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 6876 d 9 h jermar /SPARTAN/trunk/arch/ia32/src/boot/ Initialize the stack prior to using it.  
/SPARTAN/trunk/arch/ia32/src/boot/boot.S
175 6876 d 16 h decky /SPARTAN/trunk/contrib/ Basic PearPC configuration  
/SPARTAN/trunk/contrib/pearpc.conf
174 6879 d 8 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 6879 d 8 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 6880 d 17 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 6880 d 17 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 6883 d 7 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 6884 d 7 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 6884 d 8 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 6885 d 16 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 6887 d 10 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 6887 d 10 h palkovsky /SPARTAN/trunk/arch/amd64/boot/ Copied from ia32, bootloader can be the same.  
/SPARTAN/trunk/arch/amd64/boot/Makefile
164 6887 d 10 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 6887 d 16 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 6887 d 17 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 6889 d 18 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 6893 d 6 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 6893 d 7 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 6893 d 15 h decky /SPARTAN/trunk/src/mm/ remove forgotten comment  
/SPARTAN/trunk/src/mm/page.c
157 6893 d 15 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 6893 d 18 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 6895 d 7 h decky /SPARTAN/trunk/arch/powerpc/boot/ PPC preparation work (not working yet)  
/SPARTAN/trunk/arch/powerpc/boot/boot.s
154 6897 d 6 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 6897 d 6 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
152 6909 d 8 h decky /SPARTAN/trunk/arch/ia64/ Cleanup  
/SPARTAN/trunk/arch/ia64/_link.ld
151 6909 d 8 h decky /SPARTAN/trunk/arch/ia64/ Remove unnecessary IA64 unwind tables
Cleanup IA64 linker script
Thus IA64 port compiles again (and also works hopefully)
 
/SPARTAN/trunk/arch/ia64/Makefile.inc
/SPARTAN/trunk/arch/ia64/_link.ld
150 6909 d 9 h jermar /SPARTAN/trunk/doc/ Documentation changes.
Most importantly, update information about supported binutils and gcc versions.
 
/SPARTAN/trunk/doc/TODO
/SPARTAN/trunk/doc/requirements
149 6909 d 9 h jermar /SPARTAN/trunk/ Fix IA-32's get_memory_size() to return size of memory in bytes instead of in kilobytes.
Some cosmetics in memory map detection.
The IA-32 kernel is functional again.
 
/SPARTAN/trunk/arch/ia32/src/boot/memmap.S
/SPARTAN/trunk/arch/ia32/src/mm/memory_init.c
/SPARTAN/trunk/src/main/main.c
148 6914 d 14 h jermar /SPARTAN/trunk/arch/mips/ Add -mno-abicalls to prevent generating of PIC code.
Remove -mxgot option.
The MIPS port is functional again.
 
/SPARTAN/trunk/arch/mips/Makefile.inc