-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Description
Product: (OC-SDR, OC-LTE, OC-LTE, OC-Power, others)
PSU
Component: (PSU, GBC, BBU, FEM, LED, ME)
PSU
Category: (Hardware, Software/stack, Firmware/bootloader, Documentation)
Firmware
Describe the solution you'd like
Adding an infrastructure for detecting and handling alerts in PSU board .
PSU SW architecture is similar to GBC . But PSU TIVA has limited memory constraints so there has to be a single Alert Manager task which gets unblocked all the alerts and notifies the required tasks to handle interrupts .
Proposed Implementation :
a) During init of the board , _init function will get called for all devices .
- Call ThreadedInt_Init(cb_ptr, pin_nbr , subsystem_id , comp_nbr etc )
- Create/update the lookup table which stores (cb_ptr, pin_nbr, subsystem_id , comp_nbr etc)
- Call OcGpio_setCallback(irqPin, device_ISR, event_nbr); ,to register for interrupt on irqPin , set call back function as gpioIntFxn and pass event number , event number can be the array index in the lookup table
b) Big brother waits for post_complete
- Before post complete, spawn task(Alert Manager) which will read the lookup table created in step
- Enable interrupt based on irqpin for all items on the lookup table
- Wait for event to get triggered
c) When interrupt gets triggered
- device_ISR (pin , event_nbr) gets called
- set the required event nbr
- ISR context ends
d) Alert manager will get unblocked
- Read which event has triggered
- Create an ocmp message (subsystem , comp_id , msgtype etc)
- Send message to required Subsystem task
e) Subsytem task
- receive the alert message
- Handle the alert
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels