feat(dss-hwa): DSS HWA driver implementation and host unit tests #112
No reviewers
Labels
No labels
Category
App
Category
Documentation
Category
Firmware
Category
Hardware
Category
Qms
PR_Size
L
PR_Size
M
PR_Size
S
PR_Size
XL
PR_Size
XS
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Priority
Very Low Priority
Size
Epic
Size
Feature
Size
Task
Status
Blocked
Status
Draft
Status
Needs-review
Team
Board
Team
Dev
Team
Management
Type
Bug
Type
Capa
Type
Improvement
Type
New-feature
Type
Regulatory
Type
Usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
opendutchsolutions.public/hal_awr6843!112
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/111-dss-hwa-driver"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Adds
hal/dss/hwa/hal_dss_hwa.c/.h— the DSS-side counterpart of the already-landed MSS HWA driver (#95/#96). Same physical Hardware Accelerator, dual-mapped at DSS-visible addresses (DSS_HWA1/DSS_HWA1_PARAM) instead of MSS's. Namedhal_dss_hwa_*()rather thanhal_hwa_*()to avoid collision should both ever be linked into the same firmware image.Provides
hal_dss_hwa_init()(TI mmWave SDKhwa.c-sourced bring-up sequence: disable, pulseACCRESET, ungate clock, clear stalePARAMDONESTAT, zero all 16 param-RAM entries),hal_dss_hwa_load_param_set()(raw 32-byte param-set blob write — deliberately not a structured-field API, same rationale as the MSS driver),hal_dss_hwa_trigger()(single contiguousPARAMSTART..PARAMSTOPrange,NLOOPS = 0), andhal_dss_hwa_is_done()(poll-onlyHWACCREG4.PARAMDONESTAT, no ISR path — DSS-localPARAM_DONEinterrupts exist but are out of scope here, matching the MSS driver's polling-only shape).Carries forward the same documented scope limits as the MSS driver: no real FFT/CFAR/log-magnitude/compression correctness validation, no individual
PARAMn_xfield API, no DMA-triggered param-sets or looped execution.Why
Continues the DSS-side driver batch (Mailbox, EDMA, VIM, DSS ADCBUF, DSS INTC, DSS Cache already landed) with HWA parity for the DSS core.
Related Issue
Closes #111
Type of Change
Impact Assessment
Testing
testing/dss/hwa/test_dss_hwalocally (10 test cases, 77 assertions, all passing) alongside the full existingctestsuite (387/387 passing, no regressions); ran a full MISRA C:2025 pass (0 unsuppressed findings,-DENABLE_DSS_HWA_MODULEadded); reformatted and re-verified against the exact clang-format 18.1.3 the CI runner uses; sanity-checked by dropping the+ 1Ufromhwa_range_mask()'s inclusive-range bit count, confirming the test suite fails (4 assertions across 3 test cases), then reverting.PR Size
Size justification / exemption (if L or XL):
642 raw lines across 6 files, all hand-reviewed (no mechanically-generated content). Not split further — the driver (
hal_dss_hwa.c/.h, 396 lines) and its Catch2 spec (test_dss_hwa.c, 241 lines) don't decompose into independently-reviewable sub-PRs, same rationale as every prior driver PR in this project. The remaining files are small CMake/MISRA wiring diffs, also not independently reviewable apart from the driver they enable.Checklist
type(scope): descriptionconvention withRelates to #<issue>footerSummary
hal/dss/hwa/hal_dss_hwa.c/.h: DSS HWA driver — init/bring-up, raw param-set load, single-range trigger, poll-only completion checktesting/dss/hwa/test_dss_hwa.c(+CMakeLists.txt): Catch2 functional test suite. No naming collision withti_hal_comparison(that suite's HWA test istest_hwa, nottest_dss_hwa).testing/CMakeLists.txt:add_subdirectory(dss/hwa)andENABLE_DSS_HWA_MODULEin the sharedhw_fakescompile definitionstools/misra/run_misra.sh:-DENABLE_DSS_HWA_MODULEadded