Introduce new functions:
- pmap_pa_has_static_mapping() -- Does the specified physical address
range have a static mapping (either TT or allocated in pmap_bootstrap1())?
- pmap_va_is_static_mapping() -- Is the specified virtual address range
one of those static mappings?
These platforms don't yet have the necessary changes to use the new
68k pmap, but declare an empty machine_bootmap[] for a future change
to shared code that will reference it.
Fix previous; the old cpuspeed was in MHz by the end of cpu_startup(),
not MHz*10 (despite being MHz*10 earlier in startup).
Also, don't const-fold by hand; let the compiler do it so that it's
more obvious what is going on.
Add mmu_range_is_tt() helper function that consults the TT register
configuration to determine if a physical address range is transparently-
translated for the specified access.
(missed "cvs add")
Add mmu_range_is_tt() helper function that consults the TT register
configuration to determine if a physical address range is transparently-
translated for the specified access.
lint, make: only enable strict bool mode when using GCC
The GCC precompiler marks each token whether it comes from a system
header. Lint uses this information to allow some expressions that aren't
strictly bool, such as in __predict_true and __predict_false. The Clang
preprocessor treats all tokens as not coming from system headers, thus
being too strict.
Use the new FCNTL mechanism to move blocks to clean segments, rather than
duplicating the code in user space. lfs_cleanerd still decides which
segments' blocks to move but no longer identifies individual blocks
for cleaning, and does not handle file data.
Re-factor the various m68k platforms' identifycpu() functions, and bring
some consistency to how the CPU/FPU/MMU/cache information is displayed.
Each platform now provides a machine_set_model() function that is called
from cpu_startup_common(). This function is respondible for calling
cpu_setmodel() with platform-specific model description. Then, common code
is responsible for printing the model information, along with the CPU
and cache info, but separately (and this is no longer included in the
hw.model sysctl node; at least it's now consistent!)
Some examples:
Qemu 10.1.2 Virt platform
MC68040+MMU+FPU, 4k+4k on-chip I/D caches
(hw.model == "Qemu 10.1.2 Virt platform")
Motorola MVME-147
MC68030 CPU+MMU @ 25MHz, MC68882 FPU
[43 lines not shown]
pmapmi: Define and use pmap_md_kernel_vaddr_{p,to_paddr} in pmap_extract.
Allow an architecture to provide a function that extracts the PA from the
VA that the kernel text/data/bss are mapped at. This allows pmap_extract
to work for kernel mappings that aren't PAGE_SIZE sized.