BIOS NVRAM Tokens
Here is a list with all discovered NVRAM Tokens found in the BIOS. Some of them are documented in here.
All of this tokens are used for getting or setting a variable value when BIOS needs to set something up like the Audio IRQ for example.
This values are stored in the virtual CMOS of the system that is 512 bytes long. For saving more than 512 variable values, a masking technique was used to store more than 1 token value per byte. One byte from the CMOS will keep 3 or 4 NVRAM tokens values. Every NVRAM token has a mask that is applied to a CMOS byte to get the desired variable value.
So a NVRAM Token will define the CMOS offset for a specific byte and the mask to extract only the needed bites from that byte.
********************************************
For example to get the Audio IRQ from the NVRAM Token "AI" next computations are made:
3E52 call NVRAM_get_token_data_sub_8156
********************************************
Tokens with their data found at 3CE0h offset in the BIOS Boot Block:
- TY = Power Management - STANDBY_TIMEOUT // 1 byte
- TS = Power Management - SUSPEND_TIMEOUT // 1 byte
- TI = Power Management - DOZE_TIMEOUT (idle) // 1 byte
- T1 = Power Management - DISK_TIMEOUT // 1 byte
- TF = Power Management - FLOPPY_TIMEOUT //1 byte
- TK = Power Management - PS2_TIMEOUT (keyboard, mouse) // 1 byte
- TV = Power Management - VIDEO_TIMEOUT // 1 byte
- TC = Power Management - SERIAL_TIMEOUT
- TP = Power Management - PARALLEL_TIMEOUT // 1 byte
- PM = Power management enable // 1 bit
- W1 = Wakeup mask PIC1 // 1 byte
- W2 = Wakeup mask PIC2 // 1 byte
- P7 = Advanced Power Management - APM_PRESENT
- P8 = Advanced Configuration and Power Interface - ACPI_PRESENT
- P9 = Power Management - PM_S1_CLOCKS
- PB = CHIPSET - VRC_CS_PWRBTN
- .........................................
- AI = Audio IRQ = 2bits -> 05h value
- AU = Audio enable = 1 bit
- AA = Audio base address = 2 bits
- A1 = Audio 8-bit DMA = 2 bits
- A2 = Audio 16-bit DMA = 2 bits
Comments
Post a Comment