Why do we need deep S3?
A: Deep S3 can save more power consumption for notebook battery life.
How does the deep S3 work?
A: Deep S3 will automatically activate when notebook only attach the battery without AC plug-in and during S3. System goes to sleep to S3 will check the AC adapt is present or not. If AC is plug-in, the system will enter normal S3. If system without AC plug-in, the system will enter deep S3.
More information can refer to "Intel Deep S3 Implementation Guide".
Search This Blog
Thursday, August 25, 2011
Sunday, August 21, 2011
AMD UMI and PCIe Bridge Register Access Method
If we want to access the UMI and the FCH/GPP link interface could through the following register spaces: ABCFG, AXCFG, AXINDC, AXINDP, RCINDC, and RCINDP
Change the register spaces must through the AB_INDX/AB_DATA register pair. You can get the AB_INDX through PM_REG that IO index port 0xCD6 and IO data port 0xCD7 offset 0xE0 register.
For example, if the PM_REG offset 0xE0 is 0xCD8 that means the AB_INDX is 0xCD8 and AB_DATA is equal to AB_INDX + 4.
========================================
AXINDC Registers:
AX_INDXC 0x30
AX_DATAC 0x34
Example 1: For Write Temp to AXINDC 20h
Out CD8h, 00000030h
Out CDCh, 00000020h
Out CD8h, 00000034h
Out CDCh, Temp
=========================================
AXINDP Registers:
AX_INDXP 0x38
AX_DATAP 0x3C
Example 2: For Write Temp to AXINDP 20h
Out CD8h, 40000030h
Out CDCh, 00000020h
Out CD8h, 40000034h
Out CDCh, Temp
=========================================
AXCFG Registers:
Example 3: For Write Temp to AXCFG 03h
Out CD8h, 80000003h
Out CDCh, Temp
=========================================
ABCFG Registers:
Example 4: For Write 0xFFFFFFFF to ABCFG 04h
Out CD8h, C0000004h
Out CDCh, FFFFFFFFh
=========================================
RCINDC Registers:
Example 5: For Write Temp to RCINDC 14h
Out CD8h, 20000014h
Out CDCh, Temp
=========================================
RCINDP Registers:
Example 6: For Write Temp to RCINDP A0h(PortB)
Out CD8h, 610000A0h
Out CDCh, Temp
Wednesday, August 10, 2011
How to know the notebook panel resolution during POST
The horizontal can get from EDID table bytes 0x38(lower 8 bits) and 0x3A(Upper 4:4 bits).
For example:
Bytes Value
0x38 0xA0
0x3A 0x50
Horizotal = (Offset (0x3A) & 0xF0 << 4) + Offset (0x38)
= (0x50 << 4) + 0xA0
= 0x5A0 (Hex)
= 1440 (Dec)
The vertical can get from EDID table bytes 0x3B(lower 8 bits) and 0x3D(Upper 4:4 bits).
For example:
Bytes Value
0x3B 0x84
0x3D 0x30
Vertical = (Offset (0x3D) & 0xF0 << 4) + Offset (0x3B)
= (0x30 << 4) + 0x84
= 0x384 (Hex)
= 900 (Dec)
Therefore, we can know the panel resoultion is 1440 * 900 for this example.
For example:
Bytes Value
0x38 0xA0
0x3A 0x50
Horizotal = (Offset (0x3A) & 0xF0 << 4) + Offset (0x38)
= (0x50 << 4) + 0xA0
= 0x5A0 (Hex)
= 1440 (Dec)
The vertical can get from EDID table bytes 0x3B(lower 8 bits) and 0x3D(Upper 4:4 bits).
For example:
Bytes Value
0x3B 0x84
0x3D 0x30
Vertical = (Offset (0x3D) & 0xF0 << 4) + Offset (0x3B)
= (0x30 << 4) + 0x84
= 0x384 (Hex)
= 900 (Dec)
Therefore, we can know the panel resoultion is 1440 * 900 for this example.
Subscribe to:
Posts (Atom)