This makes the system recognize and configure Netgear ProSecure UTM25.
Of the network ports, LAN1-4 and WAN1 are functional. WAN2 does not work
for some reason. Even though WAN1 has a separate link to the SoC, the
connection appears to go through the same switch that the LAN ports use.
At the moment, the system relies on U-Boot to set up the switch so that
the LAN and WAN segments stay separate.
Initial diff and input from Thaison Nguyen, thank you!
-/* $OpenBSD: cn30xxgmx.c,v 1.48 2021/01/30 14:59:13 visa Exp $ */
+/* $OpenBSD: cn30xxgmx.c,v 1.49 2021/02/04 16:16:10 visa Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
clk_tx_setting = 24;
clk_rx_setting = 24;
break;
+ case BOARD_NETGEAR_UTM25:
+ if (sc->sc_port_no == 0) {
+ clk_tx_setting = 9;
+ clk_rx_setting = 9;
+ } else {
+ clk_tx_setting = 24;
+ clk_rx_setting = 24;
+ }
+ break;
case BOARD_UBIQUITI_E100:
case BOARD_UBIQUITI_E120:
clk_tx_setting = 16;
-/* $OpenBSD: cn30xxsmi.c,v 1.8 2021/01/30 14:59:13 visa Exp $ */
+/* $OpenBSD: cn30xxsmi.c,v 1.9 2021/02/04 16:16:10 visa Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
static const int cam0100_phys[] = {
0x02, 0x03, 0x22
};
+ /* PHY addresses for Netgear ProSecure UTM25 */
+ static const int nutm25_phys[] = {
+ 0x00, 0x04, 0x09
+ };
struct cn30xxsmi_softc *smi;
int parent, phynode;
return ENOENT;
switch (octeon_board) {
+ case BOARD_NETGEAR_UTM25:
+ if (port >= nitems(nutm25_phys))
+ return ENOENT;
+ reg = nutm25_phys[port];
+ break;
case BOARD_UBIQUITI_E100:
case BOARD_UBIQUITI_E120:
if (port > 2)
-/* $OpenBSD: octeonvar.h,v 1.50 2021/01/30 14:59:14 visa Exp $ */
+/* $OpenBSD: octeonvar.h,v 1.51 2021/02/04 16:16:11 visa Exp $ */
/* $NetBSD: maltavar.h,v 1.3 2002/03/18 10:10:16 simonb Exp $ */
/*-
BOARD_UNKNOWN,
BOARD_CN3010_EVB_HS5,
BOARD_DLINK_DSR_500,
+ BOARD_NETGEAR_UTM25,
BOARD_RHINOLABS_UTM8,
BOARD_UBIQUITI_E100,
BOARD_UBIQUITI_E120,
-/* $OpenBSD: machdep.c,v 1.128 2021/01/30 14:59:14 visa Exp $ */
+/* $OpenBSD: machdep.c,v 1.129 2021/02/04 16:16:11 visa Exp $ */
/*
* Copyright (c) 2009, 2010 Miodrag Vallat.
case 20003:
return BOARD_UBIQUITI_E200;
case 20004:
+ /* E120 has two cores, whereas UTM25 has one core. */
+ if (ncpusfound == 1)
+ return BOARD_NETGEAR_UTM25;
return BOARD_UBIQUITI_E120;
case 20005:
return BOARD_UBIQUITI_E220;