All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] qemu-doc: Update MIPS/nanoMIPS info
@ 2018-11-28 13:43 Stefan Markovic
  2018-11-28 13:43 ` [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information Stefan Markovic
  2018-11-28 13:43 ` [Qemu-devel] [PATCH 2/2] docs/qemu-cpu-models: Add MIPS/nanoMIPS QEMU supported CPU models Stefan Markovic
  0 siblings, 2 replies; 10+ messages in thread
From: Stefan Markovic @ 2018-11-28 13:43 UTC (permalink / raw)
  To: qemu-devel
  Cc: amarkovic, smarkovic, pjovanovic, peter.maydell, huth, hpoussin,
	pburton, jhogan

From: Stefan Markovic <smarkovic@wavecomp.com>

Update QEMU documentation with nanoMIPS ISA info and add list of QEMU
supported MIPS/nanoMIPS CPU models.

Stefan Markovic (2):
  qemu-doc: Add nanoMIPS ISA information
  docs/qemu-cpu-models: Add MIPS/nanoMIPS QEMU supported CPU models

 docs/qemu-cpu-models.texi | 163 +++++++++++++++++++++++++++++++++++++++++++++-
 qemu-doc.texi             |  29 +++++++++
 2 files changed, 190 insertions(+), 2 deletions(-)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information
  2018-11-28 13:43 [Qemu-devel] [PATCH 0/2] qemu-doc: Update MIPS/nanoMIPS info Stefan Markovic
@ 2018-11-28 13:43 ` Stefan Markovic
  2018-11-28 14:31   ` Philippe Mathieu-Daudé
  2019-01-24 15:43   ` Aleksandar Markovic
  2018-11-28 13:43 ` [Qemu-devel] [PATCH 2/2] docs/qemu-cpu-models: Add MIPS/nanoMIPS QEMU supported CPU models Stefan Markovic
  1 sibling, 2 replies; 10+ messages in thread
From: Stefan Markovic @ 2018-11-28 13:43 UTC (permalink / raw)
  To: qemu-devel
  Cc: amarkovic, smarkovic, pjovanovic, peter.maydell, huth, hpoussin,
	pburton, jhogan

From: Stefan Markovic <smarkovic@wavecomp.com>

Add nanoMIPS information in qemu-doc.texi with example of usage
included.

Signed-off-by: Stefan Markovic <smarkovic@wavecomp.com>
---
 qemu-doc.texi | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/qemu-doc.texi b/qemu-doc.texi
index f7ad1df..6ef593d 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -1994,6 +1994,10 @@ Set the emulated machine type. The default is sun4u.
 @section MIPS System emulator
 @cindex system emulation (MIPS)
 
+@menu
+* nanoMIPS System emulator ::
+@end menu
+
 Four executables cover simulation of 32 and 64-bit MIPS systems in
 both endian options, @file{qemu-system-mips}, @file{qemu-system-mipsel}
 @file{qemu-system-mips64} and @file{qemu-system-mips64el}.
@@ -2085,6 +2089,31 @@ SCSI controller
 G364 framebuffer
 @end itemize
 
+@node nanoMIPS System emulator
+@subsection nanoMIPS System emulator
+@cindex system emulation (nanoMIPS)
+
+Executable @file{qemu-system-mipsel} also covers simulation of
+32-bit nanoMIPS system in little endian mode:
+
+@itemize @minus
+@item
+nanoMIPS I7200 CPU
+@end itemize
+
+Example of @file{qemu-system-mipsel} usage for nanoMIPS is shown below:
+
+Download @code{<disk_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/buildroot/index.html}.
+
+Download @code{<kernel_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/index.html}.
+
+Start system emulation of Malta board with nanoMIPS I7200 CPU:
+@example
+qemu-system-mipsel -cpu I7200 -kernel @code{<kernel_image_file>} \
+    -M malta -serial stdio -m @code{<memory_size>} -hda @code{<disk_image_file>} \
+    -append "mem=256m@@0x0 rw console=ttyS0 vga=cirrus vesa=0x111 root=/dev/sda"
+@end example
+
 
 @node ARM System emulator
 @section ARM System emulator
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Qemu-devel] [PATCH 2/2] docs/qemu-cpu-models: Add MIPS/nanoMIPS QEMU supported CPU models
  2018-11-28 13:43 [Qemu-devel] [PATCH 0/2] qemu-doc: Update MIPS/nanoMIPS info Stefan Markovic
  2018-11-28 13:43 ` [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information Stefan Markovic
@ 2018-11-28 13:43 ` Stefan Markovic
  2018-11-28 14:36   ` Philippe Mathieu-Daudé
  1 sibling, 1 reply; 10+ messages in thread
From: Stefan Markovic @ 2018-11-28 13:43 UTC (permalink / raw)
  To: qemu-devel
  Cc: amarkovic, smarkovic, pjovanovic, peter.maydell, huth, hpoussin,
	pburton, jhogan

From: Stefan Markovic <smarkovic@wavecomp.com>

Add list of supported and preferred CPU models for MIPS32, MIPS64
and nanoMIPS hosts.

Signed-off-by: Stefan Markovic <smarkovic@wavecomp.com>
---
 docs/qemu-cpu-models.texi | 163 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 161 insertions(+), 2 deletions(-)

diff --git a/docs/qemu-cpu-models.texi b/docs/qemu-cpu-models.texi
index 1935f98..475d434 100644
--- a/docs/qemu-cpu-models.texi
+++ b/docs/qemu-cpu-models.texi
@@ -5,8 +5,9 @@ QEMU / KVM CPU model configuration
 @c man begin DESCRIPTION
 
 @menu
-* recommendations_cpu_models_x86:: Recommendations for KVM CPU model configuration on x86 hosts
-* cpu_model_syntax_apps::          Syntax for configuring CPU models
+* recommendations_cpu_models_x86::  Recommendations for KVM CPU model configuration on x86 hosts
+* recommendations_cpu_models_MIPS:: Supported CPU model configurations on MIPS hosts
+* cpu_model_syntax_apps::           Syntax for configuring CPU models
 @end menu
 
 QEMU / KVM virtualization supports two ways to configure CPU models
@@ -368,6 +369,164 @@ hardware assisted virtualization, that should thus not be required for
 running virtual machines.
 @end table
 
+@node recommendations_cpu_models_MIPS
+@subsection Supported CPU model configurations on MIPS hosts
+
+QEMU supports variety of MIPS CPU models:
+
+@menu
+* cpu_models_MIPS32::               Supported CPU models for MIPS32 hosts
+* cpu_models_MIPS64::               Supported CPU models for MIPS64 hosts
+* cpu_models_nanoMIPS::             Supported CPU models for nanoMIPS hosts
+* preferred_cpu_models_MIPS::       Preferred CPU models for MIPS hosts
+@end menu
+
+@node cpu_models_MIPS32
+@subsubsection Supported CPU models for MIPS32 hosts
+
+The following CPU models are supported for use on MIPS32 hosts. Administrators /
+applications are recommended to use the CPU model that matches the generation
+of the host CPUs in use. In a deployment with a mixture of host CPU models
+between machines, if live migration compatibility is required, use the newest
+CPU model that is compatible across all desired hosts.
+
+@table @option
+@item @code{mips32r6-generic}
+
+MIPS32 Processor (Release 6, 2015)
+
+
+@item @code{P5600}
+
+MIPS32 Processor (P5600, 2014)
+
+
+@item @code{M14K}
+@item @code{M14Kc}
+
+MIPS32 Processor (M14K, 2009)
+
+
+@item @code{74Kf}
+
+MIPS32 Processor (74K, 2007)
+
+
+@item @code{34Kf}
+
+MIPS32 Processor (34K, 2006)
+
+
+@item @code{24Kc}
+@item @code{24KEc}
+@item @code{24Kf}
+
+MIPS32 Processor (24K, 2003)
+
+
+@item @code{4Kc}
+@item @code{4Km}
+@item @code{4KEcR1}
+@item @code{4KEmR1}
+@item @code{4KEc}
+@item @code{4KEm}
+
+MIPS32 Processor (4K, 1999)
+@end table
+
+@node cpu_models_MIPS64
+@subsubsection Supported CPU models for MIPS64 hosts
+
+The following CPU models are supported for use on MIPS64 hosts. Administrators /
+applications are recommended to use the CPU model that matches the generation
+of the host CPUs in use. In a deployment with a mixture of host CPU models
+between machines, if live migration compatibility is required, use the newest
+CPU model that is compatible across all desired hosts.
+
+@table @option
+@item @code{I6400}
+
+MIPS64 Processor (Release 6, 2014)
+
+
+@item @code{Loongson-2F}
+
+MIPS64 Processor (Longsoon 2, 2008)
+
+
+@item @code{Loongson-2E}
+
+MIPS64 Processor (Loongson 2, 2006)
+
+
+@item @code{mips64dspr2}
+
+MIPS64 Processor (Release 2, 2006)
+
+
+@item @code{MIPS64R2-generic}
+@item @code{5KEc}
+@item @code{5KEf}
+
+MIPS64 Processor (Release 2, 2002)
+
+
+@item @code{20Kc}
+
+MIPS64 Processor (20K, 2000)
+
+
+@item @code{5Kc}
+@item @code{5Kf}
+
+MIPS64 Processor (5K, 1999)
+
+
+@item @code{VR5432}
+
+MIPS64 Processor (VR, 1998)
+
+
+@item @code{R4000}
+
+MIPS64 Processor (MIPS III, 1991)
+@end table
+
+@node cpu_models_nanoMIPS
+@subsubsection Supported CPU models for nanoMIPS hosts
+
+The following CPU models are supported for use on nanoMIPS hosts. Administrators /
+applications are recommended to use the CPU model that matches the generation
+of the host CPUs in use. In a deployment with a mixture of host CPU models
+between machines, if live migration compatibility is required, use the newest
+CPU model that is compatible across all desired hosts.
+
+@table @option
+@item @code{I7200}
+
+MIPS I7200 (nanoMIPS, 2018)
+
+@end table
+
+@node preferred_cpu_models_MIPS
+@subsubsection Preferred CPU models for MIPS hosts
+
+The following CPU models are preferred for use on different MIPS hosts:
+
+@table @option
+@item @code{MIPS III}
+R4000
+
+@item @code{MIPS32R2}
+34Kf
+
+@item @code{MIPS64R6}
+I6400
+
+@item @code{nanoMIPS}
+I7200
+@end table
+
 @node cpu_model_syntax_apps
 @subsection Syntax for configuring CPU models
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information
  2018-11-28 13:43 ` [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information Stefan Markovic
@ 2018-11-28 14:31   ` Philippe Mathieu-Daudé
  2018-11-29 10:18     ` Stefan Markovic
  2019-01-24 15:43   ` Aleksandar Markovic
  1 sibling, 1 reply; 10+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-11-28 14:31 UTC (permalink / raw)
  To: Stefan Markovic, qemu-devel
  Cc: peter.maydell, pburton, smarkovic, jhogan, huth, hpoussin,
	amarkovic, pjovanovic, Richard Henderson

Hi Stefan,

On 28/11/18 14:43, Stefan Markovic wrote:
> From: Stefan Markovic <smarkovic@wavecomp.com>
> 
> Add nanoMIPS information in qemu-doc.texi with example of usage
> included.
> 
> Signed-off-by: Stefan Markovic <smarkovic@wavecomp.com>
> ---
>  qemu-doc.texi | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 
> diff --git a/qemu-doc.texi b/qemu-doc.texi
> index f7ad1df..6ef593d 100644
> --- a/qemu-doc.texi
> +++ b/qemu-doc.texi
> @@ -1994,6 +1994,10 @@ Set the emulated machine type. The default is sun4u.
>  @section MIPS System emulator
>  @cindex system emulation (MIPS)
>  
> +@menu
> +* nanoMIPS System emulator ::
> +@end menu
> +
>  Four executables cover simulation of 32 and 64-bit MIPS systems in
>  both endian options, @file{qemu-system-mips}, @file{qemu-system-mipsel}
>  @file{qemu-system-mips64} and @file{qemu-system-mips64el}.
> @@ -2085,6 +2089,31 @@ SCSI controller
>  G364 framebuffer
>  @end itemize
>  
> +@node nanoMIPS System emulator
> +@subsection nanoMIPS System emulator
> +@cindex system emulation (nanoMIPS)
> +
> +Executable @file{qemu-system-mipsel} also covers simulation of
> +32-bit nanoMIPS system in little endian mode:
> +
> +@itemize @minus
> +@item
> +nanoMIPS I7200 CPU
> +@end itemize
> +
> +Example of @file{qemu-system-mipsel} usage for nanoMIPS is shown below:
> +
> +Download @code{<disk_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/buildroot/index.html}.
> +
> +Download @code{<kernel_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/index.html}.
> +
> +Start system emulation of Malta board with nanoMIPS I7200 CPU:
> +@example
> +qemu-system-mipsel -cpu I7200 -kernel @code{<kernel_image_file>} \
> +    -M malta -serial stdio -m @code{<memory_size>} -hda @code{<disk_image_file>} \
> +    -append "mem=256m@@0x0 rw console=ttyS0 vga=cirrus vesa=0x111 root=/dev/sda"

Trying your example with generic_nano32r6el_page64k_dbg current master
(c56606684) I'm getting:

IN: cgroup_init_early
0x8087ae64:  84f0 8050      LW a3, 0x50(s0)
0x8087ae68:  a630 2c48      SWM s1, 72(s0), 0x2
0x8087ae6c:  bb84           BNEZC a3, 0x8087ae72

OP:
 ld_i32 tmp0,env,$0xffffffffffffffe4
 movi_i32 tmp1,$0x0
 brcond_i32 tmp0,tmp1,lt,$L0

 ---- 8087ae64 00000000 00000000
 movi_i32 tmp0,$0x50
 add_i32 tmp0,s0,tmp0
 qemu_ld_i32 tmp0,tmp0,un+leul,0
 mov_i32 a3,tmp0

 ---- 8087ae68 00000000 00000000
 movi_i32 tmp0,$0x48
 add_i32 tmp0,s0,tmp0
 mov_i32 tmp1,s1
 qemu_st_i32 tmp1,tmp0,leul,0
 movi_i32 tmp0,$0x4c
 add_i32 tmp0,s0,tmp0
 mov_i32 tmp1,s2
 qemu_st_i32 tmp1,tmp0,leul,0

 ---- 8087ae6c 00000000 00000000
 mov_i32 tmp0,a3
 movi_i32 tmp1,$0x0
 setcond_i32 bcond,tmp0,tmp1,ne
 movi_i32 tmp0,$0x0
 brcond_i32 bcond,tmp0,ne,$L1
 goto_tb $0x1
 movi_i32 PC,$0xffffffff8087ae6e
 exit_tb $0x7f80a2005f01
 set_label $L1
 goto_tb $0x0
 movi_i32 PC,$0xffffffff8087ae72
 exit_tb $0x7f80a2005f00
 set_label $L0
 exit_tb $0x7f80a2005f03

qemu-system-mipsel: tcg/tcg-op.c:2607: tcg_gen_goto_tb: Assertion
`(tcg_ctx->goto_tb_issue_mask & (1 << idx)) == 0' failed.

Richard said on IRC "it means that it has issued two goto_tb with the
same idx."

I built QEMU on a x86_64 host, using the following options:

./configure --disable-user \
 --enable-vnc-sasl --enable-trace-backends=log \
 --extra-cflags=-ggdb --enable-debug

Regards,

Phil.

> +@end example
> +
>  
>  @node ARM System emulator
>  @section ARM System emulator
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 2/2] docs/qemu-cpu-models: Add MIPS/nanoMIPS QEMU supported CPU models
  2018-11-28 13:43 ` [Qemu-devel] [PATCH 2/2] docs/qemu-cpu-models: Add MIPS/nanoMIPS QEMU supported CPU models Stefan Markovic
@ 2018-11-28 14:36   ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 10+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-11-28 14:36 UTC (permalink / raw)
  To: Stefan Markovic, qemu-devel
  Cc: peter.maydell, pburton, smarkovic, jhogan, huth, hpoussin,
	amarkovic, pjovanovic

On 28/11/18 14:43, Stefan Markovic wrote:
> From: Stefan Markovic <smarkovic@wavecomp.com>
> 
> Add list of supported and preferred CPU models for MIPS32, MIPS64
> and nanoMIPS hosts.
> 
> Signed-off-by: Stefan Markovic <smarkovic@wavecomp.com>

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> ---
>  docs/qemu-cpu-models.texi | 163 +++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 161 insertions(+), 2 deletions(-)
> 
> diff --git a/docs/qemu-cpu-models.texi b/docs/qemu-cpu-models.texi
> index 1935f98..475d434 100644
> --- a/docs/qemu-cpu-models.texi
> +++ b/docs/qemu-cpu-models.texi
> @@ -5,8 +5,9 @@ QEMU / KVM CPU model configuration
>  @c man begin DESCRIPTION
>  
>  @menu
> -* recommendations_cpu_models_x86:: Recommendations for KVM CPU model configuration on x86 hosts
> -* cpu_model_syntax_apps::          Syntax for configuring CPU models
> +* recommendations_cpu_models_x86::  Recommendations for KVM CPU model configuration on x86 hosts
> +* recommendations_cpu_models_MIPS:: Supported CPU model configurations on MIPS hosts
> +* cpu_model_syntax_apps::           Syntax for configuring CPU models
>  @end menu
>  
>  QEMU / KVM virtualization supports two ways to configure CPU models
> @@ -368,6 +369,164 @@ hardware assisted virtualization, that should thus not be required for
>  running virtual machines.
>  @end table
>  
> +@node recommendations_cpu_models_MIPS
> +@subsection Supported CPU model configurations on MIPS hosts
> +
> +QEMU supports variety of MIPS CPU models:
> +
> +@menu
> +* cpu_models_MIPS32::               Supported CPU models for MIPS32 hosts
> +* cpu_models_MIPS64::               Supported CPU models for MIPS64 hosts
> +* cpu_models_nanoMIPS::             Supported CPU models for nanoMIPS hosts
> +* preferred_cpu_models_MIPS::       Preferred CPU models for MIPS hosts
> +@end menu
> +
> +@node cpu_models_MIPS32
> +@subsubsection Supported CPU models for MIPS32 hosts
> +
> +The following CPU models are supported for use on MIPS32 hosts. Administrators /
> +applications are recommended to use the CPU model that matches the generation
> +of the host CPUs in use. In a deployment with a mixture of host CPU models
> +between machines, if live migration compatibility is required, use the newest
> +CPU model that is compatible across all desired hosts.
> +
> +@table @option
> +@item @code{mips32r6-generic}
> +
> +MIPS32 Processor (Release 6, 2015)
> +
> +
> +@item @code{P5600}
> +
> +MIPS32 Processor (P5600, 2014)
> +
> +
> +@item @code{M14K}
> +@item @code{M14Kc}
> +
> +MIPS32 Processor (M14K, 2009)
> +
> +
> +@item @code{74Kf}
> +
> +MIPS32 Processor (74K, 2007)
> +
> +
> +@item @code{34Kf}
> +
> +MIPS32 Processor (34K, 2006)
> +
> +
> +@item @code{24Kc}
> +@item @code{24KEc}
> +@item @code{24Kf}
> +
> +MIPS32 Processor (24K, 2003)
> +
> +
> +@item @code{4Kc}
> +@item @code{4Km}
> +@item @code{4KEcR1}
> +@item @code{4KEmR1}
> +@item @code{4KEc}
> +@item @code{4KEm}
> +
> +MIPS32 Processor (4K, 1999)
> +@end table
> +
> +@node cpu_models_MIPS64
> +@subsubsection Supported CPU models for MIPS64 hosts
> +
> +The following CPU models are supported for use on MIPS64 hosts. Administrators /
> +applications are recommended to use the CPU model that matches the generation
> +of the host CPUs in use. In a deployment with a mixture of host CPU models
> +between machines, if live migration compatibility is required, use the newest
> +CPU model that is compatible across all desired hosts.
> +
> +@table @option
> +@item @code{I6400}
> +
> +MIPS64 Processor (Release 6, 2014)
> +
> +
> +@item @code{Loongson-2F}
> +
> +MIPS64 Processor (Longsoon 2, 2008)
> +
> +
> +@item @code{Loongson-2E}
> +
> +MIPS64 Processor (Loongson 2, 2006)
> +
> +
> +@item @code{mips64dspr2}
> +
> +MIPS64 Processor (Release 2, 2006)
> +
> +
> +@item @code{MIPS64R2-generic}
> +@item @code{5KEc}
> +@item @code{5KEf}
> +
> +MIPS64 Processor (Release 2, 2002)
> +
> +
> +@item @code{20Kc}
> +
> +MIPS64 Processor (20K, 2000)
> +
> +
> +@item @code{5Kc}
> +@item @code{5Kf}
> +
> +MIPS64 Processor (5K, 1999)
> +
> +
> +@item @code{VR5432}
> +
> +MIPS64 Processor (VR, 1998)
> +
> +
> +@item @code{R4000}
> +
> +MIPS64 Processor (MIPS III, 1991)
> +@end table
> +
> +@node cpu_models_nanoMIPS
> +@subsubsection Supported CPU models for nanoMIPS hosts
> +
> +The following CPU models are supported for use on nanoMIPS hosts. Administrators /
> +applications are recommended to use the CPU model that matches the generation
> +of the host CPUs in use. In a deployment with a mixture of host CPU models
> +between machines, if live migration compatibility is required, use the newest
> +CPU model that is compatible across all desired hosts.
> +
> +@table @option
> +@item @code{I7200}
> +
> +MIPS I7200 (nanoMIPS, 2018)
> +
> +@end table
> +
> +@node preferred_cpu_models_MIPS
> +@subsubsection Preferred CPU models for MIPS hosts
> +
> +The following CPU models are preferred for use on different MIPS hosts:
> +
> +@table @option
> +@item @code{MIPS III}
> +R4000
> +
> +@item @code{MIPS32R2}
> +34Kf
> +
> +@item @code{MIPS64R6}
> +I6400
> +
> +@item @code{nanoMIPS}
> +I7200
> +@end table
> +
>  @node cpu_model_syntax_apps
>  @subsection Syntax for configuring CPU models
>  
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information
  2018-11-28 14:31   ` Philippe Mathieu-Daudé
@ 2018-11-29 10:18     ` Stefan Markovic
  2018-11-29 10:23       ` Peter Maydell
  0 siblings, 1 reply; 10+ messages in thread
From: Stefan Markovic @ 2018-11-29 10:18 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, Stefan Markovic, qemu-devel
  Cc: peter.maydell, Paul Burton, jhogan, huth, hpoussin,
	Aleksandar Markovic, Petar Jovanovic, Richard Henderson

Hi Philippe,


I'll investigate further running with  --enable-debug option to fix this 
issue.

In the meantime, we could note enable-debug as 'To Be Done/Work In 
Progress' for nanoMIPS in qemu docs .


Thanks,

Stefan

On 28.11.18. 15:31, Philippe Mathieu-Daudé wrote:
> Hi Stefan,
>
> On 28/11/18 14:43, Stefan Markovic wrote:
>> From: Stefan Markovic <smarkovic@wavecomp.com>
>>
>> Add nanoMIPS information in qemu-doc.texi with example of usage
>> included.
>>
>> Signed-off-by: Stefan Markovic <smarkovic@wavecomp.com>
>> ---
>>   qemu-doc.texi | 29 +++++++++++++++++++++++++++++
>>   1 file changed, 29 insertions(+)
>>
>> diff --git a/qemu-doc.texi b/qemu-doc.texi
>> index f7ad1df..6ef593d 100644
>> --- a/qemu-doc.texi
>> +++ b/qemu-doc.texi
>> @@ -1994,6 +1994,10 @@ Set the emulated machine type. The default is sun4u.
>>   @section MIPS System emulator
>>   @cindex system emulation (MIPS)
>>   
>> +@menu
>> +* nanoMIPS System emulator ::
>> +@end menu
>> +
>>   Four executables cover simulation of 32 and 64-bit MIPS systems in
>>   both endian options, @file{qemu-system-mips}, @file{qemu-system-mipsel}
>>   @file{qemu-system-mips64} and @file{qemu-system-mips64el}.
>> @@ -2085,6 +2089,31 @@ SCSI controller
>>   G364 framebuffer
>>   @end itemize
>>   
>> +@node nanoMIPS System emulator
>> +@subsection nanoMIPS System emulator
>> +@cindex system emulation (nanoMIPS)
>> +
>> +Executable @file{qemu-system-mipsel} also covers simulation of
>> +32-bit nanoMIPS system in little endian mode:
>> +
>> +@itemize @minus
>> +@item
>> +nanoMIPS I7200 CPU
>> +@end itemize
>> +
>> +Example of @file{qemu-system-mipsel} usage for nanoMIPS is shown below:
>> +
>> +Download @code{<disk_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/buildroot/index.html}.
>> +
>> +Download @code{<kernel_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/kernels/v4.15.18-432-gb2eb9a8b07a1-20180627102142/index.html}.
>> +
>> +Start system emulation of Malta board with nanoMIPS I7200 CPU:
>> +@example
>> +qemu-system-mipsel -cpu I7200 -kernel @code{<kernel_image_file>} \
>> +    -M malta -serial stdio -m @code{<memory_size>} -hda @code{<disk_image_file>} \
>> +    -append "mem=256m@@0x0 rw console=ttyS0 vga=cirrus vesa=0x111 root=/dev/sda"
> Trying your example with generic_nano32r6el_page64k_dbg current master
> (c56606684) I'm getting:
>
> IN: cgroup_init_early
> 0x8087ae64:  84f0 8050      LW a3, 0x50(s0)
> 0x8087ae68:  a630 2c48      SWM s1, 72(s0), 0x2
> 0x8087ae6c:  bb84           BNEZC a3, 0x8087ae72
>
> OP:
>   ld_i32 tmp0,env,$0xffffffffffffffe4
>   movi_i32 tmp1,$0x0
>   brcond_i32 tmp0,tmp1,lt,$L0
>
>   ---- 8087ae64 00000000 00000000
>   movi_i32 tmp0,$0x50
>   add_i32 tmp0,s0,tmp0
>   qemu_ld_i32 tmp0,tmp0,un+leul,0
>   mov_i32 a3,tmp0
>
>   ---- 8087ae68 00000000 00000000
>   movi_i32 tmp0,$0x48
>   add_i32 tmp0,s0,tmp0
>   mov_i32 tmp1,s1
>   qemu_st_i32 tmp1,tmp0,leul,0
>   movi_i32 tmp0,$0x4c
>   add_i32 tmp0,s0,tmp0
>   mov_i32 tmp1,s2
>   qemu_st_i32 tmp1,tmp0,leul,0
>
>   ---- 8087ae6c 00000000 00000000
>   mov_i32 tmp0,a3
>   movi_i32 tmp1,$0x0
>   setcond_i32 bcond,tmp0,tmp1,ne
>   movi_i32 tmp0,$0x0
>   brcond_i32 bcond,tmp0,ne,$L1
>   goto_tb $0x1
>   movi_i32 PC,$0xffffffff8087ae6e
>   exit_tb $0x7f80a2005f01
>   set_label $L1
>   goto_tb $0x0
>   movi_i32 PC,$0xffffffff8087ae72
>   exit_tb $0x7f80a2005f00
>   set_label $L0
>   exit_tb $0x7f80a2005f03
>
> qemu-system-mipsel: tcg/tcg-op.c:2607: tcg_gen_goto_tb: Assertion
> `(tcg_ctx->goto_tb_issue_mask & (1 << idx)) == 0' failed.
>
> Richard said on IRC "it means that it has issued two goto_tb with the
> same idx."
>
> I built QEMU on a x86_64 host, using the following options:
>
> ./configure --disable-user \
>   --enable-vnc-sasl --enable-trace-backends=log \
>   --extra-cflags=-ggdb --enable-debug
>
> Regards,
>
> Phil.
>
>> +@end example
>> +
>>   
>>   @node ARM System emulator
>>   @section ARM System emulator
>>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information
  2018-11-29 10:18     ` Stefan Markovic
@ 2018-11-29 10:23       ` Peter Maydell
  2018-11-29 18:03         ` Richard Henderson
  2018-12-03 13:59         ` Stefan Markovic
  0 siblings, 2 replies; 10+ messages in thread
From: Peter Maydell @ 2018-11-29 10:23 UTC (permalink / raw)
  To: Stefan Markovic
  Cc: Philippe Mathieu-Daudé,
	Stefan Markovic, QEMU Developers, Paul Burton, James Hogan,
	Thomas Huth, Hervé Poussineau, Aleksandar Markovic,
	Petar Jovanovic, Richard Henderson

On Thu, 29 Nov 2018 at 10:18, Stefan Markovic <smarkovic@wavecomp.com> wrote:
> I'll investigate further running with  --enable-debug option to fix this
> issue.
>
> In the meantime, we could note enable-debug as 'To Be Done/Work In
> Progress' for nanoMIPS in qemu docs .

This isn't just "--enable-debug doesn't work", it means there's a
definite bug because you've tripped an assert (that's only enabled
in the debug config). It's quite possible that the code will misbehave
at runtime even on the non-debug config...

thanks
-- PMM

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information
  2018-11-29 10:23       ` Peter Maydell
@ 2018-11-29 18:03         ` Richard Henderson
  2018-12-03 13:59         ` Stefan Markovic
  1 sibling, 0 replies; 10+ messages in thread
From: Richard Henderson @ 2018-11-29 18:03 UTC (permalink / raw)
  To: Peter Maydell, Stefan Markovic
  Cc: Philippe Mathieu-Daudé,
	Stefan Markovic, QEMU Developers, Paul Burton, James Hogan,
	Thomas Huth, Hervé Poussineau, Aleksandar Markovic,
	Petar Jovanovic

On 11/29/18 2:23 AM, Peter Maydell wrote:
> On Thu, 29 Nov 2018 at 10:18, Stefan Markovic <smarkovic@wavecomp.com> wrote:
>> I'll investigate further running with  --enable-debug option to fix this
>> issue.
>>
>> In the meantime, we could note enable-debug as 'To Be Done/Work In
>> Progress' for nanoMIPS in qemu docs .
> 
> This isn't just "--enable-debug doesn't work", it means there's a
> definite bug because you've tripped an assert (that's only enabled
> in the debug config). It's quite possible that the code will misbehave
> at runtime even on the non-debug config...

Definitely.

The assert says that two different exits are using the same
TranslationBlock.jmp_target_arg entry.  Which means that, by definition, one of
them must branch to the wrong location.


r~

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information
  2018-11-29 10:23       ` Peter Maydell
  2018-11-29 18:03         ` Richard Henderson
@ 2018-12-03 13:59         ` Stefan Markovic
  1 sibling, 0 replies; 10+ messages in thread
From: Stefan Markovic @ 2018-12-03 13:59 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Philippe Mathieu-Daudé,
	Stefan Markovic, QEMU Developers, Paul Burton, James Hogan,
	Thomas Huth, Hervé Poussineau, Aleksandar Markovic,
	Petar Jovanovic, Richard Henderson

Of course. Investigation is in progress.


Thanks,

Stefan


On 29.11.18. 11:23, Peter Maydell wrote:
> On Thu, 29 Nov 2018 at 10:18, Stefan Markovic <smarkovic@wavecomp.com> wrote:
>> I'll investigate further running with  --enable-debug option to fix this
>> issue.
>>
>> In the meantime, we could note enable-debug as 'To Be Done/Work In
>> Progress' for nanoMIPS in qemu docs .
> This isn't just "--enable-debug doesn't work", it means there's a
> definite bug because you've tripped an assert (that's only enabled
> in the debug config). It's quite possible that the code will misbehave
> at runtime even on the non-debug config...
>
> thanks
> -- PMM

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information
  2018-11-28 13:43 ` [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information Stefan Markovic
  2018-11-28 14:31   ` Philippe Mathieu-Daudé
@ 2019-01-24 15:43   ` Aleksandar Markovic
  1 sibling, 0 replies; 10+ messages in thread
From: Aleksandar Markovic @ 2019-01-24 15:43 UTC (permalink / raw)
  To: Stefan Markovic, qemu-devel
  Cc: Stefan Markovic, Petar Jovanovic, peter.maydell, huth, hpoussin,
	Paul Burton, jhogan

> From: Stefan Markovic <stefan.markovic@rt-rk.com>
> Sent: Wednesday, November 28, 2018 2:43 PM
> To: qemu-devel@nongnu.org
> Cc: Aleksandar Markovic; Stefan Markovic; Petar Jovanovic; peter.maydell@linaro.org; huth@tuxfamily.org; > hpoussin@reactos.org; Paul Burton; jhogan@kernel.org
> Subject: [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information
> 
> From: Stefan Markovic <smarkovic@wavecomp.com>
> 
> Add nanoMIPS information in qemu-doc.texi with example of usage
> included.
> 
> Signed-off-by: Stefan Markovic <smarkovic@wavecomp.com>
> ---
>  qemu-doc.texi | 29 +++++++++++++++++++++++++++++
>  1 file changed, 29 insertions(+)
> 

The text itself seems fine to me. If the problem with debug runs is
fixed:

Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com>

> diff --git a/qemu-doc.texi b/qemu-doc.texi
> index f7ad1df..6ef593d 100644
> --- a/qemu-doc.texi
> +++ b/qemu-doc.texi
> @@ -1994,6 +1994,10 @@ Set the emulated machine type. The default is sun4u.
>  @section MIPS System emulator
>  @cindex system emulation (MIPS)
> 
> +@menu
> +* nanoMIPS System emulator ::
> +@end menu
> +
>  Four executables cover simulation of 32 and 64-bit MIPS systems in
>  both endian options, @file{qemu-system-mips}, @file{qemu-system-mipsel}
>  @file{qemu-system-mips64} and @file{qemu-system-mips64el}.
> @@ -2085,6 +2089,31 @@ SCSI controller
>  G364 framebuffer
>  @end itemize
> 
> +@node nanoMIPS System emulator
> +@subsection nanoMIPS System emulator
> +@cindex system emulation (nanoMIPS)
> +
> +Executable @file{qemu-system-mipsel} also covers simulation of
> +32-bit nanoMIPS system in little endian mode:
> +
> +@itemize @minus
> +@item
> +nanoMIPS I7200 CPU
> +@end itemize
> +
> +Example of @file{qemu-system-mipsel} usage for nanoMIPS is shown below:
> +
> +Download @code{<disk_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/buildroot/index.html}.
> +
> +Download @code{<kernel_image_file>} from @url{https://mipsdistros.mips.com/LinuxDistro/nanomips/kernels/> v4.15.18-432-gb2eb9a8b07a1-20180627102142/index.html}.
> +
> +Start system emulation of Malta board with nanoMIPS I7200 CPU:
> +@example
> +qemu-system-mipsel -cpu I7200 -kernel @code{<kernel_image_file>} \
> +    -M malta -serial stdio -m @code{<memory_size>} -hda @code{<disk_image_file>} \
> +    -append "mem=256m@@0x0 rw console=ttyS0 vga=cirrus vesa=0x111 root=/dev/sda"
> +@end example
> +
> 
>  @node ARM System emulator
>  @section ARM System emulator
> --
> 1.9.1

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-01-24 15:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-28 13:43 [Qemu-devel] [PATCH 0/2] qemu-doc: Update MIPS/nanoMIPS info Stefan Markovic
2018-11-28 13:43 ` [Qemu-devel] [PATCH 1/2] qemu-doc: Add nanoMIPS ISA information Stefan Markovic
2018-11-28 14:31   ` Philippe Mathieu-Daudé
2018-11-29 10:18     ` Stefan Markovic
2018-11-29 10:23       ` Peter Maydell
2018-11-29 18:03         ` Richard Henderson
2018-12-03 13:59         ` Stefan Markovic
2019-01-24 15:43   ` Aleksandar Markovic
2018-11-28 13:43 ` [Qemu-devel] [PATCH 2/2] docs/qemu-cpu-models: Add MIPS/nanoMIPS QEMU supported CPU models Stefan Markovic
2018-11-28 14:36   ` Philippe Mathieu-Daudé

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.