I know that entering ACPI mode is by setting the SCI_EN bit after receiving an event, but why does the OS start ACPI mode when this bit is set? Why is the SCI_EN bit set instead of other bits when an event is received?
Why does OS know it's time to enter ACPI mode
181 Views Asked by LYJ At
1
There are 1 best solutions below
Related Questions in OPERATING-SYSTEM
- Why two threads accessing one resource crashes one thread?
- How to tell the difference between linux and mac
- Can a single thread be shared among multiple processes ? If yes how?
- /usr/lib/* files had been deleted, how to restore these files
- What does a POSIX interface refer to in terms of microkernels?
- Is zero copy principle supported in Mac
- Why segment files into chunks for HTTP streaming?
- Add/remove process from kernel runqueue
- How does my computer know to which character a char corresponds?
- Who starts the OS process scheduler?
- ^M behind operating system version?
- How to make a scanf() type function in a 32bit os in c?
- How is `dup2` actually working?
- Logged in hostname/IP in linux command history
- Had 16-bit DOS a memory access limitation of 1 MB? If yes, how?
Related Questions in BIOS
- How to use real mode BIOS / VESA calls from GRUB?
- board firmware update through uefi capsule feature from Linux
- Assembly equivalent of array of function pointers?
- an issue when trying to enable virtualization
- How to write a BIOS program that runs before the OS?
- int 10h 13h bios string output not working
- Access BIOS-ROM in Assembly language (NASM)
- How read/write data on my laptop BIOS?
- Using BIOS functions through C++
- How to enable virtualization in bios windows 8 using AMD E1-2100 APU G505?
- How to jump if there is no keyboard key pressed
- GRUB2 + VESA BIOS Extensions / VBE broken?
- How to check the BIOS version or name in Linux through a command prompt?
- Why is the memory size returned by E801h BIOS interrupt 15h ignored on linux?
- grub2, grub-mkrescue, bios, vbe framebuffer, custom kernel
Related Questions in ACPI
- How to turn the screen blanking/sleep mode off under CentOS 7?
- How is i2c clock frequency value passed from BIOS to driver?
- Linux Shell scripting: Storing the output of a command line program
- After pm-suspend computer immediately wakes up. How to determine what caused it?
- adding i2c client devices on x86_64
- ACPI event not triggering associated action
- How do I discover the ACPI id for a laptop touchpad in Linux?
- How can I obtain battery level inside a Linux kernel module?
- Cannot get ACPI GPEs and notifications to work
- Maxim MAX14830 in Linux x86 / ACPI
- Hybrid graphics in linux
- In gnome w/ xmonad, how can I call a script when a monitor is plugged in OR when docking my laptop?
- Linux analogue to Windows' SetSystemPowerState?
- "socket.error: [Errno 111] Connection refused" when attempting to monitor ACPI event in Python
- How do I call ACPI control methods from C++ or C# on Windows?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
When a computer is first turned on firmware is in control of power management, and anything that would cause a power management event is treated as an SMI to cause the firmware to enter a special mode called System Management Mode where it can determine what the event was and take care of the event.
When an OS wants control of power management it uses
SCI_EN, which mostly triggers another switch firmware's System Management Mode so that firmware can prepare to transfer control from itself to the OS. Once this completes (and control is returned from SMM to OS), anything that would cause a power management event is treated as an SCI ("System Control Interrupt") which is handled by the OS (and not handled by the firmware's SMM code); and the OS determines what the event was and take care of the event.No,
SCI_ENis set by OS before it can receive an event (and not after OS receives an event).If the OS never sets the
SCI_ENbit; then the computer is in "legacy mode" (with firmware doing all the power management).I'd guess the
SCI_ENbit is just left as "set" after the OS sets it (it's fulfilled it's only purpose at that point).