gem5-dev@gem5.org

The gem5 Developer List

View all threads

[S] Change in gem5/gem5[develop]: fastmodel: Create amba_pv extension if not exist

WC
Wei-Han Chen (Gerrit)
Fri, Apr 7, 2023 2:44 AM

Wei-Han Chen has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/69481?usp=email )

Change subject: fastmodel: Create amba_pv extension if not exist
......................................................................

fastmodel: Create amba_pv extension if not exist

This CL create amba_pv extension is it doesn't exist in tlm to amba
bridge. Also, when creating a new amba_pv extension, it tries to set
that correctly.

Change-Id: I5cbb537192e95a615ff7e606657f73426f2c79a8

M src/arch/arm/fastmodel/amba_from_tlm_bridge.cc
1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/arch/arm/fastmodel/amba_from_tlm_bridge.cc
b/src/arch/arm/fastmodel/amba_from_tlm_bridge.cc
index d21b5f8..34a63bb 100644
--- a/src/arch/arm/fastmodel/amba_from_tlm_bridge.cc
+++ b/src/arch/arm/fastmodel/amba_from_tlm_bridge.cc
@@ -108,8 +108,29 @@

  amba_pv::amba_pv_extension *amba_ex = nullptr;
  trans.get_extension(amba_ex);
  • if (!amba_ex) {
    
  •    return;
    
  •    amba_ex = new amba_pv::amba_pv_extension();
    
  •    // Codes are copied from amba_pv_from_tlm_bridge header.
    
  •    // It tries to initiate a new amba_pv extension correctly.
    
  •    unsigned int l = trans.get_data_length();
    
  •    unsigned int w = amba_pv_m.get_bus_width_bytes();
    
  •    if (l > w) {
    
  •        amba_ex->set_size(w);
    
  •        amba_ex->set_length(l / w);
    
  •        if (trans.get_streaming_width() < l) {
    
  •            amba_ex->set_burst(amba_pv::AMBA_PV_FIXED);
    
  •        }
    
  •    } else {
    
  •        amba_ex->set_size(l);
    
  •    }
    
  •    if (trans.has_mm()) {
    
  •        trans.set_auto_extension(amba_ex);
    
  •    } else {
    
  •        trans.set_extension(amba_ex);
    
  •    }
    }
    
    amba_ex->set_privileged(control_ex->isPrivileged());
    

--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/69481?usp=email
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: I5cbb537192e95a615ff7e606657f73426f2c79a8
Gerrit-Change-Number: 69481
Gerrit-PatchSet: 1
Gerrit-Owner: Wei-Han Chen weihanchen@google.com
Gerrit-MessageType: newchange

Wei-Han Chen has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/69481?usp=email ) Change subject: fastmodel: Create amba_pv extension if not exist ...................................................................... fastmodel: Create amba_pv extension if not exist This CL create amba_pv extension is it doesn't exist in tlm to amba bridge. Also, when creating a new amba_pv extension, it tries to set that correctly. Change-Id: I5cbb537192e95a615ff7e606657f73426f2c79a8 --- M src/arch/arm/fastmodel/amba_from_tlm_bridge.cc 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/arch/arm/fastmodel/amba_from_tlm_bridge.cc b/src/arch/arm/fastmodel/amba_from_tlm_bridge.cc index d21b5f8..34a63bb 100644 --- a/src/arch/arm/fastmodel/amba_from_tlm_bridge.cc +++ b/src/arch/arm/fastmodel/amba_from_tlm_bridge.cc @@ -108,8 +108,29 @@ amba_pv::amba_pv_extension *amba_ex = nullptr; trans.get_extension(amba_ex); + if (!amba_ex) { - return; + amba_ex = new amba_pv::amba_pv_extension(); + + // Codes are copied from amba_pv_from_tlm_bridge header. + // It tries to initiate a new amba_pv extension correctly. + unsigned int l = trans.get_data_length(); + unsigned int w = amba_pv_m.get_bus_width_bytes(); + if (l > w) { + amba_ex->set_size(w); + amba_ex->set_length(l / w); + if (trans.get_streaming_width() < l) { + amba_ex->set_burst(amba_pv::AMBA_PV_FIXED); + } + } else { + amba_ex->set_size(l); + } + + if (trans.has_mm()) { + trans.set_auto_extension(amba_ex); + } else { + trans.set_extension(amba_ex); + } } amba_ex->set_privileged(control_ex->isPrivileged()); -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/69481?usp=email 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: I5cbb537192e95a615ff7e606657f73426f2c79a8 Gerrit-Change-Number: 69481 Gerrit-PatchSet: 1 Gerrit-Owner: Wei-Han Chen <weihanchen@google.com> Gerrit-MessageType: newchange