I found it weird that the get property is working properly, but the read fuse not. Are you trying to read the same fuse in the EVK and your custom board? Could you please attach some screenshots that show how some commands work but the fuse read fails? Also, if you could attach some screenshots of the fuse reading on the EVK, it would be helpful.
Thanks for the reply. Since the commands are being sent to the Boot ROM that i can't modify, and the chips are the same, I didn't understand why reading the efuse would result in an unknown command error.
I've attached screenshots for communicating with both our custom board and with the EVK. I've attached screenshots showing the command line results when invoking from the Boot Utility GUI, as well as using the blhost command line.
Notice how the get property commands succeed for both boards, with the same returns, yet the read efuse command fails on the custom board but succeeds on the EVK.
How are you sending your custom board to Serial Master? If you use the UART interface instead of the USB in the custom board, do you have the same problem? Did you verify that you are using the correct VID and PID? Do other commands run in your custom board?
By Serial Master do you mean Serial ISP? Which is also listed as ISP boot mode ?
With no fuses blown and no programs to load from external memory, the processor goes into ISP boot mode as the fallback, correct ? That is what the manual states, and I'm assuming I am in the correct mode for programming external memory.
On the EVK, I can change the dip switches for the ISP bits, and regardless of the settings, I appear to be in the ISP boot mode and can execute the commands I attached in my previous post.
The PID and VID should be correct since the get property commands work, but the fuse reading does not. If the PID/VID were incorrect, I wouldn't think I would have any communications at all.
We do not have the UART on Flexcomm 0 broken out on our board (we are using the signals for other functionality, so this isn't an easy option). Either way, it seems like the communication path is working correctly, since get property works successfully. The same commands should be called on the processor whether communicating over UART or USB.
I did some further testing on this and made progress, solving the blhost issue, but I now have another issue for which I'll make a new post.
I wrote a small program to invoke the runBootloader function outlined in the user manual, in order to jump to the boot rom, passing the parameters for ISP BOOT HID. When I entered the boot rom with this method, the ability to read the efuses was successful. I guess there was some weird issue with how we were entering it upon power up.
I then blew some fuses to setup our boot from flash. In BOOTCFG0 (address 96), I first set the REDUNDANT SPI PORT to 1, as we will use it for booting from serial NOR. I was able to successfully set it to 0x00020000 and read it back for confirmation. Since we intend to primarily boot from this serial NOR, I then wrote 0x00020007 to set the serial NOR as the master boot. The write was successful, but when I try and read it back, I get the following error: 52805 - kStatus_OTP_EccCheckFail - ECC check failed during OTP operation.
I was able to successfully store a program in NOR and boot from it on powerup, so I know the write successfully set the register to 0x00020007. However, I can no longer read this fuse. I can read other fuses successfully. I will create a new post for this issue.