summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2012-10-26 00:08:50 +0000
committerjmallett <jmallett@FreeBSD.org>2012-10-26 00:08:50 +0000
commitaf24b41220e9050f629345994d8049991ba4d117 (patch)
tree06938e71c5a408c9b962aac5bd8852cd42ddc788
parent06f94170edf7e351d13845a21770a7eb14a5a92c (diff)
downloadFreeBSD-src-af24b41220e9050f629345994d8049991ba4d117.zip
FreeBSD-src-af24b41220e9050f629345994d8049991ba4d117.tar.gz
Add support for Radisys as a vendor of Octeon hardware. Add some preliminary
support for what their boot loader refers to as the "RSYS4GBE", of which there are two instances ("Data Processing Blocks") on the Radisys ATCA-7220.
-rw-r--r--sys/conf/options.mips1
-rw-r--r--sys/contrib/octeon-sdk/cvmx-app-init.h6
-rw-r--r--sys/contrib/octeon-sdk/cvmx-helper-board.c8
-rw-r--r--sys/contrib/octeon-sdk/cvmx-helper.c4
-rw-r--r--sys/mips/conf/OCTEON11
5 files changed, 20 insertions, 0 deletions
diff --git a/sys/conf/options.mips b/sys/conf/options.mips
index e9fc14a..c4b3bb7 100644
--- a/sys/conf/options.mips
+++ b/sys/conf/options.mips
@@ -72,6 +72,7 @@ MAXMEM opt_global.h
# Options that control the Cavium Simple Executive.
#
OCTEON_VENDOR_LANNER opt_cvmx.h
+OCTEON_VENDOR_RADISYS opt_cvmx.h
OCTEON_BOARD_CAPK_0100ND opt_cvmx.h
#
diff --git a/sys/contrib/octeon-sdk/cvmx-app-init.h b/sys/contrib/octeon-sdk/cvmx-app-init.h
index e570b45..a986814 100644
--- a/sys/contrib/octeon-sdk/cvmx-app-init.h
+++ b/sys/contrib/octeon-sdk/cvmx-app-init.h
@@ -299,6 +299,9 @@ enum cvmx_board_types_enum {
CVMX_BOARD_TYPE_CUST_LANNER_MR320= 20002,
CVMX_BOARD_TYPE_CUST_LANNER_MR321X=20007,
#endif
+#if defined(OCTEON_VENDOR_RADISYS)
+ CVMX_BOARD_TYPE_CUST_RADISYS_RSYS4GBE=20002,
+#endif
CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000,
@@ -423,6 +426,9 @@ static inline const char *cvmx_board_type_to_string(enum cvmx_board_types_enum t
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_LANNER_MR320)
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_LANNER_MR321X)
#endif
+#if defined(OCTEON_VENDOR_RADISYS)
+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_RADISYS_RSYS4GBE)
+#endif
ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX)
/* Module range */
diff --git a/sys/contrib/octeon-sdk/cvmx-helper-board.c b/sys/contrib/octeon-sdk/cvmx-helper-board.c
index d9fa7ba..06c17b5 100644
--- a/sys/contrib/octeon-sdk/cvmx-helper-board.c
+++ b/sys/contrib/octeon-sdk/cvmx-helper-board.c
@@ -1296,6 +1296,14 @@ int __cvmx_helper_board_interface_probe(int interface, int supported_ports)
return 12;
break;
#endif
+#if defined(OCTEON_VENDOR_RADISYS)
+ case CVMX_BOARD_TYPE_CUST_RADISYS_RSYS4GBE:
+ if (interface == 0)
+ return 13;
+ if (interface == 1)
+ return 8;
+ return 0;
+#endif
}
#ifdef CVMX_BUILD_FOR_UBOOT
if (CVMX_HELPER_INTERFACE_MODE_SPI == cvmx_helper_interface_get_mode(interface) && getenv("disable_spi"))
diff --git a/sys/contrib/octeon-sdk/cvmx-helper.c b/sys/contrib/octeon-sdk/cvmx-helper.c
index fb270e1..26582f0 100644
--- a/sys/contrib/octeon-sdk/cvmx-helper.c
+++ b/sys/contrib/octeon-sdk/cvmx-helper.c
@@ -146,6 +146,10 @@ int cvmx_helper_get_number_of_interfaces(void)
case CVMX_BOARD_TYPE_CUST_LANNER_MR730:
return 1;
#endif
+#if defined(OCTEON_VENDOR_RADISYS)
+ case CVMX_BOARD_TYPE_CUST_RADISYS_RSYS4GBE:
+ return 2;
+#endif
default:
break;
}
diff --git a/sys/mips/conf/OCTEON1 b/sys/mips/conf/OCTEON1
index aa6490b..58ec839 100644
--- a/sys/mips/conf/OCTEON1
+++ b/sys/mips/conf/OCTEON1
@@ -38,6 +38,7 @@ makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
# Board-specific support that cannot be auto-detected at runtime.
#options OCTEON_VENDOR_LANNER # Support for Lanner boards.
+#options OCTEON_VENDOR_RADISYS # Support for Radisys boards.
#options OCTEON_BOARD_CAPK_0100ND # Support for CAPK-0100nd.
options SCHED_ULE # ULE scheduler
OpenPOWER on IntegriCloud