History log of /haiku/src/add-ons/kernel/bus_managers/acpi/ACPICAHaiku.cpp
Revision Date Author Comments
# 64408be7 07-Dec-2023 Augustin Cavalier <waddlesplash@gmail.com>

acpi: Fix copy/paste error in GlobalLock functions.

Should fix #18701.


# 841c1c0c 24-Nov-2023 PulkoMandy <pulkomandy@pulkomandy.tk>

acpica: fix tracing on 64bit systems

Change-Id: I75be1a37a17c171a45c4b5994c65117aed894b56
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7141
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# f2acc47f 06-Dec-2023 Jérôme Duval <jerome.duval@gmail.com>

acpi: update AcpiOsAcquireGlobalLock and AcpiOsReleaseGlobalLock

implementations from FreeBSD. Because the argument wasn't volatile,
the compiler wasn't considerung reading the lock content.
* fix the acquire and release loops:
The loop could be exited when any new values were read.
Instead the return value should be checked against the old value.

Old x86 gcc2 asm loop in AcpiOsAcquireGlobalLock:
11660: 89 c8 mov %ecx,%eax
11662: f0 0f b1 1a lock cmpxchg %ebx,(%edx)
11666: 39 0a cmp %ecx,(%edx)
11668: 74 f6 je 11660 <AcpiOsAcquireGlobalLock+0x20>

New x86 gcc13 asm loop in AcpiOsAcquireGlobalLock:

4d58: 8b 11 mov (%ecx),%edx
4d5a: 89 d0 mov %edx,%eax
4d5c: 89 d3 mov %edx,%ebx
4d5e: 83 e0 fc and $0xfffffffc,%eax
4d61: 83 cb 03 or $0x3,%ebx
4d64: f6 c2 02 test $0x2,%dl
4d67: 75 05 jne 4d6e <AcpiOsAcquireGlobalLock+0x1e>
4d69: 83 c8 02 or $0x2,%eax
4d6c: 89 c3 mov %eax,%ebx
4d6e: 89 d0 mov %edx,%eax
4d70: f0 0f b1 19 lock cmpxchg %ebx,(%ecx)
4d74: 75 e2 jne 4d58 <AcpiOsAcquireGlobalLock+0x8>

Old x86 gcc2 asm loop in AcpiOsReleaseGlobalLock:
11690: 89 c8 mov %ecx,%eax
11692: f0 0f b1 1a lock cmpxchg %ebx,(%edx)
11696: 39 0a cmp %ecx,(%edx)
11698: 74 f6 je 11690 <AcpiOsReleaseGlobalLock+0x10>

New x86 gcc13 asm loop in AcpiOsReleaseGlobalLock:
4d88: 8b 11 mov (%ecx),%edx
4d8a: 89 d3 mov %edx,%ebx
4d8c: 89 d0 mov %edx,%eax
4d8e: 83 e3 fc and $0xfffffffc,%ebx
4d91: f0 0f b1 19 lock cmpxchg %ebx,(%ecx)
4d95: 75 f1 jne 4d88 <AcpiOsReleaseGlobalLock+0x8>

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


# 748b4883 28-Mar-2022 milek7 <me@milek7.pl>

ACPI: Make it compile on architectures other than x86.

Change-Id: Ie72dd2c6a571234399dc99d3573a5de19252737e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5269
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# a7b50feb 23-Jan-2022 David Karoly <karolyd577@gmail.com>

kernel/x86: use proper phys_addr_t field for storing ACPI root pointer

Change-Id: I475b7b3f9bd0711ecd037043e86559ab691a82a7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4881
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 59642dc3 17-Sep-2021 Coldfirex <sakison@gmail.com>

ACPICAHaiku.cpp: Fix wformat-security

Change-Id: I6d06e68e60ced2ca311c3fc505f9f9f51ee05563
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4473
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# c1e4908d 31-Jan-2021 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

ACPICA marks AcpiOsPrintf printf-like, fix found warning

Change-Id: I26e3a4ca8654eb3859ef0a8d3f0de83e251b96da
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3720
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# a3a192c1 17-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

acpi: Use mutex_trylock() for ACPI_DO_NOT_WAIT.

We do not need to go through all the overhead of mutex_lock_with_timeout()
if there is in fact no timeout.

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


# a4a538db 02-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

ACPI: Avoid discarding a potential error value.

This is part of a new diagnostic I've managed to wire up
that finds all instances of "status_t" function return
values being discarded using attribute trickery and some
creative Clang pragmas. As you might guess, the resultant
errors list is absolutely gigantic, and most of them are
ones where the failure condition will never (that we care
about) be hit.

The ones in this commit likely are no-op changes, but
they were low-hanging fruit spotted while reviewing
the larger list. The next commit will bring more
substantial changes.


# 4fced27d 15-Aug-2018 François Revol <revol@free.fr>

acpi: fix format warnings with DEBUG_OSHAIKU set


# 86901205 25-Apr-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Avoid arithmetic operations on void pointers

See what I did there?


# ff2e2f81 21-Jan-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Upgrade to ACPICA 20180105

Tested on x86_64 and x86_gcc2, works on my machine and most likely fixes
that was most likely due to missing lock sync in previous ACPI upgrade.

* Redid some of kallisti5's work as it was easier to start from earlier
version.

* Evaluating 64 bit physical addressing on 32 bit Haiku again as this
was likely the cause of pagefaults (#12377):
"Implemented internal support for full 64-bit addresses that appear in all
Generic Address Structure (GAS) structures. Previously, only the lower 32
bits were used. Affects the use of GAS structures in the FADT and other
tables, as well as the GAS structures passed to the AcpiRead and
AcpiWrite public external interfaces that are used by drivers. Lv Zheng."

* Mostly bugfixes in ACPICA


# 3f04c835 13-Jan-2018 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Revert "acpica: Upgrade to 20170303"

This reverts commit 0bc647d605e2731a1b88d970eb755c0a514df128.


# e5c95a01 28-Mar-2017 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Use 64 bit addressing for ACPI on 32 bit builds.

32 bit builds with PAE are so much fun. It's like
64 bit without all the extra registers...


# 0bc647d6 18-Mar-2017 Alexander von Gluck IV <kallisti5@unixzen.com>

acpica: Upgrade to 20170303

Notable changes since 20160729:
* Will be dual licensed going forward. We choose the Intel License.
* Fixed two issues with auto-repair double-delete an internal object
* New hook for sleep support (AcpiOsEnterSleep)
* Fixed a regression introduced in 20160729, "FADT support cleanup"
around early 64-bit address support.
* Fixed a problem where runtime implicit conversion was
incorrectly disabled for the ASL operators below. This brings the
behavior into compliance with the ACPI specification:
FromBCD,ToBCD,ToDecimalString,ToHexString,ToInteger,ToBuffer
* Fixed a regression in the internal AcpiTbFindTable function where
a non AE_OK exception could inadvertently be returned even if the
function did not fail. This problem affects the following operators:
DataTableRegion,LoadTable


# 584a3968 20-Feb-2017 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Log ACPI address and size as 64 bit

Even on 32 bit machines the default is to use 64 bit addresses
because of PAE. Haiku currently forces 32 bit addresses which
probably should be fixed.
See achaiku.h: define ACPI_32BIT_PHYSICAL_ADDRESS


# 06f719d1 06-Aug-2016 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Fix printf warnings for addr and size args


# 6e6efaec 24-Apr-2014 Jessica Hamilton <jessica.l.hamilton@gmail.com>

EFI: add ACPI support

Also add support in the kernel to get the ACPI RSDP from the
bootloader, and pass onto the ACPI driver using get_boot_item.


# 65ecbac0 13-Sep-2015 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Switch from ACPI_SIZE to ACPI_PHYSICAL_ADDRESS.

Should fix build bustage on 32 bit builds.


# 1ee1d0cb 28-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel, drivers: Fix gcc2 build


# 775afec4 14-Jul-2012 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Simplify source file names and go from .c to .cpp


# 65ecbac0dc1c49a82a4acc238fc0c7e458e29594 13-Sep-2015 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Switch from ACPI_SIZE to ACPI_PHYSICAL_ADDRESS.

Should fix build bustage on 32 bit builds.


# 1ee1d0cbab735cd0849fefaa1ee62ae8fe83d7a5 28-Nov-2013 Pawel Dziepak <pdziepak@quarnos.org>

kernel, drivers: Fix gcc2 build


# 775afec4cc4fbd33e3a1d42d9376b089963e76fe 14-Jul-2012 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Simplify source file names and go from .c to .cpp