
01-01-2003, 06:15 AM
|
 |
Member
|
|
Join Date: Oct 2002
Location: England
Posts: 50
|
|
|
ACPI Errors
I was looking in my event log for to try and solve one of my previous D3D problems (still no luck) and then I found these errors, could they be the cause? And how do I fix them? Please tell me if you know.
There are four errors every time the computer is booting up, they read as following:
1. AMLI: ACPI BIOS is attempting to read from an illegal IO port address (0x71), which lies in the 0x70 - 0x71 protected address range. This could lead to system instability. Please contact your system vendor for technical assistance.
2. AMLI: ACPI BIOS is attempting to write to an illegal IO port address (0x70), which lies in the 0x70 - 0x71 protected address range. This could lead to system instability. Please contact your system vendor for technical assistance.
3. AMLI: ACPI BIOS is attempting to read from an illegal IO port address (0xcfc), which lies in the 0xcf8 - 0xcff protected address range. This could lead to system instability. Please contact your system vendor for technical assistance.
4. AMLI: ACPI BIOS is attempting to write to an illegal IO port address (0xcf8), which lies in the 0xcf8 - 0xcff protected address range. This could lead to system instability. Please contact your system vendor for technical assistance.
I don't actually know what ACPI means so please fill me in, and i've never really touched the bios except to change an agp value once.
__________________
There are 3 types of people in this world,
1. Those who can count
2. Those who cannot
|

01-01-2003, 07:08 AM
|
 |
Temporary Ban
|
|
Join Date: Sep 2002
Location: In a plasma conduit
Posts: 1,625
|
|
|
Advanced configuration power interface. It controls standby functions etc.
May i suggest a check of the bios power settings, turn control off there and let XP handle it.
A bios upgrade may cure it, but in view of the dangers involved, not recommended.
__________________
Where there's a will, There's a way.
Pay developers, not Rapidshare!
I know nowt, but at least I'm trying. 
Quality, not quantity.
Prevention is better than cure.
|

01-02-2003, 05:18 AM
|
 |
Member
|
|
Join Date: Oct 2002
Location: England
Posts: 50
|
|
|
OK i'm willing to give this a try, but i'm not entirely sure what it is that I will need to change, are you able to tell me what I need to change or is this simply a specific problem to my pc?
__________________
There are 3 types of people in this world,
1. Those who can count
2. Those who cannot
|

01-02-2003, 06:26 PM
|
 |
Temporary Ban
|
|
Join Date: Sep 2002
Location: In a plasma conduit
Posts: 1,625
|
|
|
Enter the bios by pressing the relevent key (usually delete).
Go to the power management page and make sure that "ACPI aware OS" or maybe "P&P OS" is set to yes.
Set power management to disabled. Exit, saving changes and see how you go.
I have known this problem to occur on some mainboards, (one of mine included).
__________________
Where there's a will, There's a way.
Pay developers, not Rapidshare!
I know nowt, but at least I'm trying. 
Quality, not quantity.
Prevention is better than cure.
|

01-03-2003, 05:17 AM
|
 |
Member
|
|
Join Date: Oct 2002
Location: England
Posts: 50
|
|
|
Thanks for that help, but it seems I do not have those options in my BIOS, here's what I do get under the power options":
ACPI Function: Enabled
Power Management: Press Enter
PM control by APM: Yes
Video Off Option: Suspend->Off
Video Off Method: V/H SYNC+Blank
Modem use IRQ: 3
Soft-off by PWRBTN: Start off
Wakeup Events: Press Enter
Under the power management menu, evrything there was disabled.
I'm not sure if i'm doing something wrong or missing something so please help me out.
__________________
There are 3 types of people in this world,
1. Those who can count
2. Those who cannot
|

01-04-2003, 05:35 AM
|
 |
Junior Member
|
|
Join Date: Sep 2002
Location: Hilton Head Island,SC
Posts: 3
|
|
|
Here's The Deal on this error. A BIOS update may solve this problem,but I would be careful and usually XP deals with this issue effectively and thus the erroor message is benign. I have had this message on every boot up for a year.
I/O Ports Blocked from BIOS AML on Windows XP
Contents:
Introduction
Changes in Windows XP
Windows XP BIOS Compatibility Determined Using _OSI
Windows XP and Legacy BIOS ASL Implementations
Accessing BIOS Non-volatile Memory (CMOS NVRAM)
Affected System Resources and Addresses
Call to Action
ACPI BIOS implementations that directly access certain system hardware resources from AML code cannot be synchronized with operating system access to the same resources, which can cause the operating system to become unstable or to stop responding. This article describes issues related to BIOS AML firmware accessing system board resources, and the changes implemented to address these issues in the Microsoft® Windows® XP operating systems and Windows .NET server.
Introduction
During the development of the Windows XP operating system, Microsoft discovered many ACPI BIOS implementations that directly access and attempt to manipulate system hardware resources from BIOS ASL code. At run time, system board resources must not be simultaneously accessed or modified by both the BIOS and the operating system, because these accesses cannot be synchronized with operating system access to the same system resources. As a result, BIOS read or write access to these resources can cause adverse effects, ranging from general instability to causing the system to stop responding.
Historically, error conditions of this nature might have been construed by the operating system as an unrecoverable error, resulting in a stop error (blue screen) and system shutdown. In an effort to improve the end user experience and increase system reliability, Windows XP has been re-designed as described in this article.
Changes in Windows XP
While developing and testing Windows XP a list of system board resources was identified that, when accessed from BIOS AML code, proved to be the most problematic. This article refers to the list of addresses associated with these resources as the "blocked ports list." Table 1 lists affected system resources and their associated I/O addresses.
The ACPI AML interpreter in the Windows XP kernel monitors all attempts by BIOS AML code to read from or write to the specific addresses on the blocked ports list. When a read or write access is detected at any of these addresses, the following actions will occur:
An error will be added to the system event log stating that the ACPI AML interpreter has detected an illegal read or write, and that this read or write has been blocked.
For BIOS AML code that indicates compatibility with the Windows XP ACPI implementation, the operating system will block all read and write accesses to these addresses. This compatibility is determined by the AML code calling the _OSI method, as described later in this article.
For BIOS AML code that is compatible with versions of Windows released before Windows XP, the operating system will allow the read or write access to succeed in most cases, but will still add an error to the system event log.
Accesses to the Programmable Interrupt Controller (PIC) and cascaded PIC, and to PIC Edge/Level Control Registers, are always blocked because BIOS access to these ports is potentially catastrophic and might prevent the system from running. These I/O addresses are noted in Table 1.
Windows XP BIOS Compatibility Determined Using _OSI
The specific actions taken by the operating system when read or write accesses to these resources are detected depends on the version of ACPI interface that the BIOS indicates it supports. This is determined through the BIOS use of the _OSI method as described in this article.
For complete details about the _OSI method, see How to Identify Windows Versions in ACPI Using _OSI.
The _OSI method is being introduced with the Windows XP operating system. BIOS ASL code can test for the level of features supported in the current Windows operating system by passing a string to the _OSI method. The operating system returns TRUE for any string that represents a feature set that it can support. Windows XP, for example, returns TRUE for the string "Windows 2001".
By passing the string "Windows 2001" into the _OSI method, the BIOS indicates to the operating system that the BIOS is aware of and compatible with the ACPI implementation and feature set of Windows XP. Windows XP will then reject all I/O reads or writes from BIOS ASL code to addresses on the blocked ports list and generate an error in the system event log.
Windows XP and Legacy BIOS ASL Implementations
For those BIOS implementations that are compatible with versions of Windows released before Windows XP, the operating system will allow the read or write access to succeed in most cases. Accesses to the PIC and cascaded PIC, and to the PIC Edge/Level Control Registers, are always blocked. In all cases an error will be written to the system event log.
To help ensure system stability on systems with legacy BIOS ASL implementations, Windows XP attempts to synchronize accesses to resources whenever possible. For example:
When a read or write access is detected to the CMOS/RTC index and data pair registers at I/O addresses 0x70 and 0x71, the operating system does the following:
Disables interrupts
Preserves the contents of the index (address) register
Allows the ASL code access to proceed
Restores the value of the index register
This process helps prevent a race condition in which the operating system writes the desired address to the index register and a BIOS method changes the address in the index register before the operating system can access the intended data register, causing the operating system to use the wrong index value.
Note: This approach cannot guarantee that the CMOS address register (0x70) will not be corrupted on multi-processor systems.
ASL code that attempts to access the PCI Configuration Space registers at
0xCF8 – 0xD00 is re-routed by the kernel AML interpreter to call HalGetBusDataByOffset, which allows access to system resources to be properly synchronized.
Accessing BIOS Non-volatile Memory (CMOS NVRAM)
With these changes in Windows XP, BIOS developers may be looking for alternative methods to access CMOS NVRAM. The following examples present some possible solutions.
Reading from CMOS NVRAM
This example ASL code defines an operation region in the system memory address space. During POST, BIOS code copies the data from CMOS to this memory area. ASL code can then use fields to read the CMOS data.
Each CMnn field in the example corresponds to 8 bits of CMOS. The BIOS engineer is responsible for defining these fields appropriately. Each field of this memory can be any combination of bits.
During system boot, BIOS POST code should update this memory area with the value written in the CMOS before handing off to the operating system. Once the operating system has switched to ACPI mode, any attempt to read CMOS from ASL code should be done by reading from these memory locations and not from CMOS NVRAM I/O ports.
// Declare a memory operation region for 255 bytes of CMOS.
// First 0 to 127 bytes reflects CMOS access from IO ports 0x70
// and 0x71 and the subsequent bytes reflect CMOS access from IO
// ports 0x72 to 0x73. BIOS code should properly set up the base
// address of the beginning of this memory range at offset during
// BIOS POST.
OperationRegion (CMRM, SystemMemory, offset, 255) //Operation Region
Field (CMRM, AnyAcc, NoLock, Preserve) { //Field
// Memory corresponding to addresses 0x70, 0x71
CM00, 8,
CM01, 8,
CM02, 8,
.
.
CM7f, 8,
// Memory corresponding to addresses 0x72, 0x73
CM80, 8,
.
.
CMFF
} // End of CMOS field
The following is an example of ASL code which reads from CMOS offset 52 bits 4 to 7 and returns the value read.
// This example returns bits 4 to 7 of CMOS offset 52
Method (RDCM) {
ShiftRight (CM52, 4, Local0)
Return (Local0)
}
Writing to CMOS NVRAM
BIOS code should write to CMOS NVRAM by generating a system management interrupt (SMI). AML code can generate a SMI by writing a specific value to the SMI command port. AML code can pass the CMOS offset and value to be written through the NVRAM memory operation region. The BIOS SMI handles the writes to CMOS, and also updates the memory area pointed by the CMRM operation region to reflect the correct CMOS contents.
Affected System Resources and Addresses
Table 1 lists the system resources and associated I/O addresses that should not be directly accessed by BIOS AML code (the "blocked ports" list).
Table 1 – Blocked I/O Port Addresses and System Board Resources
Address Function Comments
0x000 – 0x00F DMA Controller 1
0x020 – 0x021 Programmable Interrupt Controller Access is never allowed*
0x040 – 0x043 System Timer 1
0x048 – 0x04B Timer 2 Failsafe
0x070 – 0x071 System CMOS, RTC
0x074 – 0x076 Extended CMOS
0x081 – 0x083 DMA1 Page Registers
0x087 DMA1 CH0 Low Page
0x089 DMA2 CH2 Low Page
0x08A – 0x08B DMA2 CH3 Low Page,
0x08F DMA2 Low Page Refresh
0x090 – 0x091 Arbitration Control Port
Card Select Feedback
0x093 – 0x094 Reserved System Board Setup
0x096 – 0x097 POS Channel Select
0x0A0 – 0x0A1 Cascaded Programmable Interrupt Controller Access is never allowed*
0x0C0 – 0x0DF ISA DMA
0x4D0 – 0x4D1 PIC Edge/Level Control Registers Access is never allowed*
0xCF8 – 0xD00 PCI Configuration Space Access
*Read or write accesses to these ports are always blocked, regardless of the BIOS use of the _OSI method.
|

01-04-2003, 07:19 AM
|
 |
Temporary Ban
|
|
Join Date: Sep 2002
Location: In a plasma conduit
Posts: 1,625
|
|
WOW! where did you get that from?
In view of Jfactors previous posts in this thread, he is obviously non technical and your post is somewhat overkill don't you think? I don't understand it fully myself. In short Jfactor, just ignore it. It is a recognised "flaw" of the hardware when married to XP and no harm will come from it.
I would suggest a bios upgrade is the only real course of action. sorry 
__________________
Where there's a will, There's a way.
Pay developers, not Rapidshare!
I know nowt, but at least I'm trying. 
Quality, not quantity.
Prevention is better than cure.
Last edited by Disk_Contented : 01-04-2003 at 07:22 AM.
|

01-06-2003, 04:02 AM
|
 |
Junior Member
|
|
Join Date: Sep 2002
Location: Hilton Head Island,SC
Posts: 3
|
|
|
Yeh--My reaction to that article was about the same as yours--OK,
so what now? It was comforting to learn that at least somewhere out
there someone was obviously right on top of it.
I make no representations on this solution because every time I reinstall I forget to try it:
Fresh install with no ACPI.
Views: 37718 | Print Tweak | 8/12/2002
Just press F5 after the first screen asking
if you have raid devices to install (will ask at
bottom of screen to press F6) keep pressing F5 to second screen where it will ask to press F2 for recovery console. Keep holding F5 and should get another screen where it will say that it cannot recognize type of pc. There you have two choices: standard pc and other. Select standard and voila no ACPI will be installed.
The error is onviously very technical and thus it is possible that this solution may work.
|

01-06-2003, 07:40 AM
|
 |
Temporary Ban
|
|
Join Date: Sep 2002
Location: In a plasma conduit
Posts: 1,625
|
|
But i have used a "standard PC" that had ACPI functions. Standard PC is what you get from XP when your hardware is not fully ACPI compatable. e.g you may have all functions but standby or hibernate
If you set the bios to non plug and play, that used to stop it installing.
The previous explanation you posted is probably of use to programmers only.
From Jfactor1's initial post, the only answer i can see is a bios upgrade. (assuming all other bios settings are correct) This may, or may not stop the illegal system accesses. It depends how old the system is.
Jfactor, give me your mainboard number and wee'll see what i can turn up.
__________________
Where there's a will, There's a way.
Pay developers, not Rapidshare!
I know nowt, but at least I'm trying. 
Quality, not quantity.
Prevention is better than cure.
Last edited by Disk_Contented : 01-06-2003 at 07:43 AM.
|

12-23-2006, 09:00 AM
|
|
Registered User
|
|
Join Date: Dec 2006
Posts: 1
|
|
|
ACPI error messages
I've a compaq armada 1750 which I've way upgraded (processor, ram, hard drive). XP autodetects the PC as ACPI (the minimum one, not ACPI Uniprocessor with extended interrupts)
It seems to also has a 'dysfunctional' ACPI bios implementation. Most of the Linux-posts on the matter, recommend running the machine as APM.
I tried to do the same with windows (which also gets rid of these eventlog errors, however benign), but there is no APM option in power managment to turn on when using the Standard PC HAL (forcing with F5 during setup). APMSTAT returns 'This is an ACPI machine. APM is NOT applicable.'
Any ideas?
|
| Thread Tools |
Search this Thread |
|
|
|
| Display Modes |
Rate This Thread |
Linear Mode
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
All times are GMT -5. The time now is 05:52 PM. |
|
|
|