diff options
Diffstat (limited to 'firmware/x300/include')
-rw-r--r-- | firmware/x300/include/chinch.h | 109 | ||||
-rw-r--r-- | firmware/x300/include/ethernet.h | 53 | ||||
-rw-r--r-- | firmware/x300/include/ethertype.h | 27 | ||||
-rw-r--r-- | firmware/x300/include/if_arp.h | 153 | ||||
-rw-r--r-- | firmware/x300/include/link_state_route_proto.h | 56 | ||||
-rw-r--r-- | firmware/x300/include/mdelay.h | 29 | ||||
-rw-r--r-- | firmware/x300/include/print_addrs.h | 15 | ||||
-rw-r--r-- | firmware/x300/include/printf.h | 108 | ||||
-rw-r--r-- | firmware/x300/include/stdint.h | 34 | ||||
-rw-r--r-- | firmware/x300/include/u3_net_stack.h | 113 | ||||
-rw-r--r-- | firmware/x300/include/udp_uart.h | 37 | ||||
-rw-r--r-- | firmware/x300/include/wb_i2c.h | 18 | ||||
-rw-r--r-- | firmware/x300/include/wb_pkt_iface64.h | 44 | ||||
-rw-r--r-- | firmware/x300/include/wb_uart.h | 23 | ||||
-rw-r--r-- | firmware/x300/include/wb_utils.h | 24 | ||||
-rw-r--r-- | firmware/x300/include/xge_mac.h | 37 | ||||
-rw-r--r-- | firmware/x300/include/xge_phy.h | 78 |
17 files changed, 0 insertions, 958 deletions
diff --git a/firmware/x300/include/chinch.h b/firmware/x300/include/chinch.h deleted file mode 100644 index a3e70337a..000000000 --- a/firmware/x300/include/chinch.h +++ /dev/null @@ -1,109 +0,0 @@ -// -// Copyright 2013 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_CHINCH_H -#define INCLUDED_CHINCH_H - -#include <wb_utils.h> -#include <stdbool.h> -#include <printf.h> - -#define STATUS_CHAIN(x, status) if (status) status = (x) -#define STATUS_MERGE(x, status) status &= (x) -#define STATUS_CHAIN_DBG(x, status) STATUS_CHAIN(x, status); printf("%s: %s\n", #x, status?"succeeded":"failed!") - -//The unit for this timeout is somewhat arbitrary. We could use the counter reg to enforce this in -//terms of clock cycles but that is not worth the extra code -static const uint32_t CHINCH_DEFAULT_XACT_TIMEOUT = 32768; -static const uint32_t CHINCH_FLASH_MAX_BUF_WRITES = 32; - -//----------------------------------------------------- -// Peek-Poke interface for the Chinch -//----------------------------------------------------- -bool chinch_poke(const uint32_t addr, const uint32_t data, bool half_word, uint32_t timeout); -bool chinch_peek(const uint32_t addr, uint32_t* data, bool half_word, uint32_t timeout); - -static inline bool chinch_poke32(const uint32_t addr, const uint32_t data) { - return chinch_poke(addr, data, false /*half word*/, CHINCH_DEFAULT_XACT_TIMEOUT); -} -static inline bool chinch_poke16(const uint32_t addr, const uint32_t data) { - return chinch_poke(addr, data, true /*half word*/, CHINCH_DEFAULT_XACT_TIMEOUT); -} -static inline bool chinch_peek32(const uint32_t addr, uint32_t* data) { - return chinch_peek(addr, data, false /*half word*/, CHINCH_DEFAULT_XACT_TIMEOUT); -} -static inline bool chinch_peek16(const uint32_t addr, uint32_t* data) { - return chinch_peek(addr, data, true /*half word*/, CHINCH_DEFAULT_XACT_TIMEOUT); -} - -//----------------------------------------------------- -// Flash access -//----------------------------------------------------- -bool chinch_flash_init(); -void chinch_flash_cleanup(); -bool chinch_flash_select_sector(uint32_t sector); -bool chinch_flash_erase_sector(); -bool chinch_flash_read_buf(uint32_t offset, uint16_t* buf, uint32_t size); -bool chinch_flash_write_buf(uint32_t offset, uint16_t* buf, uint32_t size); - -static inline bool chinch_flash_read(uint32_t offset, uint16_t* data) { - return chinch_flash_read_buf(offset, data, 1); -} -static inline bool chinch_flash_write(uint32_t offset, uint16_t data) { - return chinch_flash_write_buf(offset, &data, 1); -} - -//----------------------------------------------------- -// FPGA Configuration -//----------------------------------------------------- -typedef uint8_t config_status_t; -static const config_status_t CHINCH_CONFIG_RUNNING = 0; -static const config_status_t CHINCH_CONFIG_DISABLED = 1; -static const config_status_t CHINCH_CONFIG_COMPLETED = 2; -static const config_status_t CHINCH_CONFIG_ERROR = 3; - -void chinch_start_config(); //Caution: This operation will make the ZPU self-destruct! -config_status_t chinch_get_config_status(); - -//----------------------------------------------------- -// Read-back interface for user initiated -// PCIe register transactions -//----------------------------------------------------- -typedef uint8_t pcie_xact_size_t; -static const pcie_xact_size_t PCIE_XACT_32_BIT = 0; -static const pcie_xact_size_t PCIE_XACT_16_BIT = 1; - -typedef uint8_t pcie_xact_t; -static const pcie_xact_t PCIE_XACT_ERROR = 0; -static const pcie_xact_t PCIE_XACT_READ = 1; -static const pcie_xact_t PCIE_XACT_WRITE = 2; - -typedef bool (*pcie_register_xact_responder_t)(uint32_t response, uint32_t timeout); - -typedef struct -{ - pcie_xact_t type; - uint32_t addr; - uint32_t data; - pcie_xact_size_t size; - pcie_register_xact_responder_t respond; -} pcie_register_xact_t; - -bool check_pcie_user_regport(pcie_register_xact_t** xact_info_hdl); -bool forward_pcie_user_xact_to_wb(); - - -#endif /* INCLUDED_CHINCH_H */ diff --git a/firmware/x300/include/ethernet.h b/firmware/x300/include/ethernet.h deleted file mode 100644 index 52f14d05b..000000000 --- a/firmware/x300/include/ethernet.h +++ /dev/null @@ -1,53 +0,0 @@ -/* -*- c -*- */ -/* - * Copyright 2007,2009 Free Software Foundation, Inc. - * Copyright 2009 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_ETHERNET_H -#define INCLUDED_ETHERNET_H - -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> - -typedef void (*ethernet_link_changed_callback_t)(int ethnum, int speed); - -#define MDIO_PORT 4 - -/*! - * \brief one time call to initialize ethernet - */ -void xge_ethernet_init(const uint32_t eth); - -/*! - * \brief Return number of ethernet interfaces - */ -int ethernet_ninterfaces(void); - - -void dump_mdio_regs(const uint8_t eth, uint32_t mdio_port); - -/*! - * \brief Test status of SFP+ modules - */ -void -xge_poll_sfpp_status(const uint32_t eth); - -//! get the link status of eth (true for link up) -bool ethernet_get_link_up(const uint32_t eth); - -#endif /* INCLUDED_ETHERNET_H */ diff --git a/firmware/x300/include/ethertype.h b/firmware/x300/include/ethertype.h deleted file mode 100644 index 235981193..000000000 --- a/firmware/x300/include/ethertype.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -*- c++ -*- */ -/* - * Copyright 2009-2011 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_ETHERTYPE_H -#define INCLUDED_ETHERTYPE_H - -// all we care about - -#define ETHERTYPE_IPV4 0x0800 -#define ETHERTYPE_ARP 0x0806 - - -#endif /* INCLUDED_ETHERTYPE_H */ diff --git a/firmware/x300/include/if_arp.h b/firmware/x300/include/if_arp.h deleted file mode 100644 index 63519c4be..000000000 --- a/firmware/x300/include/if_arp.h +++ /dev/null @@ -1,153 +0,0 @@ -/* - * INET An implementation of the TCP/IP protocol suite for the LINUX - * operating system. INET is implemented using the BSD Socket - * interface as the means of communication with the user level. - * - * Global definitions for the ARP (RFC 826) protocol. - * - * Version: @(#)if_arp.h 1.0.1 04/16/93 - * - * Authors: Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988 - * Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source. - * Ross Biro - * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG> - * Florian La Roche, - * Jonathan Layes <layes@loran.com> - * Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25 - * - * 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 - * 2 of the License, or (at your option) any later version. - */ -#ifndef _LINUX_IF_ARP_H -#define _LINUX_IF_ARP_H - -/* ARP protocol HARDWARE identifiers. */ -#define ARPHRD_NETROM 0 /* from KA9Q: NET/ROM pseudo */ -#define ARPHRD_ETHER 1 /* Ethernet 10Mbps */ -#define ARPHRD_EETHER 2 /* Experimental Ethernet */ -#define ARPHRD_AX25 3 /* AX.25 Level 2 */ -#define ARPHRD_PRONET 4 /* PROnet token ring */ -#define ARPHRD_CHAOS 5 /* Chaosnet */ -#define ARPHRD_IEEE802 6 /* IEEE 802.2 Ethernet/TR/TB */ -#define ARPHRD_ARCNET 7 /* ARCnet */ -#define ARPHRD_APPLETLK 8 /* APPLEtalk */ -#define ARPHRD_DLCI 15 /* Frame Relay DLCI */ -#define ARPHRD_ATM 19 /* ATM */ -#define ARPHRD_METRICOM 23 /* Metricom STRIP (new IANA id) */ -#define ARPHRD_IEEE1394 24 /* IEEE 1394 IPv4 - RFC 2734 */ -#define ARPHRD_EUI64 27 /* EUI-64 */ -#define ARPHRD_INFINIBAND 32 /* InfiniBand */ - -/* Dummy types for non ARP hardware */ -#define ARPHRD_SLIP 256 -#define ARPHRD_CSLIP 257 -#define ARPHRD_SLIP6 258 -#define ARPHRD_CSLIP6 259 -#define ARPHRD_RSRVD 260 /* Notional KISS type */ -#define ARPHRD_ADAPT 264 -#define ARPHRD_ROSE 270 -#define ARPHRD_X25 271 /* CCITT X.25 */ -#define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */ -#define ARPHRD_CAN 280 /* Controller Area Network */ -#define ARPHRD_PPP 512 -#define ARPHRD_CISCO 513 /* Cisco HDLC */ -#define ARPHRD_HDLC ARPHRD_CISCO -#define ARPHRD_LAPB 516 /* LAPB */ -#define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */ -#define ARPHRD_RAWHDLC 518 /* Raw HDLC */ - -#define ARPHRD_TUNNEL 768 /* IPIP tunnel */ -#define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */ -#define ARPHRD_FRAD 770 /* Frame Relay Access Device */ -#define ARPHRD_SKIP 771 /* SKIP vif */ -#define ARPHRD_LOOPBACK 772 /* Loopback device */ -#define ARPHRD_LOCALTLK 773 /* Localtalk device */ -#define ARPHRD_FDDI 774 /* Fiber Distributed Data Interface */ -#define ARPHRD_BIF 775 /* AP1000 BIF */ -#define ARPHRD_SIT 776 /* sit0 device - IPv6-in-IPv4 */ -#define ARPHRD_IPDDP 777 /* IP over DDP tunneller */ -#define ARPHRD_IPGRE 778 /* GRE over IP */ -#define ARPHRD_PIMREG 779 /* PIMSM register interface */ -#define ARPHRD_HIPPI 780 /* High Performance Parallel Interface */ -#define ARPHRD_ASH 781 /* Nexus 64Mbps Ash */ -#define ARPHRD_ECONET 782 /* Acorn Econet */ -#define ARPHRD_IRDA 783 /* Linux-IrDA */ -/* ARP works differently on different FC media .. so */ -#define ARPHRD_FCPP 784 /* Point to point fibrechannel */ -#define ARPHRD_FCAL 785 /* Fibrechannel arbitrated loop */ -#define ARPHRD_FCPL 786 /* Fibrechannel public loop */ -#define ARPHRD_FCFABRIC 787 /* Fibrechannel fabric */ - /* 787->799 reserved for fibrechannel media types */ -#define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR */ -#define ARPHRD_IEEE80211 801 /* IEEE 802.11 */ -#define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */ -#define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header */ - -#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ -#define ARPHRD_NONE 0xFFFE /* zero header length */ - -/* ARP protocol opcodes. */ -#define ARPOP_REQUEST 1 /* ARP request */ -#define ARPOP_REPLY 2 /* ARP reply */ -#define ARPOP_RREQUEST 3 /* RARP request */ -#define ARPOP_RREPLY 4 /* RARP reply */ -#define ARPOP_InREQUEST 8 /* InARP request */ -#define ARPOP_InREPLY 9 /* InARP reply */ -#define ARPOP_NAK 10 /* (ATM)ARP NAK */ - - -/* ARP Flag values. */ -#define ATF_COM 0x02 /* completed entry (ha valid) */ -#define ATF_PERM 0x04 /* permanent entry */ -#define ATF_PUBL 0x08 /* publish entry */ -#define ATF_USETRAILERS 0x10 /* has requested trailers */ -#define ATF_NETMASK 0x20 /* want to use a netmask (only - for proxy entries) */ -#define ATF_DONTPUB 0x40 /* don't answer this addresses */ - -typedef unsigned short __be16; - -/* - * This structure defines an ethernet arp header. - */ -struct arphdr -{ - __be16 ar_hrd; /* format of hardware address */ - __be16 ar_pro; /* format of protocol address */ - unsigned char ar_hln; /* length of hardware address */ - unsigned char ar_pln; /* length of protocol address */ - __be16 ar_op; /* ARP opcode (command) */ - -#if 0 - /* - * Ethernet looks like this : This bit is variable sized however... - */ - unsigned char ar_sha[ETH_ALEN]; /* sender hardware address */ - unsigned char ar_sip[4]; /* sender IP address */ - unsigned char ar_tha[ETH_ALEN]; /* target hardware address */ - unsigned char ar_tip[4]; /* target IP address */ -#endif - -}; - -/* - * This structure defines an ethernet arp header. - */ -struct arp_eth_ipv4 -{ - __be16 ar_hrd; /* format of hardware address */ - __be16 ar_pro; /* format of protocol address */ - unsigned char ar_hln; /* length of hardware address */ - unsigned char ar_pln; /* length of protocol address */ - __be16 ar_op; /* ARP opcode (command) */ - - unsigned char ar_sha[6]; /* sender hardware address */ - unsigned char ar_sip[4]; /* sender IP address */ - unsigned char ar_tha[6]; /* target hardware address */ - unsigned char ar_tip[4]; /* target IP address */ -}; - - -#endif /* _LINUX_IF_ARP_H */ diff --git a/firmware/x300/include/link_state_route_proto.h b/firmware/x300/include/link_state_route_proto.h deleted file mode 100644 index 8feb3e717..000000000 --- a/firmware/x300/include/link_state_route_proto.h +++ /dev/null @@ -1,56 +0,0 @@ - -// Copyright 2013 Ettus Research LLC - -#ifndef INCLUDED_LINK_STATE_ROUTE_PROTO_H -#define INCLUDED_LINK_STATE_ROUTE_PROTO_H - -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <lwip/ip_addr.h> - -//http://en.wikipedia.org/wiki/Link-state_routing_protocol - -//! Initialize internals and handler registration -void link_state_route_proto_init(void); - -/*! - * Advances the internal counter to determine expired entries. - * Call this periodically, along with the other periodic calls. - */ -void link_state_route_proto_tick(void); - -//! Initiate a periodic update to the neighbor table -void link_state_route_proto_update(const uint8_t ethno); - -//! Flood the network with information about routes -void link_state_route_proto_flood(const uint8_t ethno); - -/*! - * Updates the causes cycle cache for the given source ethno. - */ -void link_state_route_proto_update_cycle_cache(const uint8_t ethno); - -/*! - * Determine if the given link is the cause of a cycle (aka routing loop) - * This call does not run the algorithm, but rather checks the cache. - * This call also differs from the one below, takes the ethnos. - */ -bool link_state_route_proto_causes_cycle_cached(const uint8_t eth_src, const uint8_t eth_dst); - -//! Determine if the given link is the cause of a cycle (aka routing loop) -bool link_state_route_proto_causes_cycle(const struct ip_addr *src, const struct ip_addr *dst); - -typedef struct -{ - struct ip_addr node; - struct ip_addr nbor; -} ls_node_mapping_t; - -/*! - * Get a pointer to the node mapping table. - * The table length will be set to *length. - */ -const ls_node_mapping_t *link_state_route_get_node_mapping(size_t *length); - -#endif /* INCLUDED_LINK_STATE_ROUTE_PROTO_H */ diff --git a/firmware/x300/include/mdelay.h b/firmware/x300/include/mdelay.h deleted file mode 100644 index 226bbb3f7..000000000 --- a/firmware/x300/include/mdelay.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -*- c -*- */ -/* - * Copyright 2007 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/>. - */ - -#ifndef INCLUDED_MDELAY_H -#define INCLUDED_MDELAY_H - -/*! - * \brief Delay about ms milliseconds - * - * If simulating, _very_ short delay - */ -void mdelay(int ms); - -#endif /* INCLUDED_MDELAY_H */ diff --git a/firmware/x300/include/print_addrs.h b/firmware/x300/include/print_addrs.h deleted file mode 100644 index 1aa5d6888..000000000 --- a/firmware/x300/include/print_addrs.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2013 Ettus Research LLC - -#ifndef INCLUDED_PRINT_ADDRS_H -#define INCLUDED_PRINT_ADDRS_H - -char *mac_addr_to_str_r(const void *addr, char *str); -char *ip_addr_to_str_r(const void *addr, char *str); - -char *mac_addr_to_str(const void *addr); -char *ip_addr_to_str(const void *addr); - -//void print_mac_addr(const void *addr); -//void print_ip_addr(const void *addr); - -#endif /* INCLUDED_PRINT_ADDRS_H */ diff --git a/firmware/x300/include/printf.h b/firmware/x300/include/printf.h deleted file mode 100644 index 6b3088dbe..000000000 --- a/firmware/x300/include/printf.h +++ /dev/null @@ -1,108 +0,0 @@ -/* -File: printf.h - -Copyright (C) 2004 Kustaa Nyholm - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library 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 Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -This library is realy just two files: 'printf.h' and 'printf.c'. - -They provide a simple and small (+200 loc) printf functionality to -be used in embedded systems. - -I've found them so usefull in debugging that I do not bother with a -debugger at all. - -They are distributed in source form, so to use them, just compile them -into your project. - -Two printf variants are provided: printf and sprintf. - -The formats supported by this implementation are: 'd' 'u' 'c' 's' 'x' 'X'. - -Zero padding and field width are also supported. - -If the library is compiled with 'PRINTF_SUPPORT_LONG' defined then the -long specifier is also -supported. Note that this will pull in some long math routines (pun intended!) -and thus make your executable noticably longer. - -The memory foot print of course depends on the target cpu, compiler and -compiler options, but a rough guestimate (based on a H8S target) is about -1.4 kB for code and some twenty 'int's and 'char's, say 60 bytes of stack space. -Not too bad. Your milage may vary. By hacking the source code you can -get rid of some hunred bytes, I'm sure, but personally I feel the balance of -functionality and flexibility versus code size is close to optimal for -many embedded systems. - -To use the printf you need to supply your own character output function, -something like : - - void putc ( void* p, char c) - { - while (!SERIAL_PORT_EMPTY) ; - SERIAL_PORT_TX_REGISTER = c; - } - -Before you can call printf you need to initialize it to use your -character output function with something like: - - init_printf(NULL,putc); - -Notice the 'NULL' in 'init_printf' and the parameter 'void* p' in 'putc', -the NULL (or any pointer) you pass into the 'init_printf' will eventually be -passed to your 'putc' routine. This allows you to pass some storage space (or -anything realy) to the character output function, if necessary. -This is not often needed but it was implemented like that because it made -implementing the sprintf function so neat (look at the source code). - -The code is re-entrant, except for the 'init_printf' function, so it -is safe to call it from interupts too, although this may result in mixed output. -If you rely on re-entrancy, take care that your 'putc' function is re-entrant! - -The printf and sprintf functions are actually macros that translate to -'tfp_printf' and 'tfp_sprintf'. This makes it possible -to use them along with 'stdio.h' printf's in a single source file. -You just need to undef the names before you include the 'stdio.h'. -Note that these are not function like macros, so if you have variables -or struct members with these names, things will explode in your face. -Without variadic macros this is the best we can do to wrap these -fucnction. If it is a problem just give up the macros and use the -functions directly or rename them. - -For further details see source code. - -regs Kusti, 23.10.2004 -*/ - - -#ifndef __TFP_PRINTF__ -#define __TFP_PRINTF__ - -#include <stdarg.h> - -void init_printf(void* putp,void (*putf) (void*,char)); - -void tfp_printf(char *fmt, ...); -void tfp_sprintf(char* s,char *fmt, ...); - -void tfp_format(void* putp,void (*putf) (void*,char),char *fmt, va_list va); - -#define printf tfp_printf -#define sprintf tfp_sprintf -#define PRINTF_LONG_SUPPORT 1 -//#define PRINTF_LONG_LONG_SUPPORT 1 //IJB gcc for ZPU long long appears to have bugs - -#endif diff --git a/firmware/x300/include/stdint.h b/firmware/x300/include/stdint.h deleted file mode 100644 index b5a8611a9..000000000 --- a/firmware/x300/include/stdint.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -*- c -*- */ -/* - * Copyright 2007,2009 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/>. - */ - -#ifndef INCLUDED_STDINT_H -#define INCLUDED_STDINT_H - -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef short int16_t; -typedef unsigned short uint16_t; -typedef int int32_t; -typedef unsigned int uint32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; - -typedef int intptr_t; -typedef unsigned int uintptr_t; - -#endif /* INCLUDED_STDINT_H */ diff --git a/firmware/x300/include/u3_net_stack.h b/firmware/x300/include/u3_net_stack.h deleted file mode 100644 index cbf714e20..000000000 --- a/firmware/x300/include/u3_net_stack.h +++ /dev/null @@ -1,113 +0,0 @@ - -// Copyright 2012-2013 Ettus Research LLC - -#ifndef INCLUDED_U3_NET_STACK_H -#define INCLUDED_U3_NET_STACK_H - -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> -#include <wb_pkt_iface64.h> - -//---------------------------------------------------------------------- - -#include <lwip/ip_addr.h> -#include <lwip/ip.h> -#include <lwip/udp.h> -#include <lwip/icmp.h> -#include <if_arp.h> -#include <ethertype.h> - -typedef struct -{ - uint8_t addr[6]; -} eth_mac_addr_t; - -typedef struct -{ - uint8_t ethno; - uint8_t pad[5]; - eth_mac_addr_t dst; - eth_mac_addr_t src; - uint16_t ethertype; -} padded_eth_hdr_t; - -//------------------ init stuff ------------------------------------ - -void u3_net_stack_init(wb_pkt_iface64_config_t *config); - -void u3_net_stack_init_eth(const uint8_t ethno, const eth_mac_addr_t *mac, const struct ip_addr *ip, const struct ip_addr *subnet); - -const struct ip_addr *u3_net_stack_get_ip_addr(const uint8_t ethno); - -const struct ip_addr *u3_net_stack_get_subnet(const uint8_t ethno); - -const struct ip_addr *u3_net_stack_get_bcast(const uint8_t ethno); - -const eth_mac_addr_t *u3_net_stack_get_mac_addr(const uint8_t ethno); - -uint32_t u3_net_stack_get_stat_counts(const uint8_t ethno); - -//------------------ udp handling ------------------------------------ - -typedef void (*u3_net_stack_udp_handler_t)( - const uint8_t, - const struct ip_addr *, const struct ip_addr *, - const uint16_t, const uint16_t, - const void *, const size_t -); - -void u3_net_stack_register_udp_handler( - const uint16_t port, - const u3_net_stack_udp_handler_t handler -); - -void u3_net_stack_send_udp_pkt( - const uint8_t ethno, - const struct ip_addr *dst, - const uint16_t src_port, - const uint16_t dst_port, - const void *buff, - const size_t num_bytes -); - -//------------------ icmp handling ------------------------------------ - -typedef void (*u3_net_stack_icmp_handler_t)( - const uint8_t, - const struct ip_addr *, const struct ip_addr *, - const uint16_t, const uint16_t, - const void *, const size_t -); - -void u3_net_stack_register_icmp_handler( - const uint8_t type, - const uint8_t code, - const u3_net_stack_icmp_handler_t handler -); - -void u3_net_stack_send_icmp_pkt( - const uint8_t ethno, - const uint8_t type, - const uint8_t code, - const uint16_t id, - const uint16_t seq, - const struct ip_addr *dst, - const void *buff, - const size_t num_bytes -); - -//------------------ entry point ------------------------------------ - -void u3_net_stack_handle_one(void); - -//------------------ arp handling ------------------------------------ - -void u3_net_stack_send_arp_request(const uint8_t ethno, const struct ip_addr *addr); - -//commented out to make private - do we need cache update outside this module? -//void u3_net_stack_arp_cache_update(const struct ip_addr *ip_addr, const eth_mac_addr_t *mac_addr, const uint8_t ethno); - -const eth_mac_addr_t *u3_net_stack_arp_cache_lookup(const struct ip_addr *ip_addr); - -#endif /* INCLUDED_U3_NET_STACK_H */ diff --git a/firmware/x300/include/udp_uart.h b/firmware/x300/include/udp_uart.h deleted file mode 100644 index 4a33a9299..000000000 --- a/firmware/x300/include/udp_uart.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2011-2013 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_UDP_UART_H -#define INCLUDED_UDP_UART_H - -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> - -/*! - * Initialize the UDP/UART module. - * Registers handler into the network. - */ -void udp_uart_init(const uint32_t uart_base, const uint16_t udp_port); - -/*! - * Polls the UART state machine, - * and sends messages over UDP. - */ -void udp_uart_poll(void); - -#endif /* INCLUDED_UDP_UART_H */ diff --git a/firmware/x300/include/wb_i2c.h b/firmware/x300/include/wb_i2c.h deleted file mode 100644 index cb307f373..000000000 --- a/firmware/x300/include/wb_i2c.h +++ /dev/null @@ -1,18 +0,0 @@ - -// Copyright 2012 Ettus Research LLC - -#ifndef INCLUDED_WB_I2C_H -#define INCLUDED_WB_I2C_H - -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> - -void wb_i2c_init(const uint32_t base, const size_t clk_rate); - -bool wb_i2c_read(const uint32_t base, const uint8_t i2c_addr, uint8_t *buf, size_t len); - -bool wb_i2c_write(const uint32_t base, const uint8_t i2c_addr, const uint8_t *buf, size_t len); - - -#endif /* INCLUDED_WB_I2C_H */ diff --git a/firmware/x300/include/wb_pkt_iface64.h b/firmware/x300/include/wb_pkt_iface64.h deleted file mode 100644 index aa3c174ed..000000000 --- a/firmware/x300/include/wb_pkt_iface64.h +++ /dev/null @@ -1,44 +0,0 @@ - -// Copyright 2012 Ettus Research LLC - -#ifndef INCLUDED_WB_PKT_IFACE64_H -#define INCLUDED_WB_PKT_IFACE64_H - -#include <stdint.h> -#include <stddef.h> -#include <stdbool.h> - -//! opaque, dont touch insides -typedef struct -{ - uint32_t base; - uint32_t ctrl; - uint32_t config_addr; -} wb_pkt_iface64_config_t; - -//! Init the wb slave for packet interface -wb_pkt_iface64_config_t wb_pkt_iface64_init(const uint32_t base, const size_t ctrl_offset); - -/*! - * Poll if an packet has been received. - * If yes, return the pointer to the pkt, num_bytes is set. - * Otherwise, return null. - */ -const void *wb_pkt_iface64_rx_try_claim(wb_pkt_iface64_config_t *config, size_t *num_bytes); - -/*! - * Release the hold on a received packet. - */ -void wb_pkt_iface64_rx_release(wb_pkt_iface64_config_t *config); - -/*! - * Aquire the buffer for an outgoing packet. - */ -void *wb_pkt_iface64_tx_claim(wb_pkt_iface64_config_t *config); - -/*! - * Submit an outgoing packet from a filled the buffer. - */ -void wb_pkt_iface64_tx_submit(wb_pkt_iface64_config_t *config, const size_t num_bytes); - -#endif /* INCLUDED_WB_PKT_IFACE64_H */ diff --git a/firmware/x300/include/wb_uart.h b/firmware/x300/include/wb_uart.h deleted file mode 100644 index 46dd97441..000000000 --- a/firmware/x300/include/wb_uart.h +++ /dev/null @@ -1,23 +0,0 @@ - -// Copyright 2012 Ettus Research LLC - -#ifndef INCLUDED_WB_UART_H -#define INCLUDED_WB_UART_H - -#include <stdint.h> -#include <stdbool.h> -#include <stddef.h> - -//! Init the uart in question -void wb_uart_init(const uint32_t base, const size_t div); - -//! Put character blocking -void wb_uart_putc(const uint32_t base, const int ch); - -//! Put character not blocking - false for fail -bool wb_uart_try_putc(const uint32_t base, const int ch); - -//! Get character non blocking, -1 for none -int wb_uart_getc(const uint32_t base); - -#endif /* INCLUDED_WB_UART_H */ diff --git a/firmware/x300/include/wb_utils.h b/firmware/x300/include/wb_utils.h deleted file mode 100644 index 34be51b8f..000000000 --- a/firmware/x300/include/wb_utils.h +++ /dev/null @@ -1,24 +0,0 @@ - -// Copyright 2012 Ettus Research LLC - -#ifndef INCLUDED_WB_UTILS_H -#define INCLUDED_WB_UTILS_H - -#include <stdint.h> - -#define localparam static const int - -static inline void wb_poke32(const uint32_t addr, const uint32_t data) -{ - *((volatile uint32_t *)addr) = data; -} - -static inline uint32_t wb_peek32(const uint32_t addr) -{ - const uint32_t data = *((volatile uint32_t *)addr); - return data; -} - -#define SR_ADDR(base, offset) ((base) + (offset)*4) - -#endif /* INCLUDED_WB_UTILS_H */ diff --git a/firmware/x300/include/xge_mac.h b/firmware/x300/include/xge_mac.h deleted file mode 100644 index d288bdd8d..000000000 --- a/firmware/x300/include/xge_mac.h +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef INCLUDED_XGE_MAC_H -#define INCLUDED_XGE_MAC_H - -#define HAVE_OPENCORES_XGEMAC 1 - -#ifdef HAVE_OPENCORES_XGEMAC -#define XGE_TX_ENABLE (1 << 0) // Set to enable transmission. -// Interupt register bits. -#define XGE_RX_FRAG_ERR (1 << 8) -#define XGE_RX_CRC_ERR (1 << 7) -#define XGE_RX_PAUSE (1 << 6) -#define XGE_REMOTE_FAULT (1 << 5) -#define XGE_LOCAL_FAULT (1 << 4) -#define XGE_RX_UNDERFLOW (1 << 3) -#define XGE_RX_OVERFLOW (1 << 2) -#define XGE_TX_UNDERFLOW (1 << 1) -#define XGE_TX_OVERFLOW (1 << 0) -#endif - -// MDIO OP -#define XGE_MDIO_CLAUSE(n) ((n & 0x1) << 12) -#define CLAUSE45 1 -#define CLAUSE22 0 -#define XGE_MDIO_OP(n) ((n & 0x3) << 10) -#define MDIO_ADDRESS 0 -#define MDIO_WRITE 1 -#define MDIO_READ 3 -#define MDIO_C22_WRITE 2 -#define MDIO_C22_READ 1 -#define MDIO_READ_POST 2 -#define XGE_MDIO_ADDR(n) ((n & 0x1f) << 5) -#define XGE_MDIO_MMD(n) ((n & 0x1f) << 0) - -#endif - - diff --git a/firmware/x300/include/xge_phy.h b/firmware/x300/include/xge_phy.h deleted file mode 100644 index eeb94753e..000000000 --- a/firmware/x300/include/xge_phy.h +++ /dev/null @@ -1,78 +0,0 @@ - -#ifndef INCLUDED_XGE_PHY_H -#define INCLUDED_XGE_PHY_H - -#define HAVE_AEL2005_PHY 1 - -// -// IEEE 802.3ae Clause 45 managable device types (DEVAD) -// -#define XGE_MDIO_DEVICE_PMA 1 -#define XGE_MDIO_DEVICE_WIS 2 -#define XGE_MDIO_DEVICE_PCS 3 -#define XGE_MDIO_DEVICE_PHY_XS 4 -#define XGE_MDIO_DEVICE_DTE_XS 5 -#define XGE_MDIO_DEVICE_TC 6 - -// -// IEEE 802.3ae Clause 45 register set for MDIO -// -#define XGE_MDIO_CONTROL1 0 -#define XGE_MDIO_STATUS1 1 -#define XGE_MDIO_DEVID1 2 -#define XGE_MDIO_DEVID2 3 -#define XGE_MDIO_SPEED 4 -#define XGE_MDIO_DEVICES1 5 -#define XGE_MDIO_DEVICES2 6 -#define XGE_MDIO_CONTROL2 7 -#define XGE_MDIO_STATUS2 8 -#define XGE_MDIO_LANESTATUS 24 -#define XGE_MDIO_TESTCTRL 25 -#define XILINX_CORE_VERSION 65535 - -// -// QR2 AEL2005 Phy address on MDIO (PORT ADDR) -// -#define XGE_MDIO_ADDR_PHY_A 0 - -// -// QR2 MDIO address of FPGA XAUI (DTE XS) (PORT ADDR) -// -#define XGE_MDIO_ADDR_XAUI_A 2 - -// -// ID's for all XGE interfaces -#define XGE_A 0 - -// PHY module types -enum { - SFFP_TYPE_NONE, - SFFP_TYPE_SR, - SFFP_TYPE_LR, - SFFP_TYPE_LRM, - SFFP_TYPE_TWINAX, - SFFP_TYPE_TWINAX_LONG, - SFFP_TYPE_UNKNOWN, - SFFP_TYPE_1000BASE_SX, - SFFP_TYPE_1000BASE_LX, - SFFP_TYPE_1000BASE_T -}; - -// PHY module I2C device address -// (I2C device driver shifts "7bit" address left 1 bit) -// SFF-8431 specifys the I2C address as 8 bits with lSB as X -enum { - MODULE_DEV_ADDR = (0xa0 >> 1), - SFF_DEV_ADDR = (0xa2 >>1), -}; - -// SFPP module status -enum { - SFFP_NO_CHANGE, - SFFP_REMOVED, - SFFP_INSERTED -}; - -#endif - - |