Bug 214545 - ACPI Error: No handler for Region [RCM0] and ACPI Error: Region SystemCMOS (ID=5) has no handler
Summary: ACPI Error: No handler for Region [RCM0] and ACPI Error: Region SystemCMOS (I...
Status: NEEDINFO
Alias: None
Product: ACPI
Classification: Unclassified
Component: ACPICA-Core (show other bugs)
Hardware: Intel Linux
: P1 high
Assignee: Zhang Rui
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-09-27 14:40 UTC by Bhanu
Modified: 2022-06-21 09:29 UTC (History)
2 users (show)

See Also:
Kernel Version: 5.10.69-1-lts
Subsystem:
Regression: No
Bisected commit-id:


Attachments
my decompiled dsdt (1.19 MB, text/x-csrc)
2021-09-27 14:40 UTC, Bhanu
Details
fwts dumped output (407 bytes, text/plain)
2021-09-27 14:45 UTC, Bhanu
Details
dumped output of compiling the dsdt.dsl attached with 'iasl' compiler (100.10 KB, text/plain)
2021-09-27 14:48 UTC, Bhanu
Details

Description Bhanu 2021-09-27 14:40:27 UTC
Created attachment 298983 [details]
my decompiled dsdt

On running the command `sudo journalctl -b -p -err`
the following error is shown on my hp-15bs145tu laptop,

-- Journal begins at Mon 2021-09-27 10:10:50 IST, ends at Mon 2021-09-27 19:40:51 IST. --
Sep 27 15:29:01 bhanu-Arch kernel: ACPI Error: No handler for Region [RCM0] (0000000017f32213) [SystemCMOS] (20200925/evregion-129)
Sep 27 15:29:01 bhanu-Arch kernel: ACPI Error: Region SystemCMOS (ID=5) has no handler (20200925/exfldio-261)
Sep 27 15:29:01 bhanu-Arch kernel: ACPI Error: Aborting method \_SB.WMID.ESDT due to previous error (AE_NOT_EXIST) (20200925/psparse-529)
Sep 27 15:29:01 bhanu-Arch kernel: ACPI Error: Aborting method \_SB.PCI0.LPCB.EC0._Q42 due to previous error (AE_NOT_EXIST) (20200925/psparse-529)


The problem it raising is, hibernate doesn't work at all, and after resuming from suspend my kernel panic or laptop simply hangs and which forces me to manually reboot it.

this bug is present in both the lts and upstream kernel and on other distributions such as Ubuntu, manjaro, and others.
Comment 1 Bhanu 2021-09-27 14:45:12 UTC
Created attachment 298985 [details]
fwts dumped output

the lines at number 6829 in the above file : gives some errors releated to this as follows :

FAILED [HIGH] KlogAcpiNoHandlerForRegion: Test 1, HIGH Kernel message: [
6.074035] ACPI Error: No handler for Region [RCM0] (0000000083afb5d2)
[SystemCMOS] (20200925/evregion-129)
Message repeated 1 times.

ADVICE: An attempt to dispatch an address space or operation region access to
CMOS memory has failed because the Linux kernel does not yet have a CMOS
handler. This may have little or no detrimental effect, however it is worth
examining the AML to see what kind of access is occurring to see if the firmware
really requires CMOS access. For example, recent firmware may implement Peak
Shift, which requires access CMOS memory and this can trigger this error.

FAILED [HIGH] KlogAcpiKlogRegionNoHandler: Test 1, HIGH Kernel message: [
6.074040] ACPI Error: Region SystemCMOS (ID=5) has no handler (20200925
/exfldio-261)
Message repeated 1 times.

ADVICE: An access (read or write) to an operation region has been attempted and
a region handler for this has not been implemented, this may need to be
implemented to provide the expected behaviour. See acpi_ex_access_region().

FAILED [CRITICAL] KlogAcpiParseOrExecFailure: Test 1, CRITICAL Kernel message: [
6.074044] ACPI Error: Aborting method \_SB.WMID.ESDT due to previous error
(AE_NOT_EXIST) (20200925/psparse-529)
Message repeated 1 times.

ADVICE: The ACPI engine has failed to execute some AML. The error message above
lists the method that caused this error.

FAILED [CRITICAL] KlogAcpiParseOrExecFailure: Test 1, CRITICAL Kernel message: [
6.074048] ACPI Error: Aborting method \_SB.PCI0.LPCB.EC0._Q42 due to previous
error (AE_NOT_EXIST) (20200925/psparse-529)
Message repeated 1 times.

ADVICE: The ACPI engine has failed to execute some AML. The error message above
lists the method that caused this error.
Comment 2 Bhanu 2021-09-27 14:48:36 UTC
Created attachment 298987 [details]
dumped output of compiling the dsdt.dsl attached with 'iasl' compiler

at line number 673 the above file contains some warnings releated to 'cmos' as follows :

dsdt.dsl  20832:         OperationRegion (CMOS, SystemIO, 0x70, 0x04)
Warning  3175 -                             ^ Static OperationRegion should be declared outside control method

dsdt.dsl  20832:         OperationRegion (CMOS, SystemIO, 0x70, 0x04)
Remark   2173 -                             ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\RDCM)

dsdt.dsl  20864:         OperationRegion (CMOS, SystemIO, 0x70, 0x04)
Warning  3175 -                             ^ Static OperationRegion should be declared outside control method

dsdt.dsl  20864:         OperationRegion (CMOS, SystemIO, 0x70, 0x04)
Remark   2173 -                             ^ Creation of named objects within a method is highly inefficient, use globals or method local variables instead (\WRCM)
Comment 3 Zhang Rui 2021-10-11 02:31:35 UTC
        Device (RTC)
        {
            Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  // _HID: Hardware ID
            Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
            {
                IO (Decode16,
                    0x0070,             // Range Minimum
                    0x0070,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                IRQNoFlags ()
                    {8}
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (Zero)
            }
        }

the RTC._STA returns Zero, which means it does not exist.
ACPI will not install the address space handler to a non-present device.
This might be the root cause of the issue.

Can you please modify the dsdt table to make it return 0x0F instead, and check if there is any difference?
Comment 4 Bhanu 2021-10-11 02:54:13 UTC
could you suggest(In reply to Zhang Rui from comment #3)
>         Device (RTC)
>         {
>             Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */)  //
> _HID: Hardware ID
>             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource
> Settings
>             {
>                 IO (Decode16,
>                     0x0070,             // Range Minimum
>                     0x0070,             // Range Maximum
>                     0x01,               // Alignment
>                     0x08,               // Length
>                     )
>                 IRQNoFlags ()
>                     {8}
>             })
>             Method (_STA, 0, NotSerialized)  // _STA: Status
>             {
>                 Return (Zero)
>             }
>         }
> 
> the RTC._STA returns Zero, which means it does not exist.
> ACPI will not install the address space handler to a non-present device.
> This might be the root cause of the issue.
> 
> Can you please modify the dsdt table to make it return 0x0F instead, and
> check if there is any difference?

I actually don't know, how to do it, could you provide some link or article which can guide me on steps to perform the said operation by you.

Note You need to log in before you can comment on or make changes to this bug.