diff options
| author | Martin Braun <martin.braun@ettus.com> | 2018-02-08 22:46:29 +0100 | 
|---|---|---|
| committer | Martin Braun <martin.braun@ettus.com> | 2018-02-08 14:39:39 -0800 | 
| commit | dfacf7d9963b58d77b0c173f10d3cd7623f970e3 (patch) | |
| tree | 3bc42de3e5c6a9b9e25d7dce9f7b214f33e23637 | |
| parent | 035c394738874065e7f28a3d7652b777297271f8 (diff) | |
| download | uhd-dfacf7d9963b58d77b0c173f10d3cd7623f970e3.tar.gz uhd-dfacf7d9963b58d77b0c173f10d3cd7623f970e3.tar.bz2 uhd-dfacf7d9963b58d77b0c173f10d3cd7623f970e3.zip  | |
docs: Add N310 FPGA reg map to manual
| -rw-r--r-- | host/docs/usrp_n3xx.dox | 151 | 
1 files changed, 151 insertions, 0 deletions
diff --git a/host/docs/usrp_n3xx.dox b/host/docs/usrp_n3xx.dox index 8d37d9fa3..a03b69c76 100644 --- a/host/docs/usrp_n3xx.dox +++ b/host/docs/usrp_n3xx.dox @@ -499,5 +499,156 @@ Storing data on the EEPROM is done by loading a uhd::eeprom_map_t object into  the property tree. On writing this property, the driver code will serialize  the map into a binary representation that can be stored on the EEPROM. +\subsection n3xx_mg_regmap FPGA Register Map + +The following tables describe how FPGA registers are mapped into the PS. +This is for reference only, most users will not even have to know about this table. + + +AXI Slave | Address Range         | UIO Label        | Description +----------|-----------------------|------------------|----------------------------------- +Slave 0   | 4000_0000 - 4000_3fff | -                | Ethernet DMA SFP0 +Slave 1   | 4000_4000 - 4000_4fff | misc-enet-regs0  | Ethernet registers SFP0 +Slave 2   | 4000_8000 - 4000_bfff | -                | Ethernet DMA SFP1 +Slave 3   | 4000_c000 - 4000_cfff | misc-enet-regs1  | Ethernet registers SFP1 +Slave 4   | 4001_0000 - 4001_3fff | mboard-regs      | Motherboard control +Slave 5   | 4001_4000 - 4001_41ff | dboard-regs0     | Daughterboard control, slot A +Slave 6   | 4001_8000 - 4001_bfff | dboard-regs1     | Daughterboard control, slot B + + +<table> +<caption id="multi_row">N310 Register Map</caption> +<tr><th>AXI Slave              <th>Module                       <th>Address               <th>Name            <th>Read/Write  <th>Description +<tr><td rowspan="1">Slave 0    <td rowspan="1">axi_eth_dma0     <td>4000_0000 - 4000_4fff <td>Ethernet DMA    <td>RW          <td>See Linux Driver +<tr><td rowspan="44">Slave 1   <td rowspan="7">n3xx_mgt_io_core <td>4000_4000             <td>PORT_INFO       <td>RO          <td>SFP port information +<tr>                                                            <td>[31:24]               <td>COMPAT_NUM      <td>RO          <td>- +<tr>                                                            <td>[23:18]               <td>6'h0	      <td>RO          <td>- +<tr>                                                            <td>[17]                  <td>activity	      <td>RO          <td>- +<tr>                                                            <td>[16]                  <td>link_up	      <td>RO          <td>- +<tr>                                                            <td>[15:8]                <td>mgt_protocol    <td>RO          <td>0 - None, 1 - 1G, 2 - XG, 3 - Aurora +<tr>                                                            <td>[7:0]                 <td>PORTNUM         <td>RO          <td>- +<tr>                           <td rowspan="8">n3xx_mgt_io_core <td>4000_4004             <td>MAC_CTRL_STATUS <td>RW          <td>Control 10gE and Aurora mac +<tr>                                                            <td>[0]                   <td>ctrl_tx_enable (PROTOCOL = "10GbE")<td>RW<td>- +<tr>                                                            <td>[0]                   <td>bist_checker_en (PROTOCOL = "Aurora")<td>RW<td>- +<tr>                                                            <td>[1]                   <td>bist_gen_en    <td>RW           <td>- +<tr>                                                            <td>[2]                   <td>bist_loopback_en<td>RW          <td>- +<tr>                                                            <td>[8:3]                 <td>bist_gen_rate   <td>RW          <td>- +<tr>                                                            <td>[9]                   <td>phy_areset      <td>RW          <td>- +<tr>                                                            <td>[10]                  <td>mac_clear       <td>RW          <td>- +<tr>                           <td>n3xx_mgt_io_core             <td>4000_4008             <td>PHY_CTRL_STATUS <td>RW          <td>Phy reset control +<tr>                           <td rowspan="3">n3xx_mgt_io_core <td>4000_400C             <td>MAC_LED_CTL     <td>RW          <td>Used by ethtool to indicate port +<tr>                                                            <td>[1]                   <td>identify_enable <td>RW          <td>- +<tr>                                                            <td>[0]                   <td>identify_value  <td>RW          <td>- +<tr>                           <td rowspan="4">mdio_master      <td>4000_4010             <td>MDIO_DATA       <td>RW          <td>- +<tr>                                                            <td>4000_4014             <td>MDIO_ADDR       <td>RW          <td>- +<tr>                                                            <td>4000_4018             <td>MDIO_OP         <td>RW          <td>- +<tr>                                                            <td>4000_401C             <td>MDIO_CTRL_STATUS<td>RW          <td>- +<tr>                           <td rowspan="4">n3xx_mgt_io_core <td>4000_4020             <td>AURORA_OVERUNS  <td>RO          <td>- +<tr>                                                            <td>4000_4024             <td>AURORA_CHECKSUM_ERRORS<td>RO    <td>- +<tr>                                                            <td>4000_4028             <td>AURORA_BIST_CHECKER_SAMPS<td>RO <td>- +<tr>                                                            <td>4000_402C             <td>AURORA_BIST_CHECKER_ERRORS<td>RO<td>- +<tr>                           <td rowspan="4">eth_switch       <td>4000_5000             <td>MAC_LSB         <td>RW          <td>Device MAC LSB +<tr>                                                            <td>4000_5004             <td>MAC_MSB         <td>RW          <td>Device MAC MSB +<tr>                                                            <td>4000_6000             <td>IP              <td>RW          <td>Device IP +<tr>                                                            <td>4000_6004             <td>PORT1, PORT0    <td>RW          <td>Device UDP port +<tr>                           <td rowspan="2">eth_dispatch     <td>4000_6008             <td>[1] ndest, [0] bcast<td>RW      <td>Enable Crossover +<tr>                                                            <td>4000_600c             <td>[1] my_icmp_type, [0] my_icmp_code<td> +<tr>                           <td rowspan="5">eth_switch       <td>4000_6010             <td>BRIDGE_MAC_LSB  <td>            <td>Bridge SFP ports in ARM +<tr>                                                            <td>4000_6014             <td>BRIDGE_MAC_MSB  <td>            <td>- +<tr>                                                            <td>4000_6018             <td>BRIDGE_IP       <td>            <td>- +<tr>                                                            <td>4000_601c             <td>BRIDGE_PORT1, BRIDGE_PORT0<td>  <td>- +<tr>                                                            <td>4000_6020             <td>BRIDGE_EN       <td>            <td>- +<tr>                           <td rowspan="6">chdr_eth_framer  <td>4000_6108 onwards     <td>LOCAL_DST_IP    <td>W           <td>Destination IP, MAC, UDP for Outgoing Packet for 256 SIDs +<tr>                                                            <td>4000_6208 onwards     <td>LOCAL_DST_UDP_MAC_MSB<td>W      <td>Destination MAC for outgoing packets (MSB) +<tr>                                                            <td>4000_6308 onwards     <td>LOCAL_DST_MAC_LSB<td>W          <td>Destination MAC for outgoing packets (LSB) +<tr>                                                            <td>4000_7000 onwards     <td>REMOTE_DST_IP   <td>W           <td>Destination IP, MAC, UDP for Outgoing Packet for 16 local addrs +<tr>                                                            <td>4000_7400 onwards     <td>REMOTE_DST_UDP_MAC_HI<td>W      <td>Destination MAC (MSB) +<tr>                                                            <td>4000_7800 onwards     <td>REMOTE_DST_MAC_LO<td>W          <td>Destination MAC (LSB) + +<tr><td rowspan="1">Slave 2    <td>axi_eth_dma1                 <td>4000_8000             <td>-               <td>            <td>Same as Slave 0, different base address + +<tr><td rowspan="3">Slave 3    <td>n3xx_mgt_io_core             <td>4000_c001 - 4000_cfff <td>-               <td>-           <td>Same as Slave 1, different base address +<tr>                           <td>eth_dispatch                 <td>4000_d000 - 4000_dfff <td>-               <td>-           <td>Same as Slave 1, different base address +<tr>                           <td>eth_switch                   <td>4000_e000 - 4000_efff <td>-               <td>-           <td>Same as Slave 1, different base address + +<tr><td rowspan="69">Slave 4   <td rowspan="22">n310_core       <td>4001_0000             <td>COMPAT_NUM      <td>R           <td>FPGA Compat Number +<tr>                                                            <td>[31:16]               <td>Major           <td>RO          <td>- +<tr>                                                            <td>[15:0]                <td>Minor           <td>RO          <td>- +<tr>                                                            <td>4001_0004             <td>DATESTAMP       <td>RO          <td>- +<tr>                                                            <td>4001_0008             <td>GIT_HASH        <td>RO          <td>- +<tr>                                                            <td>4001_000C             <td>SCRATCH         <td>RO          <td>- +<tr>                                                            <td>4001_0010             <td>NUM_CE          <td>RO          <td>Number of Computation Engines (RFNoC Blocks) +<tr>                                                            <td>4001_0014             <td>NUM_IO_CE       <td>RO          <td>Number of fixed IO CEs - Radios + DMA Fifo +<tr>                                                            <td>4001_0018             <td>CLOCK_CTRL      <td>            <td> +<tr>                                                            <td>[0]                   <td>pps select (internal 10 MHz)<td>RW<td>One-hot encoded pps_select to use the external PPS input. +<tr>                                                            <td>[1]                   <td>pps select (internal 25 MHz)<td>RW<td>One-hot encoded pps_select to use the internally generated PPS with a 10 MHz ref_clk. +<tr>                                                            <td>[2]                   <td>pps select (external)<td>RW     <td>One-hot encoded pps_select to use the internally generated PPS with a 25 MHz ref_clk. +<tr>                                                            <td>[3]                   <td>pps select (GPSDO)<td>RW        <td>One-hot encoded pps_select to use the PPS from the GPSDO input to the FPGA. +<tr>                                                            <td>[4]                   <td>pps output enable<td>RW         <td> +<tr>                                                            <td>[8]                   <td>ref clk mmcm reset<td>WO        <td>- +<tr>                                                            <td>[9]                   <td>ref clk mmcm locked<td>RO       <td>- +<tr>                                                            <td>[12]                  <td>meas clk mmcm reset<td>WO       <td>- +<tr>                                                            <td>[13]                  <td>meas clk mmcm locked<td>RO      <td>- +<tr>                                                            <td>4001_001C             <td>XADC_READBACK   <td>RO          <td>- +<tr>                                                            <td>[11:0]                <td>FPGA temperature<td>RO +<tr>                                                            <td>4001_0020             <td>BUS_CLK_RATE    <td>RO          <td>- +<tr>                                                            <td>4001_0024             <td>BUS_CLK_COUNT   <td>RO          <td>- +<tr>                           <td rowspan="5">axi_crossbar     <td>4001_1010             <td>XBAR_VERSION    <td>RO          <td>See crossbar kernel driver +<tr>                                                            <td>4001_1014             <td>XBAR_NUM_PORTS  <td>RO          <td>See crossbar kernel driver +<tr>                                                            <td>4001_1018             <td>LOCAL_ADDR      <td>RW          <td>See crossbar kernel driver +<tr>                                                            <td>4001_1020             <td>remote_offset   <td>WO          <td>XBAR settings reg +<tr>                                                            <td>4001_1420             <td>local_offset    <td>WO          <td>XBAR settings reg +<tr>                           <td rowspan="7">n3xx_mgt_io_core (NPIO0)  <td>4001_0200    <td>PORT_INFO       <td>RO          <td> +<tr>                                                            <td>4001_0204             <td>MAC_CTRL_STATUS <td>RW          <td> +<tr>                                                            <td>4001_0208             <td>PHY_CTRL_STATUS <td>RW          <td> +<tr>                                                            <td>4001_0220             <td>AURORA_OVERUNS  <td>RO          <td> +<tr>                                                            <td>4001_0224             <td>AURORA_CHECKSUM_ERRORS<td>RO    <td> +<tr>                                                            <td>4001_0228             <td>AURORA_BIST_CHECKER_SAMPS<td>RO <td> +<tr>                                                            <td>4001_022c             <td>AURORA_BIST_CHECKER_ERRORS<td>RO<td> +<tr>                           <td rowspan="7">n3xx_mgt_io_core (NPIO1)     <td>4001_0240 <td>PORT_INFO       <td>RO          <td> +<tr>                                                            <td>4001_0244             <td>MAC_CTRL_STATUS <td>RW          <td> +<tr>                                                            <td>4001_0248             <td>PHY_CTRL_STATUS <td>RW          <td> +<tr>                                                            <td>4001_0260             <td>AURORA_OVERUNS  <td>RO          <td> +<tr>                                                            <td>4001_0264             <td>AURORA_CHECKSUM_ERRORS<td>RO<td> +<tr>                                                            <td>4001_0268             <td>AURORA_BIST_CHECKER_SAMPS<td>RO<td> +<tr>                                                            <td>4001_026c             <td>AURORA_BIST_CHECKER_ERRORS<td>RO<td> +<tr>                           <td rowspan="7">n3xx_mgt_io_core (QSFP0)     <td>4001_0280 <td>PORT_INFO<td>RO<td> +<tr>                                                            <td>4001_0284             <td>MAC_CTRL_STATUS<td>RW<td> +<tr>                                                            <td>4001_0288             <td>PHY_CTRL_STATUS<td>RW<td> +<tr>                                                            <td>4001_02a0             <td>AURORA_OVERUNS<td>RO<td> +<tr>                                                            <td>4001_02a4             <td>AURORA_CHECKSUM_ERRORS<td>RO<td> +<tr>                                                            <td>4001_02a8             <td>AURORA_BIST_CHECKER_SAMPS<td>RO<td> +<tr>                                                            <td>4001_02ac             <td>AURORA_BIST_CHECKER_ERRORS<td>RO<td> +<tr>                           <td rowspan="7">n3xx_mgt_io_core (QSFP1)     <td>4001_02c0 <td>PORT_INFO<td>RO<td> +<tr>                                                            <td>4001_02c4             <td>MAC_CTRL_STATUS<td>RW<td> +<tr>                                                            <td>4001_02c8             <td>PHY_CTRL_STATUS<td>RW<td> +<tr>                                                            <td>4001_02e0             <td>AURORA_OVERUNS<td>RO<td> +<tr>                                                            <td>4001_02e4             <td>AURORA_CHECKSUM_ERRORS<td>RO<td> +<tr>                                                            <td>4001_02e8             <td>AURORA_BIST_CHECKER_SAMPS<td>RO<td> +<tr>                                                            <td>4001_02ec             <td>AURORA_BIST_CHECKER_ERRORS<td>RO<td> +<tr>                           <td rowspan="7">n3xx_mgt_io_core (QSFP2)     <td>4001_0300 <td>PORT_INFO<td>RO<td> +<tr>                                                            <td>4001_0304             <td>MAC_CTRL_STATUS<td>RW<td> +<tr>                                                            <td>4001_0308             <td>PHY_CTRL_STATUS<td>RW<td> +<tr>                                                            <td>4001_0320             <td>AURORA_OVERUNS<td>RO<td> +<tr>                                                            <td>4001_0324             <td>AURORA_CHECKSUM_ERRORS<td>RO<td> +<tr>                                                            <td>4001_0328             <td>AURORA_BIST_CHECKER_SAMPS<td>RO<td> +<tr>                                                            <td>4001_032c             <td>AURORA_BIST_CHECKER_ERRORS<td>RO<td> +<tr>                           <td rowspan="7">n3xx_mgt_io_core (QSFP3)   <td>4001_0340   <td>PORT_INFO<td>RO<td> +<tr>                                                            <td>4001_0344             <td>MAC_CTRL_STATUS<td>RW<td> +<tr>                                                            <td>4001_0348             <td>PHY_CTRL_STATUS<td>RW<td> +<tr>                                                            <td>4001_0360             <td>AURORA_OVERUNS<td>RO<td> +<tr>                                                            <td>4001_0364             <td>AURORA_CHECKSUM_ERRORS<td>RO<td> +<tr>                                                            <td>4001_0368             <td>AURORA_BIST_CHECKER_SAMPS<td>RO<td> +<tr>                                                            <td>4001_036C             <td>AURORA_BIST_CHECKER_ERRORS<td>RO<td> + +<tr><td rowspan="6">Slave 5                                     <td>4001_4000<td>4001_41FF<td>Clocking<td>see Clocking regmap<td> +<tr>                                                            <td>4001_4200<td>4001_43FF<td>Sync<td>see Sync regmap<td> +<tr>                                                            <td>4001_4400<td>4001_45FF<td>open<td>open<td>open<td> +<tr>                                                            <td>4001_4600<td>4001_47FF<td>Daughterboard <td>see Daughterboard regmap (EISCAT)<td> +<tr>                                                            <td>4001_6000<td>4001_6FFF<td>JESD Core 0<td>see JESD regmap (EISCAT)<td> +<tr>                                                            <td>4001_7000<td>4001_7FFF<td>JESD Core 1<td>see JESD regmap (EISCAT)<td> +<tr><td rowspan="1">Slave 6                                     <td>4001_8000 - 4001_bfff <td>see above <td>-<td>same as Slave 5<td> +</table> +  */  // vim:ft=doxygen:  | 
