From 21a93aeaa21d55b28103c6f4e59b88df1ca7ec36 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Tue, 21 Jul 2015 16:25:59 -0700 Subject: docs: Updated X3x0 unbricking procedure info --- host/docs/usrp_x3x0.dox | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'host') diff --git a/host/docs/usrp_x3x0.dox b/host/docs/usrp_x3x0.dox index 98e21a4d0..f3e916ac1 100644 --- a/host/docs/usrp_x3x0.dox +++ b/host/docs/usrp_x3x0.dox @@ -334,6 +334,10 @@ It is possible to put the device into an unusable state by loading bad images (" Fortunately, the USRP-X Series device can be loaded with a good image temporarily using the USB-JTAG interface. Once booted into the safe image, the user can once again load images onto the device over Ethernet or PCI Express. +See Section \ref x3x0_load_fpga_imgs_jtag on how to load the FPGA image onto the device using a JTAG interface. +After running the JTAG process, a new image can be flashed onto the device using the usual procedure +to permently recover the device. + \section x3x0_setup_network Setup Networking The USRP-X Series only supports Gigabit and Ten Gigabit Ethernet and will not work with a 10/100 Mbps interface. -- cgit v1.2.3 From e889d685b4d8b94c2534f258a04b9725dc776695 Mon Sep 17 00:00:00 2001 From: Marcus Müller Date: Tue, 21 Jul 2015 20:06:43 +0200 Subject: docs: Added paragraph on GPIO maximum current, +3.3V supply --- host/docs/gpio_api.dox | 4 ++++ host/docs/usrp_x3x0.dox | 4 ++++ 2 files changed, 8 insertions(+) (limited to 'host') diff --git a/host/docs/gpio_api.dox b/host/docs/gpio_api.dox index d3bb4f0a9..98515d07b 100644 --- a/host/docs/gpio_api.dox +++ b/host/docs/gpio_api.dox @@ -13,6 +13,10 @@ disabling a TX or RX mixer). \subsection xgpio_fpanel_gpio X3x0 Front Panel GPIO +The GPIO port is not meant to drive big loads. You should not try to source more than 5mA per pin. + +The +3.3V is for ESD clamping purposes only and not designed to deliver high currents. + \subsubsection xgpio_fpanel_conn Connector \image html x3x0_gpio_conn.png "X3x0 GPIO Connectors" diff --git a/host/docs/usrp_x3x0.dox b/host/docs/usrp_x3x0.dox index f3e916ac1..9af68546f 100644 --- a/host/docs/usrp_x3x0.dox +++ b/host/docs/usrp_x3x0.dox @@ -584,6 +584,10 @@ Please see \ref page_gpsdo_x3x0 for information on configuring and using the int \image html x3x0_gpio_conn.png "X3x0 GPIO Connector" +The GPIO port is not meant to drive big loads. You should not try to source more than 5mA per pin. + +The +3.3V is for ESD clamping purposes only and not designed to deliver high currents. + ### Pin Mapping - Pin 1: +3.3V -- cgit v1.2.3 From 97d71375fffe88ee89b10ba0a125d106738f9e7b Mon Sep 17 00:00:00 2001 From: Moritz Fischer Date: Wed, 22 Jul 2015 11:36:26 -0700 Subject: e3xx: doc: Explain autoboot configuration. Firmware Revision 2.0 introduced the possibility to configure the power on behavior. This documents how to configure it through sysfs. Signed-off-by: Moritz Fischer --- host/docs/usrp_e3x0.dox | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'host') diff --git a/host/docs/usrp_e3x0.dox b/host/docs/usrp_e3x0.dox index 86ce93be4..7479c584d 100644 --- a/host/docs/usrp_e3x0.dox +++ b/host/docs/usrp_e3x0.dox @@ -283,6 +283,7 @@ It's behavior is firmware version dependent. + 1 - Low voltage error + 2 - Regulator low voltage error + 3 - FPGA power error + + 4 - DRAM power error + 5 - 1.8V rail power error + 6 - 3.3V rail power error + 7 - Daughterboard / TX power error @@ -746,6 +747,16 @@ by pinging the USRP and making sure the LEDs start to blink. In the file `/etc/ssh/sshd_config`, uncomment the line \#`X11Forwarding no` and change "no" to "yes". + - Firmware + -# With Firmware 2.0 the device no longer turns on when AC power is plugged.
+ This setting can be adjusted via `/sys/devices/axi_pmu.3/autoboot`. + + Using `$ echo 1 > /sys/devices/axi_pmu.3/autoboot` autoboot is turned on. + + Using `$ echo 0 > /sys/devices/axi_pmu.3/autoboot` autoboot is turned off. + + Note that the path above is subject to change depending on device tree changes. + \section e3x0_apps Applications \subsection e3x0_apps_gsm GSM Base Station -- cgit v1.2.3 From 1d1dd415a958fa6f2a7aac06cf4026a8d387a9f2 Mon Sep 17 00:00:00 2001 From: Moritz Fischer Date: Mon, 27 Jul 2015 19:14:54 -0700 Subject: e3xx: Make frame sizes configurable. UHD 3.8.5 increased the TX framesize from 2048 to 4096, this can lead to issues in 2x2. The behaviour can avoided by specifying send_frame_size = 2048 for these scenarios. Signed-off-by: Moritz Fischer --- host/lib/usrp/e300/e300_defaults.hpp | 3 +++ host/lib/usrp/e300/e300_impl.cpp | 23 +++++++++++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) (limited to 'host') diff --git a/host/lib/usrp/e300/e300_defaults.hpp b/host/lib/usrp/e300/e300_defaults.hpp index 89afcb256..d409062c5 100644 --- a/host/lib/usrp/e300/e300_defaults.hpp +++ b/host/lib/usrp/e300/e300_defaults.hpp @@ -50,6 +50,9 @@ static const size_t DEFAULT_CTRL_NUM_FRAMES = 32; static const size_t MAX_NET_RX_DATA_FRAME_SIZE = 1200; static const size_t MAX_NET_TX_DATA_FRAME_SIZE = 1200; +static const size_t MAX_AXI_RX_DATA_FRAME_SIZE = 4096; +static const size_t MAX_AXI_TX_DATA_FRAME_SIZE = 4096; + class e300_ad9361_client_t : public ad9361_params { public: ~e300_ad9361_client_t() {} diff --git a/host/lib/usrp/e300/e300_impl.cpp b/host/lib/usrp/e300/e300_impl.cpp index 515fccc08..a08168eab 100644 --- a/host/lib/usrp/e300/e300_impl.cpp +++ b/host/lib/usrp/e300/e300_impl.cpp @@ -325,17 +325,28 @@ e300_impl::e300_impl(const uhd::device_addr_t &device_addr) _ctrl_xport_params.send_frame_size = e300::DEFAULT_CTRL_FRAME_SIZE; _ctrl_xport_params.num_send_frames = e300::DEFAULT_CTRL_NUM_FRAMES; - _data_xport_params.recv_frame_size = e300::DEFAULT_RX_DATA_FRAME_SIZE; - _data_xport_params.num_recv_frames = e300::DEFAULT_RX_DATA_NUM_FRAMES; - _data_xport_params.send_frame_size = e300::DEFAULT_TX_DATA_FRAME_SIZE; - _data_xport_params.num_send_frames = e300::DEFAULT_TX_DATA_NUM_FRAMES; - - // until we figure out why this goes wrong we'll keep this hack around + _data_xport_params.recv_frame_size = device_addr.cast("recv_frame_size", + e300::DEFAULT_RX_DATA_FRAME_SIZE); + _data_xport_params.num_recv_frames = device_addr.cast("num_recv_frames", + e300::DEFAULT_RX_DATA_NUM_FRAMES); + _data_xport_params.send_frame_size = device_addr.cast("send_frame_size", + e300::DEFAULT_TX_DATA_FRAME_SIZE); + _data_xport_params.num_send_frames = device_addr.cast("num_send_frames", + e300::DEFAULT_TX_DATA_NUM_FRAMES); + + + // until we figure out why this goes wrong we'll keep this hack around for + // the ethernet case, in the AXI case we cannot go above one page if (_xport_path == ETH) { _data_xport_params.recv_frame_size = std::min(e300::MAX_NET_RX_DATA_FRAME_SIZE, _data_xport_params.recv_frame_size); _data_xport_params.send_frame_size = std::min(e300::MAX_NET_TX_DATA_FRAME_SIZE, _data_xport_params.send_frame_size); + } else { + _data_xport_params.recv_frame_size = + std::min(e300::MAX_AXI_RX_DATA_FRAME_SIZE, _data_xport_params.recv_frame_size); + _data_xport_params.send_frame_size = + std::min(e300::MAX_AXI_TX_DATA_FRAME_SIZE, _data_xport_params.send_frame_size); } udp_zero_copy::buff_params dummy_buff_params_out; -- cgit v1.2.3