source: edk_user_repository/WARP/sw_services/WARPxilnet_v3_01_a/data/WARPxilnet_v2_1_0.tcl

Last change on this file was 1929, checked in by murphpo, 11 years ago

Adding updated WARPxilnet, required for WARPLab 7 ref design

File size: 3.8 KB
Line 
1###############################################################
2# Copyright (c) 2004 Xilinx, Inc. All Rights Reserved.
3# You may copy and modify these files for your own internal use solely with
4# Xilinx programmable logic devices and  Xilinx EDK system or create IP
5# modules solely for Xilinx programmable logic devices and Xilinx EDK system.
6# No rights are granted to distribute any files unless they are distributed in
7# Xilinx programmable logic devices.
8#
9# $Id: xilnet_v2_1_0.tcl,v 1.2.8.6 2005/11/15 23:41:10 salindac Exp $
10# ##############################################################
11 
12
13proc net_drc {lib_handle} {
14   
15    puts "XilNet DRC ..."
16    set emac_inst [xget_value $lib_handle "PARAMETER" "emac_instname"]
17    if { [string compare -nocase $emac_inst ""] == 0 } {
18    error "XilNet needs a valid MAC instance name. Please define \"emac_instname\"." "" "mdt_error"
19    }
20}
21
22proc net_open_file {filename desc} {
23    set config_inc [open $filename w]
24    xprint_generated_header $config_inc $desc
25    return $config_inc
26}
27
28proc net_open_include_file {file_name} {
29    set filename [file join "./src/" $file_name]
30    return [net_open_file $filename "XilNet Configuration Parameters"]
31}
32
33proc net_open_config_file {file_name} {
34    set filename [file join "./src/" $file_name]
35    return [net_open_file $filename "XilNet MAC Configuration File"]
36}
37
38proc generate {lib_handle} {
39
40    set emac_inst [xget_value $lib_handle "PARAMETER" "emac_instname"]
41    set sw_prochandle [xget_processor]   
42    set emac_handle [xget_sw_ipinst_handle_from_processor $sw_prochandle $emac_inst]
43
44    if {[llength $emac_handle] != 1} {
45    error "Invalid MAC isntance $emac_inst specified for \"emac_instname\".  Pleae specify a valid MAC instance for \"emac_instname\"." "" "mdt_error"
46    return
47    }   
48    set ethinst_addr [xget_value $emac_handle "PARAMETER" "C_BASEADDR"]
49    set ethinst_ip [xget_value $emac_handle "VALUE"]
50   
51    set conffile  [net_open_include_file "xilnet_config.h"]
52    set conffile_c [net_open_config_file "xilnet_config.c"]
53    puts $conffile "#ifndef _XILNET_CONFIG_H" 
54    puts $conffile "#define _XILNET_CONFIG_H" 
55    puts $conffile ""
56
57    puts $conffile "#ifdef __cplusplus" 
58    puts $conffile "extern \"C\" {" 
59    puts $conffile "#endif" 
60    puts $conffile ""
61
62    if { [string compare -nocase $ethinst_ip "opb_ethernetlite"] == 0 ||
63     [string compare -nocase $ethinst_ip "xps_ethernetlite"] == 0} {
64    puts $conffile "#define _CONFIG_EMACLITE_    1 // Use EmacLite Device"
65    puts $conffile_c "unsigned int MYMAC_BASEADDR = $ethinst_addr;"
66    puts $conffile_c ""
67    } elseif { [string compare -nocase $ethinst_ip "xps_ll_temac"] == 0} {
68    puts $conffile "#define _CONFIG_TEMAC_    1 // Use TEMAC Device"
69    puts $conffile_c "void* FIFO_INST;"
70    puts $conffile_c "void* DMA_CENTRAL_INST;"
71    puts $conffile_c ""
72    } elseif { [string compare -nocase $ethinst_ip "axi_ethernet"] == 0} {
73    puts $conffile "#define _CONFIG_AXI_ETHERNET_FIFO    1 // Use axiethernet Device"
74    puts $conffile_c "void* FIFO_INST;"
75    puts $conffile_c ""
76    } else {
77    error "\"emac_inst\" is not TEMAC or ETHERNETLITE core. WARPXilNet can work only with such cores." "" "mdt_error"
78    }
79   
80    puts $conffile ""
81    set tcp_conns [xget_value $lib_handle "PARAMETER" "no_of_tcp_conns"]
82    set udp_conns [xget_value $lib_handle "PARAMETER" "no_of_tcp_conns"]
83    puts $conffile "#define MAX_TCP_CONNS    $tcp_conns  // maximum no of open tcp conns"
84    puts $conffile "#define MAX_UDP_CONNS    $udp_conns  // maximum no of open udp conns"
85   
86   
87    puts $conffile ""
88    puts $conffile "#endif" 
89    close $conffile
90
91   
92    #set conffile [net_open_config_file "xilnet_config.c"]
93    #puts $conffile "unsigned int MYMAC_BASEADDR = $ethinst_addr;"
94    #puts $conffile ""
95
96    puts $conffile_c "#ifdef __cplusplus" 
97    puts $conffile_c "}" 
98    puts $conffile_c "#endif" 
99    puts $conffile_c ""
100
101    close $conffile_c 
102   
103}
Note: See TracBrowser for help on using the repository browser.