I didn't know what header to put the prototype in, so it's both in
i386/mem.c and amd64/mem.c; probably can be moved later.
Tested on amd64, assumed working on i386. :)
yamt@ okay
displayed, to make the code much simpler and easier to follow. Also, use
bitmask_printf() to make output consistent with other stuff. Use
CPUID2FAMILY() where appropriate.
SMBios detection and mapping to bios32.c, also from OpenBSD (for now this
is only compiled in if ipmi(4) is configured). The sensors and watchdog are
accessible though envsys(4).
Works on i386; some work is needed on amd64 to access the BIOS. It would
eventually work on Xen if the SMBios is accessible (to be tested).
- make it possible for machine-specific code to provide custom R/W routines
in its i82093*.h headers
- always initialize sc->sc_pins[pin], even in the !ioapic_cold case.
No objections on port-i386 and port-amd64.
static limits to meet modern bloat requirements.
VM_PHYSSEG_MAX needs it to run on Intel's D946GZIS motherboard, as reported
by rix on #NetBSD-code on freenode. This has a consequence on the initial
number of possible extent allocations for iomem_ex, so increase that value
too.
While there, clarify the action to be taken when VM_PHYSSEG_MAX is maxed
out.
Do that on both amd64 and i386 because the causes, the effects and the code
are mostly the same.
est.c:
* Use a quintuplet (vendor, MHz_hi, mV_hi, MHz_lo, mV_lo } to match
CPUs more correctly than parsing the brand string.
* Add support for a bunch of models.
* Create a fake table on the fly if the CPU is unknown (there's no
table for it) with the current/highest/lowest frequency.
specialreg.h:
* Add some MSRs needed to get the bus clock value.
identcpu.c:
* Add functions specific to Pentium III, Pentium M and Pentium 4 to
get the bus clock value.
Note that the new fake table code from Simon Burge is not included on
this commit.
Ok'ed by simonb and dogcow.
will wait for the bit pending wait to be cleared. When this bit is
cleared the CPU is ready to enter to new processor state. [1]
- Remove useless comments.
- Sync boot messages with est.c
[1] Macro taken from FreeBSD.
And new changes tested by elad.
- Attempt to gracefully recover from a failed decrease_reservation or
increase_reservation, by avoiding physical memory loss.
- always store a machine address in ds_addr; this avoids some mistakes
where machine address would in some case be freed at physical address, or
mapped as physical address.
increase the number of retries by two orders of magnitude wont affect
most systems but will make transitions smoother on marginal ones.
From gwk@openbsd.
x86/include/powernow.h
- Protect k[78]_powernow_init() functions with #ifdef POWERNOW_K[78] to
make it build without these options.
This fixes the problem reported by hubertf.
root partition, instead of punting. This makes booting work
with traditional disklabel disks and wedge autoconfiguration.
- factor out disk opening code.
overrided (e.g. the SCI interrupt), so that it may be found correctly by
the ACPI interrupt establish function, should the number be different
from the original source.
created by config(1), and thus it's not safe to use it in cpuvar.h.
Simply declare the prototype for k8_powernow_init in powernow.h. No need
to #ifdef protect a prototype, after all, only its users.
Un-breaks build of Xen kernels.
previous patch) and this MUST be of that size, otherwise the tables
won't be found.
* powernow_k8.c moved into x86/x86, it should work both i386 and amd64.
* Added more DPRINTFs needed to found the first problem.
* Create "machdep.powernow.frequency" again, I can't remember why I
removed frequency... it should work with estd now.
* Do not try to call k[78]_powernow_init() if cpu is not AMD (thanks
to christos).
And more things I can't remember, but this time it will work in
Athlon 64 cpus and it won't crash in EM64T cpus.