I am having some trouble enabling conditional access debug on the LS1046A(E).
We are not interested in secure boot at the moment, so it is not enabled.
The following are the steps I execute in U-Boot:
- Set PPW in SFP_SFPCR according to our peripheral clock
- Set debug level (DBLEV) to 1 in SFP_OSPR1
- Set debug challenge value in SFP_DCVR0/1
- Set debug response value in SFP_DRVR0/1
- Verify that SFP_SVHESR does not indicate Hamming errors afterwards
- Ensure PROG_SFP pin is HIGH
- Execute "program fuse box" instruction via SFP_INGR
- Verify that SFP_INGR does not indicate any errors afterwards
- Ensure PROG_SFP gets pulled LOW again
Unfortunately, the fuses do not seem to get written.
If I reboot or execute the "read fuse box" instruction after these steps, I read the debug level and the debug challenge values to be 0 again.
Also, the debugger can connect without any issues.
Since the SFP has different endianness from the CPU, I am swapping bytes in the values.
And I am quite confident that I am writing to the correct addresses, as I've checked and re-checked them several times.
Are these steps expected to work? Or am I missing something?
Must I set ITS for secure debug fuses to be written?
As mentioned, we are not interested in secure boot right now.