Page MenuHomeFreeBSD

Simplify and update the hardware notes for x86 architectures.
ClosedPublic

Authored by jhb on Feb 17 2021, 12:10 AM.
Tags
None
Referenced Files
Unknown Object (File)
Dec 19 2024, 1:52 AM
Unknown Object (File)
Dec 8 2024, 2:16 PM
Unknown Object (File)
Dec 5 2024, 1:21 PM
Unknown Object (File)
Dec 1 2024, 3:53 PM
Unknown Object (File)
Oct 21 2024, 11:07 AM
Unknown Object (File)
Oct 21 2024, 11:07 AM
Unknown Object (File)
Oct 21 2024, 11:07 AM
Unknown Object (File)
Oct 21 2024, 11:07 AM
Subscribers

Details

Summary
  • amd64 is no longer a new thing and is now the largest-used FreeBSD platform, so make its description self-contained and not dependent on i386.
  • Use a single list of all the other names for amd64 and add x86-64 as the first alias in the list.
  • Mention multi-core and SMT (not just SMP) for amd64. Also note that amd64 requires ACPI and supports booting from both UEFI and legacy BIOS.
  • Note that FreeBSD/amd64 runs on laptops and desktops.
  • Remove outdated lists of processors. Instead, simply claim that amd64 runs on all Intel and AMD 64-bit x86 CPUs. Similarly, simplify the list for i386 to just require an FPU and CMPXCHG. Add VIA to the vendors for i386.
  • For i386, trim language about SMP. It's not that novel and the smp@ list is not a useful reference. Do mention multi-core and SMT.
  • Only claim that i386 motherboards with PCI are well-supported. Clarify that there is limited support for AGP and ISA and that ISA support really means LPC support. Remove EISA, VLB, and MCA which are all either removed or barely present.
  • Don't mention PCCARD for i386 laptops.
  • Simplify language about ACPI for i386.
  • Note that i386 only boots via BIOS and doesn't support booting via UEFI.

Diff Detail

Repository
R9 FreeBSD doc repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jhb requested review of this revision.Feb 17 2021, 12:10 AM
jhb created this revision.

If this is generated from a template somewhere, redirect me to update that instead. We probably want all these updates for future 12.x releases as well.

imp added inline comments.
website/content/en/releases/13.0R/hardware.adoc
62

ACPI is required, no?, for i386 as a practical matter?

I'm sure this needs further refinement (we should say we boot on servers somewhere instead of it being implicit), but this is at least moving in the right direction.

website/content/en/releases/13.0R/hardware.adoc
62

No, we still have all the legacy stuff like $PIR and MPTable and device atpic, so it will still boot without ACPI on i386 (if your BIOS's tables for that are still accurate). amd64 doesn't include the code for those though and actually requires ACPI. amd64 requires APIC as well for GENERIC (you can still add 'device atpic' to a custom kernel), but disabling APIC should be even more obscure at this point than disabling ACPI.

It is debatable if we should keep the section about disabling ACPI at all really.

rpokala added inline comments.
website/content/en/releases/13.0R/hardware.adoc
35
... is supported *by* the ACPI Component Architecture ...
37

s/will/can/ ; as written, it implies both are used, which is not correct.

46
... instruction (introduced in the 80486 CPU) are supported.
55–56
... on some older machines with buggy firmware, and it may be necessary to disable the ACPI driver. This can be done by adding the following line to `device.hints`:
website/content/en/releases/13.0R/hardware.adoc
55–56

I'd eliminate this entirely.

We should document it somewhere, but most i386 laptops that people are going to use today have a working ACPI. The ones that don't date from the Pentium 300 or slower era. The ones prior ~P233 to that have their ACPI black listed in the Intel code, and the ones after that generally work.

website/content/en/releases/13.0R/hardware.adoc
48

We have no support for EISA or VLB in the system, as a practical matter. The only support left is for ISA cards in an EISA slot without the EISA automatic resource assignment. And even then, most of the ISA support we have left is emulated in LPC bridges, or connected with LPC bus, as you say. There's 3 or 4 straggles that we likely can eliminate in FreeBSD 14...

62

Have we actually booted it on such a system? Last time I tried it didn't work, but that was maybe 4 or 5 years ago on a system before I wound up e-wasting it. Hence my 'as a practical matter'... I'll have to see if I have an old Soekris board knocking around to try it...

website/content/en/releases/13.0R/hardware.adoc
29

Incidentally this is pretty close to what I would write for arm64 as Tier-1 :)

39–41

I think we should make some reference to specific hardware devices or similar, as to me this somewhat reads as we have varying levels of support for e.g. sound in general. Maybe something like:

FreeBSD will generally run on amd64-based laptops and desktops.
Support for certain hardware features such as sound, graphics, wireless, and power management may vary, depending on the specific hardware devices in use.

48

We ought to drop AGP here when claiming "well-supported"; when was the last time we tested on an AGP motherboard?

54
55–56

I agree with @imp that we should just drop this now.
Do any modern x86 machines not use ACPI?

This revision is now accepted and ready to land.Feb 17 2021, 5:01 PM
jhb marked 6 inline comments as done.Feb 17 2021, 8:54 PM
jhb added inline comments.
website/content/en/releases/13.0R/hardware.adoc
39–41

Should I also add "servers" here do you think?

48

I've dropped EISA and VLB entirely and say that ISA is only for LPC even more strongly. I do still say there is limited support for AGP (we still have the driver), but not "well-supported". I did think we had perhaps not removed all the foo_eisa.c attachments, but EISA isn't really relevant anyway. AGP is only barely relevant because it's a PCI extension.

54

Hmmm, I wasn't sure if we were actually shipping with > 4GB memory enabled out of the box, or just allowing NX. That might be a question for kib@ about current status. Also, the new tunables added aren't documented in pae(4) which might be helpful. Looks like we do allow up to 24GB of RAM out of the box for i386. Maybe this is sufficiently obscure we can just drop this paragraph entirely. We should document the new state of the world in pae(4) though.

55–56

I've dropped most of this but do mention that it is possible to boot on older systems without ACPI support. We should mention the positive part of supporting ACPI at least.

62

Have we actually booted it on such a system? Last time I tried it didn't work, but that was maybe 4 or 5 years ago on a system before I wound up e-wasting it. Hence my 'as a practical matter'... I'll have to see if I have an old Soekris board knocking around to try it...

I've booted bhyve i386 VMs without it (with and without APIC). Those should boot fine today.

jhb marked 2 inline comments as done.
  • Various review feedback.
This revision now requires review to proceed.Feb 17 2021, 8:57 PM
website/content/en/releases/13.0R/hardware.adoc
39–41

Mmm, good point. I think we should mention servers, but then we might want a comment that indicates server hw generally works.

This revision is now accepted and ready to land.Feb 17 2021, 11:17 PM
website/content/en/releases/13.0R/hardware.adoc
39–41

I think if we just add servers to the first line, then it still works ok. If you have a server with wireless you will have the same caveat as a laptop, it's just that most people with servers won't really care much about sound, graphics, wireless, and power management. Maybe expansion slots in i386 is a bit wonky to mention, and maybe I should just drop "expansion slots" there. (That's actually also confusing for desktops since PCI slots work perfectly fine.)

  • Add servers, drop expansion slots.
This revision now requires review to proceed.Feb 18 2021, 1:07 AM
This revision was not accepted when it landed; it landed in state Needs Review.Feb 18 2021, 5:37 PM
This revision was automatically updated to reflect the committed changes.