Work in Progress - Genexis XG6846B

Hi,

I have started to add information/work on Genexis XG6846B.
OEM wise it is now running a fork of OpenWRT called GenXOS (Iopsys from earlier Inteno)
https://openwrt.org/inbox/toh/openwrt/genexis_xg6846b

If anyone wants to contribute, please feel free to help out.

1 Like

GPL: https://download.iopsys.eu/iopsys/opensdk/bcmopen-PANTHER-6.0-latest
Toolchain: https://download.iopsys.eu/iopsys/toolchain/crosstools-gcc-5.5-linux-4.1-uclibc-1.0.26-glibc-2.26-binutils-2.28.1-Rel1.10-full.tar.bz2

board_6846.c:

#if defined(CONFIG_BCM_KF_ARM_BCM963XX)
/*
<:copyright-BRCM:2013:DUAL/GPL:standard

   Copyright (c) 2013 Broadcom 
   All Rights Reserved

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2, as published by
the Free Software Foundation (the "GPL").

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.


A copy of the GPL is available at http://www.broadcom.com/licenses/GPLv2.php, or by
writing to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.

:>
*/

#include <linux/of.h>
#include <linux/of_platform.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>

static const char * const bcm63xx_dt_compat[] = {
        "brcm,bcm96846",
        NULL
};

MACHINE_START(BCM96846, "BCM96846")
    .dt_compat      = bcm63xx_dt_compat,
MACHINE_END

#endif //CONFIG_BCM_KF_ARM_BCM963XX

boardparms_6846.c:

#include "bp_defs.h"
#include "boardparms.h"
#include "bcmSpiRes.h"
extern BpCmdElem moca6802InitSeq[];

static bp_elem_t g_bcm968460sv[] = {
  {bp_cpBoardId,               .u.cp = "968460SV"},
  {bp_ucPhyType0,              .u.uc = BP_ENET_INTERNAL_PHY},
  {bp_ucPhyAddress,            .u.uc = 0x0},
  {bp_usConfigType,            .u.us = BP_ENET_CONFIG_MMAP},
  {bp_ulPortMap,               .u.ul = 0x1f},
  {bp_ulPhyId0,                .u.ul = 0x01 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_SERIAL_GPIO_0_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId1,                .u.ul = 0x02 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_SERIAL_GPIO_1_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId2,                .u.ul = 0x03 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_SERIAL_GPIO_2_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId3,                .u.ul = 0x04 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_SERIAL_GPIO_3_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId4,                .u.ul = 0x07 | MAC_IF_RGMII | PHY_EXTERNAL | PHY_INTEGRATED_VALID},
  {bp_ulPortFlags,             .u.ul = PORT_FLAG_TX_INTERNAL_DELAY},
  {bp_usMiiMdc,                .u.us = BP_GPIO_54_AH},
  {bp_usMiiMdio,               .u.us = BP_GPIO_55_AH},
  {bp_ulMemoryConfig,          .u.ul = BP_DDR_SPEED_800_11_11_11 | BP_DDR_TOTAL_SIZE_256MB| BP_DDR_DEVICE_WIDTH_16 | BP_DDR_TOTAL_WIDTH_16BIT},
  {bp_usRogueOnuEn,            .u.us = BP_GPIO_14_AH},
  {bp_usPonLbe,                .u.us = BP_GPIO_67_AL},
  {bp_usGpioI2cScl,            .u.us = BP_GPIO_68_AH},
  {bp_usGpioI2cSda,            .u.us = BP_GPIO_69_AH},
  {bp_usUsbPwrFlt0,            .u.us = BP_GPIO_74_AL},
  {bp_usUsbPwrOn0,             .u.us = BP_GPIO_75_AL},
  {bp_usUsbPwrFlt1,            .u.us = BP_GPIO_76_AL},
  {bp_usUsbPwrOn1,             .u.us = BP_GPIO_77_AL},
  {bp_ucDspType0,              .u.uc = BP_VOIP_DSP},
  {bp_ucDspAddress,            .u.uc = 0},
  {bp_usGpioUart2Sdin,         .u.us = BP_GPIO_14_AH},
  {bp_usGpioUart2Sdout,        .u.us = BP_GPIO_15_AH},
  {bp_last}
};

static bp_elem_t g_bcm968460ref[] = {
  {bp_cpBoardId,               .u.cp = "968460REF"},
  {bp_ucPhyType0,              .u.uc = BP_ENET_INTERNAL_PHY},
  {bp_ucPhyAddress,            .u.uc = 0x0},
  {bp_usConfigType,            .u.us = BP_ENET_CONFIG_MMAP},
  {bp_ulPortMap,               .u.ul = 0x0f},
  {bp_ulPhyId0,                .u.ul = 0x01 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_52_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId1,                .u.ul = 0x02 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_53_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId2,                .u.ul = 0x03 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_49_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId3,                .u.ul = 0x04 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_44_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulMemoryConfig,          .u.ul = BP_DDR_SPEED_800_11_11_11 | BP_DDR_TOTAL_SIZE_256MB| BP_DDR_DEVICE_WIDTH_16 | BP_DDR_TOTAL_WIDTH_16BIT | BP_DDR_PCB_2LAYER},
  {bp_usGpioPonTxEn,           .u.us = BP_GPIO_40_AH},
  {bp_usRogueOnuEn,            .u.us = BP_GPIO_14_AH},
  {bp_usExtIntrSesBtnWireless, .u.us = BP_EXT_INTR_0 | BP_EXT_INTR_TYPE_IRQ_LOW_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_23_AL},
  {bp_usExtIntrResetToDefault, .u.us = BP_EXT_INTR_1 | BP_EXT_INTR_TYPE_IRQ_LOW_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_55_AL},
  {bp_usPonLbe,                .u.us = BP_GPIO_67_AL},
  {bp_usGpioI2cScl,            .u.us = BP_GPIO_68_AH},
  {bp_usGpioI2cSda,            .u.us = BP_GPIO_69_AH},
  {bp_usUsbPwrFlt0,            .u.us = BP_GPIO_74_AL},
  {bp_usUsbPwrOn0,             .u.us = BP_GPIO_75_AL},
  {bp_usUsbPwrFlt1,            .u.us = BP_GPIO_76_AL},
  {bp_usUsbPwrOn1,             .u.us = BP_GPIO_77_AL},
  {bp_ucDspType0,              .u.uc = BP_VOIP_DSP},
  {bp_ucDspAddress,            .u.uc = 0},
  {bp_last}
};

static bp_elem_t g_bcm968460refp[] = {
  {bp_cpBoardId,               .u.cp = "968460REFP"},
  {bp_InvSerdesRxPol,          .u.us = pmd_polarity_invert},
  {bp_InvSerdesTxPol,          .u.us = pmd_polarity_invert}, 
  {bp_usPmdMACEwakeEn,         .u.us = BP_GPIO_4_AH},
  {bp_usExtIntrPmdAlarm,       .u.us = BP_EXT_INTR_2 | BP_EXT_INTR_TYPE_IRQ_HIGH_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_14_AH},
  {bp_usGpioPmdReset,          .u.us = BP_GPIO_40_AL},
  {bp_usGpioPonTxEn,           .u.us = BP_GPIO_NONE},
  {bp_pmdFunc,                 .u.us = BP_PMD_APD_REG_DISABLED | BP_PMD_APD_TYPE_BOOST},
  {bp_elemTemplate,            .u.bp_elemp = g_bcm968460ref},
  {bp_last}
};

static bp_elem_t g_bcm968461prw[] = {
  {bp_cpBoardId,               .u.cp = "968461PRW"},
  {bp_ucPhyType0,              .u.uc = BP_ENET_INTERNAL_PHY},
  {bp_ucPhyAddress,            .u.uc = 0x0},
  {bp_usConfigType,            .u.us = BP_ENET_CONFIG_MMAP},
  {bp_ulPortMap,               .u.ul = 0x0f},
  {bp_ulPhyId0,                .u.ul = 0x01 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_52_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId1,                .u.ul = 0x02 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_53_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId2,                .u.ul = 0x03 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_49_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId3,                .u.ul = 0x04 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_44_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulMemoryConfig,          .u.ul = BP_DDR_SPEED_800_11_11_11 | BP_DDR_TOTAL_SIZE_256MB| BP_DDR_DEVICE_WIDTH_16 | BP_DDR_TOTAL_WIDTH_16BIT | BP_DDR_PCB_2LAYER},
  {bp_usExtIntrSesBtnWireless, .u.us = BP_EXT_INTR_0 | BP_EXT_INTR_TYPE_IRQ_LOW_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_23_AL},
  {bp_usExtIntrResetToDefault, .u.us = BP_EXT_INTR_1 | BP_EXT_INTR_TYPE_IRQ_LOW_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_55_AL},
  {bp_usPonLbe,                .u.us = BP_GPIO_67_AL},
  {bp_usGpioI2cScl,            .u.us = BP_GPIO_68_AH},
  {bp_usGpioI2cSda,            .u.us = BP_GPIO_69_AH},
  {bp_usUsbPwrFlt0,            .u.us = BP_GPIO_74_AL},
  {bp_usUsbPwrOn0,             .u.us = BP_GPIO_75_AL},
  {bp_usUsbPwrFlt1,            .u.us = BP_GPIO_76_AL},
  {bp_usUsbPwrOn1,             .u.us = BP_GPIO_77_AL},
  {bp_usGpioLedSesWireless,    .u.us = BP_GPIO_5_AL},
  {bp_InvSerdesRxPol,          .u.us = pmd_polarity_invert},
  {bp_InvSerdesTxPol,          .u.us = pmd_polarity_invert}, 
  {bp_usPmdMACEwakeEn,         .u.us = BP_GPIO_4_AH},
  {bp_usExtIntrPmdAlarm,       .u.us = BP_EXT_INTR_2 | BP_EXT_INTR_TYPE_IRQ_HIGH_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_14_AH},
  {bp_usGpioPmdReset,          .u.us = BP_GPIO_40_AL},
  {bp_pmdFunc,                 .u.us = BP_PMD_APD_REG_DISABLED | BP_PMD_APD_TYPE_BOOST},
  {bp_ucDspType0,              .u.uc = BP_VOIP_DSP},
  {bp_ucDspAddress,            .u.uc = 0},
  {bp_last}
};

static bp_elem_t g_bcm968462ref[] = {
  {bp_cpBoardId,               .u.cp = "968462REF"},
  {bp_ucPhyType0,              .u.uc = BP_ENET_INTERNAL_PHY},
  {bp_ucPhyAddress,            .u.uc = 0x0},
  {bp_usConfigType,            .u.us = BP_ENET_CONFIG_MMAP},
  {bp_ulPortMap,               .u.ul = 0x0f},
  {bp_ulPhyId0,                .u.ul = 0x01 | MAC_IF_MII},
  {bp_usOamIndex,              .u.us = 3},
  {bp_ucPhyDevName,            .u.cp = "eth3"},
  {bp_usNetLed0,               .u.us = BP_GPIO_52_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_FAE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_FAE},
  {bp_ulPhyId1,                .u.ul = 0x02 | MAC_IF_MII},
  {bp_usOamIndex,              .u.us = 2},
  {bp_ucPhyDevName,            .u.cp = "eth2"},
  {bp_usNetLed0,               .u.us = BP_GPIO_53_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_FAE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_FAE},
  {bp_ulPhyId2,                .u.ul = 0x03 | MAC_IF_MII},
  {bp_usOamIndex,              .u.us = 1},
  {bp_ucPhyDevName,            .u.cp = "eth1"},
  {bp_usNetLed0,               .u.us = BP_GPIO_49_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_FAE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_FAE},
  {bp_ulPhyId3,                .u.ul = 0x04 | MAC_IF_GMII},
  {bp_usOamIndex,              .u.us = 0},
  {bp_ucPhyDevName,            .u.cp = "eth0"},
  {bp_usNetLed0,               .u.us = BP_GPIO_44_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulMemoryConfig,          .u.ul = BP_DDR_SPEED_800_11_11_11 | BP_DDR_TOTAL_SIZE_512MB| BP_DDR_DEVICE_WIDTH_8 | BP_DDR_TOTAL_WIDTH_8BIT | BP_DDR_PCB_2LAYER},
  {bp_usExtIntrResetToDefault, .u.us = BP_EXT_INTR_1 | BP_EXT_INTR_TYPE_IRQ_LOW_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_45_AL},
  {bp_usGpioI2cScl,            .u.us = BP_GPIO_68_AH},
  {bp_usGpioI2cSda,            .u.us = BP_GPIO_69_AH},
  {bp_usUsbPwrFlt1,            .u.us = BP_GPIO_76_AL},
  {bp_usUsbPwrOn1,             .u.us = BP_GPIO_77_AL},
  {bp_usPonLbe,                .u.us = BP_GPIO_67_AL},
  {bp_InvSerdesRxPol,          .u.us = pmd_polarity_invert},
  {bp_InvSerdesTxPol,          .u.us = pmd_polarity_invert}, 
  {bp_usPmdMACEwakeEn,         .u.us = BP_GPIO_4_AH},
  {bp_usExtIntrPmdAlarm,       .u.us = BP_EXT_INTR_2 | BP_EXT_INTR_TYPE_IRQ_HIGH_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_14_AH},
  {bp_usGpioPmdReset,          .u.us = BP_GPIO_40_AL},
  {bp_pmdFunc,                 .u.us = BP_PMD_APD_REG_DISABLED | BP_PMD_APD_TYPE_BOOST},
  {bp_usRogueOnuEn,            .u.us = BP_GPIO_14_AH},
  {bp_ucDspType0,              .u.uc = BP_VOIP_DSP},
  {bp_ucDspAddress,            .u.uc = 0},
  {bp_last}
};

static bp_elem_t g_bcm968462spw[] = {
  {bp_cpBoardId,               .u.cp = "968462SPW"},
  {bp_ucPhyType0,              .u.uc = BP_ENET_INTERNAL_PHY},
  {bp_ucPhyAddress,            .u.uc = 0x0},
  {bp_usConfigType,            .u.us = BP_ENET_CONFIG_MMAP},
  {bp_ulPortMap,               .u.ul = 0x0f},
  {bp_ulPhyId0,                .u.ul = 0x01 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_52_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId1,                .u.ul = 0x02 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_53_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId2,                .u.ul = 0x03 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_49_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId3,                .u.ul = 0x04 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_44_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulMemoryConfig,          .u.ul = BP_DDR_SPEED_800_11_11_11 | BP_DDR_TOTAL_SIZE_512MB| BP_DDR_DEVICE_WIDTH_8 | BP_DDR_TOTAL_WIDTH_8BIT | BP_DDR_PCB_2LAYER},
  {bp_usExtIntrResetToDefault, .u.us = BP_EXT_INTR_1 | BP_EXT_INTR_TYPE_IRQ_LOW_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_45_AL},
  {bp_usGpioI2cScl,            .u.us = BP_GPIO_68_AH},
  {bp_usGpioI2cSda,            .u.us = BP_GPIO_69_AH},
  {bp_usUsbPwrFlt1,            .u.us = BP_GPIO_76_AL},
  {bp_usUsbPwrOn1,             .u.us = BP_GPIO_77_AL},
  {bp_usPonLbe,                .u.us = BP_GPIO_67_AL},
  {bp_InvSerdesRxPol,          .u.us = pmd_polarity_invert},
  {bp_InvSerdesTxPol,          .u.us = pmd_polarity_invert}, 
  {bp_usPmdMACEwakeEn,         .u.us = BP_GPIO_4_AH},
  {bp_usExtIntrPmdAlarm,       .u.us = BP_EXT_INTR_2 | BP_EXT_INTR_TYPE_IRQ_HIGH_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_14_AH},
  {bp_usGpioPmdReset,          .u.us = BP_GPIO_40_AL},
  {bp_pmdFunc,                 .u.us = BP_PMD_APD_REG_DISABLED | BP_PMD_APD_TYPE_BOOST},
  {bp_usRogueOnuEn,            .u.us = BP_GPIO_14_AH},
  {bp_ucDspType0,              .u.uc = BP_VOIP_DSP},
  {bp_ucDspAddress,            .u.uc = 0},
  {bp_last}
};

static bp_elem_t g_bcm968462xsv[] = {
  {bp_cpBoardId,               .u.cp = "968462XSV"},
  {bp_ucPhyType0,              .u.uc = BP_ENET_INTERNAL_PHY},
  {bp_ucPhyAddress,            .u.uc = 0x0},
  {bp_usConfigType,            .u.us = BP_ENET_CONFIG_MMAP},
  {bp_ulPortMap,               .u.ul = 0x0f},
  {bp_ulPhyId0,                .u.ul = 0x01 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_52_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId1,                .u.ul = 0x02 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_53_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId2,                .u.ul = 0x03 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_49_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId3,                .u.ul = 0x04 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_44_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulMemoryConfig,          .u.ul = BP_DDR_SPEED_800_11_11_11 | BP_DDR_TOTAL_SIZE_512MB| BP_DDR_DEVICE_WIDTH_8 | BP_DDR_TOTAL_WIDTH_8BIT},
  {bp_usGpioI2cScl,            .u.us = BP_GPIO_68_AH},
  {bp_usGpioI2cSda,            .u.us = BP_GPIO_69_AH},
  {bp_usUsbPwrFlt1,            .u.us = BP_GPIO_76_AL},
  {bp_usUsbPwrOn1,             .u.us = BP_GPIO_77_AL},
  {bp_usRogueOnuEn,            .u.us = BP_GPIO_14_AH},
  {bp_usPonLbe,                .u.us = BP_GPIO_67_AL},
  {bp_usGpioWanSignalDetected, .u.us = BP_GPIO_15_AH},
  {bp_last}
};

static bp_elem_t g_bcm968460rgw[] = {
  {bp_cpBoardId,               .u.cp = "968460RGW"},
  {bp_ulMemoryConfig,          .u.ul = BP_DDR_SPEED_800_11_11_11 | BP_DDR_TOTAL_SIZE_256MB| BP_DDR_DEVICE_WIDTH_16 | BP_DDR_TOTAL_WIDTH_16BIT},
  {bp_usPcmSdin,                .u.us = BP_GPIO_0_AH},
  {bp_usPcmSdout,               .u.us = BP_GPIO_1_AH},
  {bp_usPcmClk,                 .u.us = BP_GPIO_2_AH},
  {bp_usPcmFs,                  .u.us = BP_GPIO_3_AH},
  {bp_usExtIntrResetToDefault, .u.us = BP_EXT_INTR_0 | BP_EXT_INTR_TYPE_IRQ_LOW_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_19_AL},
  {bp_usGpioI2cScl,            .u.us = BP_GPIO_68_AH},
  {bp_usGpioI2cSda,            .u.us = BP_GPIO_69_AH},
  {bp_ucPhyType0,              .u.uc = BP_ENET_INTERNAL_PHY},
  {bp_ucPhyAddress,            .u.uc = 0x0},
  {bp_usConfigType,            .u.us = BP_ENET_CONFIG_MMAP},
  {bp_ulPortMap,               .u.ul = 0x1f},
  {bp_ulPhyId0,                .u.ul = 0x01 | MAC_IF_GMII},
  {bp_ulPhyId1,                .u.ul = 0x02 | MAC_IF_GMII},
  {bp_ulPhyId2,                .u.ul = 0x03 | MAC_IF_GMII},
  {bp_ulPhyId3,                .u.ul = 0x04 | MAC_IF_GMII},
  {bp_ulPhyId4,                .u.ul = 0x07 | MAC_IF_RGMII | PHY_EXTERNAL | PHY_INTEGRATED_VALID},
  {bp_ulPortFlags,             .u.ul = PORT_FLAG_TX_INTERNAL_DELAY},
  {bp_usMiiMdc,                .u.us = BP_GPIO_54_AH},
  {bp_usMiiMdio,               .u.us = BP_GPIO_55_AH},
  {bp_usPonLbe,                .u.us = BP_GPIO_67_AL},
  {bp_usUsbPwrFlt0,            .u.us = BP_GPIO_74_AL},
  {bp_usUsbPwrOn0,             .u.us = BP_GPIO_75_AL},
  {bp_usUsbPwrFlt1,            .u.us = BP_GPIO_76_AL},
  {bp_usUsbPwrOn1,             .u.us = BP_GPIO_77_AL},
  {bp_InvSerdesRxPol,          .u.us = pmd_polarity_invert},
  {bp_InvSerdesTxPol,          .u.us = pmd_polarity_invert}, 
  {bp_usPmdMACEwakeEn,         .u.us = BP_GPIO_4_AH},
  {bp_usExtIntrPmdAlarm,       .u.us = BP_EXT_INTR_2 | BP_EXT_INTR_TYPE_IRQ_HIGH_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_14_AH},
  {bp_usGpioPmdReset,          .u.us = BP_GPIO_40_AL},
  {bp_pmdFunc,                 .u.us = BP_PMD_APD_REG_DISABLED | BP_PMD_APD_TYPE_BOOST},
  {bp_last}
};

static bp_elem_t g_bcm968462egr[] = {
  {bp_cpBoardId,               .u.cp = "968462EGR"},
  {bp_ucPhyType0,              .u.uc = BP_ENET_INTERNAL_PHY},
  {bp_ucPhyAddress,            .u.uc = 0x0},
  {bp_usConfigType,            .u.us = BP_ENET_CONFIG_MMAP},
  {bp_ulPortMap,               .u.ul = 0x0f},
  {bp_ulPhyId0,                .u.ul = 0x01 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_52_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId1,                .u.ul = 0x02 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_53_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId2,                .u.ul = 0x03 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_49_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulPhyId3,                .u.ul = 0x04 | MAC_IF_GMII},
  {bp_usNetLed0,               .u.us = BP_GPIO_44_AL},
  {bp_ulNetLedLink,            .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_ulNetLedActivity,        .u.ul = BP_NET_LED_SPEED_GBE},
  {bp_InvSerdesRxPol,          .u.us = pmd_polarity_invert},
  {bp_InvSerdesTxPol,          .u.us = pmd_polarity_invert}, 
  {bp_usPmdMACEwakeEn,         .u.us = BP_GPIO_4_AH},
  {bp_usExtIntrPmdAlarm,       .u.us = BP_EXT_INTR_2 | BP_EXT_INTR_TYPE_IRQ_HIGH_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_14_AH},
  {bp_usGpioPmdReset,          .u.us = BP_GPIO_40_AL},
  {bp_pmdFunc,                 .u.us = BP_PMD_APD_REG_DISABLED | BP_PMD_APD_TYPE_BOOST},
  {bp_usPcmSdin,                .u.us = BP_GPIO_0_AH},
  {bp_usPcmSdout,               .u.us = BP_GPIO_1_AH},
  {bp_usPcmClk,                 .u.us = BP_GPIO_2_AH},
  {bp_usPcmFs,                  .u.us = BP_GPIO_3_AH},
  {bp_ulMemoryConfig,           .u.ul = BP_DDR_SPEED_800_11_11_11 | BP_DDR_TOTAL_SIZE_128MB| BP_DDR_DEVICE_WIDTH_8 | BP_DDR_TOTAL_WIDTH_8BIT | BP_DDR_PCB_2LAYER},
  {bp_usExtIntrResetToDefault, .u.us = BP_EXT_INTR_1 | BP_EXT_INTR_TYPE_IRQ_LOW_LEVEL | BP_EXT_INTR_TYPE_IRQ_SENSE_EDGE},
  {bp_usGpio_Intr,             .u.us = BP_GPIO_45_AL},
  {bp_usGpioI2cScl,            .u.us = BP_GPIO_68_AH},
  {bp_usGpioI2cSda,            .u.us = BP_GPIO_69_AH},
  {bp_usUsbPwrFlt1,            .u.us = BP_GPIO_76_AL},
  {bp_usUsbPwrOn1,             .u.us = BP_GPIO_77_AL},
  {bp_usGpioLedUSB2,           .u.us = BP_SERIAL_GPIO_15_AL},
  {bp_usGpioVoip1Led,          .u.us = BP_SERIAL_GPIO_11_AL},
  {bp_ucDspType0,              .u.uc = BP_VOIP_DSP},
  {bp_ucDspAddress,            .u.uc = 0},
  {bp_last}
};

bp_elem_t * g_BoardParms[] = {g_bcm968460sv, g_bcm968460ref, g_bcm968460refp, g_bcm968461prw, g_bcm968462ref, g_bcm968462spw, g_bcm968462xsv, g_bcm968460rgw, g_bcm968462egr, 0};

Have a look at the following pages. I think most of the work is done already.

https://dflund.se/~triad/krad/inteno-xg6846/

That is for another model, this one is a much newer one, hence the XG6846B model, the one you are linking to is the XG6846