[PATCH rtems-tools] tester/rtems: add renode implementation
Muhammad Sulthan Mazaya
msulthanmazaya at gmail.com
Wed Jun 28 02:42:27 UTC 2023
Hi Joel and Chris,
Yes, and I will be working on the rsb patch for renode installation next.
Regards,
Mazaya
On Wed, Jun 28, 2023 at 12:34 PM Chris Johns <chrisj at rtems.org> wrote:
> I am as well
>
> Chris
>
> On 28/6/2023 12:25 am, Joel Sherrill wrote:
> > I'm OK with this patch.
> >
> > Is it assuming that you installed renode on your own -- not using the
> RSB?
> >
> > --joel
> >
> > On Mon, Jun 26, 2023 at 5:37 PM Muhammad Sulthan Mazaya
> > <msulthanmazaya at gmail.com <mailto:msulthanmazaya at gmail.com>> wrote:
> >
> > Hi Chris,
> >
> > Yes they are the same. I thought there was an email error, so I
> re-send it
> > twice.
> >
> > On Tue, 27 Jun 2023, 07:46 Chris Johns, <chrisj at rtems.org
> > <mailto:chrisj at rtems.org>> wrote:
> >
> > Hi Muhammad,
> >
> > The patch looks good, thanks.
> >
> > Are the 3 posted patches the same version?
> >
> > Chris
> >
> > On 26/6/2023 2:17 pm, Muhammad Sulthan Mazaya wrote:
> > > Patch for the implementation of renode on rtems-test.
> Currently, renode
> > > installation has not been implemented in rsb. Thus, for
> testing, you can
> > > install renode by referring to the documentation link below.
> > >
> > > Downloads for debian, fedora, arch, macOS, and windows:
> > > https://renode.io/#downloads <https://renode.io/#downloads>
> > >
> > > Alternatively, you can access Renode's GitHub releases:
> > > https://github.com/renode/renode/releases/tag/v1.13.3
> > <https://github.com/renode/renode/releases/tag/v1.13.3>
> > >
> > > You can also build it from source:
> > >
> >
> https://renode.readthedocs.io/en/latest/advanced/building_from_sources.html#building-from-source
> <
> https://renode.readthedocs.io/en/latest/advanced/building_from_sources.html#building-from-source
> >
> > >
> > > This patch consists of changes to test kendrytek210 using
> renode. To
> > > test it, you can build the kendrytek210 test suite as
> instructed in the
> > > rtems-docs (Alan's patch here:
> > https://lists.rtems.org/pipermail/devel/2023-April/074838.html
> > <https://lists.rtems.org/pipermail/devel/2023-April/074838.html
> >).
> > > Then, use the following command to run the test suite.
> > >
> > > rtems-test --rtems-bsp=kendrytek210-renode [test-suite-path]
> > >
> > > ---
> > > .../testing/bsps/kendrytek210-renode.ini | 38 +++++++++++
> > > tester/rtems/testing/renode.cfg | 64
> +++++++++++++++++++
> > > .../testing/renode_scripts/kendrytek210.resc | 53
> +++++++++++++++
> > > 3 files changed, 155 insertions(+)
> > > create mode 100644
> tester/rtems/testing/bsps/kendrytek210-renode.ini
> > > create mode 100644 tester/rtems/testing/renode.cfg
> > > create mode 100644
> tester/rtems/testing/renode_scripts/kendrytek210.resc
> > >
> > > diff --git a/tester/rtems/testing/bsps/kendrytek210-renode.ini
> > b/tester/rtems/testing/bsps/kendrytek210-renode.ini
> > > new file mode 100644
> > > index 0000000..95850c5
> > > --- /dev/null
> > > +++ b/tester/rtems/testing/bsps/kendrytek210-renode.ini
> > > @@ -0,0 +1,38 @@
> > > +#
> > > +# RTEMS Tools Project (http://www.rtems.org/ <
> http://www.rtems.org/>)
> > > +# Copyright 2010-2014 Chris Johns (chrisj at rtems.org
> > <mailto:chrisj at rtems.org>)
> > > +# All rights reserved.
> > > +#
> > > +# This file is part of the RTEMS Tools package in
> 'rtems-tools'.
> > > +#
> > > +# 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.
> > > +#
> > > +# 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.
> > > +#
> > > +
> > > +#
> > > +# The Kendrytek210 Renode BSP
> > > +#
> > > +[kendrytek210-renode]
> > > +bsp = kendrytek210-renode
> > > +arch = riscv
> > > +tester = %{_rtscripts}/renode.cfg
> > > +bsp_resc_script =
> %{_rtscripts}/renode_scripts/kendrytek210.resc
> > > diff --git a/tester/rtems/testing/renode.cfg
> > b/tester/rtems/testing/renode.cfg
> > > new file mode 100644
> > > index 0000000..49e84a5
> > > --- /dev/null
> > > +++ b/tester/rtems/testing/renode.cfg
> > > @@ -0,0 +1,64 @@
> > > +#
> > > +# RTEMS Tools Project (http://www.rtems.org/ <
> http://www.rtems.org/>)
> > > +# Copyright 2010-2014 Chris Johns (chrisj at rtems.org
> > <mailto:chrisj at rtems.org>)
> > > +# All rights reserved.
> > > +#
> > > +# This file is part of the RTEMS Tools package in
> 'rtems-tools'.
> > > +#
> > > +# 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.
> > > +#
> > > +# 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.
> > > +#
> > > +
> > > +#
> > > +# Renode
> > > +#
> > > +# Use a renode command to run the executable in the renode
> simulator.
> > > +#
> > > +
> > > +%include %{_configdir}/base.cfg
> > > +%include %{_configdir}/checks.cfg
> > > +
> > > +#
> > > +# Console.
> > > +#
> > > +%define console_telnet
> > > +%include %{_configdir}/console.cfg
> > > +
> > > +#
> > > +# RTEMS version
> > > +#
> > > +%include %{_rtdir}/rtems/version.cfg
> > > +
> > > +
> > > +#
> > > +# Renode executable
> > > +#
> > > +%define renode_cmd renode --hide-monitor
> > > +%define binary_opts -e $bin?=@%{test_executable}
> > > +%define start_opts -e "s @%{bsp_resc_script}"
> > > +%define trim_command sed 's/.*\[output\] //'
> > > +
> > > +
> > > +#
> > > +# Executable
> > > +#
> > > +%execute %{renode_cmd} %{binary_opts} %{start_opts} |
> %{trim_command}
> > > diff --git
> a/tester/rtems/testing/renode_scripts/kendrytek210.resc
> > b/tester/rtems/testing/renode_scripts/kendrytek210.resc
> > > new file mode 100644
> > > index 0000000..fe13aa8
> > > --- /dev/null
> > > +++ b/tester/rtems/testing/renode_scripts/kendrytek210.resc
> > > @@ -0,0 +1,53 @@
> > > +using sysbus
> > > +using monitor
> > > +
> > > +mach create "K210"
> > > +
> > > +machine LoadPlatformDescription
> @platforms/cpus/kendryte_k210.repl
> > > +
> > > +path add @/
> > > +
> > > +showAnalyzer "uartAnalyzer" uart
> > Antmicro.Renode.Analyzers.LoggingUartAnalyzer
> > > +uartAnalyzer TimestampFormat None
> > > +
> > > +set report_repeating_line """
> > > +from Antmicro.Renode.Logging import ConsoleBackend
> > > +ConsoleBackend.Instance.ReportRepeatingLines = True
> > > +"""
> > > +
> > > +set add_hook """
> > > +def match(line):
> > > + ok_to_kill_lines = [
> > > + '*** TEST STATE: USER_INPUT',
> > > + '*** TEST STATE: BENCHMARK',
> > > + '*** END OF TEST ',
> > > + '*** FATAL ***'
> > > + ]
> > > + return any(l in line for l in ok_to_kill_lines)
> > > +
> > > +def hook(line):
> > > + monitor.Parse("q")
> > > +
> > >
> >
> +Antmicro.Renode.Hooks.UartHooksExtensions.AddLineHook(monitor.Machine["sysbus.uart"],
> match, hook)
> > > +"""
> > > +
> > > +python $add_hook
> > > +
> > > +python $report_repeating_line
> > > +
> > > +sysbus Tag <0x50440000 0x10000> "SYSCTL"
> > > +sysbus Tag <0x50440018 0x4> "pll_lock" 0xFFFFFFFF
> > > +sysbus Tag <0x5044000C 0x4> "pll1"
> > > +sysbus Tag <0x50440008 0x4> "pll0"
> > > +sysbus Tag <0x50440020 0x4> "clk_sel0"
> > > +sysbus Tag <0x50440028 0x4> "clk_en_cent"
> > > +sysbus Tag <0x5044002c 0x4> "clk_en_peri"
> > > +
> > > +# enable uart tx
> > > +uart WriteDoubleWord 0x8 0x1
> > > +
> > > +macro reset
> > > +"""
> > > + sysbus LoadELF $bin
> > > +"""
> > > +runMacro $reset
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org <mailto:devel at rtems.org>
> > http://lists.rtems.org/mailman/listinfo/devel
> > <http://lists.rtems.org/mailman/listinfo/devel>
> >
> > _______________________________________________
> > devel mailing list
> > devel at rtems.org <mailto:devel at rtems.org>
> > http://lists.rtems.org/mailman/listinfo/devel
> > <http://lists.rtems.org/mailman/listinfo/devel>
> >
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20230628/fe0835af/attachment-0001.htm>
More information about the devel
mailing list