Rev |
Age |
Author |
Path |
Log message |
Diff |
1960 |
6556 d 1 h |
jermar |
/trunk/kernel/arch/sparc64/src/mm/ |
Fix the following bug:
Ticket #3 data_access_exception after killing task on sparc64 |
|
1946 |
6563 d 23 h |
jermar |
/trunk/kernel/arch/sparc64/ |
sparc64 work.
- Improve panic screen on data_access_exception
by dumping contents of DSFSR and DSFAR.
- Change the FHC enable interrupt code to only
set the IMAP_V bit. |
|
1918 |
6574 d 2 h |
jermar |
/trunk/kernel/arch/sparc64/src/mm/ |
Omitted comma. |
|
1917 |
6574 d 3 h |
jermar |
/trunk/ |
sparc64 work:
- hw_map() can now support up to 8M requests
- CPU stacks are now locked in DTLB of the respective processor
- kernel in the boot phase no longer relies on the stack provided by OpenFirmware
- instead of of doing FLUSHW during kernel startup, simply set the
window state registers to the wanted state
- NWINDOW -> NWINDOWS
- Add/fix some comments and copyrights. |
|
1905 |
6584 d 12 h |
jermar |
/trunk/kernel/arch/sparc64/src/ |
Small fixes.
The sparc64 kernel now compiles again even if not compiled with SMP support. |
|
1903 |
6586 d 2 h |
jermar |
/trunk/ |
SMP stuff for sparc64.
Almost complete except for IPIs.
The absence of IPI support deadlocks
the kernel when more CPUs are configured. |
|
1892 |
6594 d 12 h |
jermar |
/trunk/kernel/arch/sparc64/src/mm/ |
Small improvement in initialization of sparc64's TBSs. |
|
1891 |
6595 d 0 h |
jermar |
/trunk/kernel/ |
sparc64 work:
- Experimental support for TSB (Translation Storage Buffer). |
|
1890 |
6595 d 10 h |
jermar |
/trunk/ |
- Create a dedicated slab cache for as_t objects and switch from malloc/free to slab_alloc/slab_free for
them.
- Slightly fix and improve both the kernel and userspace atomic_add() on sparc64.
- More TSB work on the sparc64 front. |
|
1889 |
6596 d 2 h |
jermar |
/trunk/kernel/ |
Fix bug in mm/as.c:
- as_area_destroy() should not work with AS but as
sparc64 work:
- start implementing TSB support |
|
1888 |
6599 d 5 h |
jermar |
/trunk/ |
C99 compliant header guards (hopefully) everywhere in the kernel.
Formatting and indentation changes.
Small improvements in sparc64. |
|
1880 |
6603 d 1 h |
jermar |
/trunk/ |
Small improvements here and there. |
|
1870 |
6608 d 1 h |
jermar |
/trunk/kernel/ |
Handle more sparc64 traps and improve handling of already handled traps. |
|
1868 |
6608 d 7 h |
jermar |
/trunk/ |
sparc64 work.
- the syscall wrapper needs to use the "memory"
clobber specifier to prevent over-optimization.
- on sparc64, the user address space spans the whole
64-bit space and therefore the macro
USER_ADDRESS_SPACE_SIZE_ARCH, as it was defined,
overflows to 0
- stop using USER_ADDRESS_SPACE_SIZE_ARCH and define
MAX_HEAP_SIZE instead
- in our situation when kernel and user address spaces
are separate, the G (global) bit cannot be used
(there is no point in it anymore)
- add the DEBUG() macro to stdio.h; DEBUG() uses
SYS_IO and is a good debugging tool for getting
early userspace to work |
|
1865 |
6609 d 3 h |
jermar |
/trunk/kernel/ |
sparc64 kernel fixes |
|
1864 |
6609 d 23 h |
jermar |
/trunk/ |
sparc64 update.
- Prototype userspace layer implementation that
at least relates to sparc64 and compiles cleanly.
- Fixes for kernel's preemptible_handler and code
related to running userspace.
- Enable userspace. Several dozen instructions
are now run in userspace! We are pretty near
the userspace milestone for sparc64. |
|
1860 |
6613 d 3 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 |
6613 d 10 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 |
6618 d 3 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 |
6623 d 9 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 |
6635 d 9 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. |
|
1841 |
6635 d 10 h |
jermar |
/trunk/kernel/ |
Start reorganization of different keyboard drivers.
What seemed like a screwed i8042 chip appears to be
Zilog 8530.
The repository won't compile now. To be fixed in next commits. |
|
1793 |
6661 d 10 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 |
6662 d 0 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. |
|
1790 |
6662 d 5 h |
jermar |
/trunk/ |
Remove OpenFirmware calls from kernel/ entirely.
Switch the sparc64 port to use bootinfo.
Copy memcpy from boot/ to sparc64 kernel/ and
adjust it for memcpy_from/to_uspace. |
|
1787 |
6664 d 4 h |
decky |
/ |
move kernel/trunk, uspace/trunk and boot/trunk to trunk/kernel, trunk/uspace and trunk/boot |
|
1784 |
6665 d 1 h |
jermar |
/kernel/trunk/ |
Sync OpenFirmware functionality with boot.
Random cleanup. |
|
1780 |
6671 d 5 h |
jermar |
/kernel/trunk/ |
Replace old __u?? types with respective C99 variants (e.g. uint32_t, int64_t, uintptr_t etc.). |
|
1770 |
6672 d 6 h |
jermar |
/kernel/trunk/arch/sparc64/src/mm/ |
Fix sparc64 to compile again. |
|
1760 |
6682 d 6 h |
palkovsky |
/kernel/trunk/ |
Changed interface of frame_alloc/free to use address of frame instead of the pfn.
This makes it impossible to use >4GB of memory on 32-bit machines, but who cares... |
|
1735 |
6687 d 11 h |
decky |
/kernel/trunk/ |
make kernel prints case consistent |
|
1705 |
6691 d 11 h |
cejka |
/kernel/trunk/ |
Added file with modules definitions and descriptions.
We are able to change modules order and their description in one place. |
|
1702 |
6692 d 8 h |
cejka |
/kernel/trunk/ |
Kernel doxygen comments updated. |
|
1410 |
6712 d 9 h |
jermar |
/kernel/trunk/arch/sparc64/ |
Modify sparc64 to choose optimal page size in each invocation of hw_map().
Use hw_map() to map keyboard device memory. |
|
1382 |
6716 d 1 h |
decky |
/kernel/trunk/ |
make hardware memory mapping more generic |
|
1221 |
6743 d 23 h |
decky |
/kernel/trunk/ |
printf-related and other code cleanup |
|
1196 |
6750 d 9 h |
cejka |
/kernel/trunk/ |
Printf ported back from uspace to kernel.
Printf calls changed to match new conventions. |
|
898 |
6797 d 9 h |
jermar |
/kernel/trunk/ |
Minor changes. |
|
897 |
6797 d 22 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 |
6798 d 2 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. |
|