[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r6554 - gnuradio/branches/developers/matt/u2f/firmware
From: |
eb |
Subject: |
[Commit-gnuradio] r6554 - gnuradio/branches/developers/matt/u2f/firmware |
Date: |
Thu, 27 Sep 2007 12:18:13 -0600 (MDT) |
Author: eb
Date: 2007-09-27 12:18:12 -0600 (Thu, 27 Sep 2007)
New Revision: 6554
Modified:
gnuradio/branches/developers/matt/u2f/firmware/buffer_pool.c
gnuradio/branches/developers/matt/u2f/firmware/buffer_pool.h
gnuradio/branches/developers/matt/u2f/firmware/eth_test.c
gnuradio/branches/developers/matt/u2f/firmware/memory_map.h
gnuradio/branches/developers/matt/u2f/firmware/test1_main.c
gnuradio/branches/developers/matt/u2f/firmware/u2_init.c
Log:
refactored some firmware; currently passes tests under simulation
Modified: gnuradio/branches/developers/matt/u2f/firmware/buffer_pool.c
===================================================================
--- gnuradio/branches/developers/matt/u2f/firmware/buffer_pool.c
2007-09-27 15:10:50 UTC (rev 6553)
+++ gnuradio/branches/developers/matt/u2f/firmware/buffer_pool.c
2007-09-27 18:18:12 UTC (rev 6554)
@@ -2,3 +2,11 @@
#include "buffer_pool.h"
#include "sim_io.h"
+void
+bp_init(void)
+{
+ bp_disable_port(PORT_SERDES);
+ bp_disable_port(PORT_DSP);
+ bp_disable_port(PORT_ETH);
+ bp_disable_port(PORT_RAM);
+}
Modified: gnuradio/branches/developers/matt/u2f/firmware/buffer_pool.h
===================================================================
--- gnuradio/branches/developers/matt/u2f/firmware/buffer_pool.h
2007-09-27 15:10:50 UTC (rev 6553)
+++ gnuradio/branches/developers/matt/u2f/firmware/buffer_pool.h
2007-09-27 18:18:12 UTC (rev 6554)
@@ -5,28 +5,70 @@
// Buffer Pool Management
+void bp_init(void);
+
+#if 1
+
static inline void
-clear_buf(int bufnum) {
- volatile int *addr = (int *)BUFFER_POOL_BASE;
+bp_clear_buf(int bufnum)
+{
+ buffer_pool_ctrl->ctrl = BPC_BUFFER(bufnum) | BPC_PORT_NIL | BPC_CLR;
+}
+
+static inline void
+bp_disable_port(int portnum)
+{
+ // disable buffer connections to this port
+ buffer_pool_ctrl->ctrl = BPC_BUFFER_NIL | BPC_PORT(portnum);
+}
+
+static inline void
+bp_receive_to_buf(int bufnum, int port, int step, int fl, int ll)
+{
+ buffer_pool_ctrl->ctrl = (BPC_READ
+ | BPC_BUFFER(bufnum)
+ | BPC_PORT(port)
+ | BPC_STEP(step)
+ | BPC_FIRST_LINE(fl)
+ | BPC_LAST_LINE(ll));
+}
+
+static inline void
+bp_send_from_buf(int bufnum, int port, int step, int fl, int ll)
+{
+ buffer_pool_ctrl->ctrl = (BPC_WRITE
+ | BPC_BUFFER(bufnum)
+ | BPC_PORT(port)
+ | BPC_STEP(step)
+ | BPC_FIRST_LINE(fl)
+ | BPC_LAST_LINE(ll));
+}
+
+#else
+
+static inline void
+bp_clear_buf(int bufnum) {
+ volatile int *addr = (int *)BUFFER_POOL_RAM_BASE;
*addr = (bufnum << 28) | (4<<25) | (1<<24); // disable port connections to
this buffer, clear state
}
static inline void
-disable_port(int portnum) {
- volatile int *addr = (int *)(BUFFER_POOL_BASE);
+bp_disable_port(int portnum) {
+ volatile int *addr = (int *)(BUFFER_POOL_RAM_BASE);
*addr = (8 << 28) | (portnum<<25); // disable buffer connections to this port
}
static inline void
-receive_to_buf(int bufnum, int port, int step, int fl, int ll) {
- volatile int *addr = (int *)(BUFFER_POOL_BASE);
+bp_receive_to_buf(int bufnum, int port, int step, int fl, int ll) {
+ volatile int *addr = (int *)(BUFFER_POOL_RAM_BASE);
*addr = (bufnum<<28) | (port << 25) | (1<<23) | (step<<18) | (ll<<9) | fl;
}
static inline void
-send_from_buf(int bufnum, int port, int step, int fl, int ll) {
- volatile int *addr = (int *)(BUFFER_POOL_BASE);
+bp_send_from_buf(int bufnum, int port, int step, int fl, int ll) {
+ volatile int *addr = (int *)(BUFFER_POOL_RAM_BASE);
*addr = (bufnum<<28) | (port << 25) | (1<<22) | (step<<18) | (ll<<9) | fl;
}
+#endif
#endif
Modified: gnuradio/branches/developers/matt/u2f/firmware/eth_test.c
===================================================================
--- gnuradio/branches/developers/matt/u2f/firmware/eth_test.c 2007-09-27
15:10:50 UTC (rev 6553)
+++ gnuradio/branches/developers/matt/u2f/firmware/eth_test.c 2007-09-27
18:18:12 UTC (rev 6554)
@@ -29,9 +29,14 @@
sim_puts("Start Program\n");
// Write data to be sent into the first buffer
- int *buffer0 = (int *)(BUFFER_BASE + BUFFER_0);
- int *buffer1 = (int *)(BUFFER_BASE + BUFFER_1);
+ //int *buffer0 = (int *)(BUFFER_BASE + BUFFER_0);
+ //int *buffer1 = (int *)(BUFFER_BASE + BUFFER_1);
+ volatile unsigned int *buffer0 = buffer_ram(0);
+ volatile unsigned int *buffer1 = buffer_ram(1);
+ sim_puts("Buffer0 ="); sim_puthex_nl((int) buffer0);
+ sim_puts("Buffer1 ="); sim_puthex_nl((int) buffer1);
+
// Buffer status info
volatile unsigned int *status = (unsigned int *) 0xB020;
@@ -41,49 +46,49 @@
sim_puts("Filled in RAM\n");
// Set up receive buffer
- receive_to_buf(1, 2, 1, 0, 511); // Fill from ethernet
+ bp_receive_to_buf(1, 2, 1, 0, 511); // Fill from ethernet
sim_puts("Set up RX buffer\n");
// Set up send buffer
- send_from_buf(0, 2, 1, 0, 20);
+ bp_send_from_buf(0, 2, 1, 0, 20);
sim_puts("Set up TX Buffer\n");
while(*status != 3) {}
- clear_buf(0);
- clear_buf(1);
+ bp_clear_buf(0);
+ bp_clear_buf(1);
sim_puts("Both are done\n");
// Send a bunch, let them pile up in FIFO
- send_from_buf(0, 2, 1, 21, 80); while(*status == 0) {}
- clear_buf(0);
+ bp_send_from_buf(0, 2, 1, 21, 80); while(*status == 0) {}
+ bp_clear_buf(0);
sim_puts("First add'l TX done\n");
- send_from_buf(0, 2, 1, 81, 288); while(*status == 0) {}
- clear_buf(0);
- send_from_buf(0, 2, 1, 289, 292); while(*status == 0) {}
- clear_buf(0);
- send_from_buf(0, 2, 1, 293, 326); while(*status == 0) {}
- clear_buf(0);
- send_from_buf(0, 2, 1, 327, 399); while(*status == 0) {}
- clear_buf(0);
- send_from_buf(0, 2, 1, 400, 511); while(*status == 0) {}
- clear_buf(0);
+ bp_send_from_buf(0, 2, 1, 81, 288); while(*status == 0) {}
+ bp_clear_buf(0);
+ bp_send_from_buf(0, 2, 1, 289, 292); while(*status == 0) {}
+ bp_clear_buf(0);
+ bp_send_from_buf(0, 2, 1, 293, 326); while(*status == 0) {}
+ bp_clear_buf(0);
+ bp_send_from_buf(0, 2, 1, 327, 399); while(*status == 0) {}
+ bp_clear_buf(0);
+ bp_send_from_buf(0, 2, 1, 400, 511); while(*status == 0) {}
+ bp_clear_buf(0);
sim_puts("All add'l TX done\n");
- receive_to_buf(1, 2, 1, 21, 80); while(*status == 0) {}
- clear_buf(1);
+ bp_receive_to_buf(1, 2, 1, 21, 80); while(*status == 0) {}
+ bp_clear_buf(1);
sim_puts("First add'l RX done\n");
- receive_to_buf(1, 2, 1, 81, 288); while(*status == 0) {}
- clear_buf(1);
- receive_to_buf(1, 2, 1, 289, 292); while(*status == 0) {}
- clear_buf(1);
- receive_to_buf(1, 2, 1, 293, 326); while(*status == 0) {}
- clear_buf(1);
- receive_to_buf(1, 2, 1, 327, 399); while(*status == 0) {}
- clear_buf(1);
- receive_to_buf(1, 2, 1, 400, 511); while(*status == 0) {}
- clear_buf(1);
+ bp_receive_to_buf(1, 2, 1, 81, 288); while(*status == 0) {}
+ bp_clear_buf(1);
+ bp_receive_to_buf(1, 2, 1, 289, 292); while(*status == 0) {}
+ bp_clear_buf(1);
+ bp_receive_to_buf(1, 2, 1, 293, 326); while(*status == 0) {}
+ bp_clear_buf(1);
+ bp_receive_to_buf(1, 2, 1, 327, 399); while(*status == 0) {}
+ bp_clear_buf(1);
+ bp_receive_to_buf(1, 2, 1, 400, 511); while(*status == 0) {}
+ bp_clear_buf(1);
sim_puts("All add'l RX done\n");
for(i=0;i<512;i++)
Modified: gnuradio/branches/developers/matt/u2f/firmware/memory_map.h
===================================================================
--- gnuradio/branches/developers/matt/u2f/firmware/memory_map.h 2007-09-27
15:10:50 UTC (rev 6553)
+++ gnuradio/branches/developers/matt/u2f/firmware/memory_map.h 2007-09-27
18:18:12 UTC (rev 6554)
@@ -1,29 +1,36 @@
#ifndef INCLUDED_MEMORY_MAP_H
#define INCLUDED_MEMORY_MAP_H
-/**********************************************************
- * Memory map for embedded wishbone bus
- **********************************************************
- */
+////////////////////////////////////////////////////////////////
+//
+// Memory map for embedded wishbone bus
+//
+////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////
// Main RAM, Slave 0
+
#define RAM_BASE 0x0000
-/////////////////////////////////////////////////////
-// Buffer RAM, Slave 1
-#define BUFFER_BASE 0x4000
-#define BUFFER_SIZE 0x0200 // Buffer size in 32-bit lines
-#define BUFFER_0 0x0000
-#define BUFFER_1 0x0800
-#define BUFFER_2 0x1000
-#define BUFFER_3 0x1800
-#define BUFFER_4 0x2000
-#define BUFFER_5 0x2800
-#define BUFFER_6 0x3000
-#define BUFFER_7 0x3800
+////////////////////////////////////////////////////////////////
+// Buffer Pool RAM, Slave 1
+//
+// The buffers themselves are located in Slave 1, Buffer Pool RAM.
+// The status registers are in Slave 5, Buffer Pool Status.
+// The control register is in Slave 7, Settings Bus.
+#define BUFFER_POOL_RAM_BASE 0x4000
+#define NBUFFERS 8
+#define BUFFER_POOL_BUFFER_SIZE 0x0200 // Buffer size in 32-bit lines
+
+#define buffer_pool_ram \
+ ((volatile unsigned int *) BUFFER_POOL_RAM_BASE)
+
+#define buffer_ram(n) (&buffer_pool_ram[(n) * BUFFER_POOL_BUFFER_SIZE])
+
+
/////////////////////////////////////////////////////
// SPI Core, Slave 2. See core docs for more info
#define SPI_BASE 0x8000 // Base address (16-bit)
@@ -33,27 +40,27 @@
#define SPI_TXRX1 0x004
#define SPI_TXRX2 0x008
#define SPI_TXRX3 0x00c
-#define SPI_CTRL 0x010
-#define SPI_DIV 0x014
-#define SPI_SS 0x018
+#define SPI_CTRL 0x010
+#define SPI_DIV 0x014
+#define SPI_SS 0x018
// Masks for controlling different peripherals
-#define SPI_SS_AD9510 1
-#define SPI_SS_AD9777 2
-#define SPI_SS_RX_DAC 4
-#define SPI_SS_RX_ADC 8
-#define SPI_SS_RX_DB 16
-#define SPI_SS_TX_DAC 32
-#define SPI_SS_TX_ADC 64
+#define SPI_SS_AD9510 1
+#define SPI_SS_AD9777 2
+#define SPI_SS_RX_DAC 4
+#define SPI_SS_RX_ADC 8
+#define SPI_SS_RX_DB 16
+#define SPI_SS_TX_DAC 32
+#define SPI_SS_TX_ADC 64
#define SPI_SS_TX_DB 128
// Masks for different parts of CTRL reg
-#define SPI_CTRL_ASS 1<<13
-#define SPI_CTRL_IE 1<<12
-#define SPI_CTRL_LSB 1<<11
-#define SPI_CTRL_TXNEG 1<<10
-#define SPI_CTRL_RXNEG 1<<9
-#define SPI_CTRL_GO_BSY 1<<8
+#define SPI_CTRL_ASS (1<<13)
+#define SPI_CTRL_IE (1<<12)
+#define SPI_CTRL_LSB (1<<11)
+#define SPI_CTRL_TXNEG (1<<10)
+#define SPI_CTRL_RXNEG (1<< 9)
+#define SPI_CTRL_GO_BSY (1<< 8)
#define SPI_CTRL_CHAR_LEN 0x7F
#define SPI_TXONLY 0
@@ -102,7 +109,7 @@
////////////////////////////////////////////////
// GPIO, Slave 4
-
+//
// These go to the daughterboard i/o pins
#define GPIO_BASE 0xA000
@@ -117,8 +124,39 @@
#define gpio_base ((gpio_regs_t *) GPIO_BASE)
///////////////////////////////////////////////////
-// Buffer Pool status, Slave 5
+// Buffer Pool Status, Slave 5
+//
+// The buffers themselves are located in Slave 1, Buffer Pool RAM.
+// The status registers are in Slave 5, Buffer Pool Status.
+// The control register is in Slave 7, Settings Bus.
+#define BUFFER_POOL_STATUS_BASE 0xB000
+
+typedef struct {
+ volatile unsigned last_line[8]; // last line xfer'd in buffer
+ volatile unsigned status; // error and done flags
+} buffer_pool_status_t;
+
+#define buffer_pool_status ((buffer_pool_status_t *) BUFFER_POOL_STATUS_BASE)
+
+#define BPS_DONE_0 0x0001 // buffer 0 xfer is done
+#define BPS_DONE_1 0x0002 // buffer 1 xfer is done
+#define BPS_DONE_2 0x0004 // buffer 2 xfer is done
+#define BPS_DONE_3 0x0008 // buffer 3 xfer is done
+#define BPS_DONE_4 0x0010 // buffer 4 xfer is done
+#define BPS_DONE_5 0x0020 // buffer 5 xfer is done
+#define BPS_DONE_6 0x0040 // buffer 6 xfer is done
+#define BPS_DONE_7 0x0080 // buffer 7 xfer is done
+#define BPS_ERROR_0 0x0100 // buffer 0 xfer had error
+#define BPS_ERROR_1 0x0200 // buffer 1 xfer had error
+#define BPS_ERROR_2 0x0400 // buffer 2 xfer had error
+#define BPS_ERROR_3 0x0800 // buffer 3 xfer had error
+#define BPS_ERROR_4 0x1000 // buffer 4 xfer had error
+#define BPS_ERROR_5 0x2000 // buffer 5 xfer had error
+#define BPS_ERROR_6 0x4000 // buffer 6 xfer had error
+#define BPS_ERROR_7 0x8000 // buffer 7 xfer had error
+
+
///////////////////////////////////////////////////
// Ethernet Core, Slave 6
@@ -135,22 +173,63 @@
// 1KB of address space (== 256 32-bit write-only regs)
-// Simple outputs
-#define OUTPUTS_BASE 0xD000
+#define MISC_OUTPUT_BASE 0xD000
+#define BUFFER_POOL_CTRL_BASE 0xD100
+#define DSP_TX_BASE 0xD200
+#define DSP_RX_BASE 0xD280
-#define BUFFER_POOL_BASE 0xD100
-#define DSP_TX_BASE 0xD200
-#define DSP_RX_BASE 0xD280
+#define LAST_SETTING_REG 0xD3FC // last valid setting register
-#define LAST_SETTING 0xD3FC // last valid setting register
+// --- buffer pool control regs ---
+typedef struct {
+ volatile unsigned int ctrl;
+} buffer_pool_ctrl_t;
-#define SERDES_ENABLE 8
-#define SERDES_PRBSEN 4
-#define SERDES_LOOPEN 2
-#define SERDES_RXEN 1
+// buffer pool ports
+#define PORT_SERDES 0 // serial/deserializer
+#define PORT_DSP 1 // DSP tx or rx pipeline
+#define PORT_ETH 2 // ethernet tx or rx
+#define PORT_RAM 3 // RAM tx or rx
+// the buffer pool ctrl register fields
+
+#define BPC_BUFFER(n) (((n) & 0xf) << 28)
+#define BPC_BUFFER_MASK PBC_BUFFER(~0)
+#define BPC_BUFFER_0 BPC_BUFFER(0)
+#define BPC_BUFFER_1 BPC_BUFFER(1)
+#define BPC_BUFFER_2 BPC_BUFFER(2)
+#define BPC_BUFFER_3 BPC_BUFFER(3)
+#define BPC_BUFFER_4 BPC_BUFFER(4)
+#define BPC_BUFFER_5 BPC_BUFFER(5)
+#define BPC_BUFFER_6 BPC_BUFFER(6)
+#define BPC_BUFFER_7 BPC_BUFFER(7)
+#define BPC_BUFFER_NIL BPC_BUFFER(0x8) // disable
+
+#define BPC_PORT(n) (((n) & 0x7) << 25)
+#define BPC_PORT_MASK PBC_PORT(~0)
+#define BPC_PORT_SERDES BPC_PORT(PORT_SERDES)
+#define BPC_PORT_DSP BPC_PORT(PORT_DSP)
+#define BPC_PORT_ETH BPC_PORT(PORT_ETH)
+#define BPC_PORT_RAM BPC_PORT(PORT_RAM)
+#define BPC_PORT_NIL BPC_PORT(0x4) // disable
+
+#define BPC_CLR (1 << 24) // mutually excl commands
+#define BPC_READ (1 << 23)
+#define BPC_WRITE (1 << 22)
+
+#define BPC_STEP(step) (((step) & 0xf) << 18)
+#define BPC_STEP_MASK BPC_STEP(~0)
+#define BPC_LAST_LINE(line) (((line) & 0x1ff) << 9)
+#define BPC_LAST_LINE_MASK BPC_LAST_LINE(~0)
+#define BPC_FIRST_LINE(line) (((line) & 0x1ff) << 0)
+#define PBC_FIRST_LINE_MASK BPC_FIRST_LINE(~0)
+
+#define buffer_pool_ctrl ((buffer_pool_ctrl_t *) BUFFER_POOL_CTRL_BASE)
+
+// --- misc outputs ---
+
typedef struct {
volatile unsigned long clk_ctrl;
volatile unsigned long serdes_ctrl;
@@ -158,8 +237,15 @@
volatile unsigned long leds;
} output_regs_t;
-#define output_regs ((output_regs_t *) OUTPUTS_BASE)
+#define SERDES_ENABLE 8
+#define SERDES_PRBSEN 4
+#define SERDES_LOOPEN 2
+#define SERDES_RXEN 1
+#define output_regs ((output_regs_t *) MISC_OUTPUT_BASE)
+
+// --- dsp tx regs ---
+
typedef struct {
volatile int freq;
volatile short scale_i;
@@ -170,6 +256,8 @@
#define dsp_tx_regs ((dsp_tx_regs_t *) DSP_TX_BASE)
+// --- dsp rx regs ---
+
typedef struct {
volatile int freq;
volatile short scale_i;
@@ -207,7 +295,7 @@
typedef struct {
- volatile int edge_enable;
+ volatile int edge_enable; // mask: 1 -> edge triggered, 0 -> level
volatile int polarity; // mask: 1 -> rising edge
volatile int mask; // mask: 1 -> disabled
volatile int pending; // mask: 1 -> pending; write 1's to
clear pending ints
@@ -226,4 +314,5 @@
#define timer_regs ((timer_regs_t *) TIMER_BASE)
+
#endif
Modified: gnuradio/branches/developers/matt/u2f/firmware/test1_main.c
===================================================================
--- gnuradio/branches/developers/matt/u2f/firmware/test1_main.c 2007-09-27
15:10:50 UTC (rev 6553)
+++ gnuradio/branches/developers/matt/u2f/firmware/test1_main.c 2007-09-27
18:18:12 UTC (rev 6554)
@@ -64,7 +64,7 @@
// Set up DSP RX
buffer_state[0] = FILLING;
serdes_tx_idle = 1;
- receive_to_buf(0, 1, 1, 10, 509); // DSP_RX to buffer 0, use 500 lines
+ bp_receive_to_buf(0, 1, 1, 10, 509); // DSP_RX to buffer 0, use 500 lines
dsp_rx_regs->run_rx = 1; // Start DSP_RX
sim_puts("Done DSP RX setup\n");
@@ -72,7 +72,7 @@
// Set up serdes RX
buffer_state[2] = FILLING;
dsp_tx_idle = 1;
- receive_to_buf(2, PORT, 1, 5, 504);
+ bp_receive_to_buf(2, PORT, 1, 5, 504);
volatile unsigned int *status = (unsigned int *) 0xB020;
@@ -101,18 +101,18 @@
unsigned int localstatus = *status;
if(localstatus & 1) {
- clear_buf(0);
+ bp_clear_buf(0);
if(buffer_state[0] == FILLING) {
buffer_state[0] = FULL;
if(buffer_state[1] == EMPTY) {
- receive_to_buf(1, 1, 1, 10, 509); // DSP_RX to buffer 1, use 500 lines
+ bp_receive_to_buf(1, 1, 1, 10, 509); // DSP_RX to buffer 1, use 500
lines
buffer_state[1] = FILLING;
}
else
dsp_rx_idle = 1;
if(serdes_tx_idle) {
serdes_tx_idle = 0;
- send_from_buf(0, port, 1, 10, 509); // SERDES_TX from buffer 0
+ bp_send_from_buf(0, port, 1, 10, 509); // SERDES_TX from buffer 0
buffer_state[0] = EMPTYING;
}
}
@@ -120,11 +120,11 @@
buffer_state[0] = EMPTY;
if(dsp_rx_idle) {
dsp_rx_idle = 0;
- receive_to_buf(0, 1, 1, 10, 509); // DSP_RX to buffer 0, use 500 lines
+ bp_receive_to_buf(0, 1, 1, 10, 509); // DSP_RX to buffer 0, use 500
lines
buffer_state[0] = FILLING;
}
if(buffer_state[1] == FULL) {
- send_from_buf(1, port, 1, 10, 509); // SERDES_TX from buffer 1
+ bp_send_from_buf(1, port, 1, 10, 509); // SERDES_TX from buffer 1
buffer_state[1] = EMPTYING;
}
else
@@ -133,18 +133,18 @@
sim_puts("Int Proc'ed 0\n");
}
if(localstatus & 2) {
- clear_buf(1);
+ bp_clear_buf(1);
if(buffer_state[1] == FILLING) {
buffer_state[1] = FULL;
if(buffer_state[0] == EMPTY) {
- receive_to_buf(0, 1, 1, 10, 509); // DSP_RX to buffer 1, use 500 lines
+ bp_receive_to_buf(0, 1, 1, 10, 509); // DSP_RX to buffer 1, use 500
lines
buffer_state[0] = FILLING;
}
else
dsp_rx_idle = 1;
if(serdes_tx_idle) {
serdes_tx_idle = 0;
- send_from_buf(1, port, 1, 10, 509); // SERDES_TX from buffer 1
+ bp_send_from_buf(1, port, 1, 10, 509); // SERDES_TX from buffer 1
buffer_state[1] = EMPTYING;
}
}
@@ -152,11 +152,11 @@
buffer_state[1] = EMPTY;
if(dsp_rx_idle) {
dsp_rx_idle = 0;
- receive_to_buf(1, 1, 1, 10, 509); // DSP_RX to buffer 1, use 500 lines
+ bp_receive_to_buf(1, 1, 1, 10, 509); // DSP_RX to buffer 1, use 500
lines
buffer_state[1] = FILLING;
}
if(buffer_state[0] == FULL) {
- send_from_buf(0, port, 1, 10, 509); // SERDES_TX from buffer 0
+ bp_send_from_buf(0, port, 1, 10, 509); // SERDES_TX from buffer 0
buffer_state[0] = EMPTYING;
}
else
@@ -165,18 +165,18 @@
sim_puts("Int Proc'ed 1\n");
}
if(localstatus & 4) {
- clear_buf(2);
+ bp_clear_buf(2);
if(buffer_state[2] == FILLING) {
buffer_state[2] = FULL;
if(buffer_state[3] == EMPTY) {
- receive_to_buf(3, port, 1, 5, 504); // SERDES_RX to buffer 3, use 500
lines
+ bp_receive_to_buf(3, port, 1, 5, 504); // SERDES_RX to buffer 3, use
500 lines
buffer_state[3] = FILLING;
}
else
serdes_rx_idle = 1;
if(dsp_tx_idle) {
dsp_tx_idle = 0;
- send_from_buf(2, 1, 1, 5, 504); // DSP_TX from buffer 2
+ bp_send_from_buf(2, 1, 1, 5, 504); // DSP_TX from buffer 2
buffer_state[2] = EMPTYING;
}
}
@@ -184,11 +184,11 @@
buffer_state[2] = EMPTY;
if(serdes_rx_idle) {
serdes_rx_idle = 0;
- receive_to_buf(2, port, 1, 5, 504); // SERDES_RX to buffer 2
+ bp_receive_to_buf(2, port, 1, 5, 504); // SERDES_RX to buffer 2
buffer_state[2] = FILLING;
}
if(buffer_state[3] == FULL) {
- send_from_buf(3, 1, 1, 5, 504); // DSP_TX from buffer 3
+ bp_send_from_buf(3, 1, 1, 5, 504); // DSP_TX from buffer 3
buffer_state[3] = EMPTYING;
}
else
@@ -197,18 +197,18 @@
sim_puts("Int Proc'ed 2\n");
}
if(localstatus & 8) {
- clear_buf(3);
+ bp_clear_buf(3);
if(buffer_state[3] == FILLING) {
buffer_state[3] = FULL;
if(buffer_state[2] == EMPTY) {
- receive_to_buf(2, port, 1, 5, 504); // SERDES_RX to buffer 2, use 500
lines
+ bp_receive_to_buf(2, port, 1, 5, 504); // SERDES_RX to buffer 2, use
500 lines
buffer_state[2] = FILLING;
}
else
serdes_rx_idle = 1;
if(dsp_tx_idle) {
dsp_tx_idle = 0;
- send_from_buf(3, 1, 1, 5, 504); // DSP_TX from buffer 3
+ bp_send_from_buf(3, 1, 1, 5, 504); // DSP_TX from buffer 3
buffer_state[3] = EMPTYING;
}
}
@@ -216,11 +216,11 @@
buffer_state[3] = EMPTY;
if(serdes_rx_idle) {
serdes_rx_idle = 0;
- receive_to_buf(3, port, 1, 5, 504); // SERDES_RX to buffer 3
+ bp_receive_to_buf(3, port, 1, 5, 504); // SERDES_RX to buffer 3
buffer_state[3] = FILLING;
}
if(buffer_state[2] == FULL) {
- send_from_buf(2, 1, 1, 5, 504); // DSP_TX from buffer 2
+ bp_send_from_buf(2, 1, 1, 5, 504); // DSP_TX from buffer 2
buffer_state[2] = EMPTYING;
}
else
@@ -264,18 +264,18 @@
#if 0
// rx SERDES into buffer #2 (buf,port,step,fl,ll)
- receive_to_buf(2, 0, 1, 10, 300);
+ bp_receive_to_buf(2, 0, 1, 10, 300);
sim_puts("SERDES RX buffer setup\n");
// send SERDES from buffer #0 (buf,port,step,fl,ll)
- send_from_buf(0, 0, 1, 20, 200);
+ bp_send_from_buf(0, 0, 1, 20, 200);
sim_puts("SERDES TX buffer setup\n");
#endif
#if 0
// send to DACs from buffer #1
- send_from_buf(1 /*buf#*/, 1 /*port*/, 1 /*step*/, 20 /*fl*/, 250 /*ll*/);
+ bp_send_from_buf(1 /*buf#*/, 1 /*port*/, 1 /*step*/, 20 /*fl*/, 250 /*ll*/);
sim_puts("DAC Buffer setup\n");
#endif
@@ -285,7 +285,7 @@
if(*status & (1<<i)) {
//sim_puts("Clearing buf ");
sim_puthex_nl(i);
- clear_buf(i);
+ bp_clear_buf(i);
}
//sim_puts("EXIT INT\n");
#endif
Modified: gnuradio/branches/developers/matt/u2f/firmware/u2_init.c
===================================================================
--- gnuradio/branches/developers/matt/u2f/firmware/u2_init.c 2007-09-27
15:10:50 UTC (rev 6553)
+++ gnuradio/branches/developers/matt/u2f/firmware/u2_init.c 2007-09-27
18:18:12 UTC (rev 6554)
@@ -4,6 +4,7 @@
#include "spi.h"
#include "pic.h"
#include "sim_io.h"
+#include "buffer_pool.h"
/*
* We ought to arrange for this to be called before main, but for now,
@@ -65,5 +66,6 @@
// sim_puts("Setting up interrupt controller\n");
pic_init();
+ bp_init();
return 1;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r6554 - gnuradio/branches/developers/matt/u2f/firmware,
eb <=