Rev |
Age |
Author |
Path |
Log message |
Diff |
1860 |
6560 d 2 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. |
|
1859 |
6560 d 9 h |
jermar |
/trunk/kernel/arch/sparc64/ |
sparc64 work.
- Convert interrupt_vector trap handler and some mm related trap handlers to
use preemptibe_handler(), which is essential for traps coming from userspace.
- Add fast_data_access_protection() handler. |
|
1852 |
6565 d 2 h |
jermar |
/trunk/kernel/ |
sparc64 work.
Bunch of changes in preparation for sparc64 mm and userspace support.
Fix alignment of hardcoded_* variables in linker script. |
|
1851 |
6570 d 7 h |
jermar |
/trunk/kernel/ |
sparc64 work.
Define the istate structure.
Move the identity-mapping handler to assembly.
Make the preemptible handler more general so that TL=1 MMU exceptions can make use of it.
Little bit of formatting and indentation. |
|
1842 |
6582 d 7 h |
jermar |
/trunk/kernel/ |
i8042 and z8530 separated, the tree compiles again.
Now there is some duplicated code in i8042.c and z8530.c,
but that can be eliminated in slower pace. |
|
1793 |
6608 d 9 h |
jermar |
/trunk/kernel/ |
Change hw_map() on sparc64 to use virtual addresses that are
beyond the end of physical memory. It is beneficial in two
ways: first, physical memory is no longer being wasted by
otherwise necessary calls to frame_alloc() and, second,
virtual addresses for devices are now correctly allocated
and do not overlap with the 4M TLB-locked mapping for
kernel text and data. |
|
1792 |
6608 d 23 h |
jermar |
/trunk/ |
Move functionality of tlb_arch_init() to take_over_tlb_and_tt().
Call take_over_tlb_and_tt() very early after the kernel starts
executing. |
|
1787 |
6611 d 2 h |
decky |
/ |
move kernel/trunk, uspace/trunk and boot/trunk to trunk/kernel, trunk/uspace and trunk/boot |
|
1780 |
6618 d 4 h |
jermar |
/kernel/trunk/ |
Replace old __u?? types with respective C99 variants (e.g. uint32_t, int64_t, uintptr_t etc.). |
|
1735 |
6634 d 10 h |
decky |
/kernel/trunk/ |
make kernel prints case consistent |
|
1702 |
6639 d 6 h |
cejka |
/kernel/trunk/ |
Kernel doxygen comments updated. |
|
1221 |
6690 d 22 h |
decky |
/kernel/trunk/ |
printf-related and other code cleanup |
|
1196 |
6697 d 8 h |
cejka |
/kernel/trunk/ |
Printf ported back from uspace to kernel.
Printf calls changed to match new conventions. |
|
898 |
6744 d 7 h |
jermar |
/kernel/trunk/ |
Minor changes. |
|
897 |
6744 d 21 h |
jermar |
/kernel/trunk/ |
sparc64 work.
Fix KBD_VIRT_ADDRESS.
Call before_thread_runs() prior to the switch to the thread's stack. Add comment why this is crucial.
Add after_thread_ran() to the scheduler.
Add before_thread_runs_arch() and after_thread_ran_arch() for sparc64, mapping/demapping thread's kernel stack.
Add dummy after_thread_ran_arch() to all other architectures.
Add dtlb_insert_mapping() to promote code reuse. |
|
895 |
6745 d 0 h |
jermar |
/kernel/trunk/ |
sparc64 work.
Very raw and fragile preliminary standalone keyboard support - polling mode only.
Because of a workaround in Simics, the scan codes are the same as on ia32. |
|
894 |
6745 d 4 h |
jermar |
/kernel/trunk/ |
Move i8042 driver to genarch as it might be used by more architectures. |
|
883 |
6746 d 9 h |
jermar |
/kernel/trunk/arch/sparc64/ |
sparc64 work.
Switch console to framebuffer (needs proper detection and initialization).
No native keyboard support, so far.
Memory management trap handler fixes.
Do not use OpenFirmware trap table anymore. |
|
877 |
6748 d 1 h |
jermar |
/kernel/trunk/arch/sparc64/ |
Fixes in sparc64 preliminary TLB miss handler.
Compute and insert identity mapping for kernel on the fly. |
|
873 |
6748 d 9 h |
jermar |
/kernel/trunk/arch/sparc64/ |
sparc64 work.
Add more MMU helper functions and make data TLB miss handler more verbose. |
|
863 |
6750 d 21 h |
jermar |
/kernel/trunk/arch/sparc64/ |
sparc64 work.
Add initial TLB miss handlers. |
|
846 |
6755 d 4 h |
jermar |
/kernel/trunk/arch/sparc64/ |
sparc64 work.
Relocate kernel to 4M. |
|
830 |
6762 d 7 h |
jermar |
/kernel/trunk/ |
Make ASID FIFO for mips32 be allocated statically.
Make ASID FIFO for sparc64 and ia64 be allocated dynamically.
Fix ia64 to call asid_fifo_init().
All three architectures now call asid_fifo_init() from as_arch_init(). |
|
730 |
6782 d 3 h |
jermar |
/kernel/trunk/ |
Finalize ASID management for sparc64 and mips32 by making use of FIFO queue of ASIDs. |
|
727 |
6783 d 23 h |
jermar |
/kernel/trunk/ |
New ASID management subsystem (initial work, more is required).
Some TLB invalidation changes. |
|
646 |
6815 d 22 h |
jermar |
/kernel/trunk/ |
Fix cpu_init(): frame_alloc() can return 0 as the valid address of block of frames. Do not signal error.
sparc64 work.
Reorganize kernel vs. userspace memory layout.
Add panic_printf().
Turn dummy() into nop rather than into infinite loop. |
|
630 |
6819 d 1 h |
jermar |
/kernel/trunk/arch/sparc64/ |
sparc64 work.
Register window clean, spill and fill handlers. |
|
627 |
6819 d 4 h |
jermar |
/kernel/trunk/ |
Fix ia64 and sparc64 to compile with new atomic_t.
Fix rwlock test #5 and semaphore test #1 to compile with new atomic_t.
sparc64 work.
TBA must be set before a function call when MMU is switched off. |
|
619 |
6820 d 19 h |
jermar |
/kernel/trunk/arch/sparc64/ |
sparc64 work.
Functions for disabling/enabling MMU.
TLB initialization.
Identity mapping of first 4M for kernel.
Switch to kernel copy of trap table. |
|
617 |
6820 d 22 h |
jermar |
/kernel/trunk/arch/sparc64/ |
sparc64 work.
Support for TLB Demap operations.
Add tlb_invalidate(), tlb_invalidate_asid() and tlb_invalidate_page() (latter two are broken as they ignore asid). |
|
613 |
6821 d 21 h |
jermar |
/kernel/trunk/arch/sparc64/ |
sparc64 work.
More ITLB and DTLB controlling functions. |
|
570 |
6825 d 22 h |
jermar |
/kernel/trunk/arch/sparc64/src/mm/ |
Missing tlb.c from last commit. |
|