[gem5-dev] Change in gem5/gem5[master]: misc: Test

2021-07-16 Thread Hoa Nguyen (Gerrit) via gem5-dev
Hoa Nguyen has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/48223 )



Change subject: misc: Test
..

misc: Test

Change-Id: Ie28dd4b13ee36b5f4c0a27646645180dd211e90a
---
A hello
1 file changed, 1 insertion(+), 0 deletions(-)



diff --git a/hello b/hello
new file mode 100644
index 000..9daeafb
--- /dev/null
+++ b/hello
@@ -0,0 +1 @@
+test

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


Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: Ie28dd4b13ee36b5f4c0a27646645180dd211e90a
Gerrit-Change-Number: 48223
Gerrit-PatchSet: 1
Gerrit-Owner: Hoa Nguyen 
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[stable]: misc: Test

2021-07-16 Thread Hoa Nguyen (Gerrit) via gem5-dev
Hoa Nguyen has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/48222 )



Change subject: misc: Test
..

misc: Test

Change-Id: I99f6723061e3564c63b94fe5dd309cfdc32202f1
---
A hello
1 file changed, 1 insertion(+), 0 deletions(-)



diff --git a/hello b/hello
new file mode 100644
index 000..9daeafb
--- /dev/null
+++ b/hello
@@ -0,0 +1 @@
+test

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


Gerrit-Project: public/gem5
Gerrit-Branch: stable
Gerrit-Change-Id: I99f6723061e3564c63b94fe5dd309cfdc32202f1
Gerrit-Change-Number: 48222
Gerrit-PatchSet: 1
Gerrit-Owner: Hoa Nguyen 
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[stable]: misc: Test

2021-07-16 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/48221 )



Change subject: misc: Test
..

misc: Test

Change-Id: Iaa21175b402250172a31d216d3a770359d4cc024
---
A hello
1 file changed, 1 insertion(+), 0 deletions(-)



diff --git a/hello b/hello
new file mode 100644
index 000..9daeafb
--- /dev/null
+++ b/hello
@@ -0,0 +1 @@
+test

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


Gerrit-Project: public/gem5
Gerrit-Branch: stable
Gerrit-Change-Id: Iaa21175b402250172a31d216d3a770359d4cc024
Gerrit-Change-Number: 48221
Gerrit-PatchSet: 1
Gerrit-Owner: Bobby R. Bruce 
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[master]: misc: Test

2021-07-16 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/48220 )



Change subject: misc: Test
..

misc: Test

Change-Id: Iaa21175b402250172a31d216d3a770359d4cc024
---
A hello
1 file changed, 1 insertion(+), 0 deletions(-)



diff --git a/hello b/hello
new file mode 100644
index 000..9daeafb
--- /dev/null
+++ b/hello
@@ -0,0 +1 @@
+test

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


Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: Iaa21175b402250172a31d216d3a770359d4cc024
Gerrit-Change-Number: 48220
Gerrit-PatchSet: 1
Gerrit-Owner: Bobby R. Bruce 
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[release-staging-v21-1]: arch-riscv: Revert change-45522

2021-07-16 Thread Hoa Nguyen (Gerrit) via gem5-dev
Hoa Nguyen has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/48099 )


Change subject: arch-riscv: Revert change-45522
..

arch-riscv: Revert change-45522

This reverts change:
https://gem5-review.googlesource.com/c/public/gem5/+/45522.

This reverts commit 1cf41d4c54c988ef4808d8efc1f6212e54a4c120.

Reason for revert:

The above commit caused booting Linux using RISCV either to
hang or to take significantly time more than to finish.

For the v21-1 release, the above commit will be reverted.

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

Change-Id: I58fbe96d7ea50031eba40ff49dabdef971faf6ff
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/48099
Reviewed-by: Bobby R. Bruce 
Maintainer: Bobby R. Bruce 
Tested-by: kokoro 
---
M src/arch/riscv/isa/formats/standard.isa
1 file changed, 46 insertions(+), 94 deletions(-)

Approvals:
  Bobby R. Bruce: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/arch/riscv/isa/formats/standard.isa  
b/src/arch/riscv/isa/formats/standard.isa

index edb2268..dad2c2b 100644
--- a/src/arch/riscv/isa/formats/standard.isa
+++ b/src/arch/riscv/isa/formats/standard.isa
@@ -274,7 +274,7 @@
 }
 }};

-def template CSRExecuteRo {{
+def template CSRExecute {{
 Fault
 %(class_name)s::execute(ExecContext *xc,
 Trace::InstRecord *traceData) const
@@ -287,6 +287,8 @@
 %(op_decl)s;
 %(op_rd)s;

+RegVal data, olddata;
+
 switch (csr) {
   case CSR_SATP: {
 auto pm = (PrivilegeMode)xc->readMiscReg(MISCREG_PRV);
@@ -311,91 +313,55 @@
 break;
 }

-RegVal data;
 if (csr == CSR_FCSR) {
-data = xc->readMiscReg(MISCREG_FFLAGS) |
-   (xc->readMiscReg(MISCREG_FRM) << FRM_OFFSET);
-} else {
-data = xc->readMiscReg(midx);
-}
-
-DPRINTF(RiscvMisc, "Reading CSR %s: %#x\n", csrName, data);
-
-%(code)s;
-%(op_wb)s;
-
-return NoFault;
-}
-}};
-
-def template CSRExecuteRw {{
-Fault
-%(class_name)s::execute(ExecContext *xc,
-Trace::InstRecord *traceData) const
-{
-if (!valid) {
-return std::make_shared(
-csprintf("Illegal CSR index %#x\n", csr), machInst);
-}
-if (bits(csr, 11, 10) == 0x3) {
-return std::make_shared(
-csprintf("CSR %s is read-only\n", csrName), machInst);
-}
-
-%(op_decl)s;
-%(op_rd)s;
-
-switch (csr) {
-  case CSR_SATP: {
-auto pm = (PrivilegeMode)xc->readMiscReg(MISCREG_PRV);
-STATUS status = xc->readMiscReg(MISCREG_STATUS);
-if (pm == PRV_U || (pm == PRV_S && status.tvm == 1)) {
-return std::make_shared(
-"SATP access in user mode or with TVM enabled\n",
-machInst);
-}
-break;
-  }
-  case CSR_MSTATUS: {
-auto pm = (PrivilegeMode)xc->readMiscReg(MISCREG_PRV);
-if (pm != PrivilegeMode::PRV_M) {
-return std::make_shared(
-"MSTATUS is only accessibly in machine mode\n",
-machInst);
-}
-break;
-  }
-  default:
-break;
-}
-
-RegVal data;
-if (csr == CSR_FCSR) {
-data = xc->readMiscReg(MISCREG_FFLAGS) |
+olddata = xc->readMiscReg(MISCREG_FFLAGS) |
   (xc->readMiscReg(MISCREG_FRM) << FRM_OFFSET);
 } else {
-data = xc->readMiscReg(midx);
+olddata = xc->readMiscReg(midx);
 }
+auto olddata_all = olddata;

-RegVal original = data;
-
-DPRINTF(RiscvMisc, "Reading CSR %s: %#x\n", csrName, data &  
maskVal);

+olddata &= maskVal;
+DPRINTF(RiscvMisc, "Reading CSR %s: %#x\n", csrName, olddata);
+data = olddata;

 %(code)s;

-// We must keep those original bits not in the mask. Hidden bits  
should

-// keep their original value.
-data = (original & ~maskVal) | (data & maskVal);
-
-DPRINTF(RiscvMisc, "Writing %#x to CSR %s.\n", data, csrName);
-
-if (csr == CSR_FCSR) {
-xc->setMiscReg(MISCREG_FFLAGS, bits(data, 4, 0));
-xc->setMiscReg(MISCREG_FRM, bits(data, 7, 5));
-} else {
-xc->setMiscReg(midx, data);
+data &= maskVal;
+if (data != olddata) {
+if (bits(csr, 11, 10) == 0x3) {
+return std::make_shared(
+csprintf("CSR %s is read-only\n", csrName),  
machInst);

+}
+auto newdata_all = data;
+// We must keep those original bits not in mask.
+// olddata and data only 

[gem5-dev] Change in gem5/gem5[release-staging-v21-1]: arch-arm: Stage1&2 TableWalkers sharing same port

2021-07-16 Thread Giacomo Travaglini (Gerrit) via gem5-dev
Giacomo Travaglini has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/48200 )



Change subject: arch-arm: Stage1&2 TableWalkers sharing same port
..

arch-arm: Stage1&2 TableWalkers sharing same port

This patch reverts part of the changes made by the removal of
the Stage2MMU class [1]:

Prior to that patch the stage1 and stage2 walkers were sharing
the same port (which was instantiated in the Stage2MMU).
By removing the Stage2MMU we provided every table walker a
unique port.

With this patch we are reintroducing port sharing to temporarily fix
existing platforms using walker caches.
(The long term design goal will be to have a unique page table walker)

Those complain if we try to connect a single ported cache to 2 table
walker ports (stage1 and stage2)

[1]: https://gem5-review.googlesource.com/c/public/gem5/+/45780

Change-Id: Ib68ef97f1e9772a698771269c9a4ec4514f5d4d7
Signed-off-by: Giacomo Travaglini 
---
M src/arch/arm/ArmMMU.py
M src/arch/arm/mmu.cc
M src/arch/arm/mmu.hh
M src/arch/arm/table_walker.cc
M src/arch/arm/table_walker.hh
5 files changed, 17 insertions(+), 7 deletions(-)



diff --git a/src/arch/arm/ArmMMU.py b/src/arch/arm/ArmMMU.py
index 00a0b31..1880f6f 100644
--- a/src/arch/arm/ArmMMU.py
+++ b/src/arch/arm/ArmMMU.py
@@ -65,6 +65,8 @@
 itb = ArmITB()
 dtb = ArmDTB()

+sys = Param.System(Parent.any, "system object parameter")
+
 stage2_itb = Param.ArmTLB(ArmStage2TLB(), "Stage 2 Instruction TLB")
 stage2_dtb = Param.ArmTLB(ArmStage2TLB(), "Stage 2 Data TLB")

@@ -80,12 +82,8 @@

 @classmethod
 def walkerPorts(cls):
-return ["mmu.itb_walker.port", "mmu.dtb_walker.port",
-"mmu.stage2_itb_walker.port", "mmu.stage2_dtb_walker.port"]
+return ["mmu.itb_walker.port", "mmu.dtb_walker.port"]

 def connectWalkerPorts(self, iport, dport):
 self.itb_walker.port = iport
 self.dtb_walker.port = dport
-
-self.stage2_itb_walker.port = iport
-self.stage2_dtb_walker.port = dport
diff --git a/src/arch/arm/mmu.cc b/src/arch/arm/mmu.cc
index 7392947..30164b6 100644
--- a/src/arch/arm/mmu.cc
+++ b/src/arch/arm/mmu.cc
@@ -47,10 +47,17 @@
 MMU::MMU(const ArmMMUParams )
   : BaseMMU(p),
 itbStage2(p.stage2_itb), dtbStage2(p.stage2_dtb),
+iport(p.itb_walker, p.sys->getRequestorId(p.itb_walker)),
+dport(p.dtb_walker, p.sys->getRequestorId(p.dtb_walker)),
 itbWalker(p.itb_walker), dtbWalker(p.dtb_walker),
 itbStage2Walker(p.stage2_itb_walker),
 dtbStage2Walker(p.stage2_dtb_walker)
-{}
+{
+itbWalker->setPort();
+dtbWalker->setPort();
+itbStage2Walker->setPort();
+dtbStage2Walker->setPort();
+}

 void
 MMU::init()
diff --git a/src/arch/arm/mmu.hh b/src/arch/arm/mmu.hh
index f9ebeb3..a129831 100644
--- a/src/arch/arm/mmu.hh
+++ b/src/arch/arm/mmu.hh
@@ -38,6 +38,7 @@
 #ifndef __ARCH_ARM_MMU_HH__
 #define __ARCH_ARM_MMU_HH__

+#include "arch/arm/table_walker.hh"
 #include "arch/arm/tlb.hh"
 #include "arch/generic/mmu.hh"

@@ -69,6 +70,9 @@
 TLB *itbStage2;
 TLB *dtbStage2;

+TableWalker::Port iport;
+TableWalker::Port dport;
+
 TableWalker *itbWalker;
 TableWalker *dtbWalker;
 TableWalker *itbStage2Walker;
diff --git a/src/arch/arm/table_walker.cc b/src/arch/arm/table_walker.cc
index 5632be1..6dc00eb 100644
--- a/src/arch/arm/table_walker.cc
+++ b/src/arch/arm/table_walker.cc
@@ -61,7 +61,7 @@
 TableWalker::TableWalker(const Params )
 : ClockedObject(p),
   requestorId(p.sys->getRequestorId(this)),
-  port(new Port(this, requestorId)),
+  port(nullptr),
   isStage2(p.is_stage2), tlb(NULL),
   currState(NULL), pending(false),
   numSquashable(p.num_squash_per_cycle),
diff --git a/src/arch/arm/table_walker.hh b/src/arch/arm/table_walker.hh
index 992e224..165a922 100644
--- a/src/arch/arm/table_walker.hh
+++ b/src/arch/arm/table_walker.hh
@@ -1037,6 +1037,7 @@

 void setMmu(MMU *_mmu) { mmu = _mmu; }
 void setTlb(TLB *_tlb) { tlb = _tlb; }
+void setPort(Port *_port) { port = _port; }
 TLB* getTlb() { return tlb; }
 void memAttrs(ThreadContext *tc, TlbEntry , SCTLR sctlr,
   uint8_t texcb, bool s);

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


Gerrit-Project: public/gem5
Gerrit-Branch: release-staging-v21-1
Gerrit-Change-Id: Ib68ef97f1e9772a698771269c9a4ec4514f5d4d7
Gerrit-Change-Number: 48200
Gerrit-PatchSet: 1
Gerrit-Owner: Giacomo Travaglini 
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