#define CPORT_RX_BUF(cport) (void*)(CPORT_RX_BUF_BASE + \ (CPORT_RX_BUF_SIZE * cport)) #define CPORT_TX_BUF_BASE (0x50000000U) #define CPORT_TX_BUF_SIZE (0x20000U) #define CPORT_TX_BUF(cport) (uint8_t*)(CPORT_TX_BUF_BASE + \ (CPORT_TX_BUF_SIZE * cport)) #define CPORT_EOM_BIT(cport) (cport->tx_buf + (CPORT_TX_BUF_SIZE - 1)) #define DECLARE_CPORT(id) { \ .tx_buf = CPORT_TX_BUF(id), \ .rx_buf = CPORT_RX_BUF(id), \ .cportid = id, \ } static struct cport cporttable[] = { DECLARE_CPORT(0), DECLARE_CPORT(1), DECLARE_CPORT(2), DECLARE_CPORT(3), }; #define CPORT_MAX (sizeof(cporttable)/sizeof(struct cport)) static inline struct cport *cport_handle(uint16_t cportid) { if (cportid >= CPORT_MAX) { return NULL; } else { return &cporttable[cportid]; } } /* * "Map" constants for M-PHY fixups. */ #define TSB_MPHY_MAP (0x7F)
.cportid = id, \ .connected = 0, \ } #define CPORTID_CDSI0 (16) #define CPORTID_CDSI1 (17) #define CPB_TX_BUFFER_SPACE_MASK ((uint32_t) 0x0000007F) #define CPB_TX_BUFFER_SPACE_OFFSET_MASK CPB_TX_BUFFER_SPACE_MASK /* * FIXME: We could allocate and size this array at runtime, based on the type * of bridge. */ static struct cport cporttable[] = { DECLARE_CPORT(0), DECLARE_CPORT(1), DECLARE_CPORT(2), DECLARE_CPORT(3), DECLARE_CPORT(4), DECLARE_CPORT(5), DECLARE_CPORT(6), DECLARE_CPORT(7), DECLARE_CPORT(8), DECLARE_CPORT(9), DECLARE_CPORT(10), DECLARE_CPORT(11), DECLARE_CPORT(12), DECLARE_CPORT(13), DECLARE_CPORT(14), DECLARE_CPORT(15), DECLARE_CPORT(16), DECLARE_CPORT(17), DECLARE_CPORT(18), DECLARE_CPORT(19), DECLARE_CPORT(20), DECLARE_CPORT(21), DECLARE_CPORT(22), DECLARE_CPORT(23), DECLARE_CPORT(24), DECLARE_CPORT(25), DECLARE_CPORT(26), DECLARE_CPORT(27), DECLARE_CPORT(28), DECLARE_CPORT(29), DECLARE_CPORT(30), DECLARE_CPORT(31), DECLARE_CPORT(32), DECLARE_CPORT(33), DECLARE_CPORT(34), DECLARE_CPORT(35), DECLARE_CPORT(36), DECLARE_CPORT(37), DECLARE_CPORT(38), DECLARE_CPORT(39), DECLARE_CPORT(40), DECLARE_CPORT(41), DECLARE_CPORT(42), DECLARE_CPORT(43), }; #define GPBRIDGE_CPORT_MAX 16 // number of CPorts available on the GPBridges static inline unsigned int cport_max(void) { /*