Parcourir la source

[phantom] Assume one net device per PCI function

The Phantom firmware selectively disables PCI functions based on the
board type, with the end result that we see one PCI function for each
network port.  This allows us to eliminate the code for reading from
flash and, more importantly, removes knowledge of the board type magic
number from the gPXE driver.
tags/v0.9.6
Michael Brown il y a 16 ans
Parent
révision
32bc76f902
2 fichiers modifiés avec 339 ajouts et 764 suppressions
  1. 339
    648
      src/drivers/net/phantom/phantom.c
  2. 0
    116
      src/drivers/net/phantom/phantom.h

+ 339
- 648
src/drivers/net/phantom/phantom.c
Fichier diff supprimé car celui-ci est trop grand
Voir le fichier


+ 0
- 116
src/drivers/net/phantom/phantom.h Voir le fichier

@@ -45,18 +45,12 @@ typedef uint32_t nx_rcode_t;
45 45
 #define NXHAL_VERSION 1
46 46
 #include "nxhal_nic_interface.h"
47 47
 
48
-/** SPI controller maximum block size */
49
-#define UNM_SPI_BLKSIZE 4
50
-
51 48
 /** DMA buffer alignment */
52 49
 #define UNM_DMA_BUFFER_ALIGN 16
53 50
 
54 51
 /** Mark structure as DMA-aligned */
55 52
 #define __unm_dma_aligned __attribute__ (( aligned ( UNM_DMA_BUFFER_ALIGN ) ))
56 53
 
57
-/** Dummy DMA buffer size */
58
-#define UNM_DUMMY_DMA_SIZE 1024
59
-
60 54
 /******************************************************************************
61 55
  *
62 56
  * Register definitions
@@ -194,114 +188,4 @@ enum unm_reg_blocks {
194 188
 #define UNM_PEG_4_HALT_STATUS		( UNM_CRB_PEG_4 + 0x00030 )
195 189
 #define UNM_PEG_4_HALT			( UNM_CRB_PEG_4 + 0x0003c )
196 190
 
197
-/******************************************************************************
198
- *
199
- * Flash layout
200
- *
201
- */
202
-
203
-/* Board configuration */
204
-
205
-#define UNM_BRDCFG_START		0x4000
206
-
207
-struct unm_board_info {
208
-	uint32_t header_version;
209
-	uint32_t board_mfg;
210
-	uint32_t board_type;
211
-	uint32_t board_num;
212
-	uint32_t chip_id;
213
-	uint32_t chip_minor;
214
-	uint32_t chip_major;
215
-	uint32_t chip_pkg;
216
-	uint32_t chip_lot;
217
-	uint32_t port_mask;
218
-	uint32_t peg_mask;
219
-	uint32_t icache_ok;
220
-	uint32_t dcache_ok;
221
-	uint32_t casper_ok;
222
-	uint32_t mac_addr_lo_0;
223
-	uint32_t mac_addr_lo_1;
224
-	uint32_t mac_addr_lo_2;
225
-	uint32_t mac_addr_lo_3;
226
-	uint32_t mn_sync_mode;
227
-	uint32_t mn_sync_shift_cclk;
228
-	uint32_t mn_sync_shift_mclk;
229
-	uint32_t mn_wb_en;
230
-	uint32_t mn_crystal_freq;
231
-	uint32_t mn_speed;
232
-	uint32_t mn_org;
233
-	uint32_t mn_depth;
234
-	uint32_t mn_ranks_0;
235
-	uint32_t mn_ranks_1;
236
-	uint32_t mn_rd_latency_0;
237
-	uint32_t mn_rd_latency_1;
238
-	uint32_t mn_rd_latency_2;
239
-	uint32_t mn_rd_latency_3;
240
-	uint32_t mn_rd_latency_4;
241
-	uint32_t mn_rd_latency_5;
242
-	uint32_t mn_rd_latency_6;
243
-	uint32_t mn_rd_latency_7;
244
-	uint32_t mn_rd_latency_8;
245
-	uint32_t mn_dll_val[18];
246
-	uint32_t mn_mode_reg;
247
-	uint32_t mn_ext_mode_reg;
248
-	uint32_t mn_timing_0;
249
-	uint32_t mn_timing_1;
250
-	uint32_t mn_timing_2;
251
-	uint32_t sn_sync_mode;
252
-	uint32_t sn_pt_mode;
253
-	uint32_t sn_ecc_en;
254
-	uint32_t sn_wb_en;
255
-	uint32_t sn_crystal_freq;
256
-	uint32_t sn_speed;
257
-	uint32_t sn_org;
258
-	uint32_t sn_depth;
259
-	uint32_t sn_dll_tap;
260
-	uint32_t sn_rd_latency;
261
-	uint32_t mac_addr_hi_0;
262
-	uint32_t mac_addr_hi_1;
263
-	uint32_t mac_addr_hi_2;
264
-	uint32_t mac_addr_hi_3;
265
-	uint32_t magic;
266
-	uint32_t mn_rdimm;
267
-	uint32_t mn_dll_override;
268
-};
269
-
270
-#define UNM_BDINFO_VERSION		1
271
-#define UNM_BRDTYPE_P3_HMEZ		0x0022
272
-#define UNM_BRDTYPE_P3_10G_CX4_LP	0x0023
273
-#define UNM_BRDTYPE_P3_4_GB		0x0024
274
-#define UNM_BRDTYPE_P3_IMEZ		0x0025
275
-#define UNM_BRDTYPE_P3_10G_SFP_PLUS	0x0026
276
-#define UNM_BRDTYPE_P3_10000_BASE_T	0x0027
277
-#define UNM_BRDTYPE_P3_XG_LOM		0x0028
278
-#define UNM_BRDTYPE_P3_4_GB_MM		0x0029
279
-#define UNM_BRDTYPE_P3_10G_CX4		0x0031
280
-#define UNM_BRDTYPE_P3_10G_XFP		0x0032
281
-#define UNM_BDINFO_MAGIC		0x12345678
282
-
283
-/* User defined region */
284
-
285
-#define UNM_USER_START			0x3e8000
286
-
287
-#define UNM_FLASH_NUM_PORTS		4
288
-#define UNM_FLASH_NUM_MAC_PER_PORT	32
289
-
290
-struct unm_user_info {
291
-	uint8_t  flash_md5[16 * 64];
292
-	uint32_t bootld_version;
293
-	uint32_t bootld_size;
294
-	uint32_t image_version;
295
-	uint32_t image_size;
296
-	uint32_t primary_status;
297
-	uint32_t secondary_present;
298
-	/* MAC address , 4 ports, 32 address per port */
299
-	uint64_t mac_addr[UNM_FLASH_NUM_PORTS * UNM_FLASH_NUM_MAC_PER_PORT];
300
-	uint32_t sub_sys_id;
301
-	uint8_t  serial_num[32];
302
-	uint32_t bios_version;
303
-	uint32_t pxe_enable;
304
-	uint32_t vlan_tag[UNM_FLASH_NUM_PORTS];
305
-};
306
-
307 191
 #endif /* _PHANTOM_H */

Chargement…
Annuler
Enregistrer