Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F106013680
D12258.id32740.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D12258.id32740.diff
View Options
Index: sys/conf/files.arm64
===================================================================
--- sys/conf/files.arm64
+++ sys/conf/files.arm64
@@ -167,6 +167,8 @@
dev/mbox/mbox_if.m optional soc_brcm_bcm2837
dev/mmc/host/dwmmc.c optional dwmmc fdt
dev/mmc/host/dwmmc_hisi.c optional dwmmc fdt soc_hisi_hi6220
+dev/neta/if_mvneta_fdt.c optional neta fdt
+dev/neta/if_mvneta.c optional neta mdio mii
dev/ofw/ofw_cpu.c optional fdt
dev/ofw/ofwpci.c optional fdt pci
dev/pci/pci_host_generic.c optional pci
Index: sys/dev/neta/if_mvneta.c
===================================================================
--- sys/dev/neta/if_mvneta.c
+++ sys/dev/neta/if_mvneta.c
@@ -74,9 +74,12 @@
#include <dev/mdio/mdio.h>
-#include <arm/mv/mvreg.h>
#include <arm/mv/mvvar.h>
+
+#if !defined(__aarch64__)
+#include <arm/mv/mvreg.h>
#include <arm/mv/mvwin.h>
+#endif
#include "if_mvnetareg.h"
#include "if_mvnetavar.h"
@@ -92,6 +95,18 @@
#define DASSERT(x) KASSERT((x), (#x))
+#define A3700_TCLK_250MHZ 250000000
+
+STATIC uint32_t
+mvneta_get_clk()
+{
+#if defined(__aarch64__)
+ return (A3700_TCLK_250MHZ);
+#else
+ return (get_tclk());
+#endif
+}
+
/* Device Register Initialization */
STATIC int mvneta_initreg(struct ifnet *);
@@ -464,7 +479,7 @@
error = mvneta_ring_alloc_tx_queue(sc, q);
if (error != 0) {
device_printf(sc->dev,
- "Failed to allocate DMA safe memory for TxQ: %d\n", q);
+ "Failed to allocate DMA safe memory for TxQ: %zu\n", q);
goto fail;
}
}
@@ -512,7 +527,7 @@
for (q = 0; q < MVNETA_RX_QNUM_MAX; q++) {
if (mvneta_ring_alloc_rx_queue(sc, q) != 0) {
device_printf(sc->dev,
- "Failed to allocate DMA safe memory for RxQ: %d\n", q);
+ "Failed to allocate DMA safe memory for RxQ: %zu\n", q);
goto fail;
}
}
@@ -533,7 +548,9 @@
device_t child;
int ifm_target;
int q, error;
+#if !defined(__aarch64__)
uint32_t reg;
+#endif
sc = device_get_softc(self);
sc->dev = self;
@@ -556,6 +573,7 @@
MVNETA_WRITE(sc, MVNETA_PRXINIT, 0x00000001);
MVNETA_WRITE(sc, MVNETA_PTXINIT, 0x00000001);
+#if !defined(__aarch64__)
/*
* Disable port snoop for buffers and descriptors
* to avoid L2 caching of both without DRAM copy.
@@ -568,6 +586,7 @@
reg &= ~MVNETA_PSNPCFG_BUFSNP_MASK;
MVNETA_WRITE(sc, MVNETA_PSNPCFG, reg);
}
+#endif
/*
* MAC address
@@ -1363,7 +1382,7 @@
rx = MVNETA_RX_RING(sc, q);
rx->dma = rx->cpu = 0;
rx->queue_th_received = MVNETA_RXTH_COUNT;
- rx->queue_th_time = (get_tclk() / 1000) / 10; /* 0.1 [ms] */
+ rx->queue_th_time = (mvneta_get_clk() / 1000) / 10; /* 0.1 [ms] */
/* Initialize LRO */
rx->lro_enabled = FALSE;
@@ -3344,7 +3363,7 @@
mvneta_rx_lockq(sc, arg->queue);
rx = MVNETA_RX_RING(sc, arg->queue);
time_mvtclk = rx->queue_th_time;
- time_us = ((uint64_t)time_mvtclk * 1000ULL * 1000ULL) / get_tclk();
+ time_us = ((uint64_t)time_mvtclk * 1000ULL * 1000ULL) / mvneta_get_clk();
mvneta_rx_unlockq(sc, arg->queue);
mvneta_sc_unlock(sc);
@@ -3362,7 +3381,7 @@
return (EINVAL);
}
time_mvtclk =
- (uint64_t)get_tclk() * (uint64_t)time_us / (1000ULL * 1000ULL);
+ (uint64_t)mvneta_get_clk() * (uint64_t)time_us / (1000ULL * 1000ULL);
rx->queue_th_time = time_mvtclk;
reg = MVNETA_PRXITTH_RITT(rx->queue_th_time);
MVNETA_WRITE(sc, MVNETA_PRXITTH(arg->queue), reg);
Index: sys/dev/neta/if_mvneta_fdt.c
===================================================================
--- sys/dev/neta/if_mvneta_fdt.c
+++ sys/dev/neta/if_mvneta_fdt.c
@@ -83,6 +83,12 @@
static int mvneta_fdt_phy_acquire(device_t);
+static struct ofw_compat_data compat_data[] = {
+ {"marvell,armada-370-neta", true},
+ {"marvell,armada-3700-neta", true},
+ {NULL, false}
+};
+
static int
mvneta_fdt_probe(device_t dev)
{
@@ -90,7 +96,7 @@
if (!ofw_bus_status_okay(dev))
return (ENXIO);
- if (!ofw_bus_is_compatible(dev, "marvell,armada-370-neta"))
+ if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data)
return (ENXIO);
device_set_desc(dev, "NETA controller");
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Dec 24, 10:03 PM (3 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15591267
Default Alt Text
D12258.id32740.diff (3 KB)
Attached To
Mode
D12258: Add support for Armada 3700 in the NETA driver
Attached
Detach File
Event Timeline
Log In to Comment