diff options
author | Evan Lojewski <github@meklort.com> | 2019-04-14 16:37:22 -0600 |
---|---|---|
committer | Evan Lojewski <github@meklort.com> | 2019-04-14 16:37:22 -0600 |
commit | 0cf10183e0f05c643b8c9112ef74efa2a8396eab (patch) | |
tree | 556592a81bbbc8f4c9dc84d0f6adae2aeded8232 /simulator | |
parent | aef26ac93ecc586ca49d3352835afb37901c54e0 (diff) | |
download | bcm5719-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.txt | 8 | ||||
-rw-r--r-- | simulator/HAL.cpp | 13 | ||||
-rw-r--r-- | simulator/bcm5719_SHM.cpp | 68 | ||||
-rw-r--r-- | simulator/bcm5719_SHM_CHANNEL0.cpp | 133 | ||||
-rw-r--r-- | simulator/bcm5719_SHM_CHANNEL0_sim.cpp | 245 | ||||
-rw-r--r-- | simulator/bcm5719_SHM_CHANNEL1.cpp | 133 | ||||
-rw-r--r-- | simulator/bcm5719_SHM_CHANNEL1_sim.cpp | 245 | ||||
-rw-r--r-- | simulator/bcm5719_SHM_CHANNEL2.cpp | 133 | ||||
-rw-r--r-- | simulator/bcm5719_SHM_CHANNEL2_sim.cpp | 245 | ||||
-rw-r--r-- | simulator/bcm5719_SHM_CHANNEL3.cpp | 133 | ||||
-rw-r--r-- | simulator/bcm5719_SHM_CHANNEL3_sim.cpp | 245 | ||||
-rw-r--r-- | simulator/bcm5719_SHM_sim.cpp | 136 | ||||
-rw-r--r-- | simulator/include/CXXRegister.h | 12 |
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 |