In our project (custom board with OMAP-L138 and Spartan6) we have the following HPI initialization sequence (based on section 22.2.8 of OMAP-L138 DSP+ARM Processor Technical Reference Manual):
- Configure HPI pinmux
- Enable HPI in CFGCHIP1
- Set DUALHPIA and HWOB in HPIC (done by FPGA connected to OMAP)
- Configure FREE and SOFT bits in PWREMU_MGMT
- Release HPI from reset
- Verify that everything went correctly by checking if HWOB bit value changed (was written by FPGA)
Is this sequence correct? The problem is that we randomly (in about 4% cases) experience failure in step 6 (HWOB value is invalid) and we wonder if it's caused by some mistake in initialization sequence.