@@ -3613,7 +3613,7 @@ pub mod memory {
3613
3613
fn default ( ) -> Self {
3614
3614
Self {
3615
3615
total_size : ( size_of :: < Self > ( ) as u32 ) . into ( ) ,
3616
- target_memclk : 2000 . into ( ) , // FIXME
3616
+ target_memclk : 2000 . into ( ) ,
3617
3617
dimm_slots_per_channel : 2 ,
3618
3618
dimm0_rank_bitmap : 4 ,
3619
3619
dimm1_rank_bitmap : 4 ,
@@ -3778,13 +3778,21 @@ pub mod memory {
3778
3778
#[ repr( C , packed) ]
3779
3779
pub struct MemDfeSearchElementPayload {
3780
3780
total_size || u32 : LU32 ,
3781
+ /// -40..=40
3781
3782
tx_dfe_tap_1_start || u8 : u8 ,
3783
+ /// -40..=40
3782
3784
tx_dfe_tap_1_end || u8 : u8 ,
3785
+ /// -15..=15
3783
3786
tx_dfe_tap_2_start || u8 : u8 ,
3787
+ /// -15..=15
3784
3788
tx_dfe_tap_2_end || u8 : u8 ,
3789
+ /// -12..=12
3785
3790
tx_dfe_tap_3_start || u8 : u8 ,
3791
+ /// -12..=12
3786
3792
tx_dfe_tap_3_end || u8 : u8 ,
3793
+ /// -8..=8
3787
3794
tx_dfe_tap_4_start || u8 : u8 ,
3795
+ /// -8..=8
3788
3796
tx_dfe_tap_4_end || u8 : u8 ,
3789
3797
}
3790
3798
}
@@ -3833,12 +3841,12 @@ pub mod memory {
3833
3841
fn default ( ) -> Self {
3834
3842
Self {
3835
3843
total_size : ( size_of :: < Self > ( ) as u32 ) . into ( ) ,
3836
- rx_dfe_tap_2_min_mv : 0 , // FIXME
3837
- rx_dfe_tap_2_max_mv : 0 , // FIXME
3838
- rx_dfe_tap_3_min_mv : 0 , // FIXME
3839
- rx_dfe_tap_3_max_mv : 0 , // FIXME
3840
- rx_dfe_tap_4_min_mv : 0 , // FIXME
3841
- rx_dfe_tap_4_max_mv : 0 , // FIXME
3844
+ rx_dfe_tap_2_min_mv : 0 ,
3845
+ rx_dfe_tap_2_max_mv : 0 ,
3846
+ rx_dfe_tap_3_min_mv : 0 ,
3847
+ rx_dfe_tap_3_max_mv : 0 ,
3848
+ rx_dfe_tap_4_min_mv : 0 ,
3849
+ rx_dfe_tap_4_max_mv : 0 ,
3842
3850
}
3843
3851
}
3844
3852
}
@@ -3858,6 +3866,9 @@ pub mod memory {
3858
3866
}
3859
3867
3860
3868
make_accessors ! {
3869
+ /// Decision Feedback Equalization.
3870
+ /// See also UMC::Phy::RxDFETapCtrl in the memory controller.
3871
+ /// See <https://ieeexplore.ieee.org/document/1455678>.
3861
3872
#[ derive( FromBytes , AsBytes , Unaligned , PartialEq , Debug , Default , Copy , Clone ) ]
3862
3873
#[ repr( C , packed) ]
3863
3874
pub struct MemDfeSearchElement32 {
@@ -3876,6 +3887,9 @@ pub mod memory {
3876
3887
}
3877
3888
3878
3889
make_accessors ! {
3890
+ /// Decision Feedback Equalization.
3891
+ /// See also UMC::Phy::RxDFETapCtrl in the memory controller.
3892
+ /// See <https://ieeexplore.ieee.org/document/1455678>.
3879
3893
#[ derive( FromBytes , AsBytes , Unaligned , PartialEq , Debug , Default , Copy , Clone ) ]
3880
3894
#[ repr( C , packed) ]
3881
3895
pub struct MemDfeSearchElement20 {
@@ -4747,7 +4761,6 @@ Clone)]
4747
4761
}
4748
4762
}
4749
4763
4750
- // XXX: Not that useful.
4751
4764
impl Default for DdrDqPinMapElementLane {
4752
4765
fn default ( ) -> Self {
4753
4766
Self { pins : [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ] }
@@ -4772,7 +4785,7 @@ Clone)]
4772
4785
#[ derive( FromBytes , AsBytes , Unaligned , PartialEq , Debug , Copy , Clone ) ]
4773
4786
#[ repr( C , packed) ]
4774
4787
pub struct DdrDqPinMapElement {
4775
- lanes: [ DdrDqPinMapElementLane ; 8 ] , // lanes[lane][bit] == pin
4788
+ pub lanes: [ DdrDqPinMapElementLane ; 8 ] , // lanes[lane][bit] == pin
4776
4789
}
4777
4790
}
4778
4791
@@ -4811,7 +4824,7 @@ Clone)]
4811
4824
#[ derive( FromBytes , AsBytes , Unaligned , PartialEq , Debug , Copy , Clone ) ]
4812
4825
#[ repr( C , packed) ]
4813
4826
pub struct Ddr5CaPinMapElementLane {
4814
- pins: [ u8 ; 14 ] , // TODO: nicer pin type instead of u8; especially for 0xff "un"
4827
+ pub pins: [ u8 ; 14 ] , // TODO: nicer pin type instead of u8; especially for 0xff "un"
4815
4828
}
4816
4829
}
4817
4830
@@ -4839,7 +4852,7 @@ Clone)]
4839
4852
#[ derive( FromBytes , AsBytes , Unaligned , PartialEq , Debug , Default , Copy , Clone ) ]
4840
4853
#[ repr( C , packed) ]
4841
4854
pub struct Ddr5CaPinMapElement {
4842
- lanes: [ Ddr5CaPinMapElementLane ; 2 ] , // pins[lane][bit] == pin; pin == 0xff means un?
4855
+ pub lanes: [ Ddr5CaPinMapElementLane ; 2 ] , // pins[lane][bit] == pin; pin == 0xff means un?
4843
4856
}
4844
4857
}
4845
4858
@@ -5259,13 +5272,13 @@ Clone)]
5259
5272
#[ derive( FromBytes , AsBytes , Unaligned , PartialEq , Debug , Copy , Clone ) ]
5260
5273
#[ repr( C , packed) ]
5261
5274
pub struct MaxDimmsPerChannel6 {
5262
- type_ || #[ serde( default = "MaxDimmsPerChannel ::serde_default_tag" ) ] SerdeHex8 : u8 | pub get u8 : pub set u8 ,
5263
- payload_size || #[ serde( default = "MaxDimmsPerChannel ::serde_default_payload_size" ) ] SerdeHex8 : u8 ,
5275
+ type_ || #[ serde( default = "MaxDimmsPerChannel6 ::serde_default_tag" ) ] SerdeHex8 : u8 | pub get u8 : pub set u8 ,
5276
+ payload_size || #[ serde( default = "MaxDimmsPerChannel6 ::serde_default_payload_size" ) ] SerdeHex8 : u8 ,
5264
5277
sockets || SocketIds : u8 | pub get SocketIds : pub set SocketIds ,
5265
5278
channels || ChannelIdsSelection12 : LU16 | pub get ChannelIdsSelection12 : pub set ChannelIdsSelection12 ,
5266
5279
dimms || DimmSlots : u8 | pub get DimmSlots : pub set DimmSlots , // Note: must always be "any"
5267
5280
value || SerdeHex8 : u8 | pub get u8 : pub set u8 ,
5268
- _padding_0: u8 ,
5281
+ _padding_0 || # [ serde ( default ) ] SerdeHex8 : u8 | pub get u8 : pub set u8 ,
5269
5282
}
5270
5283
}
5271
5284
impl_EntryCompatible!( MaxDimmsPerChannel6 , 4 , 6 ) ;
@@ -6405,17 +6418,22 @@ pub mod fch {
6405
6418
io80_decoding_enabled || bool : BU8 | pub get bool : pub set bool ,
6406
6419
io6064_decoding_enabled || bool : BU8 | pub get bool : pub set bool ,
6407
6420
6408
- io_range_size || [ SerdeHex8 ; 16 ] : [ u8 ; 16 ] , // | pub get [u8; 16] : pub set [u8; 16], // FIXME
6409
- io_range_base || [ SerdeHex16 ; 16 ] : [ LU16 ; 16 ] , // | pub get [u16; 16] : pub set [u16; 16], // FIXME
6421
+ /// The first entry is usually for IPMI.
6422
+ /// The last two entries != 0 are the serial ports.
6423
+ /// Use values 3 (32 bit) or 7 (64 bit).
6424
+ io_range_size || [ SerdeHex8 ; 16 ] : [ u8 ; 16 ] | pub get [ u8 ; 16 ] : pub set [ u8 ; 16 ] ,
6425
+ /// The first entry is usually for IPMI.
6426
+ /// The last two entries != 0 are the serial ports.
6427
+ io_range_base || [ SerdeHex16 ; 16 ] : [ LU16 ; 16 ] | pub get [ u16 ; 16 ] : pub set [ u16 ; 16 ] ,
6410
6428
6411
- mmio_range_size || [ SerdeHex16 ; 5 ] : [ LU16 ; 5 ] , // | pub get [u16; 5] : pub set [u16; 5], // FIXME
6412
- mmio_range_base || [ SerdeHex32 ; 5 ] : [ LU32 ; 5 ] , // | pub get [u32; 5] : pub set [u32; 5], // FIXME
6429
+ mmio_range_size || [ SerdeHex16 ; 5 ] : [ LU16 ; 5 ] | pub get [ u16 ; 5 ] : pub set [ u16 ; 5 ] ,
6430
+ mmio_range_base || [ SerdeHex32 ; 5 ] : [ LU32 ; 5 ] | pub get [ u32 ; 5 ] : pub set [ u32 ; 5 ] ,
6413
6431
6414
6432
irq_mask || SerdeHex32 : LU32 , // | pub get LU32 : pub set u32, // FIXME bitmap
6415
6433
irq_polarity || SerdeHex32 : LU32 , // | pub get LU32 : pub set u32, // FIXME bitmap
6416
6434
6417
- cputemp_rtctime_vw_enabled || bool : BU8 , // | pub get bool : pub set bool,
6418
- cputemp_rtctime_vw_index_select || SerdeHex8 : u8 , // | pub get u8 : pub set u8,
6435
+ cputemp_rtctime_vw_enabled || bool : BU8 | pub get bool : pub set bool ,
6436
+ cputemp_rtctime_vw_index_select || SerdeHex8 : u8 | pub get u8 : pub set u8 ,
6419
6437
6420
6438
_dummy_1 : u8 ,
6421
6439
_dummy_2 : u8 ,
@@ -8506,10 +8524,10 @@ make_bitfield_serde! {
8506
8524
#[ derive( Debug , Copy , Clone , PartialEq ) ]
8507
8525
pub struct FchConsoleOutSerialPortEspiControllerSelect {
8508
8526
pub espi_controller || EspiController : B1 | pub get EspiController : pub set EspiController ,
8509
- pub _reserved_0 || SerdeHex8 : B2 ,
8527
+ pub _reserved_0 || # [ serde ( default ) ] SerdeHex8 : B2 ,
8510
8528
pub io_2e_2f_disabled: bool | pub get bool : pub set bool ,
8511
8529
pub io_4e_4f_disabled: bool | pub get bool : pub set bool ,
8512
- pub _reserved_1 || SerdeHex8 : B3 ,
8530
+ pub _reserved_1 || # [ serde ( default ) ] SerdeHex8 : B3 ,
8513
8531
}
8514
8532
}
8515
8533
impl_bitfield_primitive_conversion ! (
@@ -8532,7 +8550,7 @@ make_bitfield_serde! {
8532
8550
pub algorithm_7: bool | pub get bool : pub set bool ,
8533
8551
pub algorithm_8: bool | pub get bool : pub set bool ,
8534
8552
pub algorithm_9: bool | pub get bool : pub set bool ,
8535
- pub _reserved_0 || SerdeHex8 : B7 ,
8553
+ pub _reserved_0 || # [ serde ( default ) ] SerdeHex8 : B7 ,
8536
8554
}
8537
8555
}
8538
8556
impl_bitfield_primitive_conversion ! (
0 commit comments