As mentioned above, SRIo has various types of packages, including the doorbell package. DOORBELL Is a fast notification short message with short headers and carrying information, it is used for the master SRIo device to notify the slave SRIo device. It can be used for message notifications between DSPs or between FPGA and DSPs.
The payload of the doorbell package is 16 bits. For example, the shadow is a valid bit, and the rest is a reserve bit. Five or six bits are used to select the doorbell interrupt Status Register. For the SRIo of ti dsp, four interrupt status registers are included, namely, doorbell [0-3] _ icsr. Each register is only 16 bits in effect, that is, each register can support 16 interrupt sources, so the four registers can support 64 interrupt sources. In the 4-Core DSP of Ti nyquest, in use, we can configure an icsr register for each core, so that when a location of the corresponding register is reached, the corresponding core will be interrupted. Four registers corresponding to iscr are four doorbell [0-3] _ ICCR registers, which correspond to icsr one by one and are used to clear the interrupt request bit in the iscr register.
For example, if dsp a wants dsp B to send a doorbell notification message, on DSP A, you can configure the doorbell effective bit in the lsux_reg3 register as 1, this indicates that the 16bit doorbell_info in the lsux_reg5 register is valid. We can set doorbell_info to 0x25. When lsux_reg0 ~ After the 5 registers are set, SRIo hardware will generate a doorbell package (which contains two types of generated packages, refer to ti_dsp_srio-useful_q & A). When dsp B receives the package, judge that the payload of the doorbell package is 0x25, And the SRIo hardware will set the 5th-bit interrupt request location of the doorbell1_icsr to 1. In this way, the system event bound to the 5th-bit system event is interrupted. In the interrupt function bound to the event, you can run the callback function bound to the 5th-bit doorbell1_icsr register, you can execute CPU tasks in the callback function. (The following describes how doorbell's interruption to core mechanism is implemented ).