diff options
| author | Evan Lojewski <github@meklort.com> | 2019-04-28 18:07:55 -0600 |
|---|---|---|
| committer | Evan Lojewski <github@meklort.com> | 2019-04-28 18:07:55 -0600 |
| commit | c6ebf8da8d5baa75ac76ffb58dbbbed519b4e7fa (patch) | |
| tree | e17da90640ea292ab3e5784646907eea6a96edfa /simulator | |
| parent | 387a6bb8ff17554c4a54892b8de0c715a0b010a6 (diff) | |
| download | bcm5719-ortega-c6ebf8da8d5baa75ac76ffb58dbbbed519b4e7fa.tar.gz bcm5719-ortega-c6ebf8da8d5baa75ac76ffb58dbbbed519b4e7fa.zip | |
Update tx port ipxact definition and regen.
Diffstat (limited to 'simulator')
| -rw-r--r-- | simulator/APE_TX_PORT.cpp | 55 | ||||
| -rw-r--r-- | simulator/APE_TX_PORT1.cpp | 55 | ||||
| -rw-r--r-- | simulator/APE_TX_PORT1_sim.cpp | 99 | ||||
| -rw-r--r-- | simulator/APE_TX_PORT2.cpp | 55 | ||||
| -rw-r--r-- | simulator/APE_TX_PORT2_sim.cpp | 99 | ||||
| -rw-r--r-- | simulator/APE_TX_PORT3.cpp | 55 | ||||
| -rw-r--r-- | simulator/APE_TX_PORT3_sim.cpp | 99 | ||||
| -rw-r--r-- | simulator/APE_TX_PORT_sim.cpp | 99 |
8 files changed, 616 insertions, 0 deletions
diff --git a/simulator/APE_TX_PORT.cpp b/simulator/APE_TX_PORT.cpp new file mode 100644 index 0000000..0c23069 --- /dev/null +++ b/simulator/APE_TX_PORT.cpp @@ -0,0 +1,55 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// @file APE_TX_PORT.cpp +/// +/// @project ape +/// +/// @brief APE_TX_PORT +/// +//////////////////////////////////////////////////////////////////////////////// +/// +//////////////////////////////////////////////////////////////////////////////// +/// +/// @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 <APE_TX_PORT.h> + +TX_PORT_t TX_PORT; + +void init_APE_TX_PORT(void) +{ + /** @brief Component Registers for @ref TX_PORT. */ + /** @brief Bitmap for @ref TX_PORT_t.Out. */ + + +} diff --git a/simulator/APE_TX_PORT1.cpp b/simulator/APE_TX_PORT1.cpp new file mode 100644 index 0000000..78d8235 --- /dev/null +++ b/simulator/APE_TX_PORT1.cpp @@ -0,0 +1,55 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// @file APE_TX_PORT1.cpp +/// +/// @project ape +/// +/// @brief APE_TX_PORT1 +/// +//////////////////////////////////////////////////////////////////////////////// +/// +//////////////////////////////////////////////////////////////////////////////// +/// +/// @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 <APE_TX_PORT1.h> + +TX_PORT_t TX_PORT1; + +void init_APE_TX_PORT1(void) +{ + /** @brief Component Registers for @ref TX_PORT1. */ + /** @brief Bitmap for @ref TX_PORT1_t.Out. */ + + +} diff --git a/simulator/APE_TX_PORT1_sim.cpp b/simulator/APE_TX_PORT1_sim.cpp new file mode 100644 index 0000000..2903ec7 --- /dev/null +++ b/simulator/APE_TX_PORT1_sim.cpp @@ -0,0 +1,99 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// @file APE_TX_PORT1_sim.cpp +/// +/// @project ape +/// +/// @brief APE_TX_PORT1_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.h> +#include <APE_TX_PORT1.h> + +static uint32_t loader_read_mem(uint32_t val, uint32_t offset, void *args) +{ + uint32_t addr = (uint32_t)((uint64_t)args); + addr += offset; + + SHM.LoaderArg0.r32 = addr; + SHM.LoaderCommand.bits.Command = SHM_LOADER_COMMAND_COMMAND_READ_MEM; + + // Wait for command to be handled. + while(0 != SHM.LoaderCommand.bits.Command); + + return (uint32_t)SHM.LoaderArg0.r32; +} + +static uint32_t loader_write_mem(uint32_t val, uint32_t offset, void *args) +{ + uint32_t addr = (uint32_t)((uint64_t)args); + addr += offset; + + SHM.LoaderArg0.r32 = addr; + SHM.LoaderArg1.r32 = val; + SHM.LoaderCommand.bits.Command = SHM_LOADER_COMMAND_COMMAND_WRITE_MEM; + + // Wait for command to be handled. + while(0 != SHM.LoaderCommand.bits.Command); + + return val; +} + +void init_APE_TX_PORT1_sim(void *arg0) +{ + (void)arg0; // unused + void* base = (void*)0xa0022000; + + TX_PORT1.mIndexReadCallback = loader_read_mem; + TX_PORT1.mIndexReadCallbackArgs = base; + + TX_PORT1.mIndexWriteCallback = loader_write_mem; + TX_PORT1.mIndexWriteCallbackArgs = base; + + /** @brief Component Registers for @ref TX_PORT1. */ + /** @brief Bitmap for @ref TX_PORT1_t.Out. */ + for(int i = 0; i < 2048; i++) + { + TX_PORT1.Out[i].r32.installReadCallback(loader_read_mem, (uint8_t *)base); + TX_PORT1.Out[i].r32.installWriteCallback(loader_write_mem, (uint8_t *)base); + } + + +} diff --git a/simulator/APE_TX_PORT2.cpp b/simulator/APE_TX_PORT2.cpp new file mode 100644 index 0000000..647cb18 --- /dev/null +++ b/simulator/APE_TX_PORT2.cpp @@ -0,0 +1,55 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// @file APE_TX_PORT2.cpp +/// +/// @project ape +/// +/// @brief APE_TX_PORT2 +/// +//////////////////////////////////////////////////////////////////////////////// +/// +//////////////////////////////////////////////////////////////////////////////// +/// +/// @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 <APE_TX_PORT2.h> + +TX_PORT_t TX_PORT2; + +void init_APE_TX_PORT2(void) +{ + /** @brief Component Registers for @ref TX_PORT2. */ + /** @brief Bitmap for @ref TX_PORT2_t.Out. */ + + +} diff --git a/simulator/APE_TX_PORT2_sim.cpp b/simulator/APE_TX_PORT2_sim.cpp new file mode 100644 index 0000000..52f4a08 --- /dev/null +++ b/simulator/APE_TX_PORT2_sim.cpp @@ -0,0 +1,99 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// @file APE_TX_PORT2_sim.cpp +/// +/// @project ape +/// +/// @brief APE_TX_PORT2_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.h> +#include <APE_TX_PORT2.h> + +static uint32_t loader_read_mem(uint32_t val, uint32_t offset, void *args) +{ + uint32_t addr = (uint32_t)((uint64_t)args); + addr += offset; + + SHM.LoaderArg0.r32 = addr; + SHM.LoaderCommand.bits.Command = SHM_LOADER_COMMAND_COMMAND_READ_MEM; + + // Wait for command to be handled. + while(0 != SHM.LoaderCommand.bits.Command); + + return (uint32_t)SHM.LoaderArg0.r32; +} + +static uint32_t loader_write_mem(uint32_t val, uint32_t offset, void *args) +{ + uint32_t addr = (uint32_t)((uint64_t)args); + addr += offset; + + SHM.LoaderArg0.r32 = addr; + SHM.LoaderArg1.r32 = val; + SHM.LoaderCommand.bits.Command = SHM_LOADER_COMMAND_COMMAND_WRITE_MEM; + + // Wait for command to be handled. + while(0 != SHM.LoaderCommand.bits.Command); + + return val; +} + +void init_APE_TX_PORT2_sim(void *arg0) +{ + (void)arg0; // unused + void* base = (void*)0xa0024000; + + TX_PORT2.mIndexReadCallback = loader_read_mem; + TX_PORT2.mIndexReadCallbackArgs = base; + + TX_PORT2.mIndexWriteCallback = loader_write_mem; + TX_PORT2.mIndexWriteCallbackArgs = base; + + /** @brief Component Registers for @ref TX_PORT2. */ + /** @brief Bitmap for @ref TX_PORT2_t.Out. */ + for(int i = 0; i < 2048; i++) + { + TX_PORT2.Out[i].r32.installReadCallback(loader_read_mem, (uint8_t *)base); + TX_PORT2.Out[i].r32.installWriteCallback(loader_write_mem, (uint8_t *)base); + } + + +} diff --git a/simulator/APE_TX_PORT3.cpp b/simulator/APE_TX_PORT3.cpp new file mode 100644 index 0000000..9c28702 --- /dev/null +++ b/simulator/APE_TX_PORT3.cpp @@ -0,0 +1,55 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// @file APE_TX_PORT3.cpp +/// +/// @project ape +/// +/// @brief APE_TX_PORT3 +/// +//////////////////////////////////////////////////////////////////////////////// +/// +//////////////////////////////////////////////////////////////////////////////// +/// +/// @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 <APE_TX_PORT3.h> + +TX_PORT_t TX_PORT3; + +void init_APE_TX_PORT3(void) +{ + /** @brief Component Registers for @ref TX_PORT3. */ + /** @brief Bitmap for @ref TX_PORT3_t.Out. */ + + +} diff --git a/simulator/APE_TX_PORT3_sim.cpp b/simulator/APE_TX_PORT3_sim.cpp new file mode 100644 index 0000000..27b66dd --- /dev/null +++ b/simulator/APE_TX_PORT3_sim.cpp @@ -0,0 +1,99 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// @file APE_TX_PORT3_sim.cpp +/// +/// @project ape +/// +/// @brief APE_TX_PORT3_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.h> +#include <APE_TX_PORT3.h> + +static uint32_t loader_read_mem(uint32_t val, uint32_t offset, void *args) +{ + uint32_t addr = (uint32_t)((uint64_t)args); + addr += offset; + + SHM.LoaderArg0.r32 = addr; + SHM.LoaderCommand.bits.Command = SHM_LOADER_COMMAND_COMMAND_READ_MEM; + + // Wait for command to be handled. + while(0 != SHM.LoaderCommand.bits.Command); + + return (uint32_t)SHM.LoaderArg0.r32; +} + +static uint32_t loader_write_mem(uint32_t val, uint32_t offset, void *args) +{ + uint32_t addr = (uint32_t)((uint64_t)args); + addr += offset; + + SHM.LoaderArg0.r32 = addr; + SHM.LoaderArg1.r32 = val; + SHM.LoaderCommand.bits.Command = SHM_LOADER_COMMAND_COMMAND_WRITE_MEM; + + // Wait for command to be handled. + while(0 != SHM.LoaderCommand.bits.Command); + + return val; +} + +void init_APE_TX_PORT3_sim(void *arg0) +{ + (void)arg0; // unused + void* base = (void*)0xa0026000; + + TX_PORT3.mIndexReadCallback = loader_read_mem; + TX_PORT3.mIndexReadCallbackArgs = base; + + TX_PORT3.mIndexWriteCallback = loader_write_mem; + TX_PORT3.mIndexWriteCallbackArgs = base; + + /** @brief Component Registers for @ref TX_PORT3. */ + /** @brief Bitmap for @ref TX_PORT3_t.Out. */ + for(int i = 0; i < 2048; i++) + { + TX_PORT3.Out[i].r32.installReadCallback(loader_read_mem, (uint8_t *)base); + TX_PORT3.Out[i].r32.installWriteCallback(loader_write_mem, (uint8_t *)base); + } + + +} diff --git a/simulator/APE_TX_PORT_sim.cpp b/simulator/APE_TX_PORT_sim.cpp new file mode 100644 index 0000000..1e7bac7 --- /dev/null +++ b/simulator/APE_TX_PORT_sim.cpp @@ -0,0 +1,99 @@ +//////////////////////////////////////////////////////////////////////////////// +/// +/// @file APE_TX_PORT_sim.cpp +/// +/// @project ape +/// +/// @brief APE_TX_PORT_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.h> +#include <APE_TX_PORT.h> + +static uint32_t loader_read_mem(uint32_t val, uint32_t offset, void *args) +{ + uint32_t addr = (uint32_t)((uint64_t)args); + addr += offset; + + SHM.LoaderArg0.r32 = addr; + SHM.LoaderCommand.bits.Command = SHM_LOADER_COMMAND_COMMAND_READ_MEM; + + // Wait for command to be handled. + while(0 != SHM.LoaderCommand.bits.Command); + + return (uint32_t)SHM.LoaderArg0.r32; +} + +static uint32_t loader_write_mem(uint32_t val, uint32_t offset, void *args) +{ + uint32_t addr = (uint32_t)((uint64_t)args); + addr += offset; + + SHM.LoaderArg0.r32 = addr; + SHM.LoaderArg1.r32 = val; + SHM.LoaderCommand.bits.Command = SHM_LOADER_COMMAND_COMMAND_WRITE_MEM; + + // Wait for command to be handled. + while(0 != SHM.LoaderCommand.bits.Command); + + return val; +} + +void init_APE_TX_PORT_sim(void *arg0) +{ + (void)arg0; // unused + void* base = (void*)0xa0020000; + + TX_PORT.mIndexReadCallback = loader_read_mem; + TX_PORT.mIndexReadCallbackArgs = base; + + TX_PORT.mIndexWriteCallback = loader_write_mem; + TX_PORT.mIndexWriteCallbackArgs = base; + + /** @brief Component Registers for @ref TX_PORT. */ + /** @brief Bitmap for @ref TX_PORT_t.Out. */ + for(int i = 0; i < 2048; i++) + { + TX_PORT.Out[i].r32.installReadCallback(loader_read_mem, (uint8_t *)base); + TX_PORT.Out[i].r32.installWriteCallback(loader_write_mem, (uint8_t *)base); + } + + +} |

