This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Hardening of firmware

Here is a link to a number of suggestions I have compiled for hardening of firmware.

I'm pretty sure that a lot can be said about the list, so please post coding tips or links to pages with good information of software hardening.

iapetus.neab.net/.../hardening.html

Parents
  • There are a huge number of problems you can get with hardware.

    - Oxidation with socketed components or with connectors - in some cases melt-downs because the contact resistance gets too high.
    - Wet capacitors drying out (normally from high temp).
    - Tantalum capacitors exploding because they have been run out-of-spec.
    - Metal fatigue in bonding threads inside the chips.
    - Electromigration in chips, power transistors or switch regulators because they have run at high currents and high temperature for a long time.
    - Solder joint whiskers.
    - Metal fatigue in solder joints.
    - Factories that hasn't baked components, getting moisture crack the chip.
    - ESD damages (a damage in the factory can take months or years until the failure).
    - Damaged conformant coating, resulting in leak currents or possibly PCB traces being corroded until they break.
    ...

    The problem is to try to decide what hardware failures that should be possible to detect and what work-arounds there should be in the firmware. Is it enough to warn about a problem or is the failure critical, requiring the unit to "brick" itself? Should there be redundant hardware? What is the probability of producing incorrect results? What will happen if incorrect results are produced? What will happen if no results at all are produced? What is required by the certification?

Reply
  • There are a huge number of problems you can get with hardware.

    - Oxidation with socketed components or with connectors - in some cases melt-downs because the contact resistance gets too high.
    - Wet capacitors drying out (normally from high temp).
    - Tantalum capacitors exploding because they have been run out-of-spec.
    - Metal fatigue in bonding threads inside the chips.
    - Electromigration in chips, power transistors or switch regulators because they have run at high currents and high temperature for a long time.
    - Solder joint whiskers.
    - Metal fatigue in solder joints.
    - Factories that hasn't baked components, getting moisture crack the chip.
    - ESD damages (a damage in the factory can take months or years until the failure).
    - Damaged conformant coating, resulting in leak currents or possibly PCB traces being corroded until they break.
    ...

    The problem is to try to decide what hardware failures that should be possible to detect and what work-arounds there should be in the firmware. Is it enough to warn about a problem or is the failure critical, requiring the unit to "brick" itself? Should there be redundant hardware? What is the probability of producing incorrect results? What will happen if incorrect results are produced? What will happen if no results at all are produced? What is required by the certification?

Children
No data