04a812ae | 03-Mar-2025 |
Mitchell Horne <mhorne@FreeBSD.org> |
riscv/stand: pass boot hart in loader metadata
Use the RISCV_EFI_BOOT_PROTOCOL to fetch the boot hart ID, and communicate this to the kernel via new metadata field (MODINFOMD_BOOT_HART).
If the boo
riscv/stand: pass boot hart in loader metadata
Use the RISCV_EFI_BOOT_PROTOCOL to fetch the boot hart ID, and communicate this to the kernel via new metadata field (MODINFOMD_BOOT_HART).
If the boot hart is not found this way, fall back to the (now deprecated) device-tree method.
The assumption that a hart ID can be represented with a 32-bit unsigned integer is unchanged in the kernel, but from the loader we pass the full 64-bit value. This ensures that this API won't need to change in the future, should the wider value become necessary.
Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D48887
show more ...
|
038457dd | 23-Jan-2025 |
Andrew Turner <andrew@FreeBSD.org> |
stand/efi: Add more pl011-like uarts
The Arm SBSA uarts are handled by the pl011 driver. Add them to the list of pl011 uarts.
Reviewed by: manu, imp Sponsored by: Arm Ltd Differential Revision: htt
stand/efi: Add more pl011-like uarts
The Arm SBSA uarts are handled by the pl011 driver. Add them to the list of pl011 uarts.
Reviewed by: manu, imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D48526
show more ...
|
3f960a05 | 30-Sep-2024 |
Ahmad Khalifa <ahmadkhalifa570@gmail.com> |
loader: remove check for 2M alignment
Instead of listing every arch we support, always define EFI_STAGING_2M_ALIGN to 1.
Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1
loader: remove check for 2M alignment
Instead of listing every arch we support, always define EFI_STAGING_2M_ALIGN to 1.
Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1446
show more ...
|
5e8bd45f | 27-Sep-2024 |
Ahmad Khalifa <ahmadkhalifa570@gmail.com> |
stand/elf64_freebsd.c: use headers instead of doing things ourselves
Try our best to use headers instead of doing things ourselves. With i386's headers, there are some holes we need to fill manually
stand/elf64_freebsd.c: use headers instead of doing things ourselves
Try our best to use headers instead of doing things ourselves. With i386's headers, there are some holes we need to fill manually.
Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1446
show more ...
|
501983e6 | 15-Oct-2024 |
Warner Losh <imp@FreeBSD.org> |
loader.efi: Parse SPCR v3 and v4
We can get the UART clock from v3 SPCR, and a precise baudrate from v4. Some precise baudrates will currently be rejected by the kernel.
Sponsored by: Netflix Revi
loader.efi: Parse SPCR v3 and v4
We can get the UART clock from v3 SPCR, and a precise baudrate from v4. Some precise baudrates will currently be rejected by the kernel.
Sponsored by: Netflix Reviewed by: adrian, andrew Differential Revision: https://reviews.freebsd.org/D47096
show more ...
|
70253b53 | 15-Oct-2024 |
Warner Losh <imp@FreeBSD.org> |
loader.efi: Parse SPCR table entry in ACPI tables
If there's a SPCR, then use it to create and pass the right values to the uart. We pass xo=0 in to calcuate the xo from the baud rate. We try to be
loader.efi: Parse SPCR table entry in ACPI tables
If there's a SPCR, then use it to create and pass the right values to the uart. We pass xo=0 in to calcuate the xo from the baud rate. We try to be smart about what we set. We either set io or mm or pv/pd. Old kernels will still work, despite pb/pd not being supported, because we'll fall back to the SPCR parsing in the kernel.
We don't support Rev3 or Rev4 SPCR yet. It's too new to be in real hardware yet.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D47085
show more ...
|
94164106 | 15-Oct-2024 |
Warner Losh <imp@FreeBSD.org> |
loader.efi: |= the boot flags how
how is assumed to be 0, so we directly assign to it. It might not always be 0, so or-in these bits.
Sponsored by: Netflix Reviewed by: bz, andrew Differential Re
loader.efi: |= the boot flags how
how is assumed to be 0, so we directly assign to it. It might not always be 0, so or-in these bits.
Sponsored by: Netflix Reviewed by: bz, andrew Differential Revision: https://reviews.freebsd.org/D47084
show more ...
|
c8ebbd28 | 18-Sep-2024 |
Colin Percival <cperciva@FreeBSD.org> |
loader: Expand EFI entropy if < 2048 bytes
The EFI RNG on some platforms takes a long time if we request 2048 bytes of entropy, so we would like to request less; but our kernel Fortuna RNG needs to
loader: Expand EFI entropy if < 2048 bytes
The EFI RNG on some platforms takes a long time if we request 2048 bytes of entropy, so we would like to request less; but our kernel Fortuna RNG needs to be fed 2048 bytes in order to consider itself "fully seeded". If we have between 64 bytes (the size of a single Fortuna pool and enough to guarantee cryptographic security) and 2048 bytes (what Fortuna wants) then the boot process will hang waiting for more entropy despite in fact having enough to operate securely.
Since 64 bytes of entropy is plenty to be cryptographically secure (an attack of cost ~ 2^128 is infeasible, which implies a mere 16 bytes of entropy), use PBKDF2 (aka pkcs5v2_genkey_raw) to spread the entropy across 2048 bytes. This is secure since PBKDF2 has the property that every subset of output bytes has within O(1) of the maximum possible amount of entropy.
Reviewed by: pjd MFC after: 1 week Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D46635
show more ...
|
6fdb07d5 | 12-Aug-2024 |
Ahmad Khalifa <ahmadkhalifa570@gmail.com> |
loader: provide error message in command_errmsg instead of printing
Also provide an error message when argc is too long instead of printing "no error message".
Reviewed by: imp, kib Pull Request: h
loader: provide error message in command_errmsg instead of printing
Also provide an error message when argc is too long instead of printing "no error message".
Reviewed by: imp, kib Pull Request: https://github.com/freebsd/freebsd-src/pull/1381
show more ...
|