On Wed, Oct 23, 2024 at 05:53:53PM +0200, Christian Schulte wrote: > Hi misc@, > > <https://www.openbsd.org/amd64.html> mentions this: > > "Supported hardware: > > Processors > > All versions of the AMD Athlon 64 processors and their clones are > supported." > > What are the minimum requirements with respect to chipsets? >
I don't think we define any. For example, vmm(4)/vmd(8) emulate a legacy PIC/PIT that originally came with the IBM 5150 in 1981, and OpenBSD/amd64 works fine with that, even though there was never a physical amd64 machine shipped with that configuration. The reason it sort-of works is that most every machine made since then, including the latest amd64 machines, include emulated legacy hardware to support old OSes. This means you could still at least attempt to install ancient OSes on newer hardware. Sometimes that works, sometimes not, but in theory the same hardware present on machines 40+ years ago is still "technically" present on most machines (albeit emulated by the firmware/EC/BIOS). Often times this emulation is shoddy/substandard but it typically doesn't matter because there aren't many people installing Windows NT natively on their new Ryzen 9xxx. > I see that e.g. QEMU defaults to > > <https://en.wikipedia.org/wiki/Intel_440FX> > > This goes back to Pentium II/Pentium Pro. There is not a single real > machine around with such a chipset supporting anything 64 bit. In > addition sys/arch/amd64/include/vmparam.h has this: > > > #define MAXDSIZ ((paddr_t)128*1024*1024*1024) > > That's 128GB. > This is the maximum data size available per process from the kernel and has nothing to do with physical memory. It probably shouldn't be paddr_t but for historical reasons, it is. This is the "hard limit"; the ulimit command can be used to make that number smaller. The actual maximum amount of physical memory supported by OpenBSD/amd64 is 2TB; I made this change a few years ago to support a 1.5TB RAM machine I have here. This limit is governed by the number of PML4 top level page table slots we reserve for the direct map (4 in this case) and could be expanded later if we wanted to. If someone appears with a 4TB RAM machine, I'd be happy to bump that number up. We have plenty of spare PML4 PTEs left in our amd64 pmap. > Could you please point me to the first chipsets supporting those amounts > of memory physically. My understanding is that the so called memory > controller hubs got integrated into the CPUs. So what is the first CPU > supporting those 128GB physically? I am having a hard time getting my > hands on the PC architecture and I would really like to understand why > amd64 supports processor chipset combinations which do not exist in real > life. Currently only reading documentation provided by Intel. Athlon 64 > seems to be on the same timeline than Pentium 4. At that time there > where no motherboards around supporting more than 8GB physical memory, > no? For example, I am having difficulties understanding things like > > isa0 at pcib0 > isadma0 at isa0 > pckbc0 at isa0 port 0x60/5 irq 1 irq 12 > > in the dmesg. Reading the various chipset documentations there, of > course, is no ISA bus anywhere since a very long time and things just To remain compatible with legacy OSes, an ISA bus is typically emulated by the EC or other firmware on the machine. You're right in the sense that there are no ISA slots on the motherboard, but you can still write code that interfaces with the emulated ISA bus, and some BIOSes attach legacy hardware like keyboards and mice to this emulated bus. > have been produced for compatibility with existing OSes. Enforcing some > ISA constraints on hardware which does not need any of those constraints > is hard to understand for someone never having followed hardware > development since the early 90s. I could really need some pointers on > what documents to read, given they are around 800 pages long. Thank you. > Every one of us who has worked in this area, at this level, has read those 800+ page documents. Sometimes they are many thousands of pages (eg the latest Intel SDM or latest ACPI spec). Tell us what you are doing and what you want to know and maybe we can point you to the right docs, but there is no short-cutting reading the reference manuals. > -- > Christian >