Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alert framework for PSU #218

Open
JoshuaJeyaraj opened this issue Dec 17, 2018 · 0 comments
Open

Alert framework for PSU #218

JoshuaJeyaraj opened this issue Dec 17, 2018 · 0 comments

Comments

@JoshuaJeyaraj
Copy link
Collaborator

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 .

  1. Call ThreadedInt_Init(cb_ptr, pin_nbr , subsystem_id , comp_nbr etc )
  2. Create/update the lookup table which stores (cb_ptr, pin_nbr, subsystem_id , comp_nbr etc)
  3. 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

  1. Before post complete, spawn task(Alert Manager) which will read the lookup table created in step
  2. Enable interrupt based on irqpin for all items on the lookup table
  3. Wait for event to get triggered

c) When interrupt gets triggered

  1. device_ISR (pin , event_nbr) gets called
  2. set the required event nbr
  3. ISR context ends

d) Alert manager will get unblocked

  1. Read which event has triggered
  2. Create an ocmp message (subsystem , comp_id , msgtype etc)
  3. Send message to required Subsystem task

e) Subsytem task

  1. receive the alert message
  2. Handle the alert
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant