diff options
author | Dave Jiang <dave.jiang@intel.com> | 2012-01-04 04:32:44 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-01-16 02:42:00 -0500 |
commit | 594e566ae5985e0cc3185ac21509a86e90aad577 (patch) | |
tree | f53db9f48084fea7c553077e60e03e7cd130c21a /drivers/scsi/isci/probe_roms.h | |
parent | afd13a1f2b05157c7621d87dfe89ea6ea9061bd8 (diff) |
[SCSI] isci: oem parameter format v1.1 (ssc select)
v1.1 allows finer grained tuning of the SSC (spread-spectrum-clocking)
settings for SAS and SATA. See notes in probe_roms.h
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/isci/probe_roms.h')
-rw-r--r-- | drivers/scsi/isci/probe_roms.h | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/drivers/scsi/isci/probe_roms.h b/drivers/scsi/isci/probe_roms.h index 2c75248ca326..42dd05414f3b 100644 --- a/drivers/scsi/isci/probe_roms.h +++ b/drivers/scsi/isci/probe_roms.h | |||
@@ -152,7 +152,7 @@ struct sci_user_parameters { | |||
152 | #define MAX_CONCURRENT_DEVICE_SPIN_UP_COUNT 4 | 152 | #define MAX_CONCURRENT_DEVICE_SPIN_UP_COUNT 4 |
153 | 153 | ||
154 | struct sci_oem_params; | 154 | struct sci_oem_params; |
155 | int sci_oem_parameters_validate(struct sci_oem_params *oem); | 155 | int sci_oem_parameters_validate(struct sci_oem_params *oem, u8 version); |
156 | 156 | ||
157 | struct isci_orom; | 157 | struct isci_orom; |
158 | struct isci_orom *isci_request_oprom(struct pci_dev *pdev); | 158 | struct isci_orom *isci_request_oprom(struct pci_dev *pdev); |
@@ -191,6 +191,10 @@ struct isci_oem_hdr { | |||
191 | 0x1a, 0x04, 0xc6) | 191 | 0x1a, 0x04, 0xc6) |
192 | #define ISCI_EFI_VAR_NAME "RstScuO" | 192 | #define ISCI_EFI_VAR_NAME "RstScuO" |
193 | 193 | ||
194 | #define ISCI_ROM_VER_1_0 0x10 | ||
195 | #define ISCI_ROM_VER_1_1 0x11 | ||
196 | #define ISCI_ROM_VER_LATEST ISCI_ROM_VER_1_1 | ||
197 | |||
194 | /* Allowed PORT configuration modes APC Automatic PORT configuration mode is | 198 | /* Allowed PORT configuration modes APC Automatic PORT configuration mode is |
195 | * defined by the OEM configuration parameters providing no PHY_MASK parameters | 199 | * defined by the OEM configuration parameters providing no PHY_MASK parameters |
196 | * for any PORT. i.e. There are no phys assigned to any of the ports at start. | 200 | * for any PORT. i.e. There are no phys assigned to any of the ports at start. |
@@ -220,7 +224,52 @@ struct sci_oem_params { | |||
220 | struct { | 224 | struct { |
221 | uint8_t mode_type; | 225 | uint8_t mode_type; |
222 | uint8_t max_concurr_spin_up; | 226 | uint8_t max_concurr_spin_up; |
223 | uint8_t do_enable_ssc; | 227 | /* |
228 | * This bitfield indicates the OEM's desired default Tx | ||
229 | * Spread Spectrum Clocking (SSC) settings for SATA and SAS. | ||
230 | * NOTE: Default SSC Modulation Frequency is 31.5KHz. | ||
231 | */ | ||
232 | union { | ||
233 | struct { | ||
234 | /* | ||
235 | * NOTE: Max spread for SATA is +0 / -5000 PPM. | ||
236 | * Down-spreading SSC (only method allowed for SATA): | ||
237 | * SATA SSC Tx Disabled = 0x0 | ||
238 | * SATA SSC Tx at +0 / -1419 PPM Spread = 0x2 | ||
239 | * SATA SSC Tx at +0 / -2129 PPM Spread = 0x3 | ||
240 | * SATA SSC Tx at +0 / -4257 PPM Spread = 0x6 | ||
241 | * SATA SSC Tx at +0 / -4967 PPM Spread = 0x7 | ||
242 | */ | ||
243 | uint8_t ssc_sata_tx_spread_level:4; | ||
244 | /* | ||
245 | * SAS SSC Tx Disabled = 0x0 | ||
246 | * | ||
247 | * NOTE: Max spread for SAS down-spreading +0 / | ||
248 | * -2300 PPM | ||
249 | * Down-spreading SSC: | ||
250 | * SAS SSC Tx at +0 / -1419 PPM Spread = 0x2 | ||
251 | * SAS SSC Tx at +0 / -2129 PPM Spread = 0x3 | ||
252 | * | ||
253 | * NOTE: Max spread for SAS center-spreading +2300 / | ||
254 | * -2300 PPM | ||
255 | * Center-spreading SSC: | ||
256 | * SAS SSC Tx at +1064 / -1064 PPM Spread = 0x3 | ||
257 | * SAS SSC Tx at +2129 / -2129 PPM Spread = 0x6 | ||
258 | */ | ||
259 | uint8_t ssc_sas_tx_spread_level:3; | ||
260 | /* | ||
261 | * NOTE: Refer to the SSC section of the SAS 2.x | ||
262 | * Specification for proper setting of this field. | ||
263 | * For standard SAS Initiator SAS PHY operation it | ||
264 | * should be 0 for Down-spreading. | ||
265 | * SAS SSC Tx spread type: | ||
266 | * Down-spreading SSC = 0 | ||
267 | * Center-spreading SSC = 1 | ||
268 | */ | ||
269 | uint8_t ssc_sas_tx_type:1; | ||
270 | }; | ||
271 | uint8_t do_enable_ssc; | ||
272 | }; | ||
224 | uint8_t reserved; | 273 | uint8_t reserved; |
225 | } controller; | 274 | } controller; |
226 | 275 | ||