feat: ESM (Error Signaling Module) driver implementation and host unit tests #77
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#77
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/mss/esm/hal_esm.c/.h(+private/esm_types.h) — the ESM driver: pending-error clear on init, routing ESM's high/low priority lines through the VIM, per-channel Group 1 IRQ enable/disable, and high/low priority IRQ handlers decodingESMIOFFHR/ESMIOFFLRto a weak, application-overridablehal_esm_irq_handler()hook. Also landshal/mss/vim/hal_vim.h(declarations only — the VIM driver implementation itself is a separate future issue) sincehal_esm_init()callshal_vim_set_priority()/hal_vim_enable().Use Case / Rationale
As a firmware developer, I need ESM error-signal routing/enable handled through a
hal_esm_*API instead of hand-rolled ESM register access, following the same driver pattern established by GPIO (#75).As a QMS reviewer, I need this driver's channel-numbering table cross-checked against TI's own source (
sys_common_xwr68xx_mss.h's ESM Group 1/2/3 tables), the same rigor applied throughout the register-description epic (#4).User Stories
hal_esm_init()to clear pending errors and wire both ESM interrupt lines through the VIM in one call.hal_esm_enable_irq()/hal_esm_disable_irq()to target the correctESMIESR/ESMIECRregister for any Group 1 channel (0-95) without needing to know the register layout.testing/mss/unit/hal_functionality/test_esm.c) covering both IRQ handlers' channel-decode logic and the VIM routing calls (via FFF fakes), runnable in CI without target hardware.Acceptance Criteria
hal/mss/esm/hal_esm.c/.himplemented against this project's currenthal/registers/component/esm.h/instance/esm.hhal/mss/esm/private/esm_types.h's channel table cross-checked against TI'ssys_common_xwr68xx_mss.hESM Group 1/2/3 mappinghal/mss/vim/hal_vim.hlands (declarations only, no.cyet) sohal_esm.ccan callhal_vim_set_priority()/hal_vim_enable()testing/mss/unit/hal_functionality/test_esm.cpasses underctest, using FFF fakes for the two VIM callsFunctional Impact
None — self-contained addition alongside the already-landed GPIO driver.
Regulatory Impact
None
QMS Impact
None
Risk Impact
No — existing risk coverage sufficient.
Related Issues / PRs
Relates to #4, relates to #75