Skip to content

Commit

Permalink
Workaround
Browse files Browse the repository at this point in the history
  • Loading branch information
tilk committed Nov 3, 2023
1 parent de02c82 commit d428f1d
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions test/regression/memory.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ def write(self, req: WriteRequest) -> WriteReply:


class CoreMemoryModel:
def __init__(self, segments: list[MemorySegment], fail_on_undefined=False):
def __init__(self, segments: list[MemorySegment], fail_on_undefined=True):
self.segments = segments
self.fail_on_undefined = fail_on_undefined

Expand Down Expand Up @@ -166,17 +166,18 @@ def load_segment(segment: Segment, *, disable_write_protection: bool = False) ->
# align instruction section to full icache lines
align_bits = config.icache_block_size_bits
# workaround for fetching/stalling issue
align_bits += 1
extend_end = 2**config.icache_block_size_bits
else:
align_bits = 0
extend_end = 0

align_data_front = seg_start - align_down_to_power_of_two(seg_start, align_bits)
align_data_back = align_to_power_of_two(seg_end, align_bits) - seg_end
align_data_back = align_to_power_of_two(seg_end, align_bits) - seg_end + extend_end

data = b"\x00" * align_data_front + data + b"\x00" * align_data_back

seg_start = align_down_to_power_of_two(seg_start, align_bits)
seg_end = align_to_power_of_two(seg_end, align_bits)
seg_end = align_to_power_of_two(seg_end, align_bits) + extend_end

return RandomAccessMemory(range(seg_start, seg_end), flags, data)

Expand Down

0 comments on commit d428f1d

Please sign in to comment.