Post Go back to editing

VDSP-17003 and PORT_MUX on BF52x


The Software Tools and Anomalies Search reference number VDSP-17003 notes that:

"A PORT_MUX register has macro definitions in the ADSP-BF52x parts def and cdef header files called PORT_MUX and pPORT_MUX. There is no such register PORT_MUX for the ADSP-BF52x parts so these macros should not be defined in these files. These macro definitions will be deleted for BF52x in an Update to VisualDSP+ 5.0."

The result is that there are no Pin Control Register Mask macros provided for BF52x in defBF52x_base.h.

However, the hardware reference manual for BF52x clearly describes the use of PORTx_MUX registers starting on page 406. defBF52x_base.h also includes the register macro for PORTF_MUX with address 0xFFC03210. A simple exercise of writing to this register in conjunction with PORTF_FER changes the peripheral behavior and suggests that there are indeed PORTx_MUX registers on BF52x.

Therefore, VDSP-17003 seems to be in direct contradiction to not only the hardware reference manual but the actual silicon. Unless I'm mistaken, this discrepancy has been around for over a decade! Can some clarity be provided, and if VDSP-17003 is indeed a contradiction, can it be reverted and the Pin Control Mask macros added back into the defBF52x_base.h header? If it is not a contradiction, is the hardware reference manual in error?


Aside: I understand that the driver/service model provides its own ways to enable peripherals, but at times it is preferable to interact with the processor at the lower level, and for that, the headers should accurately reflect the device structure.