diff options
-rw-r--r-- | sys/mips/rmi/board.c | 2 | ||||
-rw-r--r-- | sys/mips/rmi/board.h | 11 |
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(); |