Subversion Repositories HelenOS

Rev

Go to most recent revision | Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
2697 6024 d 7 h decky /trunk/kernel/ amd64: shorten kernel address space by 2 GB to support proper mapping of more than 2 GB of physical memory  
2087 6377 d 3 h jermar /trunk/kernel/ Indentaion and formatting changes even Martin will like :-)  
2071 6387 d 0 h jermar /trunk/ (c) versus (C)  
1888 6512 d 3 h jermar /trunk/ C99 compliant header guards (hopefully) everywhere in the kernel.
Formatting and indentation changes.
Small improvements in sparc64.
 
1793 6574 d 8 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.
 
1787 6577 d 2 h decky / move kernel/trunk, uspace/trunk and boot/trunk to trunk/kernel, trunk/uspace and trunk/boot  
1780 6584 d 3 h jermar /kernel/trunk/ Replace old __u?? types with respective C99 variants (e.g. uint32_t, int64_t, uintptr_t etc.).  
1702 6605 d 6 h cejka /kernel/trunk/ Kernel doxygen comments updated.  
1303 6640 d 2 h palkovsky /kernel/trunk/arch/ zone_merge_all must be called after frame_init is completed - otherwise
new zone information can be allocated over the not-yet-blacklisted areas.
 
1224 6656 d 6 h cejka /kernel/trunk/ Fix pointers output format.
Fix format of slab and zones tables.
 
1221 6656 d 21 h decky /kernel/trunk/ printf-related and other code cleanup  
1196 6663 d 7 h cejka /kernel/trunk/ Printf ported back from uspace to kernel.
Printf calls changed to match new conventions.
 
925 6698 d 10 h palkovsky /kernel/trunk/arch/ia32/src/mm/ Fix e820list on ia32.  
822 6729 d 21 h palkovsky /kernel/trunk/ Changed malloc to include second parameter and documented
recommended usage.
Added zone merging, made ia32 & amd64 to merge found zones.
 
820 6729 d 22 h jermar /kernel/trunk/ Convert size_t, count_t and index_t to 64-bits on 64-bit architectures.
Change some pfn_t usages to count_t, size_t and index_t.
 
814 6730 d 8 h palkovsky /kernel/trunk/ Cleanup o frame allocator.
Removed early_malloc & initial heap.
Will break ia64, ppc & sparc.
Added e820 table print.
 
778 6734 d 1 h palkovsky /kernel/trunk/ Fixed boot process not to call malloc when slab not initialized.
Added simics workaround.
 
703 6756 d 7 h jermar /kernel/trunk/ Memory management work.
- vm.* -> as.* (as like address space is, imho, more fitting)
- Don't do TLB shootdown on vm_install(). Some architectures only need to call tlb_invalidate_asid().
- Don't allocate all frames for as_area in as_area_create(), but let them be allocated on-demand by as_page_fault().
- Add high-level page fault handler as_page_fault().
- Add as_area_load_mapping().
 
693 6761 d 2 h decky /kernel/trunk/arch/ia32/ simplify and cleanup ia32 boot process, remove obsolete stuff  
625 6785 d 4 h palkovsky /kernel/trunk/ We are now almost -Wall clean.
- redefined atomic_t
- deleted many, many unused variables
- some minor code cleanups found using compiler warning.
 
564 6792 d 21 h jermar /kernel/trunk/ Send in some improvements.  
540 6794 d 21 h jermar /kernel/trunk/arch/ Map all available frames of memory on ia32 and amd64 (ticket #10).  
537 6795 d 3 h jermar /kernel/trunk/ Buddy system cleanup and fixes.
- missing use of KA2PA in frame_init
- truncating black list addresses to frame boundaries
- removal of left-over obsolete structures
- fixing some comments
 
534 6796 d 0 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel again.  
533 6796 d 1 h bondari /SPARTAN/trunk/ Buddy allocator for physical memory complete implementation.
Tested on IA32, AMD64, MIPS32. RWLock Test #5 is not passed.
NOTE: Other architectures could be broken (but should not be)
 
532 6796 d 1 h jermar / Revert renaming of HelenOS/SPARTAN to HelenOS/kernel because of important pending patch.  
501 6808 d 5 h jermar / Rename HelenOS/SPARTAN to HelenOS/kernel.  
371 6869 d 22 h jermar /SPARTAN/trunk/arch/ia32/src/ Complete map_kernel() in boot.S to map the entire 4G space.

Change IA-32 frame_arch_init() to add zone with lower base addresses first.
 
368 6870 d 7 h jermar /SPARTAN/trunk/ Physical memory management work.
New frame allocator.
Some architectures need to have bigger heap.
 
267 6888 d 4 h decky /SPARTAN/trunk/arch/ia32/ proper way of initializing GDT during boot on IA-32, fixes the nasty hack
SMP might be still broken
 
247 6889 d 3 h jermar /SPARTAN/trunk/arch/ia32/src/mm/ Fix nasty bug in arch/mm/frame.c.
frame_region_not_free() takes address as its second argument, not size.
 
246 6889 d 3 h decky /SPARTAN/trunk/arch/ia32/src/mm/ make IA-32 UP work again (nasty hack)  
235 6890 d 3 h decky /SPARTAN/trunk/ load the kernel above 1 MB on IA-32  
187 6892 d 7 h cejka /SPARTAN/trunk/ Licence to print1/test.c added.
New function for printing memory map at ia32.
 
182 6892 d 11 h cejka /SPARTAN/trunk/ Test for printf added.  
177 6893 d 8 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.
 
146 6932 d 6 h cejka /SPARTAN/trunk/ Memory size detection for ia32 completed.  
139 6933 d 3 h cejka /SPARTAN/trunk/arch/ia32/ Added e801 method for obtaining memory size, improved e820 method for memory map.  
125 6937 d 22 h jermar /SPARTAN/trunk/ Huge indentation fix.  
113 6976 d 19 h jermar /SPARTAN/trunk/ SMP recovery patch #2 (SMP is no longer broken !!!).
Fix missing KA2PA() operation in ap.S which was causing page faults during AP early initialization.
Fix bug in map_page_to_frame(): 'root' was interpretted as kernel address while read_dba() returns physical address.
Make references to page directory and page tables use kernel addresses instead of physical addresses.

Massive frame allocation code cleanup.
Basically revert to what we had had before implementation of userspace.

Usual cosmetics.