
Hi Simon,
On Sun, May 8, 2016 at 2:45 AM, Simon Glass sjg@chromium.org wrote:
Hi Bin,
On 7 May 2016 at 08:46, Bin Meng bmeng.cn@gmail.com wrote:
This series introduces initial ACPI support for Intel BayTrail.
Advanced Configuration and Power Interface (ACPI) aims to establish industry-standard interfaces enabling OS-directed configuration, power management, and thermal management of mobile, desktop, and server platforms.
Linux can boot without ACPI with "acpi=off" command line parameter, but with ACPI the kernel gains the capabilities to handle power management. For Windows, ACPI is a must-have firmware feature since Windows Vista. CONFIG_GENERATE_ACPI_TABLE is the config option to turn on ACPI support in U-Boot. This requires Intel ACPI compiler to be installed on your host to compile ACPI DSDT table written in ASL format to AML format. You can get the compiler via "apt-get install iasl" if you are on Ubuntu or download the source from acpica website to compile one by yourself.
Current ACPI support in U-Boot is not complete. More features will be added in the future. The status as of today is:
- Support generating RSDT, XSDT, FACS, FADT, MADT, MCFG tables.
- Support one static DSDT table only, compiled by Intel ACPI compiler.
- Support S0/S5, reboot and shutdown from OS.
- Support booting a pre-installed Ubuntu distribution via 'zboot' command.
- Support ACPI interrupts with SCI only.
Features not supported so far (to make it a complete ACPI solution):
- S3 (Suspend to RAM), S4 (Suspend to Disk).
- Install and boot Ubuntu 14.04 (or above) from U-Boot with legacy interface.
- Install and boot Windows 8.1/10 from U-Boot with legacy interface.
Features that are optional:
- ACPI global NVS support. We may need it to simplify ASL code logic if utilizing NVS variables. Most likely we will need this sooner or later.
- Dynamic AML bytecodes insertion at run-time. We may need this to support SSDT table generation and DSDT fix up.
- SMI support. Since U-Boot is a modern bootloader, we don't want to bring those legacy stuff into U-Boot. ACPI spec allows a system that does not support SMI (a legacy-free system).
So far ACPI is enabled on BayTrail based boards. Testing was done by booting a pre-installed Ubuntu 14.04 from a SATA drive. Most devices seem to work correctly and the board can respond a reboot/shutdown command from Ubuntu.
It's great to see this - a big step forward!
Thanks for the review.
A few general comments:
- when building, the Intel ACPI tools output some non-warning info -
can you quieten this down? It should not appear when 'make -s' is used
Sure.
- is it OK to enable other tables along with ACPI? The docs seem to be
silent on this point
I believe other tables are optional, as Linux can boot now. But maybe there are some tables that Windows need. I will continue working on this.
- for me Ubuntu does not offer an option in the GUI to restart...I can
do it from the command line. On my normal desktop I see a power button in the top right. I wonder why this doesn't work on minnowmax?
Maybe there are some issues with your installation? I can see a power button in the top right on my minnowmax. I installed Ubuntun 14.04.4 64-bit OS (http://releases.ubuntu.com/14.04/ubuntu-14.04.4-desktop-amd64.iso) with the original UEFI BIOS on the board.
[snip]
Regards, Bin