Some question regarding a Cavium SoC based router

Hi there!

Here follows a question about the sense (or nonsense) of a a new router entry in the ToH of OpenWrt.

If have here a Cavium CN3010 based 32/256 :wink: VPN firewall (aka router). It has 8 Gigabit ports, two of them are WAN.

After some research I have found the information that the underlying Cavium SoC and the cnMIPS64 architecture is supported in OpenWRT with an own package octeon-generic.

Well, the corresponding device page only shows one router of the same architecture, the Ubiquiti EdgeRouter Lite.

The exact details of my router are:

SoC (single core):
Octeon CN3010-500 BG564-SCP-Y-G (SCP = support for encryption)

Network Switch:
Broadcom BCM5398 KPBG

Flash (256Mbit = 32MB):
Spansion / Cypress S29GL256 P10TFIC

RAM (4x 512Mbit= 256MB):
Hynix HY5PS121621C (32Mx16) x 4

Brand & Name:
3Com 3CREVF100-73 Gigabit VPN Firewall

So what are the approximate prospects of an OpenWrt port to this platform? As far as I understand one big (if not the biggest) challenge is to get the original boot loader to load the OpenWrt firmware.

Consistently that means if the boot loader is fully locked down, there exist effectively nearly no chance to load anything other then the original one. (=The journey is over before it even has started.)

Kind regards
lorn10

This SoC is unsupported and will probably be more useful as a doorstop rather than a router if you ever manage to port it.

OpenWrt only supports Octeon+(plus) or newer SoCs

There is CN3xxxx/CN5xxxx support in the kernel.

I've got an Octeon III CN70xx MIPS64_BE, and aside from having to source the network drivers (which would also be a problem for @lorn10, I'd guess) it's been great..

From kernel 4.19.123 arch/mips/include/asm/octeon/octeon-model.h, so it is at least aware of the CPU code.

/*
 * This model is only used for internal checks, it is not a valid
 * model for the OCTEON_MODEL environment variable.  This matches the
 * CN3010 and CN3005 but NOT the CN3020.
 */
#define OCTEON_CN30XX_PASS1     0x000d0200
#define OCTEON_CN30XX_PASS1_1   0x000d0202
#define OCTEON_CN30XX           (OCTEON_CN30XX_PASS1 | OM_IGNORE_REVISION)

and from arch/mips/include/asm/octeon/cvmx-pko.h

#define CVMX_PKO_MAX_OUTPUT_QUEUES      ((OCTEON_IS_MODEL(OCTEON_CN31XX) || \
        OCTEON_IS_MODEL(OCTEON_CN3010) || OCTEON_IS_MODEL(OCTEON_CN3005) || \
        OCTEON_IS_MODEL(OCTEON_CN50XX)) ? 32 : \
                (OCTEON_IS_MODEL(OCTEON_CN58XX) || \
                OCTEON_IS_MODEL(OCTEON_CN56XX)) ? 256 : 128)
1 Like

Thanks for the replays. Yes, some newer kernels provide support also for the original Cavium SoC generation. That's why I thought the CN3010 is supported by the octeon-generic package. And regarding the Broadcom switch chip, so far I know there exist also some (partial?) BCM5398 support in newer kernel versions.

However, out of my view the biggest problem (or the effective "doorstop reason") in this case here is the quite special Comware OS environment.

Most other OEM like Netgear have used at their Cavium SoC based entry-to-mid level routers simply an old (down-stripped) Linux (mostly 2.6 kernel based) in conjunction with the U-Boot (1.1.1) bootloader. Good examples are the Netgear VPN Firewall models SRX5308 and FVS336G.

In such a context an OpenWrt port may be much easier to implement, the Ubiquiti EdgeRouter Lite shows perfectly how this can be done. :wink:

Whatever, until today also the Netgear SRX5308 and FVS336G have not received any OpenWRT support....