feat: DSS RTI driver implementation and host unit tests #113
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#113
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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/rti/hal_dss_rti.c/.h— driver for the two independent DSS-side (C674x) RTI (Real-Time Interrupt) timer instances,DSS_RTIA/DSS_RTIB(TRM Table 4-3's "DSS_RTI (WDT/RTI1)"/"DSS_RTI2", this project's mmwave_sdk-style RTIA/RTIB naming). Same Hercules IP block as the already-landed MSS RTI driver, but neither DSS instance is wired to reset/NMI logic as a watchdog, so this driver — like its scope precedenthal_edma.c— only ever touches counter block 0 / compare channel 0: no watchdog-mode registers, no counter block 1 / compare channels 1-3, no external NTU timebase/capture, no DMA-request wiring.Provides
hal_dss_rti_init(),hal_dss_rti_configure_periodic()(computesRTICPUC0/RTICOMP0/RTIUDCP0frominput_clock_hz/prescale/target_rate_hz),hal_dss_rti_start(),hal_dss_rti_stop(), andhal_dss_rti_clear_interrupt_flag(). The full register bring-up sequence is a 1:1 transcription ofexample/Barebones_DSS/src/dss_tick_timer.c(siblingAWR6xxx_Toolchainrepo), empirically confirmed correct on real AWR6843 silicon — including a documented hardware quirk:RTIUDCP0must be programmed to the same value asRTICOMP0(not left at 0), since leaving it at 0 makes the compare-0 interrupt fire exactly once ever instead of periodically, a mistake easy to "simplify away" without having hit this quirk on real hardware.Use Case / Rationale
As a firmware developer, I need periodic tick-timer bring-up parity on the DSS core with the already-landed MSS RTI driver, generically parameterized rather than hardcoded to the one reference clock/prescale/rate combination
dss_tick_timer.cuses.Acceptance Criteria
hal/dss/rti/hal_dss_rti.c/.himplemented against this project's currenthal/registers/component/rti.h/instance/rti.htesting/dss/rti/test_dss_rti.cpasses underctestFunctional Impact
None — self-contained addition alongside the already-landed Mailbox/EDMA/VIM/DSS-ADCBUF/DSS-INTC/DSS-Cache/DSS-HWA drivers. Completes the DSS-side driver batch.
Regulatory Impact
None
QMS Impact
None
Risk Impact
No new risk — the register bring-up sequence is a direct transcription of a hardware-validated reference (not independently derived from the TRM alone), and the documented RTIUDCP0 quirk is carried forward explicitly rather than silently. Existing risk coverage sufficient.
Related Issues / PRs
Relates to #4, relates to #99, relates to #101, relates to #103, relates to #105, relates to #107, relates to #109, relates to #111