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
444 6785 d 20 h vana /SPARTAN/trunk/arch/ia64/ Context restore in HEAVYWEIGHT handlers  
443 6785 d 21 h jermar /SPARTAN/trunk/arch/ia64/ ia64 work.
Do not break memory stack alignment in heavyweight interrupt handler.
Reserve scratch area for nested procedure calls on memory stack.
 
442 6785 d 22 h vana /SPARTAN/trunk/arch/ia64/src/ sp should not be decremented after last save  
441 6785 d 22 h jermar /SPARTAN/trunk/arch/ia64/src/ r12 (stack pointer) must be descremented prior to storing data into new memory stack frame.  
439 6786 d 18 h jermar /SPARTAN/trunk/arch/ia64/src/ Two small ia64 improvements.  
438 6786 d 19 h jermar /SPARTAN/trunk/arch/ia64/src/ ia64 work.
Heavyweight handler should be complete up to the point where it switches back to interrupted RSE context.
 
435 6787 d 14 h jermar /SPARTAN/trunk/arch/ia64/ ia64 work.
Begin implemention of heavyweight interrupt handler.
Finish implementation of interval timer.
Add some PAL macros.
 
434 6789 d 13 h jermar /SPARTAN/trunk/arch/ia64/src/ Fix switch variable.  
433 6789 d 13 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 6789 d 14 h jermar /SPARTAN/trunk/arch/ IA-64 work.
Add some asm functions for manipulation with PSR, AR and CR registers.
 
431 6789 d 23 h jermar /SPARTAN/trunk/arch/ IA-64 work.
Exclude external interrupt from universal_handler() scope.
 
416 6804 d 21 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 6806 d 1 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 6806 d 11 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 6807 d 1 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 6820 d 22 h jermar /SPARTAN/trunk/arch/ia64/src/ IA-64 work.
Map interrupt vectors to their names.
 
368 6832 d 21 h jermar /SPARTAN/trunk/ Physical memory management work.
New frame allocator.
Some architectures need to have bigger heap.
 
322 6845 d 12 h jermar /SPARTAN/trunk/arch/ia64/ Reduce IA-64 context_t according to IA-64 ABI.

Make IA-64 port compile again.
 
309 6848 d 1 h palkovsky /SPARTAN/trunk/ Added architecture independent hooks for fpu lazy context switching.
It is enabled by defining FPU_LAZY
 
272 6850 d 17 h vana /SPARTAN/trunk/arch/ia64/ Symtab support for ia64  
266 6850 d 20 h cejka /SPARTAN/trunk/ Support for NaN and infinity in printf.  
249 6851 d 16 h vana /SPARTAN/trunk/arch/ia64/src/ Serialization of psr write  
239 6852 d 17 h vana /SPARTAN/trunk/ Missing ";" added  
238 6852 d 17 h vana /SPARTAN/trunk/ Register dump on IA-64 exceptions  
230 6852 d 19 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 6853 d 2 h vana /SPARTAN/trunk/ Universal exception handler and all exceptions routine to call it added  
212 6853 d 13 h vana /SPARTAN/trunk/ Basic exception support added for ia64 arch ......  
205 6854 d 1 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 6869 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.
 
120 6915 d 11 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 6942 d 21 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 6945 d 16 h jermar /SPARTAN/trunk/ Just cleanup.  
102 6948 d 15 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 6949 d 18 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 6956 d 13 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 6956 d 18 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 6958 d 19 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 6959 d 12 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 6959 d 14 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 6963 d 13 h jermar /SPARTAN/trunk/arch/ia64/src/ski/ doxygen-style comments