Change in osmo-e1-hardware[master]: icE1usb fw: Put E1 IP core register related #defines in e1_hw.h

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Thu Dec 17 17:02:56 UTC 2020


laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773 )


Change subject: icE1usb fw: Put E1 IP core register related #defines in e1_hw.h
......................................................................

icE1usb fw: Put E1 IP core register related #defines in e1_hw.h

Related: OS#4675
Change-Id: I6783f473e6bb7dd08a5b5714bdd9b5aac0f28f0d
---
M firmware/ice40-riscv/icE1usb/e1.c
A firmware/ice40-riscv/icE1usb/e1_hw.h
2 files changed, 67 insertions(+), 60 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-e1-hardware refs/changes/73/21773/1

diff --git a/firmware/ice40-riscv/icE1usb/e1.c b/firmware/ice40-riscv/icE1usb/e1.c
index 4c60f63..532dcdf 100644
--- a/firmware/ice40-riscv/icE1usb/e1.c
+++ b/firmware/ice40-riscv/icE1usb/e1.c
@@ -12,6 +12,7 @@
 #include "config.h"
 #include "console.h"
 #include "e1.h"
+#include "e1_hw.h"
 
 #include "dma.h"
 #include "led.h" // FIXME
@@ -19,66 +20,6 @@
 #include "misc.h"	// needed to get the E1 tick for "LOS" detection
 
 
-// Hardware
-// --------
-
-struct e1_chan {
-	uint32_t csr;
-	uint32_t bd;
-} __attribute__((packed,aligned(4)));
-
-struct e1_core {
-	struct e1_chan rx;
-	struct e1_chan tx;
-} __attribute__((packed,aligned(4)));
-
-/* E1 receiver control register */
-#define E1_RX_CR_ENABLE		(1 <<  0)	/* Enable receiver */
-#define E1_RX_CR_MODE_TRSP	(0 <<  1)	/* Request no alignment at all */
-#define E1_RX_CR_MODE_BYTE	(1 <<  1)	/* Request byte-level alignment */
-#define E1_RX_CR_MODE_BFA	(2 <<  1)	/* Request Basic Frame Alignment */
-#define E1_RX_CR_MODE_MFA	(3 <<  1)	/* Request Multi-Frame Alignment */
-#define E1_RX_CR_OVFL_CLR	(1 << 12)	/* Clear Rx overflow condition */
-
-/* E1 receiver status register */
-#define E1_RX_SR_ENABLED	(1 <<  0)	/* Indicate Rx is enabled */
-#define E1_RX_SR_ALIGNED	(1 <<  1)	/* Indicate Alignment achieved */
-#define E1_RX_SR_BD_IN_EMPTY	(1 <<  8)
-#define E1_RX_SR_BD_IN_FULL	(1 <<  9)
-#define E1_RX_SR_BD_OUT_EMPTY	(1 << 10)
-#define E1_RX_SR_BD_OUT_FULL	(1 << 11)
-#define E1_RX_SR_OVFL		(1 << 12)	/* Indicate Rx overflow */
-
-/* E1 transmitter control register */
-#define E1_TX_CR_ENABLE		(1 <<  0)	/* Enable transmitter */
-#define E1_TX_CR_MODE_TRSP	(0 <<  1)	/* Transparent bit-stream mode */
-#define E1_TX_CR_MODE_TS0	(1 <<  1)	/* Generate TS0 in framer */
-#define E1_TX_CR_MODE_TS0_CRC	(2 <<  1)	/* Generate TS0 + CRC4 in framer */
-#define E1_TX_CR_MODE_TS0_CRC_E	(3 <<  1)	/* Generate TS0 + CRC4 + E-bits (based on Rx) in framer */
-#define E1_TX_CR_TICK_LOCAL	(0 <<  3)	/* use local clock for Tx */
-#define E1_TX_CR_TICK_REMOTE	(1 <<  3)	/* use recovered remote clock for Tx */
-#define E1_TX_CR_ALARM		(1 <<  4)	/* indicate ALARM to remote */
-#define E1_TX_CR_LOOPBACK	(1 <<  5)	/* external loopback enable/diasble */
-#define E1_TX_CR_LOOPBACK_CROSS	(1 <<  6)	/* source of loopback: local (0) or other (1) port */
-#define E1_TX_CR_UNFL_CLR	(1 << 12)	/* Clear Tx underflow condition */
-
-/* E1 transmitter status register */
-#define E1_TX_SR_ENABLED	(1 <<  0)	/* Indicate Tx is enabled */
-#define E1_TX_SR_BD_IN_EMPTY	(1 <<  8)
-#define E1_TX_SR_BD_IN_FULL	(1 <<  9)
-#define E1_TX_SR_BD_OUT_EMPTY	(1 << 10)
-#define E1_TX_SR_BD_OUT_FULL	(1 << 11)
-#define E1_TX_SR_UNFL		(1 << 12)	/* Indicate Tx underflow */
-
-/* E1 buffer descriptor flags */
-#define E1_BD_VALID		(1 << 15)
-#define E1_BD_CRC1		(1 << 14)
-#define E1_BD_CRC0		(1 << 13)
-#define E1_BD_ADDR(x)		((x) & 0x7f)
-#define E1_BD_ADDR_MSK		0x7f
-#define E1_BD_ADDR_SHFT		0
-
-
 static volatile struct e1_core * const e1_regs = (void *)(E1_CORE_BASE);
 static volatile uint8_t * const e1_data = (void *)(E1_DATA_BASE);
 
diff --git a/firmware/ice40-riscv/icE1usb/e1_hw.h b/firmware/ice40-riscv/icE1usb/e1_hw.h
new file mode 100644
index 0000000..28190e9
--- /dev/null
+++ b/firmware/ice40-riscv/icE1usb/e1_hw.h
@@ -0,0 +1,66 @@
+#pragma once
+#include <stdint.h>
+/*
+ * e1_hw.h
+ *
+ * Copyright (C) 2019-2020  Sylvain Munaut <tnt at 246tNt.com>
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+//TODO: Shouldn't this go into the no2e1 git repo?
+
+struct e1_chan {
+	uint32_t csr;
+	uint32_t bd;
+} __attribute__((packed,aligned(4)));
+
+struct e1_core {
+	struct e1_chan rx;
+	struct e1_chan tx;
+} __attribute__((packed,aligned(4)));
+
+/* E1 receiver control register */
+#define E1_RX_CR_ENABLE		(1 <<  0)	/* Enable receiver */
+#define E1_RX_CR_MODE_TRSP	(0 <<  1)	/* Request no alignment at all */
+#define E1_RX_CR_MODE_BYTE	(1 <<  1)	/* Request byte-level alignment */
+#define E1_RX_CR_MODE_BFA	(2 <<  1)	/* Request Basic Frame Alignment */
+#define E1_RX_CR_MODE_MFA	(3 <<  1)	/* Request Multi-Frame Alignment */
+#define E1_RX_CR_OVFL_CLR	(1 << 12)	/* Clear Rx overflow condition */
+
+/* E1 receiver status register */
+#define E1_RX_SR_ENABLED	(1 <<  0)	/* Indicate Rx is enabled */
+#define E1_RX_SR_ALIGNED	(1 <<  1)	/* Indicate Alignment achieved */
+#define E1_RX_SR_BD_IN_EMPTY	(1 <<  8)
+#define E1_RX_SR_BD_IN_FULL	(1 <<  9)
+#define E1_RX_SR_BD_OUT_EMPTY	(1 << 10)
+#define E1_RX_SR_BD_OUT_FULL	(1 << 11)
+#define E1_RX_SR_OVFL		(1 << 12)	/* Indicate Rx overflow */
+
+/* E1 transmitter control register */
+#define E1_TX_CR_ENABLE		(1 <<  0)	/* Enable transmitter */
+#define E1_TX_CR_MODE_TRSP	(0 <<  1)	/* Transparent bit-stream mode */
+#define E1_TX_CR_MODE_TS0	(1 <<  1)	/* Generate TS0 in framer */
+#define E1_TX_CR_MODE_TS0_CRC	(2 <<  1)	/* Generate TS0 + CRC4 in framer */
+#define E1_TX_CR_MODE_TS0_CRC_E	(3 <<  1)	/* Generate TS0 + CRC4 + E-bits (based on Rx) in framer */
+#define E1_TX_CR_TICK_LOCAL	(0 <<  3)	/* use local clock for Tx */
+#define E1_TX_CR_TICK_REMOTE	(1 <<  3)	/* use recovered remote clock for Tx */
+#define E1_TX_CR_ALARM		(1 <<  4)	/* indicate ALARM to remote */
+#define E1_TX_CR_LOOPBACK	(1 <<  5)	/* external loopback enable/diasble */
+#define E1_TX_CR_LOOPBACK_CROSS	(1 <<  6)	/* source of loopback: local (0) or other (1) port */
+#define E1_TX_CR_UNFL_CLR	(1 << 12)	/* Clear Tx underflow condition */
+
+/* E1 transmitter status register */
+#define E1_TX_SR_ENABLED	(1 <<  0)	/* Indicate Tx is enabled */
+#define E1_TX_SR_BD_IN_EMPTY	(1 <<  8)
+#define E1_TX_SR_BD_IN_FULL	(1 <<  9)
+#define E1_TX_SR_BD_OUT_EMPTY	(1 << 10)
+#define E1_TX_SR_BD_OUT_FULL	(1 << 11)
+#define E1_TX_SR_UNFL		(1 << 12)	/* Indicate Tx underflow */
+
+/* E1 buffer descriptor flags */
+#define E1_BD_VALID		(1 << 15)
+#define E1_BD_CRC1		(1 << 14)
+#define E1_BD_CRC0		(1 << 13)
+#define E1_BD_ADDR(x)		((x) & 0x7f)
+#define E1_BD_ADDR_MSK		0x7f
+#define E1_BD_ADDR_SHFT		0

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-e1-hardware/+/21773
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-e1-hardware
Gerrit-Branch: master
Gerrit-Change-Id: I6783f473e6bb7dd08a5b5714bdd9b5aac0f28f0d
Gerrit-Change-Number: 21773
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201217/a8912444/attachment.htm>


More information about the gerrit-log mailing list