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

Last change on this file was 1740, checked in by chunter, 12 years ago

Updated Xilnet to work with TEMAC. Current commit does NOT work with EmacLite... Those changes are pending

File size: 3.6 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    } else {
73    error "\"emac_inst\" is not TEMAC or ETHERNETLITE core. WARPXilNet can work only with such cores." "" "mdt_error"
74    }
75   
76    puts $conffile ""
77    set tcp_conns [xget_value $lib_handle "PARAMETER" "no_of_tcp_conns"]
78    set udp_conns [xget_value $lib_handle "PARAMETER" "no_of_tcp_conns"]
79    puts $conffile "#define MAX_TCP_CONNS    $tcp_conns  // maximum no of open tcp conns"
80    puts $conffile "#define MAX_UDP_CONNS    $udp_conns  // maximum no of open udp conns"
81   
82   
83    puts $conffile ""
84    puts $conffile "#endif" 
85    close $conffile
86
87   
88    #set conffile [net_open_config_file "xilnet_config.c"]
89    #puts $conffile "unsigned int MYMAC_BASEADDR = $ethinst_addr;"
90    #puts $conffile ""
91
92    puts $conffile_c "#ifdef __cplusplus" 
93    puts $conffile_c "}" 
94    puts $conffile_c "#endif" 
95    puts $conffile_c ""
96
97    close $conffile_c 
98   
99}
Note: See TracBrowser for help on using the repository browser.