Hi,
I’ve been spending some time getting our custom 4004-based hardware up and running, and have hit a bit of an obstacle.
First off, the 4004 powers up properly, and the supplied driver code is fine up to the point where the Driver_BootComm() function is called to verify and configure the “host interest area” on the chip. As far as the SPI host interface goes, I know that all is fine because I read values the driver expects, and if I read back the ones that it writes, I read back what I wrote.
The last thing that function does is to write a 0x00000002 to the host interest “hi_option_flag” field, after which the 4004 is supposed to load its firmware image from the external flash, and then de-assert the SPI_INT line to indicate that it’s successfully booted. My problem is that the interrupt never comes, with the SPI_INT line being permanently stuck high.
Does anyone have any ideas as to what might be happening, or how to diagnose it further?
One obvious possibility is that the firmware image isn't valid.
I’m using the ART tool to program the image I read out of the SP144 into our own board, so it ought to be ok.
We didn't use the Winbond SPI flash in our design, but another 4Mb quad-spi part from Spansion that looked compatible. But that could be a factor too I suppose.
I'd be grateful for any suggestions!
Hi ,
By this sentence imagine you developed a new board and your BOM includes a new blank QCA4004 and a new SPI flash:
You will need to burn several stuff in the OTP (one-time-programming)
I suggest trying first using the Legacy SPI flash mode (single line instead of Quad).
You will need to burn a corespanding Legacy Flash image ,
Note that your board will not be RF calibrated but you will be able to use it if your AP is in the same room\cube.
You can read the OTP content from you original SP144 and your new Board by :
"od" [parsed format] or
"or a=0:200" [raw format]
hope this helps .
Oran
Hi Oran,
But is there anything in the OTP area that would keep the flash-based firmware from running and sending the WMI-Ready message? I thought it's just RF calibaration data that's in there.
And why exactly are there different versions of both the OTP and firmware images for both quad-spi and legacy flashes? Why is the data different?
Hi ,
Sorry, I'm not sure I can answer this question in this Foum. (need to check with Legal)
Can you send me an email privatlly ? email: [email protected]
Do you have an NDA ?
BR,
Oran
Hi Oran,
I sent you a PM as you asked.
By the way, QC supplied several OTP image files, but they're all 192KB. If I try to program one of these with ART, it tells me that the file is too large, and that "Max stream size if 1024".
Is there a workaround for this?
And can you tell me what the command is for extracting the existing OTP image out of an SP144 and saving it to an image file? Will that be of the right size?
Incidentally, I put probes on the SPI interface between the flash and the 4004. I see the lines toggle as expected if I'm using ART to access the flash, but when the device is initialized by the host driver, I see no accesses to the flash at all.