summaryrefslogtreecommitdiffstats
path: root/simulator
diff options
context:
space:
mode:
authorEvan Lojewski <github@meklort.com>2019-04-14 16:37:22 -0600
committerEvan Lojewski <github@meklort.com>2019-04-14 16:37:22 -0600
commit0cf10183e0f05c643b8c9112ef74efa2a8396eab (patch)
tree556592a81bbbc8f4c9dc84d0f6adae2aeded8232 /simulator
parentaef26ac93ecc586ca49d3352835afb37901c54e0 (diff)
downloadbcm5719-ortega-0cf10183e0f05c643b8c9112ef74efa2a8396eab.tar.gz
bcm5719-ortega-0cf10183e0f05c643b8c9112ef74efa2a8396eab.zip
Begin adding support for setting ape statistics in the SHM region.
Diffstat (limited to 'simulator')
-rw-r--r--simulator/CMakeLists.txt8
-rw-r--r--simulator/HAL.cpp13
-rw-r--r--simulator/bcm5719_SHM.cpp68
-rw-r--r--simulator/bcm5719_SHM_CHANNEL0.cpp133
-rw-r--r--simulator/bcm5719_SHM_CHANNEL0_sim.cpp245
-rw-r--r--simulator/bcm5719_SHM_CHANNEL1.cpp133
-rw-r--r--simulator/bcm5719_SHM_CHANNEL1_sim.cpp245
-rw-r--r--simulator/bcm5719_SHM_CHANNEL2.cpp133
-rw-r--r--simulator/bcm5719_SHM_CHANNEL2_sim.cpp245
-rw-r--r--simulator/bcm5719_SHM_CHANNEL3.cpp133
-rw-r--r--simulator/bcm5719_SHM_CHANNEL3_sim.cpp245
-rw-r--r--simulator/bcm5719_SHM_sim.cpp136
-rw-r--r--simulator/include/CXXRegister.h12
13 files changed, 1545 insertions, 204 deletions
diff --git a/simulator/CMakeLists.txt b/simulator/CMakeLists.txt
index 3fa9bb1..5795cde 100644
--- a/simulator/CMakeLists.txt
+++ b/simulator/CMakeLists.txt
@@ -17,6 +17,14 @@ simulator_add_library(${PROJECT_NAME} STATIC
bcm5719_APE_PERI_sim.cpp
bcm5719_SHM.cpp
bcm5719_SHM_sim.cpp
+ bcm5719_SHM_CHANNEL0.cpp
+ bcm5719_SHM_CHANNEL0_sim.cpp
+ bcm5719_SHM_CHANNEL1.cpp
+ bcm5719_SHM_CHANNEL1_sim.cpp
+ bcm5719_SHM_CHANNEL2.cpp
+ bcm5719_SHM_CHANNEL2_sim.cpp
+ bcm5719_SHM_CHANNEL3.cpp
+ bcm5719_SHM_CHANNEL3_sim.cpp
# APE indirect registers
APE_FILTERS.cpp
diff --git a/simulator/HAL.cpp b/simulator/HAL.cpp
index 31cff39..364f33f 100644
--- a/simulator/HAL.cpp
+++ b/simulator/HAL.cpp
@@ -5,6 +5,10 @@
#include <bcm5719_APE.h>
#include <bcm5719_APE_PERI.h>
#include <bcm5719_SHM.h>
+#include <bcm5719_SHM_CHANNEL0.h>
+#include <bcm5719_SHM_CHANNEL1.h>
+#include <bcm5719_SHM_CHANNEL2.h>
+#include <bcm5719_SHM_CHANNEL3.h>
#include <bcm5719_GEN.h>
#include <APE_NVIC.h>
#include <APE_FILTERS.h>
@@ -265,6 +269,15 @@ bool initHAL(const char *pci_path, int wanted_function)
init_bcm5719_SHM();
init_bcm5719_SHM_sim(&APEBase[0x4000]);
+ init_bcm5719_SHM_CHANNEL0();
+ init_bcm5719_SHM_CHANNEL0_sim(&APEBase[0x4900]);
+ init_bcm5719_SHM_CHANNEL1();
+ init_bcm5719_SHM_CHANNEL1_sim(&APEBase[0x4a00]);
+ init_bcm5719_SHM_CHANNEL2();
+ init_bcm5719_SHM_CHANNEL2_sim(&APEBase[0x4b00]);
+ init_bcm5719_SHM_CHANNEL3();
+ init_bcm5719_SHM_CHANNEL3_sim(&APEBase[0x4c00]);
+
init_APE_FILTERS();
init_APE_FILTERS_sim(NULL);
diff --git a/simulator/bcm5719_SHM.cpp b/simulator/bcm5719_SHM.cpp
index 4fd20f7..8249bd1 100644
--- a/simulator/bcm5719_SHM.cpp
+++ b/simulator/bcm5719_SHM.cpp
@@ -143,73 +143,5 @@ void init_bcm5719_SHM(void)
/** @brief Bitmap for @ref SHM_t.ChipId. */
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Info. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mcid. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Aen. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Bfilt. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mfilt. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Setting1. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Setting2. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Vlan. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0AltHostMacHigh. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0AltHostMacMid. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0AltHostMacLow. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0High. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0Mid. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0Low. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1High. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1Mid. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1Low. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac2High. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac2Mid. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac2Low. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac3High. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac3Mid. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac3Low. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0VlanValid. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0Vlan. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1VlanValid. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1Vlan. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Status. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0ResetCount. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Pxe. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Dropfil. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Slink. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Dbg. */
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0CtrlstatRx. */
-
}
diff --git a/simulator/bcm5719_SHM_CHANNEL0.cpp b/simulator/bcm5719_SHM_CHANNEL0.cpp
new file mode 100644
index 0000000..94519ed
--- /dev/null
+++ b/simulator/bcm5719_SHM_CHANNEL0.cpp
@@ -0,0 +1,133 @@
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @file bcm5719_SHM_CHANNEL0.cpp
+///
+/// @project bcm5719
+///
+/// @brief bcm5719_SHM_CHANNEL0
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @copyright Copyright (c) 2018, Evan Lojewski
+/// @cond
+///
+/// All rights reserved.
+///
+/// Redistribution and use in source and binary forms, with or without
+/// modification, are permitted provided that the following conditions are met:
+/// 1. Redistributions of source code must retain the above copyright notice,
+/// this list of conditions and the following disclaimer.
+/// 2. Redistributions in binary form must reproduce the above copyright notice,
+/// this list of conditions and the following disclaimer in the documentation
+/// and/or other materials provided with the distribution.
+/// 3. Neither the name of the <organization> nor the
+/// names of its contributors may be used to endorse or promote products
+/// derived from this software without specific prior written permission.
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+/// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+/// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+/// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+/// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+/// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+/// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+/// POSSIBILITY OF SUCH DAMAGE.
+/// @endcond
+////////////////////////////////////////////////////////////////////////////////
+
+#include <bcm5719_SHM_CHANNEL0.h>
+
+SHM_CHANNEL_t SHM_CHANNEL0;
+
+void init_bcm5719_SHM_CHANNEL0(void)
+{
+ /** @brief Component Registers for @ref SHM_CHANNEL0. */
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelInfo. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMcid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAen. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelBfilt. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMfilt. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting1. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting2. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelVlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacHigh. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacMid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacLow. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0VlanValid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Vlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1VlanValid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Vlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelStatus. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelResetCount. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelPxe. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDropfil. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSlink. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDbg. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatRx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatDropped. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatTypeErr. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatBadCsum. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllRx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllTx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllAen. */
+
+
+}
diff --git a/simulator/bcm5719_SHM_CHANNEL0_sim.cpp b/simulator/bcm5719_SHM_CHANNEL0_sim.cpp
new file mode 100644
index 0000000..b15e175
--- /dev/null
+++ b/simulator/bcm5719_SHM_CHANNEL0_sim.cpp
@@ -0,0 +1,245 @@
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @file bcm5719_SHM_CHANNEL0_sim.cpp
+///
+/// @project bcm5719
+///
+/// @brief bcm5719_SHM_CHANNEL0_sim
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @copyright Copyright (c) 2018, Evan Lojewski
+/// @cond
+///
+/// All rights reserved.
+///
+/// Redistribution and use in source and binary forms, with or without
+/// modification, are permitted provided that the following conditions are met:
+/// 1. Redistributions of source code must retain the above copyright notice,
+/// this list of conditions and the following disclaimer.
+/// 2. Redistributions in binary form must reproduce the above copyright notice,
+/// this list of conditions and the following disclaimer in the documentation
+/// and/or other materials provided with the distribution.
+/// 3. Neither the name of the <organization> nor the
+/// names of its contributors may be used to endorse or promote products
+/// derived from this software without specific prior written permission.
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+/// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+/// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+/// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+/// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+/// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+/// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+/// POSSIBILITY OF SUCH DAMAGE.
+/// @endcond
+////////////////////////////////////////////////////////////////////////////////
+
+#include <stdint.h>
+#include <utility>
+#include <bcm5719_SHM_CHANNEL0.h>
+
+#ifdef __ppc64__
+#define BARRIER() do { asm volatile ("sync 0\neieio\n" ::: "memory"); } while(0)
+#else
+#define BARRIER() do { asm volatile ("" ::: "memory"); } while(0)
+#endif
+
+static uint32_t read_from_ram(uint32_t val, uint32_t offset, void *args)
+{
+ uint8_t *base = (uint8_t *)args;
+ base += offset;
+
+ BARRIER();
+ return *(uint32_t *)base;
+}
+
+static uint32_t write_to_ram(uint32_t val, uint32_t offset, void *args)
+{
+ uint8_t *base = (uint8_t *)args;
+ base += offset;
+
+ BARRIER();
+ *(uint32_t *)base = val;
+ BARRIER();
+ return val;
+}
+
+void init_bcm5719_SHM_CHANNEL0_sim(void *base)
+{
+ SHM_CHANNEL0.mIndexReadCallback = read_from_ram;
+ SHM_CHANNEL0.mIndexReadCallbackArgs = base;
+
+ SHM_CHANNEL0.mIndexWriteCallback = write_to_ram;
+ SHM_CHANNEL0.mIndexWriteCallbackArgs = base;
+
+ /** @brief Component Registers for @ref SHM_CHANNEL0. */
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelInfo. */
+ SHM_CHANNEL0.NcsiChannelInfo.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelInfo.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMcid. */
+ SHM_CHANNEL0.NcsiChannelMcid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMcid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAen. */
+ SHM_CHANNEL0.NcsiChannelAen.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelAen.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelBfilt. */
+ SHM_CHANNEL0.NcsiChannelBfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelBfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMfilt. */
+ SHM_CHANNEL0.NcsiChannelMfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting1. */
+ SHM_CHANNEL0.NcsiChannelSetting1.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelSetting1.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting2. */
+ SHM_CHANNEL0.NcsiChannelSetting2.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelSetting2.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelVlan. */
+ SHM_CHANNEL0.NcsiChannelVlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelVlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacHigh. */
+ SHM_CHANNEL0.NcsiChannelAltHostMacHigh.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelAltHostMacHigh.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacMid. */
+ SHM_CHANNEL0.NcsiChannelAltHostMacMid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelAltHostMacMid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacLow. */
+ SHM_CHANNEL0.NcsiChannelAltHostMacLow.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelAltHostMacLow.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0High. */
+ SHM_CHANNEL0.NcsiChannelMac0High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac0High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Mid. */
+ SHM_CHANNEL0.NcsiChannelMac0Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac0Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Low. */
+ SHM_CHANNEL0.NcsiChannelMac0Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac0Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1High. */
+ SHM_CHANNEL0.NcsiChannelMac1High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac1High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Mid. */
+ SHM_CHANNEL0.NcsiChannelMac1Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac1Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Low. */
+ SHM_CHANNEL0.NcsiChannelMac1Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac1Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2High. */
+ SHM_CHANNEL0.NcsiChannelMac2High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac2High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Mid. */
+ SHM_CHANNEL0.NcsiChannelMac2Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac2Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Low. */
+ SHM_CHANNEL0.NcsiChannelMac2Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac2Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3High. */
+ SHM_CHANNEL0.NcsiChannelMac3High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac3High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Mid. */
+ SHM_CHANNEL0.NcsiChannelMac3Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac3Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Low. */
+ SHM_CHANNEL0.NcsiChannelMac3Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac3Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0VlanValid. */
+ SHM_CHANNEL0.NcsiChannelMac0VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac0VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Vlan. */
+ SHM_CHANNEL0.NcsiChannelMac0Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac0Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1VlanValid. */
+ SHM_CHANNEL0.NcsiChannelMac1VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac1VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Vlan. */
+ SHM_CHANNEL0.NcsiChannelMac1Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelMac1Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelStatus. */
+ SHM_CHANNEL0.NcsiChannelStatus.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelStatus.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelResetCount. */
+ SHM_CHANNEL0.NcsiChannelResetCount.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelResetCount.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelPxe. */
+ SHM_CHANNEL0.NcsiChannelPxe.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelPxe.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDropfil. */
+ SHM_CHANNEL0.NcsiChannelDropfil.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelDropfil.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSlink. */
+ SHM_CHANNEL0.NcsiChannelSlink.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelSlink.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDbg. */
+ SHM_CHANNEL0.NcsiChannelDbg.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelDbg.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatRx. */
+ SHM_CHANNEL0.NcsiChannelCtrlstatRx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelCtrlstatRx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatDropped. */
+ SHM_CHANNEL0.NcsiChannelCtrlstatDropped.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelCtrlstatDropped.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatTypeErr. */
+ SHM_CHANNEL0.NcsiChannelCtrlstatTypeErr.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelCtrlstatTypeErr.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatBadCsum. */
+ SHM_CHANNEL0.NcsiChannelCtrlstatBadCsum.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelCtrlstatBadCsum.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllRx. */
+ SHM_CHANNEL0.NcsiChannelCtrlstatAllRx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelCtrlstatAllRx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllTx. */
+ SHM_CHANNEL0.NcsiChannelCtrlstatAllTx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelCtrlstatAllTx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllAen. */
+ SHM_CHANNEL0.NcsiChannelCtrlstatAllAen.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL0.NcsiChannelCtrlstatAllAen.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+
+}
diff --git a/simulator/bcm5719_SHM_CHANNEL1.cpp b/simulator/bcm5719_SHM_CHANNEL1.cpp
new file mode 100644
index 0000000..98998a2
--- /dev/null
+++ b/simulator/bcm5719_SHM_CHANNEL1.cpp
@@ -0,0 +1,133 @@
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @file bcm5719_SHM_CHANNEL1.cpp
+///
+/// @project bcm5719
+///
+/// @brief bcm5719_SHM_CHANNEL1
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @copyright Copyright (c) 2018, Evan Lojewski
+/// @cond
+///
+/// All rights reserved.
+///
+/// Redistribution and use in source and binary forms, with or without
+/// modification, are permitted provided that the following conditions are met:
+/// 1. Redistributions of source code must retain the above copyright notice,
+/// this list of conditions and the following disclaimer.
+/// 2. Redistributions in binary form must reproduce the above copyright notice,
+/// this list of conditions and the following disclaimer in the documentation
+/// and/or other materials provided with the distribution.
+/// 3. Neither the name of the <organization> nor the
+/// names of its contributors may be used to endorse or promote products
+/// derived from this software without specific prior written permission.
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+/// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+/// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+/// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+/// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+/// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+/// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+/// POSSIBILITY OF SUCH DAMAGE.
+/// @endcond
+////////////////////////////////////////////////////////////////////////////////
+
+#include <bcm5719_SHM_CHANNEL1.h>
+
+SHM_CHANNEL_t SHM_CHANNEL1;
+
+void init_bcm5719_SHM_CHANNEL1(void)
+{
+ /** @brief Component Registers for @ref SHM_CHANNEL1. */
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelInfo. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMcid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAen. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelBfilt. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMfilt. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting1. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting2. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelVlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacHigh. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacMid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacLow. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0VlanValid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Vlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1VlanValid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Vlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelStatus. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelResetCount. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelPxe. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDropfil. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSlink. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDbg. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatRx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatDropped. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatTypeErr. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatBadCsum. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllRx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllTx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllAen. */
+
+
+}
diff --git a/simulator/bcm5719_SHM_CHANNEL1_sim.cpp b/simulator/bcm5719_SHM_CHANNEL1_sim.cpp
new file mode 100644
index 0000000..1b4b312
--- /dev/null
+++ b/simulator/bcm5719_SHM_CHANNEL1_sim.cpp
@@ -0,0 +1,245 @@
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @file bcm5719_SHM_CHANNEL1_sim.cpp
+///
+/// @project bcm5719
+///
+/// @brief bcm5719_SHM_CHANNEL1_sim
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @copyright Copyright (c) 2018, Evan Lojewski
+/// @cond
+///
+/// All rights reserved.
+///
+/// Redistribution and use in source and binary forms, with or without
+/// modification, are permitted provided that the following conditions are met:
+/// 1. Redistributions of source code must retain the above copyright notice,
+/// this list of conditions and the following disclaimer.
+/// 2. Redistributions in binary form must reproduce the above copyright notice,
+/// this list of conditions and the following disclaimer in the documentation
+/// and/or other materials provided with the distribution.
+/// 3. Neither the name of the <organization> nor the
+/// names of its contributors may be used to endorse or promote products
+/// derived from this software without specific prior written permission.
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+/// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+/// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+/// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+/// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+/// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+/// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+/// POSSIBILITY OF SUCH DAMAGE.
+/// @endcond
+////////////////////////////////////////////////////////////////////////////////
+
+#include <stdint.h>
+#include <utility>
+#include <bcm5719_SHM_CHANNEL1.h>
+
+#ifdef __ppc64__
+#define BARRIER() do { asm volatile ("sync 0\neieio\n" ::: "memory"); } while(0)
+#else
+#define BARRIER() do { asm volatile ("" ::: "memory"); } while(0)
+#endif
+
+static uint32_t read_from_ram(uint32_t val, uint32_t offset, void *args)
+{
+ uint8_t *base = (uint8_t *)args;
+ base += offset;
+
+ BARRIER();
+ return *(uint32_t *)base;
+}
+
+static uint32_t write_to_ram(uint32_t val, uint32_t offset, void *args)
+{
+ uint8_t *base = (uint8_t *)args;
+ base += offset;
+
+ BARRIER();
+ *(uint32_t *)base = val;
+ BARRIER();
+ return val;
+}
+
+void init_bcm5719_SHM_CHANNEL1_sim(void *base)
+{
+ SHM_CHANNEL1.mIndexReadCallback = read_from_ram;
+ SHM_CHANNEL1.mIndexReadCallbackArgs = base;
+
+ SHM_CHANNEL1.mIndexWriteCallback = write_to_ram;
+ SHM_CHANNEL1.mIndexWriteCallbackArgs = base;
+
+ /** @brief Component Registers for @ref SHM_CHANNEL1. */
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelInfo. */
+ SHM_CHANNEL1.NcsiChannelInfo.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelInfo.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMcid. */
+ SHM_CHANNEL1.NcsiChannelMcid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMcid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAen. */
+ SHM_CHANNEL1.NcsiChannelAen.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelAen.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelBfilt. */
+ SHM_CHANNEL1.NcsiChannelBfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelBfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMfilt. */
+ SHM_CHANNEL1.NcsiChannelMfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting1. */
+ SHM_CHANNEL1.NcsiChannelSetting1.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelSetting1.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting2. */
+ SHM_CHANNEL1.NcsiChannelSetting2.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelSetting2.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelVlan. */
+ SHM_CHANNEL1.NcsiChannelVlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelVlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacHigh. */
+ SHM_CHANNEL1.NcsiChannelAltHostMacHigh.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelAltHostMacHigh.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacMid. */
+ SHM_CHANNEL1.NcsiChannelAltHostMacMid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelAltHostMacMid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacLow. */
+ SHM_CHANNEL1.NcsiChannelAltHostMacLow.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelAltHostMacLow.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0High. */
+ SHM_CHANNEL1.NcsiChannelMac0High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac0High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Mid. */
+ SHM_CHANNEL1.NcsiChannelMac0Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac0Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Low. */
+ SHM_CHANNEL1.NcsiChannelMac0Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac0Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1High. */
+ SHM_CHANNEL1.NcsiChannelMac1High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac1High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Mid. */
+ SHM_CHANNEL1.NcsiChannelMac1Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac1Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Low. */
+ SHM_CHANNEL1.NcsiChannelMac1Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac1Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2High. */
+ SHM_CHANNEL1.NcsiChannelMac2High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac2High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Mid. */
+ SHM_CHANNEL1.NcsiChannelMac2Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac2Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Low. */
+ SHM_CHANNEL1.NcsiChannelMac2Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac2Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3High. */
+ SHM_CHANNEL1.NcsiChannelMac3High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac3High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Mid. */
+ SHM_CHANNEL1.NcsiChannelMac3Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac3Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Low. */
+ SHM_CHANNEL1.NcsiChannelMac3Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac3Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0VlanValid. */
+ SHM_CHANNEL1.NcsiChannelMac0VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac0VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Vlan. */
+ SHM_CHANNEL1.NcsiChannelMac0Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac0Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1VlanValid. */
+ SHM_CHANNEL1.NcsiChannelMac1VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac1VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Vlan. */
+ SHM_CHANNEL1.NcsiChannelMac1Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelMac1Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelStatus. */
+ SHM_CHANNEL1.NcsiChannelStatus.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelStatus.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelResetCount. */
+ SHM_CHANNEL1.NcsiChannelResetCount.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelResetCount.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelPxe. */
+ SHM_CHANNEL1.NcsiChannelPxe.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelPxe.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDropfil. */
+ SHM_CHANNEL1.NcsiChannelDropfil.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelDropfil.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSlink. */
+ SHM_CHANNEL1.NcsiChannelSlink.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelSlink.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDbg. */
+ SHM_CHANNEL1.NcsiChannelDbg.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelDbg.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatRx. */
+ SHM_CHANNEL1.NcsiChannelCtrlstatRx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelCtrlstatRx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatDropped. */
+ SHM_CHANNEL1.NcsiChannelCtrlstatDropped.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelCtrlstatDropped.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatTypeErr. */
+ SHM_CHANNEL1.NcsiChannelCtrlstatTypeErr.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelCtrlstatTypeErr.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatBadCsum. */
+ SHM_CHANNEL1.NcsiChannelCtrlstatBadCsum.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelCtrlstatBadCsum.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllRx. */
+ SHM_CHANNEL1.NcsiChannelCtrlstatAllRx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelCtrlstatAllRx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllTx. */
+ SHM_CHANNEL1.NcsiChannelCtrlstatAllTx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelCtrlstatAllTx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllAen. */
+ SHM_CHANNEL1.NcsiChannelCtrlstatAllAen.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL1.NcsiChannelCtrlstatAllAen.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+
+}
diff --git a/simulator/bcm5719_SHM_CHANNEL2.cpp b/simulator/bcm5719_SHM_CHANNEL2.cpp
new file mode 100644
index 0000000..5afe988
--- /dev/null
+++ b/simulator/bcm5719_SHM_CHANNEL2.cpp
@@ -0,0 +1,133 @@
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @file bcm5719_SHM_CHANNEL2.cpp
+///
+/// @project bcm5719
+///
+/// @brief bcm5719_SHM_CHANNEL2
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @copyright Copyright (c) 2018, Evan Lojewski
+/// @cond
+///
+/// All rights reserved.
+///
+/// Redistribution and use in source and binary forms, with or without
+/// modification, are permitted provided that the following conditions are met:
+/// 1. Redistributions of source code must retain the above copyright notice,
+/// this list of conditions and the following disclaimer.
+/// 2. Redistributions in binary form must reproduce the above copyright notice,
+/// this list of conditions and the following disclaimer in the documentation
+/// and/or other materials provided with the distribution.
+/// 3. Neither the name of the <organization> nor the
+/// names of its contributors may be used to endorse or promote products
+/// derived from this software without specific prior written permission.
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+/// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+/// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+/// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+/// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+/// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+/// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+/// POSSIBILITY OF SUCH DAMAGE.
+/// @endcond
+////////////////////////////////////////////////////////////////////////////////
+
+#include <bcm5719_SHM_CHANNEL2.h>
+
+SHM_CHANNEL_t SHM_CHANNEL2;
+
+void init_bcm5719_SHM_CHANNEL2(void)
+{
+ /** @brief Component Registers for @ref SHM_CHANNEL2. */
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelInfo. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMcid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAen. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelBfilt. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMfilt. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting1. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting2. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelVlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacHigh. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacMid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacLow. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0VlanValid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Vlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1VlanValid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Vlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelStatus. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelResetCount. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelPxe. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDropfil. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSlink. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDbg. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatRx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatDropped. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatTypeErr. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatBadCsum. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllRx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllTx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllAen. */
+
+
+}
diff --git a/simulator/bcm5719_SHM_CHANNEL2_sim.cpp b/simulator/bcm5719_SHM_CHANNEL2_sim.cpp
new file mode 100644
index 0000000..e5424a1
--- /dev/null
+++ b/simulator/bcm5719_SHM_CHANNEL2_sim.cpp
@@ -0,0 +1,245 @@
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @file bcm5719_SHM_CHANNEL2_sim.cpp
+///
+/// @project bcm5719
+///
+/// @brief bcm5719_SHM_CHANNEL2_sim
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @copyright Copyright (c) 2018, Evan Lojewski
+/// @cond
+///
+/// All rights reserved.
+///
+/// Redistribution and use in source and binary forms, with or without
+/// modification, are permitted provided that the following conditions are met:
+/// 1. Redistributions of source code must retain the above copyright notice,
+/// this list of conditions and the following disclaimer.
+/// 2. Redistributions in binary form must reproduce the above copyright notice,
+/// this list of conditions and the following disclaimer in the documentation
+/// and/or other materials provided with the distribution.
+/// 3. Neither the name of the <organization> nor the
+/// names of its contributors may be used to endorse or promote products
+/// derived from this software without specific prior written permission.
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+/// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+/// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+/// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+/// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+/// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+/// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+/// POSSIBILITY OF SUCH DAMAGE.
+/// @endcond
+////////////////////////////////////////////////////////////////////////////////
+
+#include <stdint.h>
+#include <utility>
+#include <bcm5719_SHM_CHANNEL2.h>
+
+#ifdef __ppc64__
+#define BARRIER() do { asm volatile ("sync 0\neieio\n" ::: "memory"); } while(0)
+#else
+#define BARRIER() do { asm volatile ("" ::: "memory"); } while(0)
+#endif
+
+static uint32_t read_from_ram(uint32_t val, uint32_t offset, void *args)
+{
+ uint8_t *base = (uint8_t *)args;
+ base += offset;
+
+ BARRIER();
+ return *(uint32_t *)base;
+}
+
+static uint32_t write_to_ram(uint32_t val, uint32_t offset, void *args)
+{
+ uint8_t *base = (uint8_t *)args;
+ base += offset;
+
+ BARRIER();
+ *(uint32_t *)base = val;
+ BARRIER();
+ return val;
+}
+
+void init_bcm5719_SHM_CHANNEL2_sim(void *base)
+{
+ SHM_CHANNEL2.mIndexReadCallback = read_from_ram;
+ SHM_CHANNEL2.mIndexReadCallbackArgs = base;
+
+ SHM_CHANNEL2.mIndexWriteCallback = write_to_ram;
+ SHM_CHANNEL2.mIndexWriteCallbackArgs = base;
+
+ /** @brief Component Registers for @ref SHM_CHANNEL2. */
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelInfo. */
+ SHM_CHANNEL2.NcsiChannelInfo.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelInfo.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMcid. */
+ SHM_CHANNEL2.NcsiChannelMcid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMcid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAen. */
+ SHM_CHANNEL2.NcsiChannelAen.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelAen.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelBfilt. */
+ SHM_CHANNEL2.NcsiChannelBfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelBfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMfilt. */
+ SHM_CHANNEL2.NcsiChannelMfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting1. */
+ SHM_CHANNEL2.NcsiChannelSetting1.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelSetting1.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting2. */
+ SHM_CHANNEL2.NcsiChannelSetting2.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelSetting2.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelVlan. */
+ SHM_CHANNEL2.NcsiChannelVlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelVlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacHigh. */
+ SHM_CHANNEL2.NcsiChannelAltHostMacHigh.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelAltHostMacHigh.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacMid. */
+ SHM_CHANNEL2.NcsiChannelAltHostMacMid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelAltHostMacMid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacLow. */
+ SHM_CHANNEL2.NcsiChannelAltHostMacLow.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelAltHostMacLow.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0High. */
+ SHM_CHANNEL2.NcsiChannelMac0High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac0High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Mid. */
+ SHM_CHANNEL2.NcsiChannelMac0Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac0Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Low. */
+ SHM_CHANNEL2.NcsiChannelMac0Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac0Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1High. */
+ SHM_CHANNEL2.NcsiChannelMac1High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac1High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Mid. */
+ SHM_CHANNEL2.NcsiChannelMac1Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac1Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Low. */
+ SHM_CHANNEL2.NcsiChannelMac1Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac1Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2High. */
+ SHM_CHANNEL2.NcsiChannelMac2High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac2High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Mid. */
+ SHM_CHANNEL2.NcsiChannelMac2Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac2Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Low. */
+ SHM_CHANNEL2.NcsiChannelMac2Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac2Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3High. */
+ SHM_CHANNEL2.NcsiChannelMac3High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac3High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Mid. */
+ SHM_CHANNEL2.NcsiChannelMac3Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac3Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Low. */
+ SHM_CHANNEL2.NcsiChannelMac3Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac3Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0VlanValid. */
+ SHM_CHANNEL2.NcsiChannelMac0VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac0VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Vlan. */
+ SHM_CHANNEL2.NcsiChannelMac0Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac0Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1VlanValid. */
+ SHM_CHANNEL2.NcsiChannelMac1VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac1VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Vlan. */
+ SHM_CHANNEL2.NcsiChannelMac1Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelMac1Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelStatus. */
+ SHM_CHANNEL2.NcsiChannelStatus.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelStatus.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelResetCount. */
+ SHM_CHANNEL2.NcsiChannelResetCount.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelResetCount.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelPxe. */
+ SHM_CHANNEL2.NcsiChannelPxe.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelPxe.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDropfil. */
+ SHM_CHANNEL2.NcsiChannelDropfil.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelDropfil.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSlink. */
+ SHM_CHANNEL2.NcsiChannelSlink.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelSlink.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDbg. */
+ SHM_CHANNEL2.NcsiChannelDbg.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelDbg.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatRx. */
+ SHM_CHANNEL2.NcsiChannelCtrlstatRx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelCtrlstatRx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatDropped. */
+ SHM_CHANNEL2.NcsiChannelCtrlstatDropped.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelCtrlstatDropped.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatTypeErr. */
+ SHM_CHANNEL2.NcsiChannelCtrlstatTypeErr.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelCtrlstatTypeErr.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatBadCsum. */
+ SHM_CHANNEL2.NcsiChannelCtrlstatBadCsum.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelCtrlstatBadCsum.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllRx. */
+ SHM_CHANNEL2.NcsiChannelCtrlstatAllRx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelCtrlstatAllRx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllTx. */
+ SHM_CHANNEL2.NcsiChannelCtrlstatAllTx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelCtrlstatAllTx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllAen. */
+ SHM_CHANNEL2.NcsiChannelCtrlstatAllAen.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL2.NcsiChannelCtrlstatAllAen.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+
+}
diff --git a/simulator/bcm5719_SHM_CHANNEL3.cpp b/simulator/bcm5719_SHM_CHANNEL3.cpp
new file mode 100644
index 0000000..a1a5663
--- /dev/null
+++ b/simulator/bcm5719_SHM_CHANNEL3.cpp
@@ -0,0 +1,133 @@
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @file bcm5719_SHM_CHANNEL3.cpp
+///
+/// @project bcm5719
+///
+/// @brief bcm5719_SHM_CHANNEL3
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @copyright Copyright (c) 2018, Evan Lojewski
+/// @cond
+///
+/// All rights reserved.
+///
+/// Redistribution and use in source and binary forms, with or without
+/// modification, are permitted provided that the following conditions are met:
+/// 1. Redistributions of source code must retain the above copyright notice,
+/// this list of conditions and the following disclaimer.
+/// 2. Redistributions in binary form must reproduce the above copyright notice,
+/// this list of conditions and the following disclaimer in the documentation
+/// and/or other materials provided with the distribution.
+/// 3. Neither the name of the <organization> nor the
+/// names of its contributors may be used to endorse or promote products
+/// derived from this software without specific prior written permission.
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+/// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+/// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+/// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+/// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+/// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+/// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+/// POSSIBILITY OF SUCH DAMAGE.
+/// @endcond
+////////////////////////////////////////////////////////////////////////////////
+
+#include <bcm5719_SHM_CHANNEL3.h>
+
+SHM_CHANNEL_t SHM_CHANNEL3;
+
+void init_bcm5719_SHM_CHANNEL3(void)
+{
+ /** @brief Component Registers for @ref SHM_CHANNEL3. */
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelInfo. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMcid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAen. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelBfilt. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMfilt. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting1. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting2. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelVlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacHigh. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacMid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacLow. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3High. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Mid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Low. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0VlanValid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Vlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1VlanValid. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Vlan. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelStatus. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelResetCount. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelPxe. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDropfil. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSlink. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDbg. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatRx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatDropped. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatTypeErr. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatBadCsum. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllRx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllTx. */
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllAen. */
+
+
+}
diff --git a/simulator/bcm5719_SHM_CHANNEL3_sim.cpp b/simulator/bcm5719_SHM_CHANNEL3_sim.cpp
new file mode 100644
index 0000000..521108e
--- /dev/null
+++ b/simulator/bcm5719_SHM_CHANNEL3_sim.cpp
@@ -0,0 +1,245 @@
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @file bcm5719_SHM_CHANNEL3_sim.cpp
+///
+/// @project bcm5719
+///
+/// @brief bcm5719_SHM_CHANNEL3_sim
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// @copyright Copyright (c) 2018, Evan Lojewski
+/// @cond
+///
+/// All rights reserved.
+///
+/// Redistribution and use in source and binary forms, with or without
+/// modification, are permitted provided that the following conditions are met:
+/// 1. Redistributions of source code must retain the above copyright notice,
+/// this list of conditions and the following disclaimer.
+/// 2. Redistributions in binary form must reproduce the above copyright notice,
+/// this list of conditions and the following disclaimer in the documentation
+/// and/or other materials provided with the distribution.
+/// 3. Neither the name of the <organization> nor the
+/// names of its contributors may be used to endorse or promote products
+/// derived from this software without specific prior written permission.
+///
+////////////////////////////////////////////////////////////////////////////////
+///
+/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+/// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+/// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+/// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+/// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+/// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+/// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+/// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+/// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+/// POSSIBILITY OF SUCH DAMAGE.
+/// @endcond
+////////////////////////////////////////////////////////////////////////////////
+
+#include <stdint.h>
+#include <utility>
+#include <bcm5719_SHM_CHANNEL3.h>
+
+#ifdef __ppc64__
+#define BARRIER() do { asm volatile ("sync 0\neieio\n" ::: "memory"); } while(0)
+#else
+#define BARRIER() do { asm volatile ("" ::: "memory"); } while(0)
+#endif
+
+static uint32_t read_from_ram(uint32_t val, uint32_t offset, void *args)
+{
+ uint8_t *base = (uint8_t *)args;
+ base += offset;
+
+ BARRIER();
+ return *(uint32_t *)base;
+}
+
+static uint32_t write_to_ram(uint32_t val, uint32_t offset, void *args)
+{
+ uint8_t *base = (uint8_t *)args;
+ base += offset;
+
+ BARRIER();
+ *(uint32_t *)base = val;
+ BARRIER();
+ return val;
+}
+
+void init_bcm5719_SHM_CHANNEL3_sim(void *base)
+{
+ SHM_CHANNEL3.mIndexReadCallback = read_from_ram;
+ SHM_CHANNEL3.mIndexReadCallbackArgs = base;
+
+ SHM_CHANNEL3.mIndexWriteCallback = write_to_ram;
+ SHM_CHANNEL3.mIndexWriteCallbackArgs = base;
+
+ /** @brief Component Registers for @ref SHM_CHANNEL3. */
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelInfo. */
+ SHM_CHANNEL3.NcsiChannelInfo.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelInfo.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMcid. */
+ SHM_CHANNEL3.NcsiChannelMcid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMcid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAen. */
+ SHM_CHANNEL3.NcsiChannelAen.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelAen.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelBfilt. */
+ SHM_CHANNEL3.NcsiChannelBfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelBfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMfilt. */
+ SHM_CHANNEL3.NcsiChannelMfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting1. */
+ SHM_CHANNEL3.NcsiChannelSetting1.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelSetting1.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSetting2. */
+ SHM_CHANNEL3.NcsiChannelSetting2.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelSetting2.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelVlan. */
+ SHM_CHANNEL3.NcsiChannelVlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelVlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacHigh. */
+ SHM_CHANNEL3.NcsiChannelAltHostMacHigh.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelAltHostMacHigh.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacMid. */
+ SHM_CHANNEL3.NcsiChannelAltHostMacMid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelAltHostMacMid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelAltHostMacLow. */
+ SHM_CHANNEL3.NcsiChannelAltHostMacLow.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelAltHostMacLow.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0High. */
+ SHM_CHANNEL3.NcsiChannelMac0High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac0High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Mid. */
+ SHM_CHANNEL3.NcsiChannelMac0Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac0Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Low. */
+ SHM_CHANNEL3.NcsiChannelMac0Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac0Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1High. */
+ SHM_CHANNEL3.NcsiChannelMac1High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac1High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Mid. */
+ SHM_CHANNEL3.NcsiChannelMac1Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac1Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Low. */
+ SHM_CHANNEL3.NcsiChannelMac1Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac1Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2High. */
+ SHM_CHANNEL3.NcsiChannelMac2High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac2High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Mid. */
+ SHM_CHANNEL3.NcsiChannelMac2Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac2Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac2Low. */
+ SHM_CHANNEL3.NcsiChannelMac2Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac2Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3High. */
+ SHM_CHANNEL3.NcsiChannelMac3High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac3High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Mid. */
+ SHM_CHANNEL3.NcsiChannelMac3Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac3Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac3Low. */
+ SHM_CHANNEL3.NcsiChannelMac3Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac3Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0VlanValid. */
+ SHM_CHANNEL3.NcsiChannelMac0VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac0VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac0Vlan. */
+ SHM_CHANNEL3.NcsiChannelMac0Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac0Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1VlanValid. */
+ SHM_CHANNEL3.NcsiChannelMac1VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac1VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelMac1Vlan. */
+ SHM_CHANNEL3.NcsiChannelMac1Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelMac1Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelStatus. */
+ SHM_CHANNEL3.NcsiChannelStatus.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelStatus.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelResetCount. */
+ SHM_CHANNEL3.NcsiChannelResetCount.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelResetCount.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelPxe. */
+ SHM_CHANNEL3.NcsiChannelPxe.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelPxe.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDropfil. */
+ SHM_CHANNEL3.NcsiChannelDropfil.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelDropfil.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelSlink. */
+ SHM_CHANNEL3.NcsiChannelSlink.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelSlink.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelDbg. */
+ SHM_CHANNEL3.NcsiChannelDbg.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelDbg.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatRx. */
+ SHM_CHANNEL3.NcsiChannelCtrlstatRx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelCtrlstatRx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatDropped. */
+ SHM_CHANNEL3.NcsiChannelCtrlstatDropped.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelCtrlstatDropped.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatTypeErr. */
+ SHM_CHANNEL3.NcsiChannelCtrlstatTypeErr.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelCtrlstatTypeErr.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatBadCsum. */
+ SHM_CHANNEL3.NcsiChannelCtrlstatBadCsum.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelCtrlstatBadCsum.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllRx. */
+ SHM_CHANNEL3.NcsiChannelCtrlstatAllRx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelCtrlstatAllRx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllTx. */
+ SHM_CHANNEL3.NcsiChannelCtrlstatAllTx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelCtrlstatAllTx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+ /** @brief Bitmap for @ref SHM_CHANNEL_t.NcsiChannelCtrlstatAllAen. */
+ SHM_CHANNEL3.NcsiChannelCtrlstatAllAen.r32.installReadCallback(read_from_ram, (uint8_t *)base);
+ SHM_CHANNEL3.NcsiChannelCtrlstatAllAen.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
+
+
+}
diff --git a/simulator/bcm5719_SHM_sim.cpp b/simulator/bcm5719_SHM_sim.cpp
index 6d402e3..398a5dc 100644
--- a/simulator/bcm5719_SHM_sim.cpp
+++ b/simulator/bcm5719_SHM_sim.cpp
@@ -269,141 +269,5 @@ void init_bcm5719_SHM_sim(void *base)
SHM.ChipId.r32.installReadCallback(read_from_ram, (uint8_t *)base);
SHM.ChipId.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Info. */
- SHM.NcsiChannel0Info.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Info.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mcid. */
- SHM.NcsiChannel0Mcid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mcid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Aen. */
- SHM.NcsiChannel0Aen.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Aen.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Bfilt. */
- SHM.NcsiChannel0Bfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Bfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mfilt. */
- SHM.NcsiChannel0Mfilt.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mfilt.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Setting1. */
- SHM.NcsiChannel0Setting1.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Setting1.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Setting2. */
- SHM.NcsiChannel0Setting2.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Setting2.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Vlan. */
- SHM.NcsiChannel0Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0AltHostMacHigh. */
- SHM.NcsiChannel0AltHostMacHigh.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0AltHostMacHigh.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0AltHostMacMid. */
- SHM.NcsiChannel0AltHostMacMid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0AltHostMacMid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0AltHostMacLow. */
- SHM.NcsiChannel0AltHostMacLow.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0AltHostMacLow.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0High. */
- SHM.NcsiChannel0Mac0High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac0High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0Mid. */
- SHM.NcsiChannel0Mac0Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac0Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0Low. */
- SHM.NcsiChannel0Mac0Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac0Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1High. */
- SHM.NcsiChannel0Mac1High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac1High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1Mid. */
- SHM.NcsiChannel0Mac1Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac1Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1Low. */
- SHM.NcsiChannel0Mac1Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac1Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac2High. */
- SHM.NcsiChannel0Mac2High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac2High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac2Mid. */
- SHM.NcsiChannel0Mac2Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac2Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac2Low. */
- SHM.NcsiChannel0Mac2Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac2Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac3High. */
- SHM.NcsiChannel0Mac3High.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac3High.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac3Mid. */
- SHM.NcsiChannel0Mac3Mid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac3Mid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac3Low. */
- SHM.NcsiChannel0Mac3Low.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac3Low.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0VlanValid. */
- SHM.NcsiChannel0Mac0VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac0VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac0Vlan. */
- SHM.NcsiChannel0Mac0Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac0Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1VlanValid. */
- SHM.NcsiChannel0Mac1VlanValid.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac1VlanValid.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Mac1Vlan. */
- SHM.NcsiChannel0Mac1Vlan.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Mac1Vlan.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Status. */
- SHM.NcsiChannel0Status.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Status.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0ResetCount. */
- SHM.NcsiChannel0ResetCount.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0ResetCount.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Pxe. */
- SHM.NcsiChannel0Pxe.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Pxe.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Dropfil. */
- SHM.NcsiChannel0Dropfil.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Dropfil.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Slink. */
- SHM.NcsiChannel0Slink.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Slink.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0Dbg. */
- SHM.NcsiChannel0Dbg.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0Dbg.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
- /** @brief Bitmap for @ref SHM_t.NcsiChannel0CtrlstatRx. */
- SHM.NcsiChannel0CtrlstatRx.r32.installReadCallback(read_from_ram, (uint8_t *)base);
- SHM.NcsiChannel0CtrlstatRx.r32.installWriteCallback(write_to_ram, (uint8_t *)base);
-
}
diff --git a/simulator/include/CXXRegister.h b/simulator/include/CXXRegister.h
index 6f8836a..d565d4d 100644
--- a/simulator/include/CXXRegister.h
+++ b/simulator/include/CXXRegister.h
@@ -368,12 +368,24 @@ public:
return this->operator=(operator T() + val);
}
+ T operator++(void)
+ {
+ // Read - add - Write
+ return this->operator=(operator T() + 1);
+ }
+
T operator-=(T val)
{
// Read - sub - Write
return this->operator=(operator T() - val);
}
+ T operator--(void)
+ {
+ // Read - sub - Write
+ return this->operator=(operator T() - 1);
+ }
+
T operator*=(T val)
{
// Read - mul - Write
OpenPOWER on IntegriCloud