[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Carte Blanche arrives!



Nick Westgate wrote:
On Sep 25, 2:37 pm, "Michael J. Mahon" <mjma...@aol.com> wrote:
Would it be possible to just hold off card initialization for a
few more milliseconds, after voltages have stabilized?

This is exactly what Steve did as a retrofit when it became apparent that the CB doesn't always initialize with less than perfect power supplies - added a cap that delays the initialization till hopefully the power is stable. But I'm sure you can find a power supply that takes even longer to stabilize.


I presume this isn't ideal because a bootable card has to identify
itself as such in its ROM when the RESET handler comes a-looking, and
whether CB is a bootable card (or even has a ROM) isn't determined
until the FPGA is loaded.

No doubt there is a more convoluted solution ...

We'll have to live with it for now. If there is ever another rev we can use the experience to improve the design. Currently you just have to do a ctrl-reset after a power-up. My personal preferred solution for the next rev would be to add a $1.5 tiny AVR controller that would hold Apple in reset at power-up, initialize the FPGA and release the reset. It would also allow reprogramming of the EEPROM even if the FPGA is not initialized.

This prompts me to remind all the new owners of the CB that right now you can only re-flash the EEPROM if the current configuration is valid. If anything happens during re-flashing you can only restore the functionality via a JTAG interface. There is some error checking done - CRC is checked on every MMC/SD block and programmed data is verified but neither reading MMC nor writing flash EEPROM ever failed in my tests. If it works it always works. The problem is that it can instead ALWAYS FAIL. If there is any error in the configuration file written to the MMC/SD. It only works if a file is written to a NEW card because then it is written to contiguous blocks. If a file is deleted and written again, all bets are off. So only re-flash if you absolutely have to and have JTAG handy if things go wrong. Also keep in mind that re-flashing only works with MY configuration loaded or one with equivalent functionality. If you want to synthesize your own configurations having a JTAG cable is a must.

-Alex.