My last blog was about eliminating throw away code during
product debug. Often, the designer faces even more critical issues during
circuit board bring-up. In fact, itโs something of a catch-22 where hardware
requires bare metal software and bare metal software requires functioning
hardware.
Then, to compound the problem, once both are complete and the board still
wonโt boot, the question becomes: whose fault is it, hardware or software? One
technique that can help get you past this dilemma and avoid the finger pointing
is using sufficient run control tools and CPU cache as boot RAM.
In many instances, the hardware designerโs dilemma is this:
even if he or she writes throw away code to initialize onboard devices and kick
start board bring up, when the board wonโt boot, he still doesnโt really know whether
the cause is faults on the path to the memory controller, in the memory
controller itself, on the path to the DIMMS or whether the DIMM configuration
information is working properly? Or, to dig a little deeper, since the boot code
could be targeted as resident in flash, he doesnโt really know that the path to
flash or that the content of flash is good? Designers can make lots of
assumptions, but this is where they can get in trouble and end up
unintentionally adding delays to a productโs introduction. With the right tools
and a judicious use of cache-as-RAM techniques, we can address these sometimes
time consuming problems of dealing with DDR RAM.
To help you understand these issues and offer some solutions,
weโve put together a new e-book, โCache-as-RAM for board bring-up of non-booting circuit
boardsโ. It might get you past your next catch-22.