Bug 403

Summary: runtime configureable LoadStoreUnit needed
Product: Libre-SOC's first SoC Reporter: Luke Kenneth Casson Leighton <lkcl>
Component: Source CodeAssignee: Michael Nolan <mtnolan2640>
Status: RESOLVED FIXED    
Severity: enhancement CC: libre-soc-bugs
Priority: ---    
Version: unspecified   
Hardware: PC   
OS: Linux   
NLnet milestone: --- total budget (EUR) for completion of task and all subtasks: 0
budget (EUR) for this task, excluding subtasks' budget: 0 parent task for budget allocation:
child tasks for budget allocation: The table of payments (in EUR) for this task; TOML format:
Bug Depends on:    
Bug Blocks: 393    

Description Luke Kenneth Casson Leighton 2020-06-24 15:56:58 BST
minerva cli.py is capable of specifying at runtime what to "make".
we need similar capability at strategic interfaces in order to
carry out different levels of testing without other code (untested
or just too much of it) being in the way.

a class is therefore needed that selects between

* TestMemoryLoadStoreUnit
* BareLoadStoreUnit
* CacheLoadStoreUnit
* others (to be added)
Comment 1 Luke Kenneth Casson Leighton 2020-06-25 11:28:42 BST
michael are you sure this is resolved, i didn't see a commit? did you remember
to "git add"?

forgot to add cross-ref:
http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-June/008354.html

basic principle:

class ConfigureableLoadStoreUnit:
    def __init__(self, ifacetype, *args, **kwargs):
        if ifacetype == "testmem":
            self.lsi = TestMemoryLoadStoreUnit(*args, **kwargs)
        elif ifacetype == "bare_wb":
            self.lsi = BareLoadStoreUnit(*args, **kwargs)
        elif ifacetype == "cache_wb":
            self.lsi = CacheLoadStoreUnit(*args, **kwargs)
Comment 2 Luke Kenneth Casson Leighton 2020-06-26 11:37:31 BST
apologies, michael, i didn't hear back from you, had to move on:

[master c88f971] add reconfigureable Load/Store class