Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Jun 2006 09:15:48 -0700
From:      Nate Lawson <nate@root.org>
To:        robertsg@westnet.com.au
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: acpi: bad write to port
Message-ID:  <449EB6B4.1010601@root.org>
In-Reply-To: <200606232251.15593.robertsg@westnet.com.au>
References:  <200606232251.15593.robertsg@westnet.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
Geoff Roberts wrote:
> I'm not sure if this is the correct list, please let me know if it 
> belongs on another list.
> 
> Since upgrading from 6.0 to the latest RELENG_6 branch the following 
> message appears every 10 seconds (exactly):
> 
> Jun 22 15:00:06 emmapc kernel: acpi: bad write to port 0x070 (8), val 
> 0x59
> Jun 22 15:00:06 emmapc kernel: acpi: bad read from port 0x071 (8)
> 
> I am using a Gigabyte GA60MM7E Rev 2.0 motherboard. It also has a PCI 
> SATA controller using a Si 3112 chip, a RealTek network card and a 
> Netgear WG311 wireless card.
> 
> I've included the output of dmesg and pciconf -lv
> 
> Any idea as to what might be causing this? Please let me know if there 
> is some more information required.

The IO access has always been going on, we just started catching it 
recently.  Those are the CMOS/RTC ports and it's not appropriate for the 
BIOS to access them.

This is from OsdHardware.c log:
revision 1.18
date: 2006/03/29 06:41:56;  author: njl;  state: Exp;  lines: +76 -0
Add a blacklist for bad IO ports that AML should never touch.  It seems
some systems were designed so that AML writes to various resources shared
with OS drivers, including the RTC, PIC, PCI, etc.  These writes could
collide with writes by the OS and should never be performed.  For now, we
print a message if such an access occurs, but do not block it.  To block
the access, the tunable "debug.acpi.block_bad_io" can be set to 1.  In the
future, we will flip the switch and this will become the default.

Information about this problem was found in Microsoft KB 283649.  They
block IO accesses if the BIOS indicates via _OSI that it is Windows 2001
or higher.  They always block accesses to the PIC, cascaded PIC, and ELCRs,
no matter how old the BIOS.


To test if disabling these writes hurts your system, try booting with 
debug.acpi.block_bad_io=1 set at the loader prompt.  If there's a 
problem, let me know what happened.  This helps us gather info for when 
we flip the switch to disabling such writes by default.

-- 
Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?449EB6B4.1010601>