aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/usrp3/n230
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/usrp3/n230')
-rw-r--r--firmware/usrp3/n230/n230_eeprom.c5
-rw-r--r--firmware/usrp3/n230/n230_eth_handlers.c4
-rw-r--r--firmware/usrp3/n230/n230_eth_handlers.h2
-rw-r--r--firmware/usrp3/n230/n230_fw_defs.h137
-rw-r--r--firmware/usrp3/n230/n230_fw_host_iface.h128
-rw-r--r--firmware/usrp3/n230/n230_init.c2
-rw-r--r--firmware/usrp3/n230/n230_main.c4
7 files changed, 9 insertions, 273 deletions
diff --git a/firmware/usrp3/n230/n230_eeprom.c b/firmware/usrp3/n230/n230_eeprom.c
index 116f87985..767289efa 100644
--- a/firmware/usrp3/n230/n230_eeprom.c
+++ b/firmware/usrp3/n230/n230_eeprom.c
@@ -22,8 +22,9 @@
#include <flash/spi_flash.h>
#include <flash/spif_spsn_s25flxx.h>
#include <string.h> //memcpy
-#include "n230_fw_defs.h"
-#include "n230_fw_host_iface.h"
+
+#include "../../../host/lib/usrp/n230/n230_fw_defs.h"
+#include "../../../host/lib/usrp/n230/n230_fw_host_iface.h"
static const wb_spi_slave_t flash_spi_slave = {
.base = (void*) 0xB000,
diff --git a/firmware/usrp3/n230/n230_eth_handlers.c b/firmware/usrp3/n230/n230_eth_handlers.c
index 98b8bc326..bb07be51b 100644
--- a/firmware/usrp3/n230/n230_eth_handlers.c
+++ b/firmware/usrp3/n230/n230_eth_handlers.c
@@ -17,15 +17,15 @@
#include "n230_eth_handlers.h"
-#include <fw_comm_protocol.h>
#include <wb_utils.h>
#include <string.h> //memcmp
#include <u3_net_stack.h>
#include <print_addrs.h>
#include <trace.h>
+#include "../../../host/lib/usrp/common/fw_comm_protocol.h"
+#include "../../../host/lib/usrp/n230/n230_fw_defs.h"
#include "../n230/n230_fw_host_iface.h"
#include "n230_eeprom.h"
-#include "n230_fw_defs.h"
static n230_host_shared_mem_t* host_shared_mem_ptr;
diff --git a/firmware/usrp3/n230/n230_eth_handlers.h b/firmware/usrp3/n230/n230_eth_handlers.h
index 86130e361..67afbb246 100644
--- a/firmware/usrp3/n230/n230_eth_handlers.h
+++ b/firmware/usrp3/n230/n230_eth_handlers.h
@@ -23,7 +23,7 @@
#include <stdbool.h>
#include <lwip/ip_addr.h>
#include <wb_soft_reg.h>
-#include "../n230/n230_fw_host_iface.h"
+#include "../../../host/lib/usrp/n230/n230_fw_host_iface.h"
/*!
* Registrar for host firmware communications handler.
diff --git a/firmware/usrp3/n230/n230_fw_defs.h b/firmware/usrp3/n230/n230_fw_defs.h
deleted file mode 100644
index fbdc67ebb..000000000
--- a/firmware/usrp3/n230/n230_fw_defs.h
+++ /dev/null
@@ -1,137 +0,0 @@
-//
-// Copyright 2014 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/>.
-//
-
-#ifndef INCLUDED_N230_FW_DEFS_H
-#define INCLUDED_N230_FW_DEFS_H
-
-#include <stdint.h>
-
-/*!
- * Constants specific to N230 firmware.
- * This header is shared by the firmware and host code.
- * Therefore, this header may only contain valid C code.
- * However, if it is included from within the host code,
- * it will be namespaced appropriately
- */
-#ifdef __cplusplus
-namespace uhd {
-namespace usrp {
-namespace n230 {
-namespace fw {
-#endif
-
-static inline uint32_t reg_addr(uint32_t base, uint32_t offset) {
- return ((base) + (offset)*4);
-}
-
-/*******************************************************************
- * Global
- *******************************************************************/
-static const uint32_t CPU_CLOCK_FREQ = 80000000;
-static const uint32_t PER_MILLISEC_CRON_JOBID = 0;
-static const uint32_t PER_SECOND_CRON_JOBID = 1;
-
-/*******************************************************************
- * Wishbone slave addresses
- *******************************************************************/
-static const uint32_t WB_MAIN_RAM_BASE = 0x0000;
-static const uint32_t WB_PKT_RAM_BASE = 0x8000;
-static const uint32_t WB_SBRB_BASE = 0xa000;
-static const uint32_t WB_SPI_FLASH_BASE = 0xb000;
-static const uint32_t WB_ETH0_MAC_BASE = 0xc000;
-static const uint32_t WB_ETH1_MAC_BASE = 0xd000;
-static const uint32_t WB_XB_SBRB_BASE = 0xe000;
-static const uint32_t WB_ETH0_I2C_BASE = 0xf600;
-static const uint32_t WB_ETH1_I2C_BASE = 0xf700;
-static const uint32_t WB_DBG_UART_BASE = 0xf900;
-
-/*******************************************************************
- * Seting Register Base addresses
- *******************************************************************/
-static const uint32_t SR_ZPU_SW_RST = 0;
-static const uint32_t SR_ZPU_BOOT_DONE = 1;
-static const uint32_t SR_ZPU_LEDS = 2;
-static const uint32_t SR_ZPU_XB_LOCAL = 4;
-static const uint32_t SR_ZPU_SFP_CTRL0 = 16;
-static const uint32_t SR_ZPU_SFP_CTRL1 = 17;
-static const uint32_t SR_ZPU_ETHINT0 = 64;
-static const uint32_t SR_ZPU_ETHINT1 = 80;
-
-static const uint32_t SR_ZPU_SW_RST_NONE = 0x0;
-static const uint32_t SR_ZPU_SW_RST_PHY = 0x1;
-static const uint32_t SR_ZPU_SW_RST_RADIO = 0x2;
-
-/*******************************************************************
- * Readback addresses
- *******************************************************************/
-static const uint32_t RB_ZPU_COMPAT = 0;
-static const uint32_t RB_ZPU_COUNTER = 1;
-static const uint32_t RB_ZPU_SFP_STATUS0 = 2;
-static const uint32_t RB_ZPU_SFP_STATUS1 = 3;
-static const uint32_t RB_ZPU_ETH0_PKT_CNT = 6;
-static const uint32_t RB_ZPU_ETH1_PKT_CNT = 7;
-
-/*******************************************************************
- * Ethernet
- *******************************************************************/
-static const uint32_t WB_PKT_RAM_CTRL_OFFSET = 0x1FFC;
-
-static const uint32_t SR_ZPU_ETHINT_FRAMER_BASE = 0;
-static const uint32_t SR_ZPU_ETHINT_DISPATCHER_BASE = 8;
-
-//Eth framer constants
-static const uint32_t ETH_FRAMER_SRC_MAC_HI = 0;
-static const uint32_t ETH_FRAMER_SRC_MAC_LO = 1;
-static const uint32_t ETH_FRAMER_SRC_IP_ADDR = 2;
-static const uint32_t ETH_FRAMER_SRC_UDP_PORT = 3;
-static const uint32_t ETH_FRAMER_DST_RAM_ADDR = 4;
-static const uint32_t ETH_FRAMER_DST_IP_ADDR = 5;
-static const uint32_t ETH_FRAMER_DST_UDP_MAC = 6;
-static const uint32_t ETH_FRAMER_DST_MAC_LO = 7;
-
-/*******************************************************************
- * CODEC
- *******************************************************************/
-static const uint32_t CODEC_SPI_CLOCK_FREQ = 4000000; //4MHz
-static const uint32_t ADF4001_SPI_CLOCK_FREQ = 200000; //200kHz
-
-/*******************************************************************
- * UART
- *******************************************************************/
-static const uint32_t DBG_UART_BAUD = 115200;
-
-/*******************************************************************
- * Build Compatability Numbers
- *******************************************************************/
-static const uint8_t PRODUCT_NUM = 0x01;
-static const uint8_t COMPAT_MAJOR = 0x00;
-static const uint16_t COMPAT_MINOR = 0x0000;
-
-static inline uint8_t get_prod_num(uint32_t compat_reg) {
- return (compat_reg >> 24) & 0xFF;
-}
-static inline uint8_t get_compat_major(uint32_t compat_reg) {
- return (compat_reg >> 16) & 0xFF;
-}
-static inline uint8_t get_compat_minor(uint32_t compat_reg) {
- return compat_reg & 0xFFFF;
-}
-
-#ifdef __cplusplus
-}}}} //namespace
-#endif
-#endif /* INCLUDED_N230_FW_DEFS_H */
diff --git a/firmware/usrp3/n230/n230_fw_host_iface.h b/firmware/usrp3/n230/n230_fw_host_iface.h
deleted file mode 100644
index dc82df2fc..000000000
--- a/firmware/usrp3/n230/n230_fw_host_iface.h
+++ /dev/null
@@ -1,128 +0,0 @@
-//
-// Copyright 2014 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/>.
-//
-
-#ifndef INCLUDED_N230_FW_HOST_IFACE_H
-#define INCLUDED_N230_FW_HOST_IFACE_H
-
-#include <stdint.h>
-
-/*!
- * Structs and constants for N230 communication between firmware and host.
- * This header is shared by the firmware and host code.
- * Therefore, this header may only contain valid C code.
- */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//--------------------------------------------------
-// Ethernet related
-//
-#define N230_DEFAULT_ETH0_MAC {0x00, 0x50, 0xC2, 0x85, 0x3f, 0xff}
-#define N230_DEFAULT_ETH1_MAC {0x00, 0x50, 0xC2, 0x85, 0x3f, 0x33}
-#define N230_DEFAULT_ETH0_IP (192 << 24 | 168 << 16 | 10 << 8 | 2 << 0)
-#define N230_DEFAULT_ETH1_IP (192 << 24 | 168 << 16 | 20 << 8 | 2 << 0)
-#define N230_DEFAULT_ETH0_MASK (255 << 24 | 255 << 16 | 255 << 8 | 0 << 0)
-#define N230_DEFAULT_ETH1_MASK (255 << 24 | 255 << 16 | 255 << 8 | 0 << 0)
-#define N230_DEFAULT_GATEWAY (192 << 24 | 168 << 16 | 10 << 8 | 1 << 0)
-
-#define N230_FW_COMMS_UDP_PORT 49152
-#define N230_FW_COMMS_CVITA_PORT 49153
-#define N230_FW_COMMS_FLASH_PROG_PORT 49154
-//
-//--------------------------------------------------
-
-//--------------------------------------------------
-// Memory shared with host
-//
-#define N230_FW_HOST_SHMEM_BASE_ADDR 0x10000
-#define N230_FW_HOST_SHMEM_RW_BASE_ADDR 0x1000C
-#define N230_FW_HOST_SHMEM_NUM_WORDS (sizeof(n230_host_shared_mem_data_t)/sizeof(uint32_t))
-
-#define N230_FW_HOST_SHMEM_MAX_ADDR \
- (N230_FW_HOST_SHMEM_BASE_ADDR + ((N230_FW_HOST_SHMEM_NUM_WORDS - 1) * sizeof(uint32_t)))
-
-#define N230_FW_HOST_SHMEM_OFFSET(member) \
- (N230_FW_HOST_SHMEM_BASE_ADDR + ((uint32_t)offsetof(n230_host_shared_mem_data_t, member)))
-
-//The shared memory block can only be accessed on 32-bit boundaries
-typedef struct { //All fields must be 32-bit wide to avoid packing directives
- //Read-Only fields (N230_FW_HOST_SHMEM_BASE_ADDR)
- uint32_t fw_compat_num; //Compat number must be at offset 0
- uint32_t fw_version_hash;
- uint32_t claim_status;
-
- //Read-Write fields (N230_FW_HOST_SHMEM_RW_BASE_ADDR)
- uint32_t scratch;
- uint32_t claim_time;
- uint32_t claim_src;
-} n230_host_shared_mem_data_t;
-
-typedef union
-{
- uint32_t buff[N230_FW_HOST_SHMEM_NUM_WORDS];
- n230_host_shared_mem_data_t data;
-} n230_host_shared_mem_t;
-
-#define N230_FW_PRODUCT_ID 1
-#define N230_FW_COMPAT_NUM_MAJOR 3
-#define N230_FW_COMPAT_NUM_MINOR 0
-#define N230_FW_COMPAT_NUM (((N230_FW_COMPAT_NUM_MAJOR & 0xFF) << 16) | (N230_FW_COMPAT_NUM_MINOR & 0xFFFF))
-//
-//--------------------------------------------------
-
-//--------------------------------------------------
-// Flash read-write interface for host
-//
-#define N230_FLASH_COMM_FLAGS_ACK 0x00000001
-#define N230_FLASH_COMM_FLAGS_CMD_MASK 0x00000FF0
-#define N230_FLASH_COMM_FLAGS_ERROR_MASK 0xFF000000
-
-#define N230_FLASH_COMM_CMD_READ_NV_DATA 0x00000010
-#define N230_FLASH_COMM_CMD_WRITE_NV_DATA 0x00000020
-#define N230_FLASH_COMM_CMD_READ_FPGA 0x00000030
-#define N230_FLASH_COMM_CMD_WRITE_FPGA 0x00000040
-#define N230_FLASH_COMM_CMD_ERASE_FPGA 0x00000050
-
-#define N230_FLASH_COMM_ERR_PKT_ERROR 0x80000000
-#define N230_FLASH_COMM_ERR_CMD_ERROR 0x40000000
-#define N230_FLASH_COMM_ERR_SIZE_ERROR 0x20000000
-
-#define N230_FLASH_COMM_MAX_PAYLOAD_SIZE 128
-
-typedef struct
-{
- uint32_t flags;
- uint32_t seq;
- uint32_t offset;
- uint32_t size;
- uint8_t data[N230_FLASH_COMM_MAX_PAYLOAD_SIZE];
-} n230_flash_prog_t;
-//
-//--------------------------------------------------
-
-#define N230_HW_REVISION_COMPAT 1
-#define N230_HW_REVISION_MIN 1
-
-
-#define N230_CLAIMER_TIMEOUT_IN_MS 2000
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* INCLUDED_N230_FW_HOST_IFACE_H */
diff --git a/firmware/usrp3/n230/n230_init.c b/firmware/usrp3/n230/n230_init.c
index 4602f8338..0054c1bbc 100644
--- a/firmware/usrp3/n230/n230_init.c
+++ b/firmware/usrp3/n230/n230_init.c
@@ -25,8 +25,8 @@
#include <print_addrs.h>
#include <trace.h>
#include "n230_eeprom.h"
-#include "n230_fw_defs.h"
#include "n230_init.h"
+#include "../../../host/lib/usrp/n230/n230_fw_defs.h"
static wb_pkt_iface64_config_t pkt_config;
diff --git a/firmware/usrp3/n230/n230_main.c b/firmware/usrp3/n230/n230_main.c
index ceb896514..a6c12e56d 100644
--- a/firmware/usrp3/n230/n230_main.c
+++ b/firmware/usrp3/n230/n230_main.c
@@ -19,9 +19,9 @@
#include <wb_soft_reg.h>
#include <u3_net_stack.h>
#include <trace.h>
+#include "../../../host/lib/usrp/n230/n230_fw_defs.h"
+#include "../../../host/lib/usrp/n230/n230_fw_host_iface.h"
#include "n230_eth_handlers.h"
-#include "n230_fw_defs.h"
-#include "n230_fw_host_iface.h"
#include "n230_init.h"
//The version hash should come from a cmake build variable