0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042 #ifndef NTB_HW_IDT_H
0043 #define NTB_HW_IDT_H
0044
0045 #include <linux/types.h>
0046 #include <linux/pci.h>
0047 #include <linux/pci_ids.h>
0048 #include <linux/interrupt.h>
0049 #include <linux/spinlock.h>
0050 #include <linux/mutex.h>
0051 #include <linux/ntb.h>
0052
0053
0054
0055
0056
0057
0058
0059 #define IDT_PCI_DEVICE_IDS(devname, data) \
0060 .vendor = PCI_VENDOR_ID_IDT, .device = PCI_DEVICE_ID_IDT_##devname, \
0061 .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, \
0062 .class = (PCI_CLASS_BRIDGE_OTHER << 8), .class_mask = (0xFFFF00), \
0063 .driver_data = (kernel_ulong_t)&data
0064
0065
0066
0067
0068 #define PCI_DEVICE_ID_IDT_89HPES24NT6AG2 0x8091
0069 #define PCI_DEVICE_ID_IDT_89HPES32NT8AG2 0x808F
0070 #define PCI_DEVICE_ID_IDT_89HPES32NT8BG2 0x8088
0071 #define PCI_DEVICE_ID_IDT_89HPES12NT12G2 0x8092
0072 #define PCI_DEVICE_ID_IDT_89HPES16NT16G2 0x8090
0073 #define PCI_DEVICE_ID_IDT_89HPES24NT24G2 0x808E
0074 #define PCI_DEVICE_ID_IDT_89HPES32NT24AG2 0x808C
0075 #define PCI_DEVICE_ID_IDT_89HPES32NT24BG2 0x808A
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091 #define IDT_NT_PCICMDSTS 0x00004U
0092
0093 #define IDT_NT_PCIEDCAP 0x00044U
0094
0095 #define IDT_NT_PCIEDCTLSTS 0x00048U
0096
0097 #define IDT_NT_PCIELCAP 0x0004CU
0098
0099 #define IDT_NT_PCIELCTLSTS 0x00050U
0100
0101 #define IDT_NT_PCIEDCAP2 0x00064U
0102
0103 #define IDT_NT_PCIEDCTL2 0x00068U
0104
0105 #define IDT_NT_PMCSR 0x000C4U
0106
0107
0108
0109
0110 #define IDT_NT_NTCTL 0x00400U
0111
0112 #define IDT_NT_NTINTSTS 0x00404U
0113 #define IDT_NT_NTINTMSK 0x00408U
0114
0115 #define IDT_NT_NTSDATA 0x0040CU
0116
0117 #define IDT_NT_NTGSIGNAL 0x00410U
0118
0119 #define IDT_NT_NTIERRORMSK0 0x00414U
0120 #define IDT_NT_NTIERRORMSK1 0x00418U
0121
0122
0123 #define IDT_NT_OUTDBELLSET 0x00420U
0124
0125 #define IDT_NT_INDBELLSTS 0x00428U
0126 #define IDT_NT_INDBELLMSK 0x0042CU
0127
0128
0129 #define IDT_NT_OUTMSG0 0x00430U
0130 #define IDT_NT_OUTMSG1 0x00434U
0131 #define IDT_NT_OUTMSG2 0x00438U
0132 #define IDT_NT_OUTMSG3 0x0043CU
0133
0134 #define IDT_NT_INMSG0 0x00440U
0135 #define IDT_NT_INMSG1 0x00444U
0136 #define IDT_NT_INMSG2 0x00448U
0137 #define IDT_NT_INMSG3 0x0044CU
0138
0139 #define IDT_NT_INMSGSRC0 0x00450U
0140 #define IDT_NT_INMSGSRC1 0x00454U
0141 #define IDT_NT_INMSGSRC2 0x00458U
0142 #define IDT_NT_INMSGSRC3 0x0045CU
0143
0144 #define IDT_NT_MSGSTS 0x00460U
0145
0146 #define IDT_NT_MSGSTSMSK 0x00464U
0147
0148
0149 #define IDT_NT_BARSETUP0 0x00470U
0150 #define IDT_NT_BARLIMIT0 0x00474U
0151 #define IDT_NT_BARLTBASE0 0x00478U
0152 #define IDT_NT_BARUTBASE0 0x0047CU
0153 #define IDT_NT_BARSETUP1 0x00480U
0154 #define IDT_NT_BARLIMIT1 0x00484U
0155 #define IDT_NT_BARLTBASE1 0x00488U
0156 #define IDT_NT_BARUTBASE1 0x0048CU
0157 #define IDT_NT_BARSETUP2 0x00490U
0158 #define IDT_NT_BARLIMIT2 0x00494U
0159 #define IDT_NT_BARLTBASE2 0x00498U
0160 #define IDT_NT_BARUTBASE2 0x0049CU
0161 #define IDT_NT_BARSETUP3 0x004A0U
0162 #define IDT_NT_BARLIMIT3 0x004A4U
0163 #define IDT_NT_BARLTBASE3 0x004A8U
0164 #define IDT_NT_BARUTBASE3 0x004ACU
0165 #define IDT_NT_BARSETUP4 0x004B0U
0166 #define IDT_NT_BARLIMIT4 0x004B4U
0167 #define IDT_NT_BARLTBASE4 0x004B8U
0168 #define IDT_NT_BARUTBASE4 0x004BCU
0169 #define IDT_NT_BARSETUP5 0x004C0U
0170 #define IDT_NT_BARLIMIT5 0x004C4U
0171 #define IDT_NT_BARLTBASE5 0x004C8U
0172 #define IDT_NT_BARUTBASE5 0x004CCU
0173
0174
0175 #define IDT_NT_NTMTBLADDR 0x004D0U
0176 #define IDT_NT_NTMTBLSTS 0x004D4U
0177 #define IDT_NT_NTMTBLDATA 0x004D8U
0178
0179 #define IDT_NT_REQIDCAP 0x004DCU
0180
0181
0182 #define IDT_NT_LUTOFFSET 0x004E0U
0183 #define IDT_NT_LUTLDATA 0x004E4U
0184 #define IDT_NT_LUTMDATA 0x004E8U
0185 #define IDT_NT_LUTUDATA 0x004ECU
0186
0187 #define IDT_NT_NTUEEM 0x004F0U
0188 #define IDT_NT_NTCEEM 0x004F4U
0189
0190 #define IDT_NT_GASAADDR 0x00FF8U
0191 #define IDT_NT_GASADATA 0x00FFCU
0192
0193
0194
0195
0196
0197
0198 #define IDT_SW_NTP0_PCIECMDSTS 0x01004U
0199 #define IDT_SW_NTP0_PCIELCTLSTS 0x01050U
0200
0201 #define IDT_SW_NTP0_NTCTL 0x01400U
0202
0203 #define IDT_SW_NTP0_BARSETUP0 0x01470U
0204 #define IDT_SW_NTP0_BARLIMIT0 0x01474U
0205 #define IDT_SW_NTP0_BARLTBASE0 0x01478U
0206 #define IDT_SW_NTP0_BARUTBASE0 0x0147CU
0207 #define IDT_SW_NTP0_BARSETUP1 0x01480U
0208 #define IDT_SW_NTP0_BARLIMIT1 0x01484U
0209 #define IDT_SW_NTP0_BARLTBASE1 0x01488U
0210 #define IDT_SW_NTP0_BARUTBASE1 0x0148CU
0211 #define IDT_SW_NTP0_BARSETUP2 0x01490U
0212 #define IDT_SW_NTP0_BARLIMIT2 0x01494U
0213 #define IDT_SW_NTP0_BARLTBASE2 0x01498U
0214 #define IDT_SW_NTP0_BARUTBASE2 0x0149CU
0215 #define IDT_SW_NTP0_BARSETUP3 0x014A0U
0216 #define IDT_SW_NTP0_BARLIMIT3 0x014A4U
0217 #define IDT_SW_NTP0_BARLTBASE3 0x014A8U
0218 #define IDT_SW_NTP0_BARUTBASE3 0x014ACU
0219 #define IDT_SW_NTP0_BARSETUP4 0x014B0U
0220 #define IDT_SW_NTP0_BARLIMIT4 0x014B4U
0221 #define IDT_SW_NTP0_BARLTBASE4 0x014B8U
0222 #define IDT_SW_NTP0_BARUTBASE4 0x014BCU
0223 #define IDT_SW_NTP0_BARSETUP5 0x014C0U
0224 #define IDT_SW_NTP0_BARLIMIT5 0x014C4U
0225 #define IDT_SW_NTP0_BARLTBASE5 0x014C8U
0226 #define IDT_SW_NTP0_BARUTBASE5 0x014CCU
0227
0228 #define IDT_SW_NTP2_PCIECMDSTS 0x05004U
0229 #define IDT_SW_NTP2_PCIELCTLSTS 0x05050U
0230
0231 #define IDT_SW_NTP2_NTCTL 0x05400U
0232
0233 #define IDT_SW_NTP2_BARSETUP0 0x05470U
0234 #define IDT_SW_NTP2_BARLIMIT0 0x05474U
0235 #define IDT_SW_NTP2_BARLTBASE0 0x05478U
0236 #define IDT_SW_NTP2_BARUTBASE0 0x0547CU
0237 #define IDT_SW_NTP2_BARSETUP1 0x05480U
0238 #define IDT_SW_NTP2_BARLIMIT1 0x05484U
0239 #define IDT_SW_NTP2_BARLTBASE1 0x05488U
0240 #define IDT_SW_NTP2_BARUTBASE1 0x0548CU
0241 #define IDT_SW_NTP2_BARSETUP2 0x05490U
0242 #define IDT_SW_NTP2_BARLIMIT2 0x05494U
0243 #define IDT_SW_NTP2_BARLTBASE2 0x05498U
0244 #define IDT_SW_NTP2_BARUTBASE2 0x0549CU
0245 #define IDT_SW_NTP2_BARSETUP3 0x054A0U
0246 #define IDT_SW_NTP2_BARLIMIT3 0x054A4U
0247 #define IDT_SW_NTP2_BARLTBASE3 0x054A8U
0248 #define IDT_SW_NTP2_BARUTBASE3 0x054ACU
0249 #define IDT_SW_NTP2_BARSETUP4 0x054B0U
0250 #define IDT_SW_NTP2_BARLIMIT4 0x054B4U
0251 #define IDT_SW_NTP2_BARLTBASE4 0x054B8U
0252 #define IDT_SW_NTP2_BARUTBASE4 0x054BCU
0253 #define IDT_SW_NTP2_BARSETUP5 0x054C0U
0254 #define IDT_SW_NTP2_BARLIMIT5 0x054C4U
0255 #define IDT_SW_NTP2_BARLTBASE5 0x054C8U
0256 #define IDT_SW_NTP2_BARUTBASE5 0x054CCU
0257
0258 #define IDT_SW_NTP4_PCIECMDSTS 0x09004U
0259 #define IDT_SW_NTP4_PCIELCTLSTS 0x09050U
0260
0261 #define IDT_SW_NTP4_NTCTL 0x09400U
0262
0263 #define IDT_SW_NTP4_BARSETUP0 0x09470U
0264 #define IDT_SW_NTP4_BARLIMIT0 0x09474U
0265 #define IDT_SW_NTP4_BARLTBASE0 0x09478U
0266 #define IDT_SW_NTP4_BARUTBASE0 0x0947CU
0267 #define IDT_SW_NTP4_BARSETUP1 0x09480U
0268 #define IDT_SW_NTP4_BARLIMIT1 0x09484U
0269 #define IDT_SW_NTP4_BARLTBASE1 0x09488U
0270 #define IDT_SW_NTP4_BARUTBASE1 0x0948CU
0271 #define IDT_SW_NTP4_BARSETUP2 0x09490U
0272 #define IDT_SW_NTP4_BARLIMIT2 0x09494U
0273 #define IDT_SW_NTP4_BARLTBASE2 0x09498U
0274 #define IDT_SW_NTP4_BARUTBASE2 0x0949CU
0275 #define IDT_SW_NTP4_BARSETUP3 0x094A0U
0276 #define IDT_SW_NTP4_BARLIMIT3 0x094A4U
0277 #define IDT_SW_NTP4_BARLTBASE3 0x094A8U
0278 #define IDT_SW_NTP4_BARUTBASE3 0x094ACU
0279 #define IDT_SW_NTP4_BARSETUP4 0x094B0U
0280 #define IDT_SW_NTP4_BARLIMIT4 0x094B4U
0281 #define IDT_SW_NTP4_BARLTBASE4 0x094B8U
0282 #define IDT_SW_NTP4_BARUTBASE4 0x094BCU
0283 #define IDT_SW_NTP4_BARSETUP5 0x094C0U
0284 #define IDT_SW_NTP4_BARLIMIT5 0x094C4U
0285 #define IDT_SW_NTP4_BARLTBASE5 0x094C8U
0286 #define IDT_SW_NTP4_BARUTBASE5 0x094CCU
0287
0288 #define IDT_SW_NTP6_PCIECMDSTS 0x0D004U
0289 #define IDT_SW_NTP6_PCIELCTLSTS 0x0D050U
0290
0291 #define IDT_SW_NTP6_NTCTL 0x0D400U
0292
0293 #define IDT_SW_NTP6_BARSETUP0 0x0D470U
0294 #define IDT_SW_NTP6_BARLIMIT0 0x0D474U
0295 #define IDT_SW_NTP6_BARLTBASE0 0x0D478U
0296 #define IDT_SW_NTP6_BARUTBASE0 0x0D47CU
0297 #define IDT_SW_NTP6_BARSETUP1 0x0D480U
0298 #define IDT_SW_NTP6_BARLIMIT1 0x0D484U
0299 #define IDT_SW_NTP6_BARLTBASE1 0x0D488U
0300 #define IDT_SW_NTP6_BARUTBASE1 0x0D48CU
0301 #define IDT_SW_NTP6_BARSETUP2 0x0D490U
0302 #define IDT_SW_NTP6_BARLIMIT2 0x0D494U
0303 #define IDT_SW_NTP6_BARLTBASE2 0x0D498U
0304 #define IDT_SW_NTP6_BARUTBASE2 0x0D49CU
0305 #define IDT_SW_NTP6_BARSETUP3 0x0D4A0U
0306 #define IDT_SW_NTP6_BARLIMIT3 0x0D4A4U
0307 #define IDT_SW_NTP6_BARLTBASE3 0x0D4A8U
0308 #define IDT_SW_NTP6_BARUTBASE3 0x0D4ACU
0309 #define IDT_SW_NTP6_BARSETUP4 0x0D4B0U
0310 #define IDT_SW_NTP6_BARLIMIT4 0x0D4B4U
0311 #define IDT_SW_NTP6_BARLTBASE4 0x0D4B8U
0312 #define IDT_SW_NTP6_BARUTBASE4 0x0D4BCU
0313 #define IDT_SW_NTP6_BARSETUP5 0x0D4C0U
0314 #define IDT_SW_NTP6_BARLIMIT5 0x0D4C4U
0315 #define IDT_SW_NTP6_BARLTBASE5 0x0D4C8U
0316 #define IDT_SW_NTP6_BARUTBASE5 0x0D4CCU
0317
0318 #define IDT_SW_NTP8_PCIECMDSTS 0x11004U
0319 #define IDT_SW_NTP8_PCIELCTLSTS 0x11050U
0320
0321 #define IDT_SW_NTP8_NTCTL 0x11400U
0322
0323 #define IDT_SW_NTP8_BARSETUP0 0x11470U
0324 #define IDT_SW_NTP8_BARLIMIT0 0x11474U
0325 #define IDT_SW_NTP8_BARLTBASE0 0x11478U
0326 #define IDT_SW_NTP8_BARUTBASE0 0x1147CU
0327 #define IDT_SW_NTP8_BARSETUP1 0x11480U
0328 #define IDT_SW_NTP8_BARLIMIT1 0x11484U
0329 #define IDT_SW_NTP8_BARLTBASE1 0x11488U
0330 #define IDT_SW_NTP8_BARUTBASE1 0x1148CU
0331 #define IDT_SW_NTP8_BARSETUP2 0x11490U
0332 #define IDT_SW_NTP8_BARLIMIT2 0x11494U
0333 #define IDT_SW_NTP8_BARLTBASE2 0x11498U
0334 #define IDT_SW_NTP8_BARUTBASE2 0x1149CU
0335 #define IDT_SW_NTP8_BARSETUP3 0x114A0U
0336 #define IDT_SW_NTP8_BARLIMIT3 0x114A4U
0337 #define IDT_SW_NTP8_BARLTBASE3 0x114A8U
0338 #define IDT_SW_NTP8_BARUTBASE3 0x114ACU
0339 #define IDT_SW_NTP8_BARSETUP4 0x114B0U
0340 #define IDT_SW_NTP8_BARLIMIT4 0x114B4U
0341 #define IDT_SW_NTP8_BARLTBASE4 0x114B8U
0342 #define IDT_SW_NTP8_BARUTBASE4 0x114BCU
0343 #define IDT_SW_NTP8_BARSETUP5 0x114C0U
0344 #define IDT_SW_NTP8_BARLIMIT5 0x114C4U
0345 #define IDT_SW_NTP8_BARLTBASE5 0x114C8U
0346 #define IDT_SW_NTP8_BARUTBASE5 0x114CCU
0347
0348 #define IDT_SW_NTP12_PCIECMDSTS 0x19004U
0349 #define IDT_SW_NTP12_PCIELCTLSTS 0x19050U
0350
0351 #define IDT_SW_NTP12_NTCTL 0x19400U
0352
0353 #define IDT_SW_NTP12_BARSETUP0 0x19470U
0354 #define IDT_SW_NTP12_BARLIMIT0 0x19474U
0355 #define IDT_SW_NTP12_BARLTBASE0 0x19478U
0356 #define IDT_SW_NTP12_BARUTBASE0 0x1947CU
0357 #define IDT_SW_NTP12_BARSETUP1 0x19480U
0358 #define IDT_SW_NTP12_BARLIMIT1 0x19484U
0359 #define IDT_SW_NTP12_BARLTBASE1 0x19488U
0360 #define IDT_SW_NTP12_BARUTBASE1 0x1948CU
0361 #define IDT_SW_NTP12_BARSETUP2 0x19490U
0362 #define IDT_SW_NTP12_BARLIMIT2 0x19494U
0363 #define IDT_SW_NTP12_BARLTBASE2 0x19498U
0364 #define IDT_SW_NTP12_BARUTBASE2 0x1949CU
0365 #define IDT_SW_NTP12_BARSETUP3 0x194A0U
0366 #define IDT_SW_NTP12_BARLIMIT3 0x194A4U
0367 #define IDT_SW_NTP12_BARLTBASE3 0x194A8U
0368 #define IDT_SW_NTP12_BARUTBASE3 0x194ACU
0369 #define IDT_SW_NTP12_BARSETUP4 0x194B0U
0370 #define IDT_SW_NTP12_BARLIMIT4 0x194B4U
0371 #define IDT_SW_NTP12_BARLTBASE4 0x194B8U
0372 #define IDT_SW_NTP12_BARUTBASE4 0x194BCU
0373 #define IDT_SW_NTP12_BARSETUP5 0x194C0U
0374 #define IDT_SW_NTP12_BARLIMIT5 0x194C4U
0375 #define IDT_SW_NTP12_BARLTBASE5 0x194C8U
0376 #define IDT_SW_NTP12_BARUTBASE5 0x194CCU
0377
0378 #define IDT_SW_NTP16_PCIECMDSTS 0x21004U
0379 #define IDT_SW_NTP16_PCIELCTLSTS 0x21050U
0380
0381 #define IDT_SW_NTP16_NTCTL 0x21400U
0382
0383 #define IDT_SW_NTP16_BARSETUP0 0x21470U
0384 #define IDT_SW_NTP16_BARLIMIT0 0x21474U
0385 #define IDT_SW_NTP16_BARLTBASE0 0x21478U
0386 #define IDT_SW_NTP16_BARUTBASE0 0x2147CU
0387 #define IDT_SW_NTP16_BARSETUP1 0x21480U
0388 #define IDT_SW_NTP16_BARLIMIT1 0x21484U
0389 #define IDT_SW_NTP16_BARLTBASE1 0x21488U
0390 #define IDT_SW_NTP16_BARUTBASE1 0x2148CU
0391 #define IDT_SW_NTP16_BARSETUP2 0x21490U
0392 #define IDT_SW_NTP16_BARLIMIT2 0x21494U
0393 #define IDT_SW_NTP16_BARLTBASE2 0x21498U
0394 #define IDT_SW_NTP16_BARUTBASE2 0x2149CU
0395 #define IDT_SW_NTP16_BARSETUP3 0x214A0U
0396 #define IDT_SW_NTP16_BARLIMIT3 0x214A4U
0397 #define IDT_SW_NTP16_BARLTBASE3 0x214A8U
0398 #define IDT_SW_NTP16_BARUTBASE3 0x214ACU
0399 #define IDT_SW_NTP16_BARSETUP4 0x214B0U
0400 #define IDT_SW_NTP16_BARLIMIT4 0x214B4U
0401 #define IDT_SW_NTP16_BARLTBASE4 0x214B8U
0402 #define IDT_SW_NTP16_BARUTBASE4 0x214BCU
0403 #define IDT_SW_NTP16_BARSETUP5 0x214C0U
0404 #define IDT_SW_NTP16_BARLIMIT5 0x214C4U
0405 #define IDT_SW_NTP16_BARLTBASE5 0x214C8U
0406 #define IDT_SW_NTP16_BARUTBASE5 0x214CCU
0407
0408 #define IDT_SW_NTP20_PCIECMDSTS 0x29004U
0409 #define IDT_SW_NTP20_PCIELCTLSTS 0x29050U
0410
0411 #define IDT_SW_NTP20_NTCTL 0x29400U
0412
0413 #define IDT_SW_NTP20_BARSETUP0 0x29470U
0414 #define IDT_SW_NTP20_BARLIMIT0 0x29474U
0415 #define IDT_SW_NTP20_BARLTBASE0 0x29478U
0416 #define IDT_SW_NTP20_BARUTBASE0 0x2947CU
0417 #define IDT_SW_NTP20_BARSETUP1 0x29480U
0418 #define IDT_SW_NTP20_BARLIMIT1 0x29484U
0419 #define IDT_SW_NTP20_BARLTBASE1 0x29488U
0420 #define IDT_SW_NTP20_BARUTBASE1 0x2948CU
0421 #define IDT_SW_NTP20_BARSETUP2 0x29490U
0422 #define IDT_SW_NTP20_BARLIMIT2 0x29494U
0423 #define IDT_SW_NTP20_BARLTBASE2 0x29498U
0424 #define IDT_SW_NTP20_BARUTBASE2 0x2949CU
0425 #define IDT_SW_NTP20_BARSETUP3 0x294A0U
0426 #define IDT_SW_NTP20_BARLIMIT3 0x294A4U
0427 #define IDT_SW_NTP20_BARLTBASE3 0x294A8U
0428 #define IDT_SW_NTP20_BARUTBASE3 0x294ACU
0429 #define IDT_SW_NTP20_BARSETUP4 0x294B0U
0430 #define IDT_SW_NTP20_BARLIMIT4 0x294B4U
0431 #define IDT_SW_NTP20_BARLTBASE4 0x294B8U
0432 #define IDT_SW_NTP20_BARUTBASE4 0x294BCU
0433 #define IDT_SW_NTP20_BARSETUP5 0x294C0U
0434 #define IDT_SW_NTP20_BARLIMIT5 0x294C4U
0435 #define IDT_SW_NTP20_BARLTBASE5 0x294C8U
0436 #define IDT_SW_NTP20_BARUTBASE5 0x294CCU
0437
0438 #define IDT_SW_CTL 0x3E000U
0439
0440 #define IDT_SW_BCVSTS 0x3E004U
0441
0442 #define IDT_SW_PCLKMODE 0x3E008U
0443
0444 #define IDT_SW_RDRAINDELAY 0x3E080U
0445
0446 #define IDT_SW_POMCDELAY 0x3E084U
0447
0448 #define IDT_SW_SEDELAY 0x3E088U
0449
0450 #define IDT_SW_SSBRDELAY 0x3E08CU
0451
0452 #define IDT_SW_SWPART0CTL 0x3E100U
0453 #define IDT_SW_SWPART0STS 0x3E104U
0454 #define IDT_SW_SWPART0FCTL 0x3E108U
0455 #define IDT_SW_SWPART1CTL 0x3E120U
0456 #define IDT_SW_SWPART1STS 0x3E124U
0457 #define IDT_SW_SWPART1FCTL 0x3E128U
0458 #define IDT_SW_SWPART2CTL 0x3E140U
0459 #define IDT_SW_SWPART2STS 0x3E144U
0460 #define IDT_SW_SWPART2FCTL 0x3E148U
0461 #define IDT_SW_SWPART3CTL 0x3E160U
0462 #define IDT_SW_SWPART3STS 0x3E164U
0463 #define IDT_SW_SWPART3FCTL 0x3E168U
0464 #define IDT_SW_SWPART4CTL 0x3E180U
0465 #define IDT_SW_SWPART4STS 0x3E184U
0466 #define IDT_SW_SWPART4FCTL 0x3E188U
0467 #define IDT_SW_SWPART5CTL 0x3E1A0U
0468 #define IDT_SW_SWPART5STS 0x3E1A4U
0469 #define IDT_SW_SWPART5FCTL 0x3E1A8U
0470 #define IDT_SW_SWPART6CTL 0x3E1C0U
0471 #define IDT_SW_SWPART6STS 0x3E1C4U
0472 #define IDT_SW_SWPART6FCTL 0x3E1C8U
0473 #define IDT_SW_SWPART7CTL 0x3E1E0U
0474 #define IDT_SW_SWPART7STS 0x3E1E4U
0475 #define IDT_SW_SWPART7FCTL 0x3E1E8U
0476
0477 #define IDT_SW_SWPORT0CTL 0x3E200U
0478 #define IDT_SW_SWPORT0STS 0x3E204U
0479 #define IDT_SW_SWPORT0FCTL 0x3E208U
0480 #define IDT_SW_SWPORT2CTL 0x3E240U
0481 #define IDT_SW_SWPORT2STS 0x3E244U
0482 #define IDT_SW_SWPORT2FCTL 0x3E248U
0483 #define IDT_SW_SWPORT4CTL 0x3E280U
0484 #define IDT_SW_SWPORT4STS 0x3E284U
0485 #define IDT_SW_SWPORT4FCTL 0x3E288U
0486 #define IDT_SW_SWPORT6CTL 0x3E2C0U
0487 #define IDT_SW_SWPORT6STS 0x3E2C4U
0488 #define IDT_SW_SWPORT6FCTL 0x3E2C8U
0489 #define IDT_SW_SWPORT8CTL 0x3E300U
0490 #define IDT_SW_SWPORT8STS 0x3E304U
0491 #define IDT_SW_SWPORT8FCTL 0x3E308U
0492 #define IDT_SW_SWPORT12CTL 0x3E380U
0493 #define IDT_SW_SWPORT12STS 0x3E384U
0494 #define IDT_SW_SWPORT12FCTL 0x3E388U
0495 #define IDT_SW_SWPORT16CTL 0x3E400U
0496 #define IDT_SW_SWPORT16STS 0x3E404U
0497 #define IDT_SW_SWPORT16FCTL 0x3E408U
0498 #define IDT_SW_SWPORT20CTL 0x3E480U
0499 #define IDT_SW_SWPORT20STS 0x3E484U
0500 #define IDT_SW_SWPORT20FCTL 0x3E488U
0501
0502
0503 #define IDT_SW_SESTS 0x3EC00U
0504 #define IDT_SW_SEMSK 0x3EC04U
0505 #define IDT_SW_SEPMSK 0x3EC08U
0506
0507 #define IDT_SW_SELINKUPSTS 0x3EC0CU
0508 #define IDT_SW_SELINKUPMSK 0x3EC10U
0509 #define IDT_SW_SELINKDNSTS 0x3EC14U
0510 #define IDT_SW_SELINKDNMSK 0x3EC18U
0511
0512 #define IDT_SW_SEFRSTSTS 0x3EC1CU
0513 #define IDT_SW_SEFRSTMSK 0x3EC20U
0514
0515 #define IDT_SW_SEHRSTSTS 0x3EC24U
0516 #define IDT_SW_SEHRSTMSK 0x3EC28U
0517
0518 #define IDT_SW_SEFOVRMSK 0x3EC2CU
0519
0520 #define IDT_SW_SEGSIGSTS 0x3EC30U
0521 #define IDT_SW_SEGSIGMSK 0x3EC34U
0522
0523 #define IDT_SW_GDBELLSTS 0x3EC3CU
0524
0525 #define IDT_SW_SWP0MSGCTL0 0x3EE00U
0526 #define IDT_SW_SWP1MSGCTL0 0x3EE04U
0527 #define IDT_SW_SWP2MSGCTL0 0x3EE08U
0528 #define IDT_SW_SWP3MSGCTL0 0x3EE0CU
0529 #define IDT_SW_SWP4MSGCTL0 0x3EE10U
0530 #define IDT_SW_SWP5MSGCTL0 0x3EE14U
0531 #define IDT_SW_SWP6MSGCTL0 0x3EE18U
0532 #define IDT_SW_SWP7MSGCTL0 0x3EE1CU
0533 #define IDT_SW_SWP0MSGCTL1 0x3EE20U
0534 #define IDT_SW_SWP1MSGCTL1 0x3EE24U
0535 #define IDT_SW_SWP2MSGCTL1 0x3EE28U
0536 #define IDT_SW_SWP3MSGCTL1 0x3EE2CU
0537 #define IDT_SW_SWP4MSGCTL1 0x3EE30U
0538 #define IDT_SW_SWP5MSGCTL1 0x3EE34U
0539 #define IDT_SW_SWP6MSGCTL1 0x3EE38U
0540 #define IDT_SW_SWP7MSGCTL1 0x3EE3CU
0541 #define IDT_SW_SWP0MSGCTL2 0x3EE40U
0542 #define IDT_SW_SWP1MSGCTL2 0x3EE44U
0543 #define IDT_SW_SWP2MSGCTL2 0x3EE48U
0544 #define IDT_SW_SWP3MSGCTL2 0x3EE4CU
0545 #define IDT_SW_SWP4MSGCTL2 0x3EE50U
0546 #define IDT_SW_SWP5MSGCTL2 0x3EE54U
0547 #define IDT_SW_SWP6MSGCTL2 0x3EE58U
0548 #define IDT_SW_SWP7MSGCTL2 0x3EE5CU
0549 #define IDT_SW_SWP0MSGCTL3 0x3EE60U
0550 #define IDT_SW_SWP1MSGCTL3 0x3EE64U
0551 #define IDT_SW_SWP2MSGCTL3 0x3EE68U
0552 #define IDT_SW_SWP3MSGCTL3 0x3EE6CU
0553 #define IDT_SW_SWP4MSGCTL3 0x3EE70U
0554 #define IDT_SW_SWP5MSGCTL3 0x3EE74U
0555 #define IDT_SW_SWP6MSGCTL3 0x3EE78U
0556 #define IDT_SW_SWP7MSGCTL3 0x3EE7CU
0557
0558 #define IDT_SW_SMBUSSTS 0x3F188U
0559 #define IDT_SW_SMBUSCTL 0x3F18CU
0560
0561 #define IDT_SW_EEPROMINTF 0x3F190U
0562
0563 #define IDT_SW_IOEXPADDR0 0x3F198U
0564 #define IDT_SW_IOEXPADDR1 0x3F19CU
0565 #define IDT_SW_IOEXPADDR2 0x3F1A0U
0566 #define IDT_SW_IOEXPADDR3 0x3F1A4U
0567 #define IDT_SW_IOEXPADDR4 0x3F1A8U
0568 #define IDT_SW_IOEXPADDR5 0x3F1ACU
0569
0570 #define IDT_SW_GPECTL 0x3F1B0U
0571 #define IDT_SW_GPESTS 0x3F1B4U
0572
0573 #define IDT_SW_TMPCTL 0x3F1D4U
0574 #define IDT_SW_TMPSTS 0x3F1D8U
0575 #define IDT_SW_TMPALARM 0x3F1DCU
0576 #define IDT_SW_TMPADJ 0x3F1E0U
0577 #define IDT_SW_TSSLOPE 0x3F1E4U
0578
0579 #define IDT_SW_SMBUSCBHL 0x3F1E8U
0580
0581
0582
0583
0584
0585
0586
0587 #define IDT_REG_ALIGN 4
0588 #define IDT_REG_PCI_MAX 0x00FFFU
0589 #define IDT_REG_SW_MAX 0x3FFFFU
0590
0591
0592
0593
0594
0595
0596
0597 #define IDT_PCICMDSTS_IOAE 0x00000001U
0598 #define IDT_PCICMDSTS_MAE 0x00000002U
0599 #define IDT_PCICMDSTS_BME 0x00000004U
0600
0601
0602
0603
0604
0605
0606
0607
0608
0609
0610
0611 #define IDT_PCIEDCAP_MPAYLOAD_MASK 0x00000007U
0612 #define IDT_PCIEDCAP_MPAYLOAD_FLD 0
0613 #define IDT_PCIEDCAP_MPAYLOAD_S128 0x00000000U
0614 #define IDT_PCIEDCAP_MPAYLOAD_S256 0x00000001U
0615 #define IDT_PCIEDCAP_MPAYLOAD_S512 0x00000002U
0616 #define IDT_PCIEDCAP_MPAYLOAD_S1024 0x00000003U
0617 #define IDT_PCIEDCAP_MPAYLOAD_S2048 0x00000004U
0618
0619
0620
0621
0622
0623
0624
0625
0626
0627
0628
0629
0630 #define IDT_PCIEDCTLSTS_MPS_MASK 0x000000E0U
0631 #define IDT_PCIEDCTLSTS_MPS_FLD 5
0632 #define IDT_PCIEDCTLSTS_MPS_S128 0x00000000U
0633 #define IDT_PCIEDCTLSTS_MPS_S256 0x00000020U
0634 #define IDT_PCIEDCTLSTS_MPS_S512 0x00000040U
0635 #define IDT_PCIEDCTLSTS_MPS_S1024 0x00000060U
0636 #define IDT_PCIEDCTLSTS_MPS_S2048 0x00000080U
0637 #define IDT_PCIEDCTLSTS_MPS_S4096 0x000000A0U
0638
0639
0640
0641
0642
0643
0644 #define IDT_PCIELCAP_PORTNUM_MASK 0xFF000000U
0645 #define IDT_PCIELCAP_PORTNUM_FLD 24
0646
0647
0648
0649
0650
0651
0652
0653
0654
0655 #define IDT_PCIELCTLSTS_CLS_MASK 0x000F0000U
0656 #define IDT_PCIELCTLSTS_CLS_FLD 16
0657 #define IDT_PCIELCTLSTS_NLW_MASK 0x03F00000U
0658 #define IDT_PCIELCTLSTS_NLW_FLD 20
0659 #define IDT_PCIELCTLSTS_SCLK_COM 0x10000000U
0660
0661
0662
0663
0664
0665
0666
0667
0668 #define IDT_NTCTL_IDPROTDIS 0x00000001U
0669 #define IDT_NTCTL_CPEN 0x00000002U
0670 #define IDT_NTCTL_RNS 0x00000004U
0671 #define IDT_NTCTL_ATP 0x00000008U
0672
0673
0674
0675
0676
0677
0678
0679
0680 #define IDT_NTINTSTS_MSG 0x00000001U
0681 #define IDT_NTINTSTS_DBELL 0x00000002U
0682 #define IDT_NTINTSTS_SEVENT 0x00000008U
0683 #define IDT_NTINTSTS_TMPSENSOR 0x00000080U
0684
0685
0686
0687
0688
0689
0690
0691
0692
0693 #define IDT_NTINTMSK_MSG 0x00000001U
0694 #define IDT_NTINTMSK_DBELL 0x00000002U
0695 #define IDT_NTINTMSK_SEVENT 0x00000008U
0696 #define IDT_NTINTMSK_TMPSENSOR 0x00000080U
0697 #define IDT_NTINTMSK_ALL \
0698 (IDT_NTINTMSK_MSG | IDT_NTINTMSK_DBELL | IDT_NTINTMSK_SEVENT)
0699
0700
0701
0702
0703
0704 #define IDT_NTGSIGNAL_SET 0x00000001U
0705
0706
0707
0708
0709
0710
0711
0712
0713
0714
0715
0716
0717
0718
0719
0720
0721
0722
0723
0724
0725 #define IDT_BARSETUP_TYPE_MASK 0x00000006U
0726 #define IDT_BARSETUP_TYPE_FLD 0
0727 #define IDT_BARSETUP_TYPE_32 0x00000000U
0728 #define IDT_BARSETUP_TYPE_64 0x00000004U
0729 #define IDT_BARSETUP_PREF 0x00000008U
0730 #define IDT_BARSETUP_SIZE_MASK 0x000003F0U
0731 #define IDT_BARSETUP_SIZE_FLD 4
0732 #define IDT_BARSETUP_SIZE_CFG 0x000000C0U
0733 #define IDT_BARSETUP_MODE_CFG 0x00000400U
0734 #define IDT_BARSETUP_ATRAN_MASK 0x00001800U
0735 #define IDT_BARSETUP_ATRAN_FLD 11
0736 #define IDT_BARSETUP_ATRAN_DIR 0x00000000U
0737 #define IDT_BARSETUP_ATRAN_LUT12 0x00000800U
0738 #define IDT_BARSETUP_ATRAN_LUT24 0x00001000U
0739 #define IDT_BARSETUP_TPART_MASK 0x0000E000U
0740 #define IDT_BARSETUP_TPART_FLD 13
0741 #define IDT_BARSETUP_EN 0x80000000U
0742
0743
0744
0745
0746
0747
0748
0749
0750
0751
0752
0753
0754
0755
0756 #define IDT_NTMTBLDATA_VALID 0x00000001U
0757 #define IDT_NTMTBLDATA_REQID_MASK 0x0001FFFEU
0758 #define IDT_NTMTBLDATA_REQID_FLD 1
0759 #define IDT_NTMTBLDATA_PART_MASK 0x000E0000U
0760 #define IDT_NTMTBLDATA_PART_FLD 17
0761 #define IDT_NTMTBLDATA_ATP_TRANS 0x20000000U
0762 #define IDT_NTMTBLDATA_CNS_INV 0x40000000U
0763 #define IDT_NTMTBLDATA_RNS_INV 0x80000000U
0764
0765
0766
0767
0768
0769
0770 #define IDT_REQIDCAP_REQID_MASK 0x0000FFFFU
0771 #define IDT_REQIDCAP_REQID_FLD 0
0772
0773
0774
0775
0776
0777
0778
0779
0780 #define IDT_LUTOFFSET_INDEX_MASK 0x0000001FU
0781 #define IDT_LUTOFFSET_INDEX_FLD 0
0782 #define IDT_LUTOFFSET_BAR_MASK 0x00000700U
0783 #define IDT_LUTOFFSET_BAR_FLD 8
0784
0785
0786
0787
0788
0789
0790
0791 #define IDT_LUTUDATA_PART_MASK 0x0000000FU
0792 #define IDT_LUTUDATA_PART_FLD 0
0793 #define IDT_LUTUDATA_VALID 0x80000000U
0794
0795
0796
0797
0798
0799
0800
0801
0802
0803
0804
0805
0806
0807
0808
0809
0810 #define IDT_SWPARTxSTS_SCI 0x00000001U
0811 #define IDT_SWPARTxSTS_SCC 0x00000002U
0812 #define IDT_SWPARTxSTS_STATE_MASK 0x00000060U
0813 #define IDT_SWPARTxSTS_STATE_FLD 5
0814 #define IDT_SWPARTxSTS_STATE_DIS 0x00000000U
0815 #define IDT_SWPARTxSTS_STATE_ACT 0x00000020U
0816 #define IDT_SWPARTxSTS_STATE_RES 0x00000060U
0817 #define IDT_SWPARTxSTS_US 0x00000100U
0818 #define IDT_SWPARTxSTS_USID_MASK 0x00003E00U
0819 #define IDT_SWPARTxSTS_USID_FLD 9
0820 #define IDT_SWPARTxSTS_NT 0x00004000U
0821 #define IDT_SWPARTxSTS_DMA 0x00008000U
0822
0823
0824
0825
0826
0827
0828
0829
0830
0831
0832
0833
0834
0835
0836
0837
0838
0839
0840
0841
0842
0843
0844
0845 #define IDT_SWPORTxSTS_OMCI 0x00000001U
0846 #define IDT_SWPORTxSTS_OMCC 0x00000002U
0847 #define IDT_SWPORTxSTS_LINKUP 0x00000010U
0848 #define IDT_SWPORTxSTS_DS 0x00000020U
0849 #define IDT_SWPORTxSTS_MODE_MASK 0x000003C0U
0850 #define IDT_SWPORTxSTS_MODE_FLD 6
0851 #define IDT_SWPORTxSTS_MODE_DIS 0x00000000U
0852 #define IDT_SWPORTxSTS_MODE_DS 0x00000040U
0853 #define IDT_SWPORTxSTS_MODE_US 0x00000080U
0854 #define IDT_SWPORTxSTS_MODE_NT 0x000000C0U
0855 #define IDT_SWPORTxSTS_MODE_USNT 0x00000100U
0856 #define IDT_SWPORTxSTS_MODE_UNAT 0x00000140U
0857 #define IDT_SWPORTxSTS_MODE_USDMA 0x00000180U
0858 #define IDT_SWPORTxSTS_MODE_USNTDMA 0x000001C0U
0859 #define IDT_SWPORTxSTS_MODE_NTDMA 0x00000200U
0860 #define IDT_SWPORTxSTS_SWPART_MASK 0x00001C00U
0861 #define IDT_SWPORTxSTS_SWPART_FLD 10
0862 #define IDT_SWPORTxSTS_DEVNUM_MASK 0x001F0000U
0863 #define IDT_SWPORTxSTS_DEVNUM_FLD 16
0864
0865
0866
0867
0868
0869
0870
0871 #define IDT_SEMSK_LINKUP 0x00000001U
0872 #define IDT_SEMSK_LINKDN 0x00000002U
0873 #define IDT_SEMSK_GSIGNAL 0x00000020U
0874
0875
0876
0877
0878
0879
0880
0881
0882 #define IDT_SWPxMSGCTL_REG_MASK 0x00000003U
0883 #define IDT_SWPxMSGCTL_REG_FLD 0
0884 #define IDT_SWPxMSGCTL_PART_MASK 0x00000070U
0885 #define IDT_SWPxMSGCTL_PART_FLD 4
0886
0887
0888
0889
0890
0891
0892
0893
0894
0895
0896
0897 #define IDT_TMPCTL_LTH_MASK 0x000000FFU
0898 #define IDT_TMPCTL_LTH_FLD 0
0899 #define IDT_TMPCTL_MTH_MASK 0x0000FF00U
0900 #define IDT_TMPCTL_MTH_FLD 8
0901 #define IDT_TMPCTL_HTH_MASK 0x00FF0000U
0902 #define IDT_TMPCTL_HTH_FLD 16
0903 #define IDT_TMPCTL_PDOWN 0x80000000U
0904
0905
0906
0907
0908
0909
0910
0911
0912
0913
0914 #define IDT_TMPSTS_TEMP_MASK 0x000000FFU
0915 #define IDT_TMPSTS_TEMP_FLD 0
0916 #define IDT_TMPSTS_LTEMP_MASK 0x0000FF00U
0917 #define IDT_TMPSTS_LTEMP_FLD 8
0918 #define IDT_TMPSTS_HTEMP_MASK 0x00FF0000U
0919 #define IDT_TMPSTS_HTEMP_FLD 16
0920
0921
0922
0923
0924
0925
0926
0927
0928
0929 #define IDT_TMPALARM_LTEMP_MASK 0x0000FF00U
0930 #define IDT_TMPALARM_LTEMP_FLD 8
0931 #define IDT_TMPALARM_HTEMP_MASK 0x00FF0000U
0932 #define IDT_TMPALARM_HTEMP_FLD 16
0933 #define IDT_TMPALARM_IRQ_MASK 0x3F000000U
0934
0935
0936
0937
0938
0939
0940 #define IDT_TMPADJ_OFFSET_MASK 0x000000FFU
0941 #define IDT_TMPADJ_OFFSET_FLD 0
0942
0943
0944
0945
0946
0947
0948
0949 #define GET_FIELD(field, data) \
0950 (((u32)(data) & IDT_ ##field## _MASK) >> IDT_ ##field## _FLD)
0951 #define SET_FIELD(field, data, value) \
0952 (((u32)(data) & ~IDT_ ##field## _MASK) | \
0953 ((u32)(value) << IDT_ ##field## _FLD))
0954 #define IS_FLD_SET(field, data, value) \
0955 (((u32)(data) & IDT_ ##field## _MASK) == IDT_ ##field## _ ##value)
0956
0957
0958
0959
0960
0961
0962
0963
0964 #define IDT_DBELL_MASK ((u32)0xFFFFFFFFU)
0965 #define IDT_OUTMSG_MASK ((u32)0x0000000FU)
0966 #define IDT_INMSG_MASK ((u32)0x000F0000U)
0967 #define IDT_MSG_MASK (IDT_INMSG_MASK | IDT_OUTMSG_MASK)
0968
0969
0970
0971
0972
0973
0974
0975 #define IDT_MSG_CNT 4
0976 #define IDT_BAR_CNT 6
0977 #define IDT_MTBL_ENTRY_CNT 64
0978
0979
0980
0981
0982
0983
0984
0985
0986
0987
0988
0989
0990
0991
0992 #define IDT_MAX_NR_PORTS 24
0993 #define IDT_MAX_NR_PARTS 8
0994 #define IDT_MAX_NR_PEERS 8
0995 #define IDT_MAX_NR_MWS 29
0996 #define IDT_PCIE_REGSIZE 4
0997 #define IDT_TRANS_ALIGN 4
0998 #define IDT_DIR_SIZE_ALIGN 1
0999
1000
1001
1002
1003
1004
1005
1006
1007 #define IDT_TEMP_MIN_MDEG 0
1008 #define IDT_TEMP_MAX_MDEG 127500
1009 #define IDT_TEMP_MIN_OFFSET -64000
1010 #define IDT_TEMP_MAX_OFFSET 63500
1011
1012
1013
1014
1015
1016
1017
1018
1019 enum idt_temp_val {
1020 IDT_TEMP_CUR,
1021 IDT_TEMP_LOW,
1022 IDT_TEMP_HIGH,
1023 IDT_TEMP_OFFSET
1024 };
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035 enum idt_mw_type {
1036 IDT_MW_DIR = 0x0,
1037 IDT_MW_LUT12 = 0x1,
1038 IDT_MW_LUT24 = 0x2
1039 };
1040
1041
1042
1043
1044
1045
1046
1047 struct idt_89hpes_cfg {
1048 char *name;
1049 unsigned char port_cnt;
1050 unsigned char ports[];
1051 };
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065 struct idt_mw_cfg {
1066 enum idt_mw_type type;
1067
1068 unsigned char bar;
1069 unsigned char idx;
1070
1071 u64 addr_align;
1072 u64 size_align;
1073 u64 size_max;
1074 };
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084 struct idt_ntb_peer {
1085 unsigned char port;
1086 unsigned char part;
1087
1088 unsigned char mw_cnt;
1089 struct idt_mw_cfg *mws;
1090 };
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124 struct idt_ntb_dev {
1125 struct ntb_dev ntb;
1126 struct idt_89hpes_cfg *swcfg;
1127
1128 unsigned char port;
1129 unsigned char part;
1130
1131 unsigned char peer_cnt;
1132 struct idt_ntb_peer peers[IDT_MAX_NR_PEERS];
1133 char port_idx_map[IDT_MAX_NR_PORTS];
1134 char part_idx_map[IDT_MAX_NR_PARTS];
1135
1136 spinlock_t mtbl_lock;
1137
1138 unsigned char mw_cnt;
1139 struct idt_mw_cfg *mws;
1140 spinlock_t lut_lock;
1141
1142 spinlock_t msg_locks[IDT_MSG_CNT];
1143
1144 void __iomem *cfgspc;
1145 spinlock_t db_mask_lock;
1146 spinlock_t msg_mask_lock;
1147 spinlock_t gasa_lock;
1148
1149 struct mutex hwmon_mtx;
1150
1151 struct dentry *dbgfs_info;
1152 };
1153 #define to_ndev_ntb(__ntb) container_of(__ntb, struct idt_ntb_dev, ntb)
1154
1155
1156
1157
1158
1159
1160
1161
1162 struct idt_ntb_bar {
1163 unsigned int setup;
1164 unsigned int limit;
1165 unsigned int ltbase;
1166 unsigned int utbase;
1167 };
1168
1169
1170
1171
1172
1173
1174
1175 struct idt_ntb_msg {
1176 unsigned int in;
1177 unsigned int out;
1178 unsigned int src;
1179 };
1180
1181
1182
1183
1184
1185
1186
1187 struct idt_ntb_regs {
1188 struct idt_ntb_bar bars[IDT_BAR_CNT];
1189 struct idt_ntb_msg msgs[IDT_MSG_CNT];
1190 };
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203 struct idt_ntb_port {
1204 unsigned int pcicmdsts;
1205 unsigned int pcielctlsts;
1206 unsigned int ntctl;
1207
1208 unsigned int ctl;
1209 unsigned int sts;
1210
1211 struct idt_ntb_bar bars[IDT_BAR_CNT];
1212 };
1213
1214
1215
1216
1217
1218
1219
1220 struct idt_ntb_part {
1221 unsigned int ctl;
1222 unsigned int sts;
1223 unsigned int msgctl[IDT_MSG_CNT];
1224 };
1225
1226 #endif