Does ACPI dream of electric sheep, during S5?

Written on 21 Mar, 2025.

I bought a mini PC and I wanted to set it up so that if power goes out, it automatically starts again when power is back. In the BIOS settings I had to change this configuration:

State After G3: could be set to S5 State or S0 State.

But what does this mean exactly?

ACPI

Before we get into G3, S5 or S0, let's start with an introduction of who is responsible for deciding what they mean.

The "Advanced Configuration and Power Interface" is the open standard that can be found in every computer nowadays. Initially developed in December 1996 by Intel, Microsoft, and Toshiba, and now owned by the UEFI Forum alliance. As you can imagine, having a bunch of hardware manufacturers and software developers to agree on a common interface is not a joke. ACPI is one of those things that I never really understood or cared about, but simplified my life indirectly.

Global states (Gx)

Once your OS activates ACPI, it's their responsibility to take care of everything related to power management.

ACPI defines four global states. Your ACPI-compliant machine is always in one of these states:

Sleep states

Sleeping mode comes with different flavors, so ACPI defines six different states. Your ACPI-compliant machine is always in one of these sleep states:

It should be clearer now what that configuration in the BIOS settings meant by "State after G3". It's a way of setting what state you want to set your machine to when passing from G3 to G2 (i.e. when connecting a source of power). In my case, I set it to S0, which means to start working.

Ciao!

P.S. we still often refer to "BIOS settings", even it should be technically more accurate to call it "UEFI settings" or more generically "firmware settings".

logo

I'm Antonio, a software engineer with a passion for distributed systems and clean maintainable software.

Currently co-founder of Warden Protocol.

I first got into blockchains working at Emeris for Ignite (previously known as Tendermint).

Before that, I started a meetup group called pisa.dev, and I was among the first engineers for projects such as Traent and Zerynth.