]>
Commit | Line | Data |
---|---|---|
de960e50 BH |
1 | #ifndef _CREATE_FW_H_ |
2 | #define _CREATE_FW_H_ | |
3 | #include "probe_roms.h" | |
4 | ||
5 | ||
6 | /* we are configuring for 2 SCUs */ | |
7 | static const int num_elements = 2; | |
8 | ||
9 | /* | |
10 | * For all defined arrays: | |
11 | * elements 0-3 are for SCU0, ports 0-3 | |
12 | * elements 4-7 are for SCU1, ports 0-3 | |
13 | * | |
14 | * valid configurations for one SCU are: | |
15 | * P0 P1 P2 P3 | |
16 | * ---------------- | |
17 | * 0xF,0x0,0x0,0x0 # 1 x4 port | |
18 | * 0x3,0x0,0x4,0x8 # Phys 0 and 1 are a x2 port, phy 2 and phy 3 are each x1 | |
19 | * # ports | |
20 | * 0x1,0x2,0xC,0x0 # Phys 0 and 1 are each x1 ports, phy 2 and phy 3 are a x2 | |
21 | * # port | |
22 | * 0x3,0x0,0xC,0x0 # Phys 0 and 1 are a x2 port, phy 2 and phy 3 are a x2 port | |
23 | * 0x1,0x2,0x4,0x8 # Each phy is a x1 port (this is the default configuration) | |
24 | * | |
25 | * if there is a port/phy on which you do not wish to override the default | |
26 | * values, use the value assigned to UNINIT_PARAM (255). | |
27 | */ | |
28 | ||
29 | /* discovery mode type (port auto config mode by default ) */ | |
30 | ||
31 | /* | |
32 | * if there is a port/phy on which you do not wish to override the default | |
33 | * values, use the value "0000000000000000". SAS address of zero's is | |
34 | * considered invalid and will not be used. | |
35 | */ | |
36 | #ifdef MPC | |
37 | static const int mode_type = SCIC_PORT_MANUAL_CONFIGURATION_MODE; | |
38 | static const __u8 phy_mask[2][4] = { {1, 2, 4, 8}, | |
39 | {1, 2, 4, 8} }; | |
40 | static const unsigned long long sas_addr[2][4] = { { 0x5FCFFFFFF0000001ULL, | |
41 | 0x5FCFFFFFF0000002ULL, | |
42 | 0x5FCFFFFFF0000003ULL, | |
43 | 0x5FCFFFFFF0000004ULL }, | |
44 | { 0x5FCFFFFFF0000005ULL, | |
45 | 0x5FCFFFFFF0000006ULL, | |
46 | 0x5FCFFFFFF0000007ULL, | |
47 | 0x5FCFFFFFF0000008ULL } }; | |
48 | #else /* APC (default) */ | |
49 | static const int mode_type = SCIC_PORT_AUTOMATIC_CONFIGURATION_MODE; | |
50 | static const __u8 phy_mask[2][4]; | |
51 | static const unsigned long long sas_addr[2][4] = { { 0x5FCFFFFF00000001ULL, | |
52 | 0x5FCFFFFF00000001ULL, | |
53 | 0x5FCFFFFF00000001ULL, | |
54 | 0x5FCFFFFF00000001ULL }, | |
55 | { 0x5FCFFFFF00000002ULL, | |
56 | 0x5FCFFFFF00000002ULL, | |
57 | 0x5FCFFFFF00000002ULL, | |
58 | 0x5FCFFFFF00000002ULL } }; | |
59 | #endif | |
60 | ||
a2995d38 DW |
61 | static const int cable_selection[2][4]; |
62 | ||
de960e50 BH |
63 | /* Maximum number of concurrent device spin up */ |
64 | static const int max_num_concurrent_dev_spin_up = 1; | |
65 | ||
66 | /* enable of ssc operation */ | |
a2995d38 DW |
67 | /* |
68 | * NOTE: also see probe_roms.h. This value can be set for ssc values. | |
69 | * Values can be set for: | |
70 | * ssc_sata_tx_spread_level | |
71 | * ssc_sas_tx_spread_level | |
72 | * ssc_sas_tx_type | |
73 | */ | |
74 | static const __u8 enable_ssc; | |
de960e50 BH |
75 | |
76 | /* AFE_TX_AMP_CONTROL */ | |
77 | static const unsigned int afe_tx_amp_control0 = 0x000bdd08; | |
78 | static const unsigned int afe_tx_amp_control1 = 0x000ffc00; | |
79 | static const unsigned int afe_tx_amp_control2 = 0x000b7c09; | |
80 | static const unsigned int afe_tx_amp_control3 = 0x000afc6e; | |
81 | ||
82 | static const char blob_name[] = "isci_firmware.bin"; | |
83 | static const char sig[] = "ISCUOEMB"; | |
a2995d38 | 84 | static const unsigned char version = ISCI_ROM_VER_LATEST; |
de960e50 BH |
85 | |
86 | #endif |