class MemoryControllerBiosDataIceLake

Defined at line 879 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

MC_BIOS_REQ_0_0_0_MCHBAR_PCU (Memory Controller BIOS Request)

MC_BIOS_DATA_0_0_0_MCHBAR_PCU (Memory Controller BIOS Data)

Raptor Lake: 743846-001 Sections 3.3.42-3.3.43 pages 202-204

Alder Lake S: 655259-003 Section 3.3.41-3.3.42 pages 184-187

Alder Lake H: 710723-003 Section 3.3.41-3.3.42 pages 213-216

Rocket Lake: 636761-004 Sections 3.3.45-3.3.46 pages 172-174

Tiger Lake U: 631122-003 Sections 3.3.44-3.3.45 pages 197-199

Tiger Lake H: 643524-003 Sections 3.3.45-3.3.46 pages 190-192

Ice Lake: 341078-004 Section 3.3.44-3.3.45 pages 177-179

Public Members

 field_request_pending_897
 field_data_transmit_rail_max_current_multiplier_904
 field_data_transmit_rail_voltage_multiplier_911
 field_ddr_phy_bus_clock_multiplier_shift_ice_lake_918
 field_RsvdZ_920
 field_ddr_phy_bus_clock_multiplier_shift_tiger_lake_928
 field_controller_frequency_base_select_931
 field_controller_frequency_multiplier_938

Public Methods

template <, >
typename SelfType::ValueType request_pending ()

If true, the PCU (power controller) has not yet applied this configuration.

The system firmware sets this bit to true when it writes a new value to

this register. The PCU firmware clears this bit after it applies the

requested configuration changes.

This bit is only meaningful for the MC_BIOS_REQ_0_0_0_MCHBAR_PCU (Memory

Controller BIOS Request) register. It must be zero in the

MC_BIOS_DATA_0_0_0_MCHBAR_PCU (Memory Controller BIOS Data) register.

Defined at line 897 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
SelfType & set_request_pending (typename SelfType::ValueType val)

If true, the PCU (power controller) has not yet applied this configuration.

The system firmware sets this bit to true when it writes a new value to

this register. The PCU firmware clears this bit after it applies the

requested configuration changes.

This bit is only meaningful for the MC_BIOS_REQ_0_0_0_MCHBAR_PCU (Memory

Controller BIOS Request) register. It must be zero in the

MC_BIOS_DATA_0_0_0_MCHBAR_PCU (Memory Controller BIOS Data) register.

Defined at line 897 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
typename SelfType::ValueType data_transmit_rail_max_current_multiplier ()

Sets IccMax (the maximum current) on the VDDQ_TX (DDR data transmit) rail.

The value is a multiplier with the base 250 mA.

This field is reserved MBZ (must be zero) on Ice Lake and Rocket Lake.

Defined at line 904 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
SelfType & set_data_transmit_rail_max_current_multiplier (typename SelfType::ValueType val)

Sets IccMax (the maximum current) on the VDDQ_TX (DDR data transmit) rail.

The value is a multiplier with the base 250 mA.

This field is reserved MBZ (must be zero) on Ice Lake and Rocket Lake.

Defined at line 904 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
typename SelfType::ValueType data_transmit_rail_voltage_multiplier ()

Sets the voltage on the VDDQ_TX (DDR data transmit) rail.

The value is a multiplier with the base 5mV.

This field is reserved MBZ (must be zero) on Ice Lake and Rocket Lake.

Defined at line 911 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
SelfType & set_data_transmit_rail_voltage_multiplier (typename SelfType::ValueType val)

Sets the voltage on the VDDQ_TX (DDR data transmit) rail.

The value is a multiplier with the base 5mV.

This field is reserved MBZ (must be zero) on Ice Lake and Rocket Lake.

Defined at line 911 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
typename SelfType::ValueType ddr_phy_bus_clock_multiplier_shift_ice_lake ()

Sets the DDR PHY bus clock relatively to the memory controller Qclk.

This field is reserved MBZ (must be zero) on Alder Lake and Tiger Lake.

Those platforms use the `ddr_phy_bus_clock_multiplier_shift_tiger_lake`

field with the same semantics.

Defined at line 918 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
SelfType & set_ddr_phy_bus_clock_multiplier_shift_ice_lake (typename SelfType::ValueType val)

Sets the DDR PHY bus clock relatively to the memory controller Qclk.

This field is reserved MBZ (must be zero) on Alder Lake and Tiger Lake.

Those platforms use the `ddr_phy_bus_clock_multiplier_shift_tiger_lake`

field with the same semantics.

Defined at line 918 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
typename SelfType::ValueType ddr_phy_bus_clock_multiplier_shift_tiger_lake ()

2-bit equivalent of `ddr_phy_bus_clock_multiplier_shift_ice_lake`.

0 = 1X multiplier, so the DDR bus matches Qclk. 1 = 2X multiplier, so the

DDR bus operates at 2x Qclk. 2 = 4x multiplier.

This field is reserved MBZ (must be zero) on Ice Lake and Rocket Lake.

Defined at line 928 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
SelfType & set_ddr_phy_bus_clock_multiplier_shift_tiger_lake (typename SelfType::ValueType val)

2-bit equivalent of `ddr_phy_bus_clock_multiplier_shift_ice_lake`.

0 = 1X multiplier, so the DDR bus matches Qclk. 1 = 2X multiplier, so the

DDR bus operates at 2x Qclk. 2 = 4x multiplier.

This field is reserved MBZ (must be zero) on Ice Lake and Rocket Lake.

Defined at line 928 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
ControllerFrequencyBaseValue controller_frequency_base_select ()

The base for the memory controller Qclk (quad clock) frequency.

Defined at line 931 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
SelfType & set_controller_frequency_base_select (ControllerFrequencyBaseValue val)

The base for the memory controller Qclk (quad clock) frequency.

Defined at line 931 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
typename SelfType::ValueType controller_frequency_multiplier ()

The multiplier for the memory controller Qclk (quad clock) frequency.

After the MRC (Memory Reference initialization Code) runs, the multiplier

should be greater than or equal to 3. A multiplier of 0 indicates that the

memory controller PLL will be shut down. Multipliers 1 and 2 are reserved.

Defined at line 938 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

template <, >
SelfType & set_controller_frequency_multiplier (typename SelfType::ValueType val)

The multiplier for the memory controller Qclk (quad clock) frequency.

After the MRC (Memory Reference initialization Code) runs, the multiplier

should be greater than or equal to 3. A multiplier of 0 indicates that the

memory controller PLL will be shut down. Multipliers 1 and 2 are reserved.

Defined at line 938 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

int32_t data_transmit_rail_max_current_milliamps ()

The maximum Icc (current) on the VDD_TX (DDR data transmit) rail.

The return value is expressed in mA (milliamperes). A value of zero means

that the field is not populated.

Defined at line 944 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

int32_t data_transmit_rail_voltage_millivolts ()

The voltage on the VDD_TX (DDR data transmit) rail.

The return value is expressed in mV (millivolts). A value of zero means

that the field is not populated.

Defined at line 958 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

int ddr_phy_bus_clock_multiplier_shift ()

Sets the DDR PHY bus clock relatively to the memory controller Qclk.

This field is a multiplier is relative to the memory controller Qclk (quad

clock) frequency. The field value is represented in log2, so the multiplier

is 1

<

<

field_value.

Defined at line 972 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

int64_t ddr_phy_bus_frequency_hz ()

The DDR PHY bus frequency, in Hz.

Returns 0 if the memory controller PLL is disabled, or if the register has

an invalid configuration.

Defined at line 983 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

int64_t controller_quad_clock_frequency_hz ()

The memory controller's Qclk (quad-clock) frequency, in Hz.

Returns 0 if the memory controller PLL is disabled, or if the register has

an invalid configuration.

Defined at line 1004 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

int32_t controller_frequency_base_hz_x3 ()

The memory controller's base frequency in Hz, multiplied by 3.

Returns zero if the field is set to an undocumented value.

The unusual return convention follows the datasheet recommendation for

representing the memory controller's base frequency.

Defined at line 1022 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

hwreg::RegisterAddr<MemoryControllerBiosDataIceLake> Get ()

Defined at line 1032 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

Enumerations

enum ControllerFrequencyBaseValue
Name Value
k133Mhz 0b000
k100Mhz 0b001

Documented values for `memory_controller_frequency_base_select`.

Defined at line 883 of file ../../src/graphics/display/drivers/intel-display/registers-memory-controller.h

Records