diff options
author | Nick Foster <nick@nerdnetworks.org> | 2010-08-18 14:38:50 -0700 |
---|---|---|
committer | Nick Foster <nick@nerdnetworks.org> | 2010-08-18 14:38:50 -0700 |
commit | 42547a0be8e52758d340fd1eba51a2dd5274a652 (patch) | |
tree | 5233f8799ff73adab77e17840c7604fb3a1aced7 /firmware/microblaze/usrp2p | |
parent | 00ee9dddb649881c715012c48eed13d001ad5318 (diff) | |
download | uhd-42547a0be8e52758d340fd1eba51a2dd5274a652.tar.gz uhd-42547a0be8e52758d340fd1eba51a2dd5274a652.tar.bz2 uhd-42547a0be8e52758d340fd1eba51a2dd5274a652.zip |
Moved UDP firmware update stuff out of fw_common.h into udp_fw_update.h.
This stuff should only go back into fw_common.h if we decide to integrate firmware update into
the UHD code. Right now it's a separate Python script.
Also moved udp_fw_update.h to lib/ because it's the same between USRP2 and USRP2P.
Diffstat (limited to 'firmware/microblaze/usrp2p')
-rw-r--r-- | firmware/microblaze/usrp2p/Makefile.am | 2 | ||||
-rw-r--r-- | firmware/microblaze/usrp2p/udp_fw_update.c | 20 | ||||
-rw-r--r-- | firmware/microblaze/usrp2p/udp_fw_update.h | 22 |
3 files changed, 6 insertions, 38 deletions
diff --git a/firmware/microblaze/usrp2p/Makefile.am b/firmware/microblaze/usrp2p/Makefile.am index c9ed3b99b..e6bff2dbc 100644 --- a/firmware/microblaze/usrp2p/Makefile.am +++ b/firmware/microblaze/usrp2p/Makefile.am @@ -27,7 +27,7 @@ AM_LDFLAGS = \ -Wl,-defsym -Wl,_STACK_SIZE=3072 #all of this here is to relocate the hardware vectors to somewhere normal. -COMMON_IHX_ARGS = \ +RELOCATE_ARGS = \ --change-section-address .vectors.sw_exception+0x8000 \ --change-section-address .vectors.hw_exception+0x8000 \ --change-section-address .vectors.interrupt+0x8000 \ diff --git a/firmware/microblaze/usrp2p/udp_fw_update.c b/firmware/microblaze/usrp2p/udp_fw_update.c index 6b860007a..9242242e7 100644 --- a/firmware/microblaze/usrp2p/udp_fw_update.c +++ b/firmware/microblaze/usrp2p/udp_fw_update.c @@ -22,28 +22,18 @@ #include "usrp2/fw_common.h" #include "spi.h" #include "spi_flash.h" -#include "udp_fw_update.h" #include <nonstdio.h> #include <string.h> #include "ethernet.h" +#include "udp_fw_update.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) { -//okay, we can do this ANY NUMBER of ways. we have up to ~1500 bytes to play with -- we don't handle -//fragmentation, so limit it to <MTU. let's say 1K. remember that SPI Flash page writes can only be up to 256B(?) long, -//so if your SPI Flash write routine doesn't handle that, you will have to on the host side (or in here). -//so here are your options: - -//IHEX -- 16 bytes at a time, relocated for you. parser is already written. possibly extra slow due to the small packet size. -//custom struct -- addr, data, len. you can checksum this if you like, but it is already checksummed in UDP (as well as on the wire). -// this option needs minimal parsing on the device side and is a straight Flash write. no interpretation required. all the brains -// go on the host side. how is relocation handled? well, your fw images are supposed to be "fully relocated" such that you can just -// stick 'em anywhere, so a .bin (provided it's relocated to 0 for the wire) plus a location is good enough. let's go this route. - const udp_fw_update_data_t *update_data_in = (udp_fw_update_data_t *) payload; + const usrp2_fw_update_data_t *update_data_in = (usrp2_fw_update_data_t *) payload; - udp_fw_update_data_t update_data_out; + usrp2_fw_update_data_t update_data_out; usrp2_fw_update_id_t update_data_in_id = update_data_in->id; //ensure that the protocol versions match @@ -55,9 +45,9 @@ void handle_udp_fw_update_packet(struct socket_address src, struct socket_addres } //ensure that this is not a short packet - if (payload_len < sizeof(udp_fw_update_data_t)){ + if (payload_len < sizeof(usrp2_fw_update_data_t)){ printf("!Error in update packet handler: Expected payload length %d, but got %d\n", - (int)sizeof(udp_fw_update_data_t), payload_len + (int)sizeof(usrp2_fw_update_data_t), payload_len ); update_data_in_id = USRP2_FW_UPDATE_ID_WAT; } diff --git a/firmware/microblaze/usrp2p/udp_fw_update.h b/firmware/microblaze/usrp2p/udp_fw_update.h deleted file mode 100644 index dcf44bc42..000000000 --- a/firmware/microblaze/usrp2p/udp_fw_update.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -*- 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); |