NetBSD: Difference between revisions
m (moved Coreboot and NetBSD to NetBSD: Move to canonical name.) |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
[http://www.netbsd.org/ NetBSD] is a free, fast, secure, and highly portable Unix-like Open Source operating system. | |||
This page documents coreboot usage with NetBSD. It is probably terser than it could be, as it mostly just describes differences from the more-commonly-documented Linux procedures. | |||
== | == Building coreboot on NetBSD == | ||
GNU make is required to build coreboot, install it from '''pkgsrc/devel/gmake'''. | |||
Use '''coreboot/util/crossgcc''', you may have to work around an issue with the path to the gcc sources. | |||
NetBSD does not (without patching) search for a MPBIOS floating pointer at the location | == Building SeaBIOS on NetBSD == | ||
coreboot usually places it. | |||
Build [[SeaBIOS]] with the previously mentioned '''crossgcc'''. You may need to (temporarily) use '''pkgsrc/shells/bash''' as your shell. | |||
== Using NetBSD/x86 with coreboot == | |||
=== Interrupt routing === | |||
Legacy interrupt routing (the PCI interrupt line register) is traditionally not implemented by coreboot on many mainboards. MPBIOS or ACPI will be required otherwise. | |||
NetBSD does not (without patching) search for a MPBIOS floating pointer at the location coreboot usually places it. SeaBIOS does relocate this pointer structure however. | |||
=== BIOS calls === | === BIOS calls === | ||
(This section is probably only relevant when not loading via SeaBIOS.) | (This section is probably only relevant when not loading via SeaBIOS.) | ||
NetBSD/i386 GENERIC still makes some BIOS calls after boot(8): | NetBSD/i386 GENERIC still makes some BIOS calls after boot(8): | ||
* isapnp(4) | * isapnp(4) | ||
* mca(4) | * mca(4) | ||
Removal of these subsystems from your kernel config(5) file removes these calls. | Removal of these subsystems from your kernel '''config(5)''' file removes these calls. | ||
Due to the nature of x86_64, BIOS calls on NetBSD/amd64 are not a problem, as they cannot be made from long-mode. | Due to the nature of x86_64, BIOS calls on NetBSD/amd64 are not a problem, as they cannot be made from long-mode. | ||
Line 31: | Line 36: | ||
=== coreboot-related utilities === | === coreboot-related utilities === | ||
Both [[nvramtool]] and [ | Both [[nvramtool]] and [http://www.flashrom.org flashrom] are in [http://www.pkgsrc.org/ pkgsrc]. | ||
{{PD-self}} | {{PD-self}} |
Latest revision as of 14:02, 2 April 2013
NetBSD is a free, fast, secure, and highly portable Unix-like Open Source operating system.
This page documents coreboot usage with NetBSD. It is probably terser than it could be, as it mostly just describes differences from the more-commonly-documented Linux procedures.
Building coreboot on NetBSD
GNU make is required to build coreboot, install it from pkgsrc/devel/gmake.
Use coreboot/util/crossgcc, you may have to work around an issue with the path to the gcc sources.
Building SeaBIOS on NetBSD
Build SeaBIOS with the previously mentioned crossgcc. You may need to (temporarily) use pkgsrc/shells/bash as your shell.
Using NetBSD/x86 with coreboot
Interrupt routing
Legacy interrupt routing (the PCI interrupt line register) is traditionally not implemented by coreboot on many mainboards. MPBIOS or ACPI will be required otherwise.
NetBSD does not (without patching) search for a MPBIOS floating pointer at the location coreboot usually places it. SeaBIOS does relocate this pointer structure however.
BIOS calls
(This section is probably only relevant when not loading via SeaBIOS.)
NetBSD/i386 GENERIC still makes some BIOS calls after boot(8):
- isapnp(4)
- mca(4)
Removal of these subsystems from your kernel config(5) file removes these calls.
Due to the nature of x86_64, BIOS calls on NetBSD/amd64 are not a problem, as they cannot be made from long-mode.
Both nvramtool and flashrom are in pkgsrc.
I, the copyright holder of this work, hereby release it into the public domain. This applies worldwide.
In case this is not legally possible: |