coreboot/src/cpu/intel
Duncan Laurie 25b8b7b881 haswell: Put each logical processor in its own P-state domain
The recommendation from Intel is to report each core as a
separate logical domain in the _PSD table.

This goes against the recommendation in the ACPI specification
because all of these cores are on the same package and share a
VR so they will do voltage transitions together.

The reasoning is that with a larger number of logical processors
the P-state often ramps too quickly resulting in higher power
consumption.  By exposing each core as a separate domain the OS
can manage them individually allowing the socket to select the
optimum frequency.

$ cat /sys/firmware/acpi/tables/SSDT > /tmp/SSDT
$ iasl -d /tmp/SSDT

Processor (\_PR.CPU0, 0x00, 0x00000000, 0x00)
{
  Name (_PSD, Package (0x01)
  {
    Package (0x05)
    {
      0x05,
      0x00,
      0x00000000,
      0x000000FE,
      0x00000001
    }
  })
}

Processor (\_PR.CPU1, 0x01, 0x00000000, 0x00)
{
  Name (_PSD, Package (0x01)
  {
    Package (0x05)
    {
      0x05,
      0x00,
      0x00000001,
      0x000000FE,
      0x00000001
    }
  })
}

Processor (\_PR.CPU2, 0x02, 0x00000000, 0x00)
{
  Name (_PSD, Package (0x01)
  {
    Package (0x05)
    {
      0x05,
      0x00,
      0x00000002,
      0x000000FE,
      0x00000001
    }
  })
}

Processor (\_PR.CPU3, 0x03, 0x00000000, 0x00)
{
  Name (_PSD, Package (0x01)
  {
    Package (0x05)
    {
      0x05,
      0x00,
      0x00000003,
      0x000000FE,
      0x00000001
    }
  })
}

Change-Id: I5ef41b6ead4d88e9ba117003293dbc629c376803
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/48662
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/4130
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
2013-11-24 05:34:25 +01:00
..
car usbdebug: Put ehci_debug_info in CAR_GLOBAL 2013-07-10 23:25:53 +02:00
ep80579 GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
fit x86 intel: Add Firmware Interface Table support 2013-03-17 22:53:51 +01:00
haswell haswell: Put each logical processor in its own P-state domain 2013-11-24 05:34:25 +01:00
hyperthreading Intel CPUs: Fix counting of CPU cores 2012-08-03 12:19:31 +02:00
microcode Intel microcode: Return when microcode_updates is NULL 2013-04-23 03:30:22 +02:00
model_6bx usbdebug: Drop old includes 2013-07-11 21:23:03 +02:00
model_6dx Get rid of drivers class 2012-11-27 22:00:49 +01:00
model_6ex usbdebug: Drop old includes 2013-07-11 21:23:03 +02:00
model_6fx usbdebug: Drop old includes 2013-07-11 21:23:03 +02:00
model_6xx Get rid of drivers class 2012-11-27 22:00:49 +01:00
model_65x GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
model_67x cpu/intel/model_67x: Add missing include 2013-07-30 08:23:01 +02:00
model_68x usbdebug: Drop old includes 2013-07-11 21:23:03 +02:00
model_69x Get rid of drivers class 2012-11-27 22:00:49 +01:00
model_106cx usbdebug: Drop old includes 2013-07-11 21:23:03 +02:00
model_206ax cpu: Fix spelling 2013-07-11 22:36:59 +02:00
model_1067x usbdebug: Drop temporary disables of log output 2013-06-14 18:18:56 +02:00
model_2065x Rename SANDYBRIDGE_BCLK to NEHALEM_BCLK in 2065x. 2013-11-23 14:32:29 +01:00
model_f0x Get rid of drivers class 2012-11-27 22:00:49 +01:00
model_f1x Get rid of drivers class 2012-11-27 22:00:49 +01:00
model_f2x Get rid of drivers class 2012-11-27 22:00:49 +01:00
model_f3x Get rid of drivers class 2012-11-27 22:00:49 +01:00
model_f4x Get rid of drivers class 2012-11-27 22:00:49 +01:00
slot_1 cpu: Fix spelling 2013-07-11 22:36:59 +02:00
slot_2 GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
socket_441 GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
socket_BGA956 intel/socket_BGA956: enable speedstep, CAR, MMX, SSE 2012-11-06 21:51:43 +01:00
socket_FC_PGA370 GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
socket_LGA771 Remove chip.h files without config structure 2012-10-07 12:55:04 +02:00
socket_LGA775 Fix socket LGA775 2013-03-07 00:46:32 +01:00
socket_mFCBGA479 Remove chip.h files without config structure 2012-10-07 12:55:04 +02:00
socket_mFCPGA478 Remove chip.h files without config structure 2012-10-07 12:55:04 +02:00
socket_mPGA478 Remove chip.h files without config structure 2012-10-07 12:55:04 +02:00
socket_mPGA479M Remove chip.h files without config structure 2012-10-07 12:55:04 +02:00
socket_mPGA603 Fix typo in mPGA603 socket 2012-10-07 21:48:37 +02:00
socket_mPGA604 Remove chip.h files without config structure 2012-10-07 12:55:04 +02:00
socket_PGA370 GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
socket_rPGA989 Remove chip.h files without config structure 2012-10-07 12:55:04 +02:00
speedstep sconfig: rename lapic_cluster -> cpu_cluster 2013-02-14 07:07:20 +01:00
thermal_monitoring drop unused code (trivial) 2008-08-01 11:53:39 +00:00
turbo Add support for Intel Turbo Boost feature 2012-04-03 20:29:33 +02:00
Kconfig Add support for Intel Nehalem CPU 2013-06-13 00:32:01 +02:00
Makefile.inc Add support for Intel Nehalem CPU 2013-06-13 00:32:01 +02:00