Re: [RFC PATCH 04/14] ACPI: Add ACPI 5.0 Time and Alarm Device driver

From: H. Peter Anvin
Date: Wed Jan 08 2014 - 12:57:16 EST


On 01/08/2014 06:59 AM, joeyli wrote:
>
> ACPICA denied AML access RTC ports.
>
> I tried to access 0x70, 0x71 ports in ASL on a real machine, ACPICA
> denied AML access to those ports. I got the following dmesg:
>
> hwvalid-0188 hw_validate_io_request: Denied AML access to port
> 0x0000000000000071/1
>
> The code in acpica denied it:
>
> linux/drivers/acpi/acpica/hwvalid.c
>
> * This provides ACPICA with the desired port protections and
> * Microsoft compatibility.
> *
> * Description of port entries:
> [...]
> * RTC: Real-time clock
> * CMOS: Extended CMOS
> [...]
> */
> static const struct acpi_port_info acpi_protected_ports[] = {
> [...]
> {"RTC", 0x0070, 0x0071, ACPI_OSI_WIN_XP},
> {"CMOS", 0x0074, 0x0076, ACPI_OSI_WIN_XP},
>
>
> Document of Windows XP:
> http://www.freelists.org/post/windows_errors/what-error-messages-really-mean-WinXP-IO-Ports-Blocked-from-Bios-AML-on-Windows-XP
>
> If just for ACPI TAD testing, we can remove the port protection check of
> RTC ports in hwvalid.c. I have read 0x70/0x71 port success after removed
> the checking in acpica/hwvalid.c.
>
> I will try to write RTC port in AML after remove acpica check, maybe
> have other unpredictable situation.
>

Now *THERE* is a good use of the "no RTC bit". In the case that bit is
set we should presumably remove these ports from the block list.

Otherwise we should use the CMOS address space, not the I/O port address
space.

-hpa


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/