[PULL 0/1] tricore queue

Bastian Koppelmann posted 1 patch 3 years, 8 months ago
Test docker-quick@centos7 passed
Test docker-mingw@fedora passed
Test checkpatch passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200901095924.21738-1-kbastian@mail.uni-paderborn.de
Maintainers: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
There is a newer version of this series
hw/tricore/Kconfig             |   8 ++
hw/tricore/meson.build         |   2 +
hw/tricore/tc27x_soc.c         | 246 +++++++++++++++++++++++++++++++++++++++++
hw/tricore/triboard.c          | 102 +++++++++++++++++
include/hw/tricore/tc27x_soc.h | 139 +++++++++++++++++++++++
include/hw/tricore/triboard.h  |  53 +++++++++
6 files changed, 550 insertions(+)
create mode 100644 hw/tricore/tc27x_soc.c
create mode 100644 hw/tricore/triboard.c
create mode 100644 include/hw/tricore/tc27x_soc.h
create mode 100644 include/hw/tricore/triboard.h
[PULL 0/1] tricore queue
Posted by Bastian Koppelmann 3 years, 8 months ago
The following changes since commit 2f4c51c0f384d7888a04b4815861e6d5fd244d75:

  Merge remote-tracking branch 'remotes/kraxel/tags/usb-20200831-pull-request' into staging (2020-08-31 19:39:13 +0100)

are available in the Git repository at:

  https://github.com/bkoppelmann/qemu.git tags/pull-tricore-20200901

for you to fetch changes up to 2c15af48abb71b3cddadd63c5bb416b250f53fef:

  tricore: added triboard with tc27x_soc (2020-09-01 11:54:11 +0200)

----------------------------------------------------------------
Add the Infineon Aurix D-Step board

----------------------------------------------------------------
Andreas Konopik (1):
      tricore: added triboard with tc27x_soc

 hw/tricore/Kconfig             |   8 ++
 hw/tricore/meson.build         |   2 +
 hw/tricore/tc27x_soc.c         | 246 +++++++++++++++++++++++++++++++++++++++++
 hw/tricore/triboard.c          | 102 +++++++++++++++++
 include/hw/tricore/tc27x_soc.h | 139 +++++++++++++++++++++++
 include/hw/tricore/triboard.h  |  53 +++++++++
 6 files changed, 550 insertions(+)
 create mode 100644 hw/tricore/tc27x_soc.c
 create mode 100644 hw/tricore/triboard.c
 create mode 100644 include/hw/tricore/tc27x_soc.h
 create mode 100644 include/hw/tricore/triboard.h

Re: [PULL 0/1] tricore queue
Posted by Peter Maydell 3 years, 8 months ago
On Tue, 1 Sep 2020 at 10:59, Bastian Koppelmann
<kbastian@mail.uni-paderborn.de> wrote:
>
> The following changes since commit 2f4c51c0f384d7888a04b4815861e6d5fd244d75:
>
>   Merge remote-tracking branch 'remotes/kraxel/tags/usb-20200831-pull-request' into staging (2020-08-31 19:39:13 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/bkoppelmann/qemu.git tags/pull-tricore-20200901
>
> for you to fetch changes up to 2c15af48abb71b3cddadd63c5bb416b250f53fef:
>
>   tricore: added triboard with tc27x_soc (2020-09-01 11:54:11 +0200)
>
> ----------------------------------------------------------------
> Add the Infineon Aurix D-Step board
>
> ----------------------------------------------------------------
> Andreas Konopik (1):
>       tricore: added triboard with tc27x_soc

This fails "make check" (all platforms):

OSX fails like this:

MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}
QTEST_QEMU_IMG=./qemu-img
G_TEST_DBUS_DAEMON=/Users/pm215/src/qemu-for-merges/tests/dbus-vmstate-daemon.sh
QTEST_QEMU_BINARY=./qemu-system-tricore
tests/qtest/device-introspect-test --tap -k
PASS 1 qtest-tricore: device-introspect-test /tricore/device/introspect/list
PASS 2 qtest-tricore: device-introspect-test
/tricore/device/introspect/list-fields
PASS 3 qtest-tricore: device-introspect-test /tricore/device/introspect/none
PASS 4 qtest-tricore: device-introspect-test /tricore/device/introspect/abstract
PASS 5 qtest-tricore: device-introspect-test
/tricore/device/introspect/abstract-interfaces
RAMBlock "CPU0.DSPR" already registered, abort!
Broken pipe
../../tests/qtest/libqtest.c:175: kill_qemu() detected QEMU death from
signal 6 (Abort trap: 6)
ERROR qtest-tricore: device-introspect-test - too few tests run
(expected 6, got 5)
make: *** [Makefile.mtest:1429: check-qtest] Error 1

others like this:

MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}
QTEST_QEMU_IMG=./qemu-img
G_TEST_DBUS_DAEMON=/home/pm/qemu/tests/dbus-vmstate-daemon.sh
QTEST_QEMU_BINARY=./qemu-system-tricore
tests/qtest/device-introspect-test --tap -k
PASS 1 qtest-tricore: device-introspect-test /tricore/device/introspect/list
PASS 2 qtest-tricore: device-introspect-test
/tricore/device/introspect/list-fields
PASS 3 qtest-tricore: device-introspect-test /tricore/device/introspect/none
PASS 4 qtest-tricore: device-introspect-test /tricore/device/introspect/abstract
PASS 5 qtest-tricore: device-introspect-test
/tricore/device/introspect/abstract-interfaces
Broken pipe
../../tests/qtest/libqtest.c:175: kill_qemu() detected QEMU death from
signal 11 (Segmentation fault)
Aborted
ERROR qtest-tricore: device-introspect-test - too few tests run
(expected 6, got 5)

thanks
-- PMM

Re: [PULL 0/1] tricore queue
Posted by Bastian Koppelmann 3 years, 8 months ago
On Tue, Sep 01, 2020 at 03:18:40PM +0100, Peter Maydell wrote:
> On Tue, 1 Sep 2020 at 10:59, Bastian Koppelmann
> <kbastian@mail.uni-paderborn.de> wrote:
> >
> > The following changes since commit 2f4c51c0f384d7888a04b4815861e6d5fd244d75:
> >
> >   Merge remote-tracking branch 'remotes/kraxel/tags/usb-20200831-pull-request' into staging (2020-08-31 19:39:13 +0100)
> >
> > are available in the Git repository at:
> >
> >   https://github.com/bkoppelmann/qemu.git tags/pull-tricore-20200901
> >
> > for you to fetch changes up to 2c15af48abb71b3cddadd63c5bb416b250f53fef:
> >
> >   tricore: added triboard with tc27x_soc (2020-09-01 11:54:11 +0200)
> >
> > ----------------------------------------------------------------
> > Add the Infineon Aurix D-Step board
> >
> > ----------------------------------------------------------------
> > Andreas Konopik (1):
> >       tricore: added triboard with tc27x_soc
> 
> This fails "make check" (all platforms):
> 
> OSX fails like this:
> 
> MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}
> QTEST_QEMU_IMG=./qemu-img
> G_TEST_DBUS_DAEMON=/Users/pm215/src/qemu-for-merges/tests/dbus-vmstate-daemon.sh
> QTEST_QEMU_BINARY=./qemu-system-tricore
> tests/qtest/device-introspect-test --tap -k
> PASS 1 qtest-tricore: device-introspect-test /tricore/device/introspect/list
> PASS 2 qtest-tricore: device-introspect-test
> /tricore/device/introspect/list-fields
> PASS 3 qtest-tricore: device-introspect-test /tricore/device/introspect/none
> PASS 4 qtest-tricore: device-introspect-test /tricore/device/introspect/abstract
> PASS 5 qtest-tricore: device-introspect-test
> /tricore/device/introspect/abstract-interfaces
> RAMBlock "CPU0.DSPR" already registered, abort!
> Broken pipe
> ../../tests/qtest/libqtest.c:175: kill_qemu() detected QEMU death from
> signal 6 (Abort trap: 6)
> ERROR qtest-tricore: device-introspect-test - too few tests run
> (expected 6, got 5)
> make: *** [Makefile.mtest:1429: check-qtest] Error 1

This patch seems to fix this problem. 

diff --git a/hw/tricore/tc27x_soc.c b/hw/tricore/tc27x_soc.c
index 4f28e39c8c..2c7aa8e901 100644
--- a/hw/tricore/tc27x_soc.c
+++ b/hw/tricore/tc27x_soc.c
@@ -100,9 +100,9 @@ static void make_alias(MemoryRegion *mr, const char *name,
     memory_region_add_subregion(get_system_memory(), base, mr);
 }
 
-static void tc27x_soc_init_memory_mapping(Object *obj)
+static void tc27x_soc_init_memory_mapping(DeviceState *dev_soc)
 {
-    TC27XSoCState *s = TC27X_SOC(obj);
+    TC27XSoCState *s = TC27X_SOC(dev_soc);
     TC27XSoCClass *sc = TC27X_SOC_GET_CLASS(s);
 
     make_ram(&s->cpu0mem.dspr, "CPU0.DSPR",
@@ -192,6 +192,7 @@ static void tc27x_soc_realize(DeviceState *dev_soc, Error **errp)
         error_propagate(errp, err);
         return;
     }
+    tc27x_soc_init_memory_mapping(dev_soc);
 }
 
 static void tc27x_soc_init(Object *obj)
@@ -201,7 +202,6 @@ static void tc27x_soc_init(Object *obj)
 
     object_initialize_child(obj, "tc27x", &s->cpu, sc->cpu_type);
 
-    tc27x_soc_init_memory_mapping(obj);
 }

However, it just leads to the next one:

Running test qtest-tricore: device-introspect-test
Running test qtest-tricore: machine-none-test
Running test qtest-tricore: qmp-test
Running test qtest-tricore: qmp-cmd-test
Running test qtest-tricore: qom-test
Bad address
qemu-system-tricore: no kernel file '(null)'
Broken pipe
../tests/qtest/libqtest.c:166: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0)
ERROR qtest-tricore: qom-test - too few tests run (expected 3, got 1)

Andreas, can you look into this?

Thanks,
Bastian

RE: [PULL 0/1] tricore queue
Posted by Konopik, Andreas (EFS-GH2) 3 years, 6 months ago
Hi Bastian,

sorry for the late reply.

On Wed, 2 Sep 2020 at 14:56, Bastian Koppelmann
<kbastian@mail.uni-paderborn.de> wrote:
> On Tue, Sep 01, 2020 at 03:18:40PM +0100, Peter Maydell wrote:
> > On Tue, 1 Sep 2020 at 10:59, Bastian Koppelmann
> > <kbastian@mail.uni-paderborn.de> wrote:
> > >
> > > The following changes since commit
> 2f4c51c0f384d7888a04b4815861e6d5fd244d75:
> > >
> > >   Merge remote-tracking branch
> > > 'remotes/kraxel/tags/usb-20200831-pull-request' into staging
> > > (2020-08-31 19:39:13 +0100)
> > >
> > > are available in the Git repository at:
> > >
> > >   https://github.com/bkoppelmann/qemu.git tags/pull-tricore-20200901
> > >
> > > for you to fetch changes up to
> 2c15af48abb71b3cddadd63c5bb416b250f53fef:
> > >
> > >   tricore: added triboard with tc27x_soc (2020-09-01 11:54:11 +0200)
> > >
> > > ----------------------------------------------------------------
> > > Add the Infineon Aurix D-Step board
> > >
> > > ----------------------------------------------------------------
> > > Andreas Konopik (1):
> > >       tricore: added triboard with tc27x_soc
> >
> > This fails "make check" (all platforms):
> >
> > OSX fails like this:
> >
> > MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}
> > QTEST_QEMU_IMG=./qemu-img
> > G_TEST_DBUS_DAEMON=/Users/pm215/src/qemu-for-merges/tests/dbus-
> vmstate
> > -daemon.sh QTEST_QEMU_BINARY=./qemu-system-tricore
> > tests/qtest/device-introspect-test --tap -k PASS 1 qtest-tricore:
> > device-introspect-test /tricore/device/introspect/list PASS 2
> > qtest-tricore: device-introspect-test
> > /tricore/device/introspect/list-fields
> > PASS 3 qtest-tricore: device-introspect-test
> > /tricore/device/introspect/none PASS 4 qtest-tricore:
> > device-introspect-test /tricore/device/introspect/abstract
> > PASS 5 qtest-tricore: device-introspect-test
> > /tricore/device/introspect/abstract-interfaces
> > RAMBlock "CPU0.DSPR" already registered, abort!
> > Broken pipe
> > ../../tests/qtest/libqtest.c:175: kill_qemu() detected QEMU death from
> > signal 6 (Abort trap: 6) ERROR qtest-tricore: device-introspect-test -
> > too few tests run (expected 6, got 5)
> > make: *** [Makefile.mtest:1429: check-qtest] Error 1
> 
> This patch seems to fix this problem.
> 
> diff --git a/hw/tricore/tc27x_soc.c b/hw/tricore/tc27x_soc.c index
> 4f28e39c8c..2c7aa8e901 100644
> --- a/hw/tricore/tc27x_soc.c
> +++ b/hw/tricore/tc27x_soc.c
> @@ -100,9 +100,9 @@ static void make_alias(MemoryRegion *mr, const char
> *name,
>      memory_region_add_subregion(get_system_memory(), base, mr);  }
> 
> -static void tc27x_soc_init_memory_mapping(Object *obj)
> +static void tc27x_soc_init_memory_mapping(DeviceState *dev_soc)
>  {
> -    TC27XSoCState *s = TC27X_SOC(obj);
> +    TC27XSoCState *s = TC27X_SOC(dev_soc);
>      TC27XSoCClass *sc = TC27X_SOC_GET_CLASS(s);
> 
>      make_ram(&s->cpu0mem.dspr, "CPU0.DSPR", @@ -192,6 +192,7 @@ static
> void tc27x_soc_realize(DeviceState *dev_soc, Error **errp)
>          error_propagate(errp, err);
>          return;
>      }
> +    tc27x_soc_init_memory_mapping(dev_soc);
>  }
> 
>  static void tc27x_soc_init(Object *obj) @@ -201,7 +202,6 @@ static void
> tc27x_soc_init(Object *obj)
> 
>      object_initialize_child(obj, "tc27x", &s->cpu, sc->cpu_type);
> 
> -    tc27x_soc_init_memory_mapping(obj);
>  }
> 
> However, it just leads to the next one:
> 
> Running test qtest-tricore: device-introspect-test Running test qtest-tricore:
> machine-none-test Running test qtest-tricore: qmp-test Running test qtest-
> tricore: qmp-cmd-test Running test qtest-tricore: qom-test Bad address
> qemu-system-tricore: no kernel file '(null)'
> Broken pipe
> ../tests/qtest/libqtest.c:166: kill_qemu() tried to terminate QEMU process but
> encountered exit status 1 (expected 0) ERROR qtest-tricore: qom-test - too few
> tests run (expected 3, got 1)
> 
> Andreas, can you look into this?

I looked multiple times into this problem. With trial and error I found a working
patch today. I also included Thomas Huths suggestions regarding KConfig and
meson.build
(https://lists.nongnu.org/archive/html/qemu-devel/2020-09/msg00867.html),
so feel free to modify. I will send the patch as soon as possible.
 
> Thanks,
> Bastian

Kind regards,

Andreas