mirror of
https://github.com/retroSoC/retroSoC.git
synced 2026-11-04 22:32:36 +00:00
feat: refactor GA2D tests and update to Phase 4 specifications
- Updated resource_controller_tb.sv to verify resource STATUS bit layout after HP handoff. - Modified test_ga2d.py to reflect changes for GA2D Phase 4, including memory map generation and source file handling. - Introduced new test_ga2d_dma.py for independent FILL/COPY reference-model coverage. - Updated test_ga2d_platform.py to check for the activation of the private AXI64 master and IRQ routing. - Adjusted test_ga2d_register_parity.py to validate new scalar encodings for Phase 4. - Enhanced test_hp_boot_bundle.py to ensure HP boot uses the private GA2D mailbox and resource lifecycle. - Updated test_hp_platform.py to verify GA2D lifecycle markers and cache handshake budget. - Modified test_performance_log.py to include GA2D workload and configuration facts in performance logs. - Adjusted test_publication_retrieval.py and test_publication_software.py to reflect changes in GA2D stages. - Updated test_script_tools.py to ensure GA2D formal filelists are correctly scoped. - Refactored test_soc_topology.py to validate the private master policy and active shell in GA2D Phase 4.
This commit is contained in:
71 files changed
+7363
-457
No files matched your search
@@ -25,6 +25,17 @@ REQUIRED_FIELDS = {
|
||||
"psram_wait",
|
||||
"flash_wait",
|
||||
"dma_wait",
|
||||
"workload_bytes",
|
||||
"pixels",
|
||||
"jobs",
|
||||
"cpu_cycles",
|
||||
"cpu_hz",
|
||||
"ga2d_features",
|
||||
"ga2d_limits",
|
||||
"ga2d_formats",
|
||||
"ga2d_cycles",
|
||||
"ga2d_read_bytes",
|
||||
"ga2d_write_bytes",
|
||||
}
|
||||
TOKEN = re.compile(r"([a-z0-9_]+)=([^\s]+)")
|
||||
|
||||
@@ -48,16 +59,47 @@ def parse_log(content: str) -> dict[str, object]:
|
||||
"words": parse_number(fields["words"]),
|
||||
"checksum": int(fields["checksum"], 16),
|
||||
"cycles": parse_number(fields["cycles"]),
|
||||
"workload_bytes": parse_number(fields["workload_bytes"]),
|
||||
"pixels": parse_number(fields["pixels"]),
|
||||
"jobs": parse_number(fields["jobs"]),
|
||||
"cpu_cycles": parse_number(fields["cpu_cycles"]),
|
||||
"ga2d_cycles": parse_number(fields["ga2d_cycles"]),
|
||||
"ga2d_read_bytes": parse_number(fields["ga2d_read_bytes"]),
|
||||
"ga2d_write_bytes": parse_number(fields["ga2d_write_bytes"]),
|
||||
"configuration": {
|
||||
"cpu_hz": parse_number(fields["cpu_hz"]),
|
||||
"ga2d_features": parse_number(fields["ga2d_features"]),
|
||||
"ga2d_limits": parse_number(fields["ga2d_limits"]),
|
||||
"ga2d_formats": parse_number(fields["ga2d_formats"]),
|
||||
},
|
||||
}
|
||||
for counter in sorted(
|
||||
REQUIRED_FIELDS - {"region", "op", "words", "checksum", "cycles"}
|
||||
REQUIRED_FIELDS
|
||||
- {
|
||||
"region",
|
||||
"op",
|
||||
"words",
|
||||
"checksum",
|
||||
"cycles",
|
||||
"workload_bytes",
|
||||
"pixels",
|
||||
"jobs",
|
||||
"cpu_cycles",
|
||||
"cpu_hz",
|
||||
"ga2d_features",
|
||||
"ga2d_limits",
|
||||
"ga2d_formats",
|
||||
"ga2d_cycles",
|
||||
"ga2d_read_bytes",
|
||||
"ga2d_write_bytes",
|
||||
}
|
||||
):
|
||||
sample[counter] = parse_number(fields[counter])
|
||||
samples.append(sample)
|
||||
passed = PASS_MARKER in content
|
||||
failure_marker = any(line.startswith(FAIL_PREFIX) for line in content.splitlines())
|
||||
return {
|
||||
"schema_version": 1,
|
||||
"schema_version": 2,
|
||||
"status": "passed" if passed and samples and not failure_marker else "failed",
|
||||
"failure_marker": failure_marker,
|
||||
"pass_marker": passed,
|
||||
|
||||
@@ -34,6 +34,7 @@ TEST_SOURCES = (
|
||||
"crt/src/hal/dma_math.c",
|
||||
"crt/src/hal/jpeg_math.c",
|
||||
"crt/src/hal/apu.c",
|
||||
"crt/src/hal/ga2d_math.c",
|
||||
"crt/src/hal/ga2d.c",
|
||||
"crt/src/hal/fabric_monitor.c",
|
||||
"crt/src/hal/sysctrl.c",
|
||||
@@ -99,6 +100,7 @@ def main() -> int:
|
||||
"-DRS_APU_TEST_MMIO",
|
||||
"-DRS_GA2D_TEST_MMIO",
|
||||
"-DRS_FABRIC_MONITOR_TEST_MMIO",
|
||||
"-DRS_RESOURCE_TEST_MMIO",
|
||||
"-I",
|
||||
str(memory_map_root / "include"),
|
||||
"-I",
|
||||
|
||||
Reference in new issue
Block a user