Subversion Repositories HelenOS

Rev

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

Filtering Options

Rev Age Author Path Log message Diff
433 6810 d 22 h jermar /SPARTAN/trunk/arch/ia64/ ia64 work.
Fix definition of __u32.
Add more register manipulation functions.
Add unions describing bit-structured registers.
Distinguish between timer, unhandled and spurious external interrupts.
Initialize interval timer to generate first timer interrupt.
 
432 6810 d 23 h jermar /SPARTAN/trunk/arch/ IA-64 work.
Add some asm functions for manipulation with PSR, AR and CR registers.
 
431 6811 d 7 h jermar /SPARTAN/trunk/arch/ IA-64 work.
Exclude external interrupt from universal_handler() scope.
 
416 6826 d 6 h jermar /SPARTAN/trunk/arch/ia64/src/ IA-64 work.
Put RSE into lazy mode before writing ar.bspstore and ar.rnat.
Flush RSE before setting ar.bspstore so that ar.bsp is set to the same address.
 
414 6827 d 10 h jermar /SPARTAN/trunk/ Create generic context_save() and context_restore().
These two functions are defined inline and only call context_save_arch() and context_restore_arch(), respectively.
The main purpose of this is to enable centralized commenting of these important and tricky functions.
 
413 6827 d 20 h jermar /SPARTAN/trunk/ Rename cpu_priority_{high|low|restore|read} functions to interrupts_{disable|enable|restore|read}.
Rename pri_t to ipl_t (Interrupt Priority Level).
Rename thread_t::pri to thread_t::priority.
 
412 6828 d 10 h jermar /SPARTAN/trunk/arch/ia64/src/ IA-64 work.
context_save() doesn't have to restore ar.pfs as it is a leaf procedure.
Get rid of assembler warning for start.S.
 
388 6842 d 6 h jermar /SPARTAN/trunk/arch/ia64/src/ IA-64 work.
Map interrupt vectors to their names.
 
368 6854 d 6 h jermar /SPARTAN/trunk/ Physical memory management work.
New frame allocator.
Some architectures need to have bigger heap.
 
322 6866 d 21 h jermar /SPARTAN/trunk/arch/ia64/ Reduce IA-64 context_t according to IA-64 ABI.

Make IA-64 port compile again.
 
309 6869 d 10 h palkovsky /SPARTAN/trunk/ Added architecture independent hooks for fpu lazy context switching.
It is enabled by defining FPU_LAZY
 
272 6872 d 2 h vana /SPARTAN/trunk/arch/ia64/ Symtab support for ia64  
266 6872 d 5 h cejka /SPARTAN/trunk/ Support for NaN and infinity in printf.  
249 6873 d 1 h vana /SPARTAN/trunk/arch/ia64/src/ Serialization of psr write  
239 6874 d 1 h vana /SPARTAN/trunk/ Missing ";" added  
238 6874 d 2 h vana /SPARTAN/trunk/ Register dump on IA-64 exceptions  
230 6874 d 4 h cejka /SPARTAN/trunk/arch/ Created fmath as basic tool for IEEE 754 floating point numbers.
Added option $F for printf for printing "double" type.
 
220 6874 d 11 h vana /SPARTAN/trunk/ Universal exception handler and all exceptions routine to call it added  
212 6874 d 22 h vana /SPARTAN/trunk/ Basic exception support added for ia64 arch ......  
205 6875 d 9 h jermar /SPARTAN/trunk/ Get rid of memcopy().
All we now have is memcpy() and _memcpy().
memcpy() is defined to be builtin.
Where not applicable, architectures must implement memcpy() code or call slowish _memcopy().
 
161 6891 d 8 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.
 
120 6936 d 20 h jermar /SPARTAN/trunk/ Generic 4-level page tables interface & implementation (review & test).
Implement more architecture dependant macros on IA-32.
Provide fake implementation on IA-64 and MIPS.
Convert map_page_to_frame() to use the new interface.
Move adjusted map_page_to_frame() from IA-32's arch/mm/page.c to the generic mm/page.c.
 
106 6964 d 6 h jermar /SPARTAN/trunk/ IA-32 fixes.
Use kernel addresses instead of physical addresses in map_page_to_frame().
Physical addresses are supposed to only be exported to mm hardware.
Because of this fix, userspace is functional again.

Remap EGA videoram to (0x80000000 + videoram) and change the ega driver to work with the new address.

Minor cosmetics through out the code.
Changes in linker scripts.
 
103 6967 d 1 h jermar /SPARTAN/trunk/ Just cleanup.  
102 6969 d 23 h jermar /SPARTAN/trunk/ IA-64 work.
Redefine FRAME_SIZE to "(16*1024)" instead of "2*4096". Note that the latter definition was wrong because of the lack of "()".
Take panic_printf(), cpu_halt() and memsetb() out of fake.s and implement them properly in asm.S.
Move ski_init_console() from arch_post_mm_init() to arch_pre_mm_init().
In start.S, write r0 to ar.bspstore.

Janitorial fixes.
Add count_t type.
Replace several occurrences of int and __u32 by count_t or size_t.
Shorten several panic strings.
 
100 6971 d 2 h jermar /SPARTAN/trunk/arch/ia64/src/ IA-64 work.
Save/restore the rest of AR registers (i.e. RSE registers) in context_save()/context_restore().
 
94 6977 d 22 h jermar /SPARTAN/trunk/ IA-64 work.
Add application registers ar.lc, ar.ec, ar.ccv, ar.csd, ar.ssd to context_t.
Add store/load operations for ar.lc, ar.ec, ar.ccv, ar.csd, ar.ssd to context_save()/restore().
Add application registers ar.rcs, ar.bsp and ar.rnat to context_t.
Proper store/load operations for ar.rcs, ar.bsp and ar.rnat is in the works.

FPU cleanup.
Remove call set_TS_flag() from cpu_identify().
Remove unneeded includes from FPU test #1.
 
92 6978 d 2 h jermar /SPARTAN/trunk/ FPU work.
FPU code cleanup, add/fix copyright notices where needed.
Fix PI calculation to use double n instead of int n.
Make FPU test #1 even more stressing.

Re-enable O3 again.
Revert Makefile.config not to compile in any tests.
 
83 6980 d 3 h jermar /SPARTAN/trunk/arch/ia64/ IA-64 work.
Add ar.pfs and ar.unat (caller and callee) application registers to context_t.
Change st8/ld8 instructions on general registers to st8.spill and ld8.fill instructions.
 
82 6980 d 21 h jermar /SPARTAN/trunk/arch/ IA-64 work.
Add the rest of branch registers to context_t.
Add predicate registers to context_t.
Modify context_save()/context_restore() to save/restore branch registers and predicate registers.
Change SP_DELTA to 0 since both context_save() and context_restore() are leaf procedures and as such don't use the scratch area.
Change pri_t to be __u64 instead of __u32.
 
81 6980 d 23 h jermar /SPARTAN/trunk/ Add SP_DELTA macro for each architecture.
On IA-32, this macro represents two doublewords that must be on the stack when switching to a new stack.
On MIPS, there is no need to fix sp when switching to a new stack.
On IA-64, this macro is used to allocate the 16-byte scratch area.

IA-64 work.
Changes in start.S. More changes to come.
Define memcopy().

Janitorial fixes.
Add missing #include <panic.h> to rwlock4/test.c.
Remove wrong use of inline keyword from both declaration and definition of l_apic_id().
 
79 6984 d 22 h jermar /SPARTAN/trunk/arch/ia64/src/ski/ doxygen-style comments  
78 6984 d 22 h jermar /SPARTAN/trunk/ IA-64 cosmetics.
Add ski_init_console() and ski_putchar() to ski.c to perform ski specific tasks.

Change the copyright string in main.c to display both copyrights on a new line.
 
74 6986 d 21 h jermar /SPARTAN/trunk/arch/ia64/src/ More of IA-64 initialization.  
68 6987 d 0 h decky /SPARTAN/trunk/ NDEBUG debug symbol, ASSERT debug macro, fancier panic() in debug mode
indentation fixes, ASSERTs
 
63 6987 d 2 h decky /SPARTAN/trunk/ const qualifier for print functions  
60 6987 d 5 h jermar /SPARTAN/trunk/arch/ia64/ IA-64 work.
Give up attempts to persuade ld to patch the kernel image with proper hardcoded lenghts and addresses.
Add special sections and calculate the numbers manually.
Fix wrong order of operands in sub instructions in memcpy() implementation.
 
59 6987 d 19 h jermar /SPARTAN/trunk/ Move architecture independent memcopy() and memsetb() out of MIPS subtree and place them in src/lib/ as _memcopy() and _memsetb().
Add MIPS native memsetb().
Add IA-64 native memcpy().

More complete and *almost* functional versions of IA-64 context_save() and context_restore().
 
57 6989 d 20 h vana /SPARTAN/trunk/ Begin support for FPU context switching on platforms which can't do it in lazy way.  
55 6989 d 21 h jermar /SPARTAN/trunk/arch/ia64/src/ Add missing context.S.