7 Replies Latest reply on Feb 5, 2018 8:20 AM by Carlos_A

    PMC Controller

    rvmuhilan1978 Community Member

      Dear all,

      I have programmed APM controller in 8-series PCH to move to soft-off sleep state. But now it has been moved to Bus 0, Device 31 and Function 2.Below is the code for moving to soft-off sleep state upto X99 PCH.

       

       

      _BtLdrTurnOffPC:

       

      push ax

      push bx

      push cx

      push dx

      push si

      push di

      push ds

      push es

      cli

      mov eax,0x8000F840; Bus 0, Device 31, Function 0, Offset 0x40

      mov dx,0x0CF8

      out dx,eax

      mov dx,0x0CFC

      in ax,dx

      and ax,0xFFFE

      mov dx,ax

      add dx,0x0004

      mov eax,0x00003C00

      out dx,eax

      pop es

      pop ds

      pop di

      pop si

      pop dx

      pop cx

      pop bx

      pop ax

      ret

       

      Will the following code work with no change for 100-series PCH onwards?

       

       

      _BtLdrTurnOffPC:

       

      push ax

      push bx

      push cx

      push dx

      push si

      push di

      push ds

      push es

      cli

      mov eax,0x8000FA40 ; Bus 0, Device 31, Function 2, Offset 0x40

      mov dx,0x0CF8

      out dx,eax

      mov dx,0x0CFC

      in ax,dx

      and ax,0xFFFE

      mov dx,ax

      add dx,0x0004

      mov eax,0x00003C00

      out dx,eax

      pop es

      pop ds

      pop di

      pop si

      pop dx

      pop cx

      pop bx

      pop ax

      ret

       

      Thanks in advance. Kindly intimate me as early as possible since this is urgent.

        • Re: PMC Controller
          Carlos_A Brown Belt

          Hello, rvmuhilan1978 :

           

          Thank you for contacting Intel Embedded Community.

           

          In order to be on the same page, we would like to address the following questions:

           

          Could you please tell us if these consultations are related to your own design or a third party design? In case that it is a third party design, could you please give us all the information related to it? In case that it is your own design, could you please give us the part numbers and SKUs of the processor and chipset related to it?

           

          Could you please inform us the documents that you have used to determine all the information stated in this thread? Please include section, pages, and all the details.

           

          Waiting for all the information that should answer our questions.

           

          Best regards,

          Carlos_A.

            • Re: PMC Controller
              rvmuhilan1978 Community Member

              Dear all,

               

              This is Muhilan Veerarasu from India. This code is my own design. I referred following for 8-series PCH ACPI.

               

              Manual:- Intel 8-series-chipset-pch-datasheet.pdf

              Chapter:- 5 - Functional description

              Sections:- 1. 5.14 - Power management

                               2. 5.14.7.2 - Initiating sleep state.

                               3. 12.1.13 - ACPI BASE ADDRESS REGISTER

                               4. 18.8.3 - Power Management I/O Registers

              And i designed following code for 8-series PCH Motherboards.

               

              _BtLdrTurnOffPC:

              push ax

              push bx

              push cx

              push dx

              push si

              push di

              push ds

              push es

              cli

              mov eax,0x8000F840; Bus 0, Device 31, Function 0, Offset 0x40

              mov dx,0x0CF8

              out dx,eax

              mov dx,0x0CFC

              in ax,dx

              and ax,0xFFFE

              mov dx,ax

              add dx,0x0004

              mov eax,0x00003C00

              out dx,eax

              pop es

              pop ds

              pop di

              pop si

              pop dx

              pop cx

              pop bx

              pop ax

              ret

               

              In the above code, I directly fetch APM Base address register and turn off PC. However, From Intel 100-series PCH onwards, PMC has be moved to new PCI Bus location.

              I modified this code to following with some changes for intel 100-series PCH motherboard onwards.. This code has be designed with Bus# 0, Device# 31, Function# 2 and offset 0x40(ACPI Base address register).

               

              _BtLdrTurnOffPC:

              push ax

              push bx

              push cx

              push dx

              push si

              push di

              push ds

              push es

              cli

              mov eax,0x8000FA40 ; Bus 0, Device 31, Function 2, Offset 0x40

              mov dx,0x0CF8

              out dx,eax

              mov dx,0x0CFC

              in ax,dx

              and ax,0xFFFE

              mov dx,ax

              add dx,0x0004

              mov eax,0x00003C00

              out dx,eax

              pop es

              pop ds

              pop di

              pop si

              pop dx

              pop cx

              pop bx

              pop ax

              ret

               

              Will this code work? Will bios write ACPI Base address register and will enable it?

               

              Thanks in advance. Kindly intimate me as early as possible since this is urgent.