aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/mips/rmi/board.c2
-rw-r--r--sys/mips/rmi/board.h11
2 files changed, 11 insertions, 2 deletions
diff --git a/sys/mips/rmi/board.c b/sys/mips/rmi/board.c
index f3575d7c1754..d346a9c274d3 100644
--- a/sys/mips/rmi/board.c
+++ b/sys/mips/rmi/board.c
@@ -127,7 +127,7 @@ xlr_board_info_setup()
/* network block 1 */
xlr_board_info.gmac_block[1].type = XLR_GMAC;
- xlr_board_info.gmac_block[1].enabled = 0xf;
+ xlr_board_info.gmac_block[1].enabled = xlr_is_xls1xx() ? 0 : 0xf;
if (xlr_is_xls4xx_lite()) {
xlr_reg_t *mmio = xlr_io_mmio(XLR_IO_GPIO_OFFSET);
uint32_t tmp;
diff --git a/sys/mips/rmi/board.h b/sys/mips/rmi/board.h
index 1b8cb14bdd9d..0092fea25d34 100644
--- a/sys/mips/rmi/board.h
+++ b/sys/mips/rmi/board.h
@@ -77,7 +77,8 @@ xlr_is_xls(void)
{
uint32_t prid = mips_rd_prid();
- return (prid & 0xf000) == 0x8000 || (prid & 0xf000) == 0x4000;
+ return ((prid & 0xf000) == 0x8000 || (prid & 0xf000) == 0x4000 ||
+ (prid & 0xf000) == 0xc000);
}
/*
@@ -110,6 +111,14 @@ xlr_board_pci(void)
}
static __inline__ int
+xlr_is_xls1xx(void)
+{
+ uint32_t chipid = xlr_processor_id();
+
+ return (chipid == 0xce || chipid == 0xcf);
+}
+
+static __inline__ int
xlr_is_xls2xx(void)
{
uint32_t chipid = xlr_processor_id();