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)
|
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
|
# create memory regions
|
||||||
_, ext = os.path.splitext(filename)
|
if isinstance(filename_or_regions, dict):
|
||||||
if ext == ".json":
|
regions = filename_or_regions
|
||||||
f = open(filename, "r")
|
|
||||||
regions = json.load(f)
|
|
||||||
f.close()
|
|
||||||
else:
|
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
|
# determine data_size
|
||||||
data_size = 0
|
data_size = 0
|
||||||
|
|
Loading…
Reference in a new issue