forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
isci: Add support for probing OROM for OEM params
We need to scan the OROM for signature and grab the OEM parameters. We also need to do the same for EFI. If all fails then we resort to user binary blob, and if that fails then we go to the defaults. Share the format with the create_fw utility so that all possible sources of the parameters are in-sync. Signed-off-by: Dave Jiang <[email protected]> Signed-off-by: Dan Williams <[email protected]>
- Loading branch information
Showing
12 changed files
with
453 additions
and
427 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#ifndef _CREATE_FW_H_ | ||
#define _CREATE_FW_H_ | ||
|
||
|
||
/* we are configuring for 2 SCUs */ | ||
static const int num_elements = 2; | ||
|
||
/* | ||
* For all defined arrays: | ||
* elements 0-3 are for SCU0, ports 0-3 | ||
* elements 4-7 are for SCU1, ports 0-3 | ||
* | ||
* valid configurations for one SCU are: | ||
* P0 P1 P2 P3 | ||
* ---------------- | ||
* 0xF,0x0,0x0,0x0 # 1 x4 port | ||
* 0x3,0x0,0x4,0x8 # Phys 0 and 1 are a x2 port, phy 2 and phy 3 are each x1 | ||
* # ports | ||
* 0x1,0x2,0xC,0x0 # Phys 0 and 1 are each x1 ports, phy 2 and phy 3 are a x2 | ||
* # port | ||
* 0x3,0x0,0xC,0x0 # Phys 0 and 1 are a x2 port, phy 2 and phy 3 are a x2 port | ||
* 0x1,0x2,0x4,0x8 # Each phy is a x1 port (this is the default configuration) | ||
* | ||
* if there is a port/phy on which you do not wish to override the default | ||
* values, use the value assigned to UNINIT_PARAM (255). | ||
*/ | ||
#ifdef MPC | ||
static const __u8 phy_mask[2][4] = { {1, 2, 4, 8}, | ||
{1, 2, 4, 8} }; | ||
#else /* APC (default) */ | ||
static const __u8 phy_mask[2][4]; | ||
#endif | ||
|
||
/* discovery mode type (port auto config mode by default ) */ | ||
static const int mode_type; | ||
|
||
/* Maximum number of concurrent device spin up */ | ||
static const int max_num_concurrent_dev_spin_up = 1; | ||
|
||
/* enable of ssc operation */ | ||
static const int enable_ssc; | ||
|
||
/* AFE_TX_AMP_CONTROL */ | ||
static const unsigned int afe_tx_amp_control0 = 0x000e7c03; | ||
static const unsigned int afe_tx_amp_control1 = 0x000e7c03; | ||
static const unsigned int afe_tx_amp_control2 = 0x000e7c03; | ||
static const unsigned int afe_tx_amp_control3 = 0x000e7c03; | ||
|
||
/* | ||
* if there is a port/phy on which you do not wish to override the default | ||
* values, use the value "0000000000000000". SAS address of zero's is | ||
* considered invalid and will not be used. | ||
*/ | ||
static const unsigned long long sas_addr[2][4] = { { 0x5FCFFFFFF0000000ULL, | ||
0x5FCFFFFFF1000000ULL, | ||
0x5FCFFFFFF2000000ULL, | ||
0x5FCFFFFFF3000000ULL }, | ||
{ 0x5FCFFFFFF4000000ULL, | ||
0x5FCFFFFFF5000000ULL, | ||
0x5FCFFFFFF6000000ULL, | ||
0x5FCFFFFFF7000000ULL } }; | ||
|
||
static const char blob_name[] = "isci_firmware.bin"; | ||
static const char sig[] = "ISCUOEMB"; | ||
static const unsigned char version = 1; | ||
|
||
#endif |
Oops, something went wrong.