diff options
| -rw-r--r-- | firmware/microblaze/apps/txrx_uhd.c | 14 | ||||
| -rw-r--r-- | firmware/microblaze/usrp2/memory_map.h | 9 | ||||
| -rw-r--r-- | firmware/microblaze/usrp2p/memory_map.h | 9 | ||||
| -rw-r--r-- | host/lib/usrp/usrp2/fw_common.h | 1 | 
4 files changed, 28 insertions, 5 deletions
| diff --git a/firmware/microblaze/apps/txrx_uhd.c b/firmware/microblaze/apps/txrx_uhd.c index 9c1873e1c..06f94e108 100644 --- a/firmware/microblaze/apps/txrx_uhd.c +++ b/firmware/microblaze/apps/txrx_uhd.c @@ -141,15 +141,22 @@ static void print_ip_addr(const void *t){      printf("%d.%d.%d.%d", p[0], p[1], p[2], p[3]);  } +void handle_udp_err0_packet( +    struct socket_address src, struct socket_address dst, +    unsigned char *payload, int payload_len +){ +    sr_udp_sm->err0_port = src.port; +} +  void handle_udp_data_packet(      struct socket_address src, struct socket_address dst,      unsigned char *payload, int payload_len  ){ -    //its a tiny payload, load the fast-path variables      fp_mac_addr_src = *ethernet_mac_addr();      arp_cache_lookup_mac(&src.addr, &fp_mac_addr_dst);      fp_socket_src = dst;      fp_socket_dst = src; +    sr_udp_sm->dsp0_port = src.port;      printf("Storing for fast path:\n");      printf("  source mac addr: ");      print_mac_addr(fp_mac_addr_src.addr); newline(); @@ -163,7 +170,7 @@ void handle_udp_data_packet(      printf("  destination udp port: %d\n", fp_socket_dst.port);      newline(); -    //setup network and vrt +    //setup network      setup_network();      // kick off the state machine @@ -478,7 +485,7 @@ static void setup_network(void){    //setup the udp header machine    sr_udp_sm->udp_hdr.src_port = fp_socket_src.port; -  sr_udp_sm->udp_hdr.dst_port = fp_socket_dst.port; +  sr_udp_sm->udp_hdr.dst_port = UDP_SM_INS_UDP_PORT;    sr_udp_sm->udp_hdr.length = UDP_SM_INS_UDP_LEN;    sr_udp_sm->udp_hdr.checksum = UDP_SM_LAST_WORD;		// zero UDP checksum  } @@ -521,6 +528,7 @@ main(void)    //2) register callbacks for udp ports we service    register_udp_listener(USRP2_UDP_CTRL_PORT, handle_udp_ctrl_packet);    register_udp_listener(USRP2_UDP_DATA_PORT, handle_udp_data_packet); +  register_udp_listener(USRP2_UDP_ERR0_PORT, handle_udp_err0_packet);    register_udp_listener(USRP2_UDP_UPDATE_PORT, handle_udp_fw_update_packet);    //3) setup ethernet hardware to bring the link up diff --git a/firmware/microblaze/usrp2/memory_map.h b/firmware/microblaze/usrp2/memory_map.h index eac0c217f..2b91063b2 100644 --- a/firmware/microblaze/usrp2/memory_map.h +++ b/firmware/microblaze/usrp2/memory_map.h @@ -435,11 +435,18 @@ typedef struct {      uint32_t length;      uint32_t checksum; //word 22    } udp_hdr; -  volatile uint32_t _pad[32-23]; +  volatile uint32_t _pad[2]; +  volatile uint32_t dsp0_port; +  volatile uint32_t err0_port; +  volatile uint32_t dsp1_port; +  volatile uint32_t err1_port;  } sr_udp_sm_t;  // control bits (all expect UDP_SM_LAST_WORD are mutually exclusive) +// Insert a UDP dest port from the table +#define UDP_SM_INS_UDP_PORT     (1 << 20) +  // This is the last word of the header  #define	UDP_SM_LAST_WORD		(1 << 19) diff --git a/firmware/microblaze/usrp2p/memory_map.h b/firmware/microblaze/usrp2p/memory_map.h index 3b2dc0057..140ab0675 100644 --- a/firmware/microblaze/usrp2p/memory_map.h +++ b/firmware/microblaze/usrp2p/memory_map.h @@ -462,11 +462,18 @@ typedef struct {      uint32_t length;      uint32_t checksum; //word 22    } udp_hdr; -  volatile uint32_t _pad[32-23]; +  volatile uint32_t _pad[2]; +  volatile uint32_t dsp0_port; +  volatile uint32_t err0_port; +  volatile uint32_t dsp1_port; +  volatile uint32_t err1_port;  } sr_udp_sm_t;  // control bits (all expect UDP_SM_LAST_WORD are mutually exclusive) +// Insert a UDP dest port from the table +#define UDP_SM_INS_UDP_PORT     (1 << 20) +  // This is the last word of the header  #define	UDP_SM_LAST_WORD		(1 << 19) diff --git a/host/lib/usrp/usrp2/fw_common.h b/host/lib/usrp/usrp2/fw_common.h index a9c39e650..a26f56e8b 100644 --- a/host/lib/usrp/usrp2/fw_common.h +++ b/host/lib/usrp/usrp2/fw_common.h @@ -43,6 +43,7 @@ extern "C" {  // Dynamic and/or private ports: 49152-65535  #define USRP2_UDP_CTRL_PORT 49152  #define USRP2_UDP_DATA_PORT 49153 +#define USRP2_UDP_ERR0_PORT 49154  ////////////////////////////////////////////////////////////////////////  // I2C addresses | 
