合并bacon_dev分支的修改:1.协议基本运转;2.增加make debug_hlm
This commit is contained in:
@@ -5,36 +5,6 @@
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
#define TL2CDR_BASE 0x10000000U
|
||||
|
||||
#define TX0_WriteSoftReset 0x00U
|
||||
#define TX0_WriteTxLen 0x04U
|
||||
#define TX0_WriteTxFifo 0x08U
|
||||
#define TX0_ReadTxCrc 0x0CU
|
||||
|
||||
#define TX1_WriteSoftReset 0x10U
|
||||
#define TX1_WriteTxLen 0x14U
|
||||
#define TX1_WriteTxFifo 0x18U
|
||||
#define TX1_ReadTxCrc 0x1CU
|
||||
|
||||
#define RX0_WriteSoftReset 0x20U
|
||||
#define RX0_ReadRxLen 0x24U
|
||||
#define RX0_ReadRxFifo 0x28U
|
||||
#define RX0_ReadRxCrc 0x2CU
|
||||
#define RX0_WrtieLimitTimerAim 0x30U
|
||||
#define RX0_WriteLimitTxPair 0x34U
|
||||
|
||||
#define RX1_WriteSoftReset 0x40U
|
||||
#define RX1_ReadRxLen 0x44U
|
||||
#define RX1_ReadRxFifo 0x48U
|
||||
#define RX1_ReadRxCrc 0x4CU
|
||||
#define RX1_WrtieLimitTimerAim 0x50U
|
||||
#define RX1_WriteLimitTxPair 0x54U
|
||||
|
||||
#define HLM_ReadStatus 0x58U
|
||||
#define HLM_ReadIsLast 0x5CU
|
||||
|
||||
|
||||
#define HLM_TX_FIFO_LEN 16U
|
||||
#define HLM_RX_FIFO_LEN 16U
|
||||
|
||||
@@ -52,33 +22,145 @@
|
||||
#define HLM_TX0_FIFO_LEFT(s) (((s) >> (8 + 10)) & 0x1f)
|
||||
#define HLM_TX1_FIFO_LEFT(s) (((s) >> (8 + 15)) & 0x1f)
|
||||
|
||||
#define HLM_INT_TX1_END (1U<<11U)
|
||||
#define HLM_INT_TX0_END (1U<<10U)
|
||||
#define HLM_INT_RX1_ERR (1U<<9U)
|
||||
#define HLM_INT_RX0_ERR (1U<<8U)
|
||||
#define HLM_INT_RX1_START (1U<<7U)
|
||||
#define HLM_INT_RX0_START (1U<<6U)
|
||||
#define HLM_INT_RX1_END (1U<<5U)
|
||||
#define HLM_INT_RX0_END (1U<<4U)
|
||||
#define HLM_INT_TX1_FIFO_DEQ (1U<<3U)
|
||||
#define HLM_INT_TX0_FIFO_DEQ (1U<<2U)
|
||||
#define HLM_INT_RX1_FIFO_ENQ (1U<<1U)
|
||||
#define HLM_INT_RX0_FIFO_ENQ (1U<<0U)
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
extern volatile uint32_t * const tx0_softReset;
|
||||
extern volatile uint32_t * const tx0_txLen;
|
||||
extern volatile uint32_t * const tx0_txFifo;
|
||||
extern volatile uint32_t * const tx0_txCrc;
|
||||
#define i_tx0_softReset(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x00, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_tx0_txLen(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x01, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_tx0_txFifo(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x02, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_tx0_txCrc(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x03, %0, x0, x0" :"=r"(rd))
|
||||
#define i_tx0_clear_timer(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x04, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_tx0_read_timer(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x04, %0, x0, x0" :"=r"(rd))
|
||||
|
||||
extern volatile uint32_t * const tx1_softReset;
|
||||
extern volatile uint32_t * const tx1_txLen;
|
||||
extern volatile uint32_t * const tx1_txFifo;
|
||||
extern volatile uint32_t * const tx1_txCrc;
|
||||
#define i_tx1_softReset(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x05, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_tx1_txLen(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x06, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_tx1_txFifo(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x07, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_tx1_txCrc(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x08, %0, x0, x0" :"=r"(rd))
|
||||
#define i_tx1_clear_timer(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x09, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_tx1_read_timer(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x09, %0, x0, x0" :"=r"(rd))
|
||||
|
||||
extern volatile uint32_t * const rx0_softReset;
|
||||
extern volatile uint32_t * const rx0_rxLen;
|
||||
extern volatile uint32_t * const rx0_rxFifo;
|
||||
extern volatile uint32_t * const rx0_rxCrc;
|
||||
extern volatile uint32_t * const rx0_rxTimerAim;
|
||||
extern volatile uint32_t * const rx0_rxTxPair;
|
||||
#define i_rx0_softReset(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x0A, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_rx0_rxLen(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x0B, %0, x0, x0" :"=r"(rd))
|
||||
#define i_rx0_rxFifo(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x0C, %0, x0, x0" :"=r"(rd))
|
||||
#define i_rx0_rxCrc(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x0D, %0, x0, x0" :"=r"(rd))
|
||||
#define i_rx0_limitTime(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x0E, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_rx0_txPair(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x0F, x0, %0, x0" :: "r"(rs1))
|
||||
|
||||
#define i_rx1_softReset(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x10, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_rx1_rxLen(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x11, %0, x0, x0" :"=r"(rd))
|
||||
#define i_rx1_rxFifo(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x12, %0, x0, x0" :"=r"(rd))
|
||||
#define i_rx1_rxCrc(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x13, %0, x0, x0" :"=r"(rd))
|
||||
#define i_rx1_limitTime(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x14, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_rx1_txPair(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x15, x0, %0, x0" :: "r"(rs1))
|
||||
|
||||
#define i_hlm_status(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x16, %0, x0, x0" :"=r"(rd))
|
||||
#define i_hlm_clear_intflag(rs1) \
|
||||
__asm__ volatile (".insn r 0x0B, 2, 0x17, x0, %0, x0" :: "r"(rs1))
|
||||
#define i_hlm_read_intflag(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x17, %0, x0, x0" :"=r"(rd))
|
||||
#define i_hlm_isLast(rd) \
|
||||
__asm__ volatile (".insn r 0x0B, 4, 0x18, %0, x0, x0" :"=r"(rd))
|
||||
|
||||
#else
|
||||
|
||||
#define i_tx0_softReset(rs1) \
|
||||
.insn r 0x0B, 2, 0x00, x0, rs1, x0
|
||||
#define i_tx0_txLen(rs1) \
|
||||
.insn r 0x0B, 2, 0x01, x0, rs1, x0
|
||||
#define i_tx0_txFifo(rs1) \
|
||||
.insn r 0x0B, 2, 0x01, x0, rs1, x0
|
||||
#define i_tx0_txCrc(rd) \
|
||||
.insn r 0x0B, 4, 0x03, rd, x0, x0
|
||||
#define i_tx0_clear_timer(rs1) \
|
||||
.insn r 0x0B, 2, 0x04, x0, rs1, x0
|
||||
#define i_tx0_read_timer(rd) \
|
||||
.insn r 0x0B, 4, 0x04, rd, x0, x0
|
||||
|
||||
#define i_tx1_softReset(rs1) \
|
||||
.insn r 0x0B, 2, 0x05, x0, rs1, x0
|
||||
#define i_tx1_txLen(rs1) \
|
||||
.insn r 0x0B, 2, 0x06, x0, rs1, x0
|
||||
#define i_tx1_txFifo(rs1) \
|
||||
.insn r 0x0B, 2, 0x07, x0, rs1, x0
|
||||
#define i_tx1_txCrc(rd) \
|
||||
.insn r 0x0B, 4, 0x08, rd, x0, x0
|
||||
#define i_tx1_clear_timer(rs1) \
|
||||
.insn r 0x0B, 2, 0x09, x0, rs1, x0
|
||||
#define i_tx1_read_timer(rd) \
|
||||
.insn r 0x0B, 4, 0x09, rd, x0, x0
|
||||
|
||||
#define i_rx0_softReset(rs1) \
|
||||
.insn r 0x0B, 2, 0x0A, x0, rs1, x0
|
||||
#define i_rx0_rxLen(rd) \
|
||||
.insn r 0x0B, 4, 0x0B, rd, x0, x0
|
||||
#define i_rx0_rxFifo(rd) \
|
||||
.insn r 0x0B, 4, 0x0C, rd, x0, x0
|
||||
#define i_rx0_rxCrc(rd) \
|
||||
.insn r 0x0B, 4, 0x0D, rd, x0, x0
|
||||
#define i_rx0_limitTime(rs1) \
|
||||
.insn r 0x0B, 2, 0x0E, x0, rs1, x0
|
||||
#define i_rx0_txPair(rs1) \
|
||||
.insn r 0x0B, 2, 0x0F, x0, rs1, x0
|
||||
|
||||
#define i_rx1_softReset(rs1) \
|
||||
.insn r 0x0B, 2, 0x10, x0, rs1, x0
|
||||
#define i_rx1_rxLen(rd) \
|
||||
.insn r 0x0B, 4, 0x11, rd, x0, x0
|
||||
#define i_rx1_rxFifo(rd) \
|
||||
.insn r 0x0B, 4, 0x12, rd, x0, x0
|
||||
#define i_rx1_rxCrc(rd) \
|
||||
.insn r 0x0B, 4, 0x13, rd, x0, x0
|
||||
#define i_rx1_limitTime(rs1) \
|
||||
.insn r 0x0B, 2, 0x14, x0, rs1, x0
|
||||
#define i_rx1_txPair(rs1) \
|
||||
.insn r 0x0B, 2, 0x15, x0, rs1, x0
|
||||
|
||||
#define i_hlm_status(rd) \
|
||||
.insn r 0x0B, 4, 0x16, rd, x0, x0
|
||||
#define i_hlm_clear_intflag(rs1) \
|
||||
.insn r 0x0B, 2, 0x17, x0, rs1, x0
|
||||
#define i_hlm_read_intflag(rd) \
|
||||
.insn r 0x0B, 4, 0x17, rd, x0, x0
|
||||
#define i_hlm_isLast(rd) \
|
||||
.insn r 0x0B, 4, 0x18, rd, x0, x0
|
||||
|
||||
extern volatile uint32_t * const rx1_softReset;
|
||||
extern volatile uint32_t * const rx1_rxLen;
|
||||
extern volatile uint32_t * const rx1_rxFifo;
|
||||
extern volatile uint32_t * const rx1_rxCrc;
|
||||
extern volatile uint32_t * const rx1_rxTimerAim;
|
||||
extern volatile uint32_t * const rx1_rxTxPair;
|
||||
|
||||
extern volatile uint32_t * const HLM_status;
|
||||
extern volatile uint32_t * const HLM_isLast;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user