fx3: New firmware features: Logging, more configuration

- Logging in conjunction with B200 side-channel utility
  (using UART or directly over USB)
- More and better configurability, e.g. Tx voltage swing
  and DMA configuration
This commit is contained in:
Balint Seeber 2015-06-17 11:34:43 -07:00 committed by Martin Braun
parent 0afc5d7c64
commit 6d0f1ee6f6
3 changed files with 760 additions and 368 deletions

46
firmware/fx3/b200/b200_gpifconfig.h Normal file → Executable file
View File

@ -1,10 +1,6 @@
//
// Copyright 2013-2014 Ettus Research LLC
//
/*
* Project Name: b200_v2.cyfx
* Time : 01/17/2013 12:50:08
* Project Name: ssf2-edit.cyfx
* Time : 11/17/2014 13:01:01
* Device Type: FX3
* Project Type: GPIF2
*
@ -13,7 +9,7 @@
*
* This is a generated file and should not be modified
* This file need to be included only once in the firmware
* This file is generated by Gpif2 designer tool version - 1.0.715.0
* This file is generated by Gpif2 designer tool version - 1.0.837.1
*
*/
@ -25,7 +21,7 @@
/* Summary
Number of states in the state machine
*/
#define CY_NUMBER_OF_STATES 6
#define CY_NUMBER_OF_STATES 7
/* Summary
Mapping of user defined state names to state indices
@ -36,12 +32,13 @@
#define WRITE 3
#define SHORT_PKT 4
#define ZLP 5
#define DSS_STATE 6
/* Summary
Initial value of early outputs from the state machine.
*/
#define ALPHA_RESET 0x8
#define ALPHA_RESET 0xC
/* Summary
@ -58,26 +55,27 @@ uint16_t CyFxGpifTransition[] = {
waveform table.
*/
CyU3PGpifWaveData CyFxGpifWavedata[] = {
{{0x1E086001,0x000100C4,0x80000000},{0x00000000,0x00000000,0x00000000}},
{{0x4E080302,0x00000200,0x80000000},{0x00000000,0x00000000,0x00000000}},
{{0x1E086001,0x000100C4,0x80000000},{0x4E040704,0x20000200,0xC0100000}},
{{0x1E086001,0x000302C4,0x80000000},{0x00000000,0x00000000,0x00000000}},
{{0x4E080302,0x00000300,0x80000000},{0x1E086006,0x000302C4,0x80000000}},
{{0x1E086001,0x000302C4,0x80000000},{0x4E040704,0x20000300,0xC0100000}},
{{0x4E080302,0x00000300,0x80000000},{0x1E086001,0x000302C4,0x80000000}},
{{0x00000000,0x00000000,0x00000000},{0x00000000,0x00000000,0x00000000}},
{{0x00000000,0x00000000,0x00000000},{0x3E738705,0x00000200,0xC0100000}},
{{0x00000000,0x00000000,0x00000000},{0x5E002703,0x2001020C,0x80000000}},
{{0x00000000,0x00000000,0x00000000},{0x4E040704,0x20000200,0xC0100000}}
{{0x00000000,0x00000000,0x00000000},{0x3E738705,0x00000300,0xC0100000}},
{{0x00000000,0x00000000,0x00000000},{0x5E002703,0x2003030C,0x80000000}},
{{0x00000000,0x00000000,0x00000000},{0x4E040704,0x20000300,0xC0100000}}
};
/* Summary
Table that maps state indices to the descriptor table indices.
*/
uint8_t CyFxGpifWavedataPosition[] = {
0,1,0,2,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
0,4,0,2,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
0,5,0,2,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
0,6,0,2,0,0
0,1,0,2,0,0,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
0,5,0,2,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
0,6,0,2,0,0,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
0,7,0,2,0,0,7
};
/* Summary
@ -154,12 +152,12 @@ uint32_t CyFxGpifRegValue[] = {
0x00000000, /* CY_U3P_PIB_GPIF_LAMBDA_STAT */
0x00000000, /* CY_U3P_PIB_GPIF_ALPHA_STAT */
0x00000000, /* CY_U3P_PIB_GPIF_BETA_STAT */
0x00080000, /* CY_U3P_PIB_GPIF_WAVEFORM_CTRL_STAT */
0x000C0000, /* CY_U3P_PIB_GPIF_WAVEFORM_CTRL_STAT */
0x00000000, /* CY_U3P_PIB_GPIF_WAVEFORM_SWITCH */
0x00000000, /* CY_U3P_PIB_GPIF_WAVEFORM_SWITCH_TIMEOUT */
0x00000000, /* CY_U3P_PIB_GPIF_CRC_CONFIG */
0x00000000, /* CY_U3P_PIB_GPIF_CRC_DATA */
0xFFFFFFF1 /* CY_U3P_PIB_GPIF_BETA_DEASSERT */
0xFFFFFFC1 /* CY_U3P_PIB_GPIF_BETA_DEASSERT */
};
/* Summary

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
//
// Copyright 2013-2014 Ettus Research LLC
// Copyright 2013-2015 Ettus Research LLC
//
/* Define the USB 2.0 and USB 3.0 enumeration descriptions for the USRP B200
@ -303,7 +303,7 @@ const uint8_t b200_usb_ss_config_desc[] __attribute__ ((aligned (32))) =
0x6A,0x00, /* Length of this descriptor and all sub descriptors */
0x05, /* Number of interfaces */
0x01, /* Configuration number */
0x00, /* COnfiguration string index */
0x00, /* Configuration string index */
0x80, /* Config characteristics - D6: Self power; D5: Remote wakeup */
0x01, /* Lie about the max power consumption (in 8mA unit) : 8mA */
@ -424,6 +424,102 @@ const uint8_t b200_usb_ss_config_desc[] __attribute__ ((aligned (32))) =
};
const uint8_t b200_usb_ss_config_desc_new[] __attribute__ ((aligned (32))) =
{
/* Configuration descriptor */
0x09, /* Descriptor size */
CY_U3P_USB_CONFIG_DESCR, /* Configuration descriptor type */
0x4F,0x00, /* Length of this descriptor and all sub descriptors */
0x02, /* Number of interfaces */
0x01, /* Configuration number */
0x00, /* COnfiguration string index */
0x80, /* Config characteristics - D6: Self power; D5: Remote wakeup */
0x01, /* Lie about the max power consumption (in 8mA unit) : 8mA */
/* Interface descriptor */
0x09, /* Descriptor size */
CY_U3P_USB_INTRFC_DESCR, /* Interface Descriptor type */
0x00, /* Interface number */
0x00, /* Alternate setting number */
0x00, /* Number of end points */
0xFF, /* Interface class */
0x00, /* Interface sub class */
0x00, /* Interface protocol code */
0x02, /* Interface descriptor string index */
/* Interface descriptor */
0x09, /* Descriptor size */
CY_U3P_USB_INTRFC_DESCR, /* Interface Descriptor type */
0x01, /* Interface number */
0x00, /* Alternate setting number */
0x04, /* Number of end points */
0xFF, /* Interface class */
0x00, /* Interface sub class */
0x00, /* Interface protocol code */
0x02, /* Interface descriptor string index */
/* Endpoint descriptor for producer EP */
0x07, /* Descriptor size */
CY_U3P_USB_ENDPNT_DESCR, /* Endpoint descriptor type */
DATA_ENDPOINT_PRODUCER, /* Endpoint address and description */
CY_U3P_USB_EP_BULK, /* Bulk endpoint type */
0x00,0x04, /* Max packet size = 1024 bytes */
0x00, /* Servicing interval for data transfers : 0 for bulk */
/* Super speed endpoint companion descriptor for producer EP */
0x06, /* Descriptor size */
CY_U3P_SS_EP_COMPN_DESCR, /* SS endpoint companion descriptor type */
(USB3_PACKETS_PER_BURST - 1), /* Max no. of packets in a burst : 0: burst 1 packet at a time */
0x00, /* Max streams for bulk EP = 0 (No streams) */
0x00,0x00, /* Service interval for the EP : 0 for bulk */
/* Endpoint descriptor for consumer EP */
0x07, /* Descriptor size */
CY_U3P_USB_ENDPNT_DESCR, /* Endpoint descriptor type */
DATA_ENDPOINT_CONSUMER, /* Endpoint address and description */
CY_U3P_USB_EP_BULK, /* Bulk endpoint type */
0x00,0x04, /* Max packet size = 1024 bytes */
0x00, /* Servicing interval for data transfers : 0 for Bulk */
/* Super speed endpoint companion descriptor for consumer EP */
0x06, /* Descriptor size */
CY_U3P_SS_EP_COMPN_DESCR, /* SS endpoint companion descriptor type */
(USB3_PACKETS_PER_BURST - 1), /* Max no. of packets in a burst : 0: burst 1 packet at a time */
0x00, /* Max streams for bulk EP = 0 (No streams) */
0x00,0x00, /* Service interval for the EP : 0 for bulk */
/* Endpoint descriptor for producer EP */
0x07, /* Descriptor size */
CY_U3P_USB_ENDPNT_DESCR, /* Endpoint descriptor type */
CTRL_ENDPOINT_PRODUCER, /* Endpoint address and description */
CY_U3P_USB_EP_BULK, /* Bulk endpoint type */
0x00,0x04, /* Max packet size = 1024 bytes */
0x00, /* Servicing interval for data transfers : 0 for bulk */
/* Super speed endpoint companion descriptor for producer EP */
0x06, /* Descriptor size */
CY_U3P_SS_EP_COMPN_DESCR, /* SS endpoint companion descriptor type */
(USB3_PACKETS_PER_BURST - 1), /* Max no. of packets in a burst : 0: burst 1 packet at a time */
0x00, /* Max streams for bulk EP = 0 (No streams) */
0x00,0x00, /* Service interval for the EP : 0 for bulk */
/* Endpoint descriptor for consumer EP */
0x07, /* Descriptor size */
CY_U3P_USB_ENDPNT_DESCR, /* Endpoint descriptor type */
CTRL_ENDPOINT_CONSUMER, /* Endpoint address and description */
CY_U3P_USB_EP_BULK, /* Bulk endpoint type */
0x00,0x04, /* Max packet size = 1024 bytes */
0x00, /* Servicing interval for data transfers : 0 for Bulk */
/* Super speed endpoint companion descriptor for consumer EP */
0x06, /* Descriptor size */
CY_U3P_SS_EP_COMPN_DESCR, /* SS endpoint companion descriptor type */
(USB3_PACKETS_PER_BURST - 1), /* Max no. of packets in a burst : 0: burst 1 packet at a time */
0x00, /* Max streams for bulk EP = 0 (No streams) */
0x00,0x00 /* Service interval for the EP : 0 for bulk */
};
/* Standard Language ID String Descriptor */
const uint8_t b200_string_lang_id_desc[] __attribute__ ((aligned (32))) =
{