[gem5-dev] Change in gem5/gem5[develop]: arch-arm: Remove m5ops_base declaration from ArmSystem

2020-07-02 Thread Hsuan Hsu (Gerrit) via gem5-dev
Hsuan Hsu has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/30914 )



Change subject: arch-arm: Remove m5ops_base declaration from ArmSystem
..

arch-arm: Remove m5ops_base declaration from ArmSystem

This declaration should have been removed but was accidentally re-added.
It keeps m5ops_base from being passed correctly from Python to C++ when
using ARM ISA, and hence triggers gem5 crash when the guest tries to
call m5ops. This change removes it again to fix the crash.

JIRA: https://gem5.atlassian.net/browse/GEM5-658

Change-Id: I8df4ff19ecc0d64255f24dc991f71b065d2a894e
Signed-off-by: Hsuan Hsu 
---
M src/arch/arm/ArmSystem.py
1 file changed, 0 insertions(+), 4 deletions(-)



diff --git a/src/arch/arm/ArmSystem.py b/src/arch/arm/ArmSystem.py
index 6555ea9..c4cc51f 100644
--- a/src/arch/arm/ArmSystem.py
+++ b/src/arch/arm/ArmSystem.py
@@ -79,10 +79,6 @@
 semihosting = Param.ArmSemihosting(NULL,
 "Enable support for the Arm semihosting by settings this  
parameter")


-m5ops_base = Param.Addr(0,
-"Base of the 64KiB PA range used for memory-mapped m5ops. Set to  
0 "

-"to disable.")
-
 # Set to true if simulation provides a PSCI implementation
 # This flag will be checked when auto-generating
 # a PSCI node. A client (e.g Linux) would then be able to

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/30914
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I8df4ff19ecc0d64255f24dc991f71b065d2a894e
Gerrit-Change-Number: 30914
Gerrit-PatchSet: 1
Gerrit-Owner: Hsuan Hsu 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: [Suggestion] Replace gem5-users mailing-list with Discourse

2020-07-02 Thread Gabe Black via gem5-dev
I haven't used Slack before (yeah, I know, behind the times :-), but I 100%
agree with that last part. Having the perfect medium won't help if there
aren't enough people around to actually use it to answer questions.

Gabe

On Thu, Jul 2, 2020 at 9:45 AM Andreas Sandberg via gem5-dev <
gem5-dev@gem5.org> wrote:

> I would probably be more in favour of a split email+Slack/Teams
> approach. Email works well for most discussion, but I like the quick
> more informal communication in a chat system. I have generally been very
> happy with the way Slack has worked when I have contributed to Zephyr in
> my spare time. As long as you have a threading email client, I can't see
> any benefits of a forum other than archiving (services like groups.io
> seems to solve that).
>
> I think we are fooling ourselves if we think switching from email to a
> different medium is going to solve underlying problem the there is a
> small number of experienced users that answer most of the questions on
> the lists.
>
> Cheers,
> Andreas
>
> On 10/06/2020 16:32, Daniel Gerzhoy via gem5-dev wrote:
> > I think this is a great idea! Emails threads aren't a great way to do
> this
> > just because there's no mechanism for well formatted responses to
> > particular points in someone's questions, posting code, or things like
> > "upvoting" responses.
> >
> > I see Daniel's point about less engagement if we move it to a forum, but
> I
> > think that could be alleviated by encouraging people to keep email
> > notifications up.
> >
> > Cheers,
> >
> > Dan
> >
> > On Wed, Jun 10, 2020 at 5:23 AM Giacomo Travaglini via gem5-dev <
> > gem5-dev@gem5.org> wrote:
> >
> >> I agree with Daniel and Ciro; it's difficult/annoying to navigate
> through
> >> old unanswered emails and I presume nobody does that at the moment.
> >> Most of the time if your email doesn't get a quick response as soon as
> it
> >> gets posted, you can forget about getting some help as time passes;
> there
> >> is a short window and you really have to hope someone flagged your
> email or
> >> got some time to address your problem.
> >>
> >> I wouldn't use JIRA to be honest for asking questions; that's beyond the
> >> scope of JIRA and it would be chaotic to mix Bug Reports, Improvement
> tasks
> >> with normal questions (like: I cannot build gem5 on my machine, or does
> >> anyone know how this works)
> >>
> >> Giacomo
> >>
> >>
> >> -Original Message-
> >> From: Ciro Santilli via gem5-dev 
> >> Sent: 10 June 2020 09:21
> >> To: gem5 Developer List 
> >> Cc: Ciro Santilli 
> >> Subject: [gem5-dev] Re: [Suggestion] Replace gem5-users mailing-list
> with
> >> Discourse
> >>
> >> I would just use JIRA. But after that, Discourse is the second best. And
> >> anything is better than a mailing list :-)
> 
> >> From: Jason Lowe-Power via gem5-dev 
> >> Sent: Tuesday, June 9, 2020 11:40 PM
> >> To: gem5 Developer List 
> >> Cc: gem5 users mailing list ; Jason Lowe-Power <
> >> ja...@lowepower.com>
> >> Subject: [gem5-dev] Re: [Suggestion] Replace gem5-users mailing-list
> with
> >> Discourse
> >>
> >> +1 for Discourse :).
> >>
> >> Just to give a bit more context: I'm also trying to find a good forum
> for
> >> community engagement during my online Learning gem5 class this summer. I
> >> would like to find a platform that could be used generally for my class
> >> this summer, future iterations of the class, and general gem5
> questions, as
> >> I believe there will be significant overlap between these groups.
> >>
> >> Other potential options that IMO have more cons than pros when compared
> to
> >> Discourse:
> >> - Slack/Teams/etc.
> >> - gitter.im
> >> - stackoverflow
> >>
> >> That said, we're open to suggestions :). Our goal is to create the most
> >> welcoming and inclusive environment possible. We'll go where our users
> are!
> >>
> >> Cheers,
> >> Jason
> >>
> >> On Tue, Jun 9, 2020 at 2:45 PM Bobby Bruce via gem5-dev <
> gem5-dev@gem5.org
> >> wrote:
> >>
> >>> Dear all,
> >>>
> >>> In an effort to better support the gem5 community, there has been a
> >>> suggestion that we drop the gem5-users mailing list and replace it
> >>> with Discourse, https://www.discourse.org/about, a web-based
> >>> discussion platform. I'm writing this email to propose this to the
> >>> community and ask for feedback on the matter.
> >>>
> >>> We have noticed that using mailing lists as our primary communication
> >>> platform is problematic. Sending an email to a list can be daunting
> >>> experience, requiring an etiquette many are not accustom to. I'm sure
> >>> I'm not the only one who feels like they are unduly bothering a large
> >>> number of people when posting to a list (like I'm doing right now :)
> >>> ). This is, of course, an unfortunate hurdle for many to get over when
> >>> they encounter problems using gem5, particularly those new to the
> >>> project. I've come to believe mailing lists are simply not a very good
> >>> technology for fostering 

[gem5-dev] Change in gem5/gem5[develop]: arch-arm: Add missing override to ARM faults

2020-07-02 Thread Anthony Gutierrez (Gerrit) via gem5-dev

Hello Tony Gutierrez,

I'd like you to do a code review. Please visit

https://gem5-review.googlesource.com/c/public/gem5/+/30894

to review the following change.


Change subject: arch-arm: Add missing override to ARM faults
..

arch-arm: Add missing override to ARM faults

Change-Id: I7d64bdb4dfb0ba204e734f727b016bea168180ef
---
M src/arch/arm/faults.hh
1 file changed, 1 insertion(+), 1 deletion(-)



diff --git a/src/arch/arm/faults.hh b/src/arch/arm/faults.hh
index 8a127ff..09513de 100644
--- a/src/arch/arm/faults.hh
+++ b/src/arch/arm/faults.hh
@@ -635,7 +635,7 @@
 bool routeToHyp(ThreadContext *tc) const override;
 uint32_t iss() const override;
 ExceptionClass ec(ThreadContext *tc) const override;
-void annotate(AnnotationIDs id, uint64_t val);
+void annotate(AnnotationIDs id, uint64_t val) override;
 };

 class SoftwareStepFault : public ArmFaultVals

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/30894
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I7d64bdb4dfb0ba204e734f727b016bea168180ef
Gerrit-Change-Number: 30894
Gerrit-PatchSet: 1
Gerrit-Owner: Anthony Gutierrez 
Gerrit-Reviewer: Tony Gutierrez 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: arch-arm: Remove some unused vars from self_debug.hh

2020-07-02 Thread Anthony Gutierrez (Gerrit) via gem5-dev

Hello Tony Gutierrez,

I'd like you to do a code review. Please visit

https://gem5-review.googlesource.com/c/public/gem5/+/30895

to review the following change.


Change subject: arch-arm: Remove some unused vars from self_debug.hh
..

arch-arm: Remove some unused vars from self_debug.hh

Change-Id: I68b4ddfe66a34a29c0abfd52a8448e0b8a5bbe94
---
M src/arch/arm/self_debug.hh
1 file changed, 1 insertion(+), 6 deletions(-)



diff --git a/src/arch/arm/self_debug.hh b/src/arch/arm/self_debug.hh
index 48d784c..ce35a8b 100644
--- a/src/arch/arm/self_debug.hh
+++ b/src/arch/arm/self_debug.hh
@@ -58,7 +58,6 @@
   private:
 MiscRegIndex ctrlRegIndex;
 MiscRegIndex valRegIndex;
-MiscRegIndex xRegIndex;
 SelfDebug * conf;
 bool isCntxtAware;
 bool VMID16enabled;
@@ -72,7 +71,7 @@
  MiscRegIndex _xIndex, SelfDebug* _conf, bool _ctxAw, bool lva,
  bool vmid16, bool aarch32):
 ctrlRegIndex(_ctrlIndex), valRegIndex(_valIndex),
-xRegIndex(_xIndex), conf(_conf), isCntxtAware(_ctxAw),
+conf(_conf), isCntxtAware(_ctxAw),
 VMID16enabled(vmid16), active_pc(0x0), enable(false)
 {
 maxAddrSize = lva ? 52: 48 ;
@@ -215,10 +214,6 @@
 bool prevSteppedLdx;
 bool cpsrD;

-bool ctrStepped;
-bool ctrActivate;
-
-
   public:
 SoftwareStep(SelfDebug* s): bSS(false), stateSS(INACTIVE_STATE),
 conf(s), steppedLdx(false) { }

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/30895
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I68b4ddfe66a34a29c0abfd52a8448e0b8a5bbe94
Gerrit-Change-Number: 30895
Gerrit-PatchSet: 1
Gerrit-Owner: Anthony Gutierrez 
Gerrit-Reviewer: Tony Gutierrez 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: sim: Add M5_VAR_USED to var used in dprint

2020-07-02 Thread Anthony Gutierrez (Gerrit) via gem5-dev

Hello Tony Gutierrez,

I'd like you to do a code review. Please visit

https://gem5-review.googlesource.com/c/public/gem5/+/30896

to review the following change.


Change subject: sim: Add M5_VAR_USED to var used in dprint
..

sim: Add M5_VAR_USED to var used in dprint

Change-Id: I8f8654b8546ee8df3d4acd1ccbc5080ad38764c1
---
M src/sim/system.cc
1 file changed, 1 insertion(+), 1 deletion(-)



diff --git a/src/sim/system.cc b/src/sim/system.cc
index 7057a97..7841ec0 100644
--- a/src/sim/system.cc
+++ b/src/sim/system.cc
@@ -179,7 +179,7 @@
 {
 auto  = thread(id);
 #   if THE_ISA != NULL_ISA
-BaseCPU *cpu = t.context->getCpuPtr();
+BaseCPU M5_VAR_USED *cpu = t.context->getCpuPtr();
 DPRINTFS(Quiesce, cpu, "quiesce()\n");
 #   endif
 t.quiesce();

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/30896
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I8f8654b8546ee8df3d4acd1ccbc5080ad38764c1
Gerrit-Change-Number: 30896
Gerrit-PatchSet: 1
Gerrit-Owner: Anthony Gutierrez 
Gerrit-Reviewer: Tony Gutierrez 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: [Suggestion] Replace gem5-users mailing-list with Discourse

2020-07-02 Thread Andreas Sandberg via gem5-dev

I would probably be more in favour of a split email+Slack/Teams
approach. Email works well for most discussion, but I like the quick
more informal communication in a chat system. I have generally been very
happy with the way Slack has worked when I have contributed to Zephyr in
my spare time. As long as you have a threading email client, I can't see
any benefits of a forum other than archiving (services like groups.io
seems to solve that).

I think we are fooling ourselves if we think switching from email to a
different medium is going to solve underlying problem the there is a
small number of experienced users that answer most of the questions on
the lists.

Cheers,
Andreas

On 10/06/2020 16:32, Daniel Gerzhoy via gem5-dev wrote:

I think this is a great idea! Emails threads aren't a great way to do this
just because there's no mechanism for well formatted responses to
particular points in someone's questions, posting code, or things like
"upvoting" responses.

I see Daniel's point about less engagement if we move it to a forum, but I
think that could be alleviated by encouraging people to keep email
notifications up.

Cheers,

Dan

On Wed, Jun 10, 2020 at 5:23 AM Giacomo Travaglini via gem5-dev <
gem5-dev@gem5.org> wrote:


I agree with Daniel and Ciro; it's difficult/annoying to navigate through
old unanswered emails and I presume nobody does that at the moment.
Most of the time if your email doesn't get a quick response as soon as it
gets posted, you can forget about getting some help as time passes; there
is a short window and you really have to hope someone flagged your email or
got some time to address your problem.

I wouldn't use JIRA to be honest for asking questions; that's beyond the
scope of JIRA and it would be chaotic to mix Bug Reports, Improvement tasks
with normal questions (like: I cannot build gem5 on my machine, or does
anyone know how this works)

Giacomo


-Original Message-
From: Ciro Santilli via gem5-dev 
Sent: 10 June 2020 09:21
To: gem5 Developer List 
Cc: Ciro Santilli 
Subject: [gem5-dev] Re: [Suggestion] Replace gem5-users mailing-list with
Discourse

I would just use JIRA. But after that, Discourse is the second best. And
anything is better than a mailing list :-) 
From: Jason Lowe-Power via gem5-dev 
Sent: Tuesday, June 9, 2020 11:40 PM
To: gem5 Developer List 
Cc: gem5 users mailing list ; Jason Lowe-Power <
ja...@lowepower.com>
Subject: [gem5-dev] Re: [Suggestion] Replace gem5-users mailing-list with
Discourse

+1 for Discourse :).

Just to give a bit more context: I'm also trying to find a good forum for
community engagement during my online Learning gem5 class this summer. I
would like to find a platform that could be used generally for my class
this summer, future iterations of the class, and general gem5 questions, as
I believe there will be significant overlap between these groups.

Other potential options that IMO have more cons than pros when compared to
Discourse:
- Slack/Teams/etc.
- gitter.im
- stackoverflow

That said, we're open to suggestions :). Our goal is to create the most
welcoming and inclusive environment possible. We'll go where our users are!

Cheers,
Jason

On Tue, Jun 9, 2020 at 2:45 PM Bobby Bruce via gem5-dev 
Dear all,

In an effort to better support the gem5 community, there has been a
suggestion that we drop the gem5-users mailing list and replace it
with Discourse, https://www.discourse.org/about, a web-based
discussion platform. I'm writing this email to propose this to the
community and ask for feedback on the matter.

We have noticed that using mailing lists as our primary communication
platform is problematic. Sending an email to a list can be daunting
experience, requiring an etiquette many are not accustom to. I'm sure
I'm not the only one who feels like they are unduly bothering a large
number of people when posting to a list (like I'm doing right now :)
). This is, of course, an unfortunate hurdle for many to get over when
they encounter problems using gem5, particularly those new to the
project. I've come to believe mailing lists are simply not a very good
technology for fostering community engagement and helping those who are

running into difficulties.

Mailing lists are also difficult to search, and lack proper formatting
mechanisms to neatly display attributes such as code and output logs.

Looking around at alternative technologies available, Discourse
appears to be a suitable replacement. For those unaware, Discourse is
(essentially) a revamp of messaging forums. It is an increasingly
popular platform for users and developers in open source projects to
communicate with one another (see LLVM's discourse as an example:
https://llvm.discourse.group ).
All-in-all, I think it's a well-designed product and contains all the
features we'd expect and need to get our work done. I can see no
immediate downsides to using it, though feedback from the community on
the matter would be greatly 

[gem5-dev] Change in gem5/gem5[develop]: configs: Updated DTB warnings in fs.py for Arm platforms.

2020-07-02 Thread Richard Cooper (Gerrit) via gem5-dev
Richard Cooper has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/30575 )


Change subject: configs: Updated DTB warnings in fs.py for Arm platforms.
..

configs: Updated DTB warnings in fs.py for Arm platforms.

fs.py warns when an Arm platform is being created without a DTB file,
if the platform does not support the automatic creation of a DTB.

Updated the list of supported platforms with recent additions in order
to remove incorrect and potentially confusing warnings.

Change-Id: I549124a1afbc36e313f614dccab17973582bc3f7
Reviewed-by: Giacomo Travaglini 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/30575
Tested-by: kokoro 
Maintainer: Giacomo Travaglini 
---
M configs/example/fs.py
1 file changed, 6 insertions(+), 3 deletions(-)

Approvals:
  Giacomo Travaglini: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/configs/example/fs.py b/configs/example/fs.py
index 6643d35..d39feee 100644
--- a/configs/example/fs.py
+++ b/configs/example/fs.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2010-2013, 2016, 2019 ARM Limited
+# Copyright (c) 2010-2013, 2016, 2019-2020 ARM Limited
 # Copyright (c) 2020 Barkhausen Institut
 # All rights reserved.
 #
@@ -366,8 +366,11 @@

 if buildEnv['TARGET_ISA'] == "arm" and not options.bare_metal \
 and not options.dtb_filename:
-if options.machine_type not in ["VExpress_GEM5", "VExpress_GEM5_V1"]:
-warn("Can only correctly generate a dtb for VExpress_GEM5_V1 " \
+if options.machine_type not in ["VExpress_GEM5",
+"VExpress_GEM5_V1",
+"VExpress_GEM5_V2",
+"VExpress_GEM5_Foundation"]:
+warn("Can only correctly generate a dtb for VExpress_GEM5_* " \
  "platforms, unless custom hardware models have been  
equipped "\

  "with generation functionality.")


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/30575
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I549124a1afbc36e313f614dccab17973582bc3f7
Gerrit-Change-Number: 30575
Gerrit-PatchSet: 3
Gerrit-Owner: Richard Cooper 
Gerrit-Reviewer: Giacomo Travaglini 
Gerrit-Reviewer: Richard Cooper 
Gerrit-Reviewer: kokoro 
Gerrit-MessageType: merged
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: arch-arm: Implementation of SelfHosted Debug Software step

2020-07-02 Thread Jordi Vaquero (Gerrit) via gem5-dev
Jordi Vaquero has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/30617 )


Change subject: arch-arm: Implementation of SelfHosted Debug Software step
..

arch-arm: Implementation of SelfHosted Debug Software step

This commit implements SelfHosted Debug Software step as is defined in
Armv8 Reference manual chapter D2.

+ decoder.hh/cc/isa: Checks the software step bit in order to skip the  
instruction

  before its decode.
+ faults.hh/cc: implemented SoftwareStep exception and proper modification
of spsr during the invoke of other exceptions
+ isa.cc: Set debug mask if needed during cpsr modification
+ tlb.cc: Checks if software step is in ACTIVE state to avoid trigger
  breakpoint or watchpoint exception
+ self_debug.hh/cc: Implementation of State change and ss bit based during  
eret.
+ types.hh: Define sofware step flags like step, load or stepped to check  
the different flags

that triggering software step should use for the ISS code.
+ pseudo.hh/isa: Triggers the sofware step esception after decode.
+ static_inst.cc: Call debugExceptionReturnsSS durint eret routine.

Change-Id: I3a64507c64842c34c76ad7f6daa5f4306bd55d2c
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/30617
Reviewed-by: Giacomo Travaglini 
Maintainer: Giacomo Travaglini 
Tested-by: kokoro 
---
M src/arch/arm/decoder.cc
M src/arch/arm/faults.cc
M src/arch/arm/faults.hh
M src/arch/arm/insts/pseudo.cc
M src/arch/arm/insts/pseudo.hh
M src/arch/arm/insts/static_inst.cc
M src/arch/arm/isa.cc
M src/arch/arm/isa/bitfields.isa
M src/arch/arm/isa/decoder/decoder.isa
M src/arch/arm/isa/formats/pseudo.isa
M src/arch/arm/isa/insts/ldr.isa
M src/arch/arm/isa/insts/ldr64.isa
M src/arch/arm/self_debug.cc
M src/arch/arm/self_debug.hh
M src/arch/arm/tlb.cc
M src/arch/arm/types.hh
16 files changed, 364 insertions(+), 36 deletions(-)

Approvals:
  Giacomo Travaglini: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/arch/arm/decoder.cc b/src/arch/arm/decoder.cc
index 8f37e63..d7de6a2 100644
--- a/src/arch/arm/decoder.cc
+++ b/src/arch/arm/decoder.cc
@@ -53,7 +53,8 @@
 GenericISA::BasicDecodeCache Decoder::defaultCache;

 Decoder::Decoder(ISA* isa)
-: data(0), fpscrLen(0), fpscrStride(0),  
decoderFlavor(isa->decoderFlavor())

+: data(0), fpscrLen(0), fpscrStride(0),
+  decoderFlavor(isa->decoderFlavor())
 {
 reset();

@@ -181,7 +182,7 @@
 pc.nextItstate(itBits);
 this_emi.itstate = pc.itstate();
 this_emi.illegalExecution = pc.illegalExec() ? 1 : 0;
-
+this_emi.debugStep = pc.debugStep() ? 1 : 0;
 pc.size(inst_size);

 emi = 0;
diff --git a/src/arch/arm/faults.cc b/src/arch/arm/faults.cc
index ce9675a..6a3ee18 100644
--- a/src/arch/arm/faults.cc
+++ b/src/arch/arm/faults.cc
@@ -289,6 +289,10 @@
 "Watchpoint",   0x000, 0x000, 0x200, 0x400, 0x600, MODE_SVC,
 0, 0, 0, 0, true, false, false,  EC_WATCHPOINT
 );
+template<> ArmFault::FaultVals ArmFaultVals::vals(
+"SoftwareStep",   0x000, 0x000, 0x200, 0x400, 0x600, MODE_SVC,
+0, 0, 0, 0, true, false, false,  EC_SOFTWARE_STEP
+);
 template<> ArmFault::FaultVals ArmFaultVals::vals(
 // Some dummy values
 "ArmSev Flush",  0x000, 0x000, 0x000, 0x000, 0x000, MODE_SVC,
@@ -649,6 +653,7 @@
 spsr.nz = tc->readCCReg(CCREG_NZ);
 spsr.c = tc->readCCReg(CCREG_C);
 spsr.v = tc->readCCReg(CCREG_V);
+spsr.ss = isResetSPSR() ? 0: cpsr.ss;
 if (from64) {
 // Force some bitfields to 0
 spsr.q = 0;
@@ -662,8 +667,6 @@
 ITSTATE it = tc->pcState().itstate();
 spsr.it2 = it.top6;
 spsr.it1 = it.bottom2;
-// Force some bitfields to 0
-spsr.ss = 0;
 }
 tc->setMiscReg(spsr_idx, spsr);

@@ -705,6 +708,7 @@
 pc.aarch64(!cpsr.width);
 pc.nextAArch64(!cpsr.width);
 pc.illegalExec(false);
+pc.stepped(false);
 tc->pcState(pc);

 // Save exception syndrome
@@ -911,7 +915,9 @@

 HypervisorCall::HypervisorCall(ExtMachInst _machInst, uint32_t _imm) :
 ArmFaultVals(_machInst, _imm)
-{}
+{
+bStep = true;
+}

 ExceptionClass
 HypervisorCall::ec(ThreadContext *tc) const
@@ -1739,6 +1745,52 @@
 return EC_WATCHPOINT_LOWER_EL;
 }

+SoftwareStepFault::SoftwareStepFault(ExtMachInst _mach_inst, bool is_ldx,
+ bool _stepped)
+: ArmFaultVals(_mach_inst), isldx(is_ldx),
+  stepped(_stepped)
+{
+bStep = true;
+}
+
+bool
+SoftwareStepFault::routeToHyp(ThreadContext *tc) const
+{
+const bool have_el2 = ArmSystem::haveVirtualization(tc);
+
+const HCR hcr  = tc->readMiscRegNoEffect(MISCREG_HCR_EL2);
+const HDCR mdcr  = tc->readMiscRegNoEffect(MISCREG_MDCR_EL2);
+
+return have_el2 && !inSecureState(tc) && fromEL <= EL1 &&
+(hcr.tge || 

[gem5-dev] Params not passed correctly from Python to C++

2020-07-02 Thread Hsuan Hsu via gem5-dev
Hi, I’m now testing gem5-20.0.0.2 so that I can rebase my work on it, but I 
encounter an issue where gem5 crashes when booting Linux with atomic CPU.

I’ve already tried a bit to figure out what happens, and it seems the guest 
calls memory-mapped m5ops, but gem5 does not initialize the base address of 
m5ops and hence fail to handle the memory request.

The base address (i.e. system.m5ops_base) is configured as the expected value 
in Python, but when accessing in C++ it becomes another value. Somehow Python 
fails to pass system.m5ops_base to C++ correctly.

More details: https://gem5.atlassian.net/browse/GEM5-658

Is it possible for someone to tell me why this happens or help me get through 
this issue?

Thanks!
Hsuan
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s