History log of /haiku/src/system/boot/arch/x86/arch_cpu.cpp
Revision Date Author Comments
# dd8a03b7 03-Nov-2023 Jérôme Duval <jerome.duval@gmail.com>

bootloader/x86: fix rdtsc for x86_64

should fix regression after hrev57346, see #18647
explained in details at https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html

Change-Id: Ic471c594b87da0bcee346db4a2f78ee1e1d59fe9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7093
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# bb2808d6 24-Oct-2023 Augustin Cavalier <waddlesplash@gmail.com>

bootloader: Implement TSC calibration via hypervisor CPUID leaf.

While debugging some problems on the HaikuPorts build VMs, mmlr
noticed their clocks had an alarming amount of drift. This prompted
an investigation into TSC calibration mechanisms, and the discovery
that there is a VM-specific one which we did not implement.

This mechanism is more accurate than counting cycles on VMs where
cycles can be "stolen" (the probable cause of the aforementioned
clock drift.)

Tested in VMware (works out of the box) and on QEMU/KVM
(may need TSC frequency specified or a host with invariant TSC.)

Change-Id: I4ccfdb2e4e2621404ec9026e7106c02bf96faf18
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7063
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 425ac1b6 20-Jun-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

refactor: Swap %Ld for %lld in all format usages

* %Ld is an undocumented alias for %lld in glibc.
* muslc doesn't implement it for this reason.
* While we will likely never drop %Ld support,
lets clean house and set a better example.

Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 616edea7 29-Nov-2022 Jérôme Duval <jerome.duval@gmail.com>

boot_loader: load amd microcode update data file

switched to non-packaged paths

Change-Id: I331d4d6ed1af1ce6fa68109c9c6baf4a92bdc7b9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5858
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# e0102ba3 23-Mar-2022 Jérôme Duval <jerome.duval@gmail.com>

boot/x86: if __uint128 is available, use it

Change-Id: I2b01b8e205ffcfb9f3901715a7c8382a21d4f575
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5140
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 4b5c7fe7 06-Nov-2021 Alexander von Gluck IV <kallisti5@unixzen.com>

system/boot: add optional alignment to kernel_args_malloc

* A few things need alignment, instead of forcing them all
to align themselves, support alignment of the kernel_args
* Default of 1 is "no alignment"

Change-Id: Iff05dcec8adaa963c8444d701464ea11616062f6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4698
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 89fd39f4 01-Jul-2020 Alexander von Gluck IV <kallisti5@unixzen.com>

efi: Refactor CPU code to be arch-specific

* Migrate some platform agnostic architecture code into
boot/arch from efi/arch. This helps to avoid conflicts
between kernel and boot sources as well.
* Conflicts between arch_cpu in efi and kernel code means
bootcode really should *never* directly use kernel arch
headers. (other platforms don't, which is why they don't
have this same issue)
* We carefully thread any needed kernel headers (namely
assembly helper macros) into the bootloader headers without
mixing in the whole conflicting kernel/arch headers.
* ARM now properly get its cpu init code called, and we
progress further into the EFI bootloader.

Change-Id: If67ec9758b5ce68563ebd9eb45d5196401911c67
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2975
Reviewed-by: waddlesplash <waddlesplash@gmail.com>