diff options
Diffstat (limited to 'usrp2/firmware/apps')
-rw-r--r-- | usrp2/firmware/apps/Makefile.am | 1 | ||||
-rw-r--r-- | usrp2/firmware/apps/app_common_v2.c | 3 | ||||
-rw-r--r-- | usrp2/firmware/apps/set_hw_rev.c | 43 |
3 files changed, 46 insertions, 1 deletions
diff --git a/usrp2/firmware/apps/Makefile.am b/usrp2/firmware/apps/Makefile.am index 092dd9441..c538c6e95 100644 --- a/usrp2/firmware/apps/Makefile.am +++ b/usrp2/firmware/apps/Makefile.am @@ -33,6 +33,7 @@ noinst_PROGRAMS = \ rcv_eth_packets \ rx_only_v2 \ read_dbids \ + set_hw_rev \ test1 \ test_db_spi \ test_i2c \ diff --git a/usrp2/firmware/apps/app_common_v2.c b/usrp2/firmware/apps/app_common_v2.c index 4dc254f85..e267401a9 100644 --- a/usrp2/firmware/apps/app_common_v2.c +++ b/usrp2/firmware/apps/app_common_v2.c @@ -28,6 +28,7 @@ #include "print_rmon_regs.h" #include "db.h" #include "clocks.h" +#include "u2_init.h" #include <string.h> volatile bool link_is_up = false; // eth handler sets this @@ -117,7 +118,7 @@ op_id_cmd(const op_generic_t *p, r->len = sizeof(op_id_reply_t); r->rid = p->rid; r->addr = *ethernet_mac_addr(); - r->hw_rev = 0x0000; // FIXME + r->hw_rev = (u2_hw_rev_major << 8) | u2_hw_rev_minor; // r->fpga_md5sum = ; // FIXME // r->sw_md5sum = ; // FIXME diff --git a/usrp2/firmware/apps/set_hw_rev.c b/usrp2/firmware/apps/set_hw_rev.c new file mode 100644 index 000000000..0d7adbd34 --- /dev/null +++ b/usrp2/firmware/apps/set_hw_rev.c @@ -0,0 +1,43 @@ +/* -*- c++ -*- */ +/* + * Copyright 2008 Free Software Foundation, Inc. + * + * 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 <u2_init.h> +#include <nonstdio.h> +#include <i2c.h> +#include <usrp2_i2c_addr.h> + +#define HW_REV_MAJOR 0 +#define HW_REV_MINOR 3 + +int +main(void) +{ + u2_init(); + + putstr("\nset_hw_rev\n"); + + bool ok = true; + unsigned char maj = HW_REV_MAJOR; + unsigned char min = HW_REV_MINOR; + ok = eeprom_write(I2C_ADDR_MBOARD, MBOARD_REV_MSB, &maj, 1); + ok &= eeprom_write(I2C_ADDR_MBOARD, MBOARD_REV_LSB, &min, 1); + + if (ok) + printf("OK: set h/w rev to %d.%d\n", HW_REV_MAJOR, HW_REV_MINOR); + else + printf("FAILED to set h/w rev to %d.%d\n", HW_REV_MAJOR, HW_REV_MINOR); +} |