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

Last change on this file was 1129, checked in by mduarte, 15 years ago

v.2.01 debug

File size: 3.5 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/include/net/" $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/net/" $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
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_ethernet"] == 0 ||
63     [string compare -nocase $ethinst_ip "plb_ethernet"] == 0} {
64    puts $conffile "#define _CONFIG_EMAC_    1 // Use Emac Device"
65    } elseif { [string compare -nocase $ethinst_ip "opb_ethernetlite"] == 0 ||
66     [string compare -nocase $ethinst_ip "xps_ethernetlite"] == 0} {
67    puts $conffile "#define _CONFIG_EMACLITE_    1 // Use EmacLite Device"
68    } else {
69    error "\"emac_inst\" is not of type -  OPB_ETHERNET, PLB_ETHERNET and OPB_ETHERNETLITE cores. XilNet can work only with such cores." "" "mdt_error"
70    }
71   
72    puts $conffile ""
73    set tcp_conns [xget_value $lib_handle "PARAMETER" "no_of_tcp_conns"]
74    set udp_conns [xget_value $lib_handle "PARAMETER" "no_of_tcp_conns"]
75    puts $conffile "#define MAX_TCP_CONNS    $tcp_conns  // maximum no of open tcp conns"
76    puts $conffile "#define MAX_UDP_CONNS    $udp_conns  // maximum no of open udp conns"
77   
78   
79    puts $conffile ""
80    puts $conffile "#endif" 
81    close $conffile 
82   
83    set conffile [net_open_config_file "xilnet_config.c"]
84    puts $conffile "unsigned int MYMAC_BASEADDR = $ethinst_addr;"
85    puts $conffile ""
86
87    puts $conffile "#ifdef __cplusplus" 
88    puts $conffile "}" 
89    puts $conffile "#endif" 
90    puts $conffile ""
91
92    close $conffile 
93   
94}
Note: See TracBrowser for help on using the repository browser.