summaryrefslogtreecommitdiffstats
path: root/firmware/microblaze/usrp2
diff options
context:
space:
mode:
authorNick Foster <nick@nerdnetworks.org>2010-08-17 18:35:11 -0700
committerNick Foster <nick@nerdnetworks.org>2010-08-17 18:35:11 -0700
commit9d10efa5f0f81e1a971e92b28ba7f38e0384fdab (patch)
tree7b797016a4da8625dabc41c9bcc9ee0216092507 /firmware/microblaze/usrp2
parent40faee2e6d87f7364a0c0c2cf310f1483c0331cf (diff)
downloaduhd-9d10efa5f0f81e1a971e92b28ba7f38e0384fdab.tar.gz
uhd-9d10efa5f0f81e1a971e92b28ba7f38e0384fdab.tar.bz2
uhd-9d10efa5f0f81e1a971e92b28ba7f38e0384fdab.zip
UDP firmware update support for USRP2P.
The hooks are in there for USRP2, but without CPLD changes it won't support it. Added an app host/utils/usrp2p_fw_update.py to write to USRP2P over the wire. Lots of TODOs in that file. Caveat -- fw_common.h, bootloader_utils.h, and the .py app MUST ALL AGREE!
Diffstat (limited to 'firmware/microblaze/usrp2')
-rw-r--r--firmware/microblaze/usrp2/Makefile.am3
-rw-r--r--firmware/microblaze/usrp2/udp_fw_update.c34
-rw-r--r--firmware/microblaze/usrp2/udp_fw_update.h22
3 files changed, 58 insertions, 1 deletions
diff --git a/firmware/microblaze/usrp2/Makefile.am b/firmware/microblaze/usrp2/Makefile.am
index 8da013980..17f7a4744 100644
--- a/firmware/microblaze/usrp2/Makefile.am
+++ b/firmware/microblaze/usrp2/Makefile.am
@@ -34,7 +34,8 @@ noinst_LIBRARIES = libusrp2.a
libusrp2_a_SOURCES = \
$(COMMON_SRCS) \
sd.c \
- ethernet.c
+ ethernet.c \
+ udp_fw_update.c
noinst_PROGRAMS = \
usrp2_txrx_uhd.elf
diff --git a/firmware/microblaze/usrp2/udp_fw_update.c b/firmware/microblaze/usrp2/udp_fw_update.c
new file mode 100644
index 000000000..bd62aed85
--- /dev/null
+++ b/firmware/microblaze/usrp2/udp_fw_update.c
@@ -0,0 +1,34 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2010 Ettus Research LLC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+//Routines to handle updating the SPI Flash firmware via UDP
+
+#include "net_common.h"
+#include "usrp2/fw_common.h"
+#include "udp_fw_update.h"
+#include <nonstdio.h>
+
+//Firmware update packet handler
+void handle_udp_fw_update_packet(struct socket_address src, struct socket_address dst,
+ unsigned char *payload, int payload_len) {
+
+ udp_fw_update_data_t update_data_out;
+ update_data_out.id = USRP2_FW_UPDATE_ID_WAT;
+
+ send_udp_pkt(USRP2_UDP_UPDATE_PORT, src, &update_data_out, sizeof(update_data_out));
+}
diff --git a/firmware/microblaze/usrp2/udp_fw_update.h b/firmware/microblaze/usrp2/udp_fw_update.h
new file mode 100644
index 000000000..dcf44bc42
--- /dev/null
+++ b/firmware/microblaze/usrp2/udp_fw_update.h
@@ -0,0 +1,22 @@
+/* -*- c++ -*- */
+/*
+ * Copyright 2010 Ettus Research LLC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "net_common.h"
+
+void handle_udp_fw_update_packet(struct socket_address src, struct socket_address dst,
+ unsigned char *payload, int payload_len);