dac21d8bfe
needs to be or'ed to the address specification), "uncached" is assumed. * Set the memory type for the "BIOS" and "DMA" areas to write-back. Not sure, if that's correct, but that's what was effectively used on my machines before. * Changed x86_set_mtrrs() and the CPU module hook to also set the default memory type. * Rewrote the MTRR computation once more: - Now we know all used memory ranges, so we are free to extend used ranges into unused ones in order to simplify them for MTRR setup. - Leverage the subtractive properties of uncached and write-through ranges to simplify ranges of any other respectively write-back type. - Set the default memory type to write-back, so we don't need MTRRs for the RAM ranges. - If a new range intersects with an existing one, we no longer just fail. Instead we use the strictest requirements implied by the ranges. This fixes #5383. Overall the new algorithm should be sufficient with far less MTRRs than before (on my desktop machine 4 are used at maximum, while 8 didn't quite suffice before). A drawback of the current implementation is that it doesn't deal with the case of running out of MTRRs at all, which might result in some ranges having weaker caching/memory ordering properties than requested. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35515 a95241bf-73f2-0310-859d-f6bbb57e9c96 |
||
---|---|---|
.. | ||
apm.h | ||
arch_acpi.h | ||
arch_apic.h | ||
arch_cpu.h | ||
arch_hpet.h | ||
arch_int.h | ||
arch_kernel_args.h | ||
arch_kernel.h | ||
arch_system_info.h | ||
arch_thread_types.h | ||
arch_thread.h | ||
arch_user_debugger.h | ||
arch_vm_translation_map.h | ||
arch_vm_types.h | ||
arch_vm.h | ||
bios.h | ||
descriptors.h | ||
selector.h | ||
smp_priv.h | ||
timer.h | ||
types.h | ||
vesa.h | ||
vm86.h |