mirror of
https://github.com/enjoy-digital/litex.git
synced 2025-01-04 09:52:26 -05:00
soc/get_mem_data: add direct support for regions
We now support passing filename (offset=0), json file and regions
This commit is contained in:
parent
0714816f31
commit
fbb24720f0
1 changed files with 11 additions and 7 deletions
|
@ -77,15 +77,19 @@ def mem_decoder(address, start=26, end=29):
|
|||
return lambda a: a[start:end] == ((address >> (start+2)) & (2**(end-start))-1)
|
||||
|
||||
|
||||
def get_mem_data(filename, endianness="big", mem_size=None):
|
||||
def get_mem_data(filename_or_regions, endianness="big", mem_size=None):
|
||||
# create memory regions
|
||||
_, ext = os.path.splitext(filename)
|
||||
if ext == ".json":
|
||||
f = open(filename, "r")
|
||||
regions = json.load(f)
|
||||
f.close()
|
||||
if isinstance(filename_or_regions, dict):
|
||||
regions = filename_or_regions
|
||||
else:
|
||||
regions = {filename: "0x00000000"}
|
||||
filename = filename_or_regions
|
||||
_, ext = os.path.splitext(filename)
|
||||
if ext == ".json":
|
||||
f = open(filename, "r")
|
||||
regions = json.load(f)
|
||||
f.close()
|
||||
else:
|
||||
regions = {filename: "0x00000000"}
|
||||
|
||||
# determine data_size
|
||||
data_size = 0
|
||||
|
|
Loading…
Reference in a new issue