Skip to content

Alert framework for PSU #218

@JoshuaJeyaraj

Description

@JoshuaJeyaraj

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions