Why care about hardware/firmware interaction? These interfaces are critical, a solid hardware design married with adaptive firmware can access all the capabilities of an application and overcome limitations caused by poor communication. For the first time, a book has come along that will help hardware engineers and firmware engineers work together to mitigate or eliminate problems that occur when hardware and firmware are not optimally compatible. Solving these issues will save time and money, getting products to market sooner to create more revenue.
The principles and best practices presented in this book will prove to be a valuable resource for both hardware and firmware engineers. Topics include register layout, interrupts, timing and performance, aborts, and errors. Real world cases studies will help to solidify the principles and best practices with an aim towards cleaner designs, shorter schedules, and better implementation!
1. CHAPTER 1. Introduction 2. 1.1. What Is the Hardware/Firmware Interface? 3. 1.2. What Is a Best Practice? 4. 1.3. “First Time Right” Also Means… 5. 1.4. Target Audience 6. 1.5. Project Life Cycle 7. 1.6. Case Study 8. 1.7. Summary 9. CHAPTER 2. Principles 10. 2.1. Seven Principles of Hardware/Firmware Interface Design 11. 2.2. Summary 12. CHAPTER 3. Collaboration 13. 3.1. First Steps 14. 3.2. Formal Collaboration 15. 3.3. Informal Collaboration 16. 3.4. Summary 17. CHAPTER 4. Planning 18. 4.1. Industry Standards 19. 4.2. Common Version 20. 4.3. Compatibility 21. 4.4. Defects 22. 4.5. Analysis 23. 4.6. Postmortem 24. 4.7. Summary 25. CHAPTER 5. Documentation 26. 5.1. Types 27. 5.2. Document Management 28. 5.3. Reviews 29. 5.4. Content 30. 5.5. Registers 31. 5.6. Bits 32. 5.7. Interrupts 33. 5.8. Time 34. 5.9. Errors 35. 5.10. Information 36. 5.11. Summary 37. CHAPTER 6. Superblock 38. 6.1. Benefits of a Superblock 39. 6.2. Consolidation 40. 6.3. I/O Signals 41. 6.4. Parameterization 42. 6.5. Summary 43. CHAPTER 7. Design 44. 7.1. Event Notification 45. 7.2. Performance 46. 7.3. Power-On 47. 7.4. Communication and Control 48. 7.5. Summary 49. CHAPTER 8. Registers 50. 8.1. Addressing 51. 8.2. Bit Assignment 52. 8.3. Data Types 53. 8.4. Hardware Identification 54. 8.5. Communication and Control 55. 8.6. Summary 56. CHAPTER 9. Interrupts 57. 9.1. Design 58. 9.2. Pending Register 59. 9.3. Enable Register 60. 9.4. Optional Registers 61. 9.5. Interrupt Module Review 62. 9.6. Triggering on Both Edges 63. 9.7. Using the Interrupt Module 64. 9.8. Summary 65. CHAPTER 10. Aborts, etc. 66. 10.1. Definitions 67. 10.2. Halts 68. 10.3. Resets 69. 10.4. Aborts 70. 10.5. Summary 71. CHAPTER 11. Hooks 72. 11.1. Designing for Hooks 73. 11.2. Peek… 74. 11.3. …And Poke 75. 11.4. Monitor 76. 11.5. More Hooks 77. 11.6. Summary 78. CHAPTER 12. Conclusion 79. 12.2. Benefits 80. 12.3. Seven Principles of Hardware/Firmware Interface Design 81. 12.4. It Finally Works! Let's Ship It! 82. Appendix A. Best Practices 83. Appendix B. Bicycle Controller Specification 84. Glossary 85. Index
Why care about hardware/firmware interaction? These interfaces are critical, a solid hardware design married with adaptive firmware can access all the capabilities of an application and overcome limitations caused by poor communication. For the first time, a book has come along that will help hardware engineers and firmware engineers work together to mitigate or eliminate problems that occur when hardware and firmware are not optimally compatible. Solving these issues will save time and money, getting products to market sooner to create more revenue.
The principles and best practices presented in this book will prove to be a valuable resource for both hardware and firmware engineers. Topics include register layout, interrupts, timing and performance, aborts, and errors. Real world cases studies will help to solidify the principles and best practices with an aim towards cleaner designs, shorter schedules, and better implementation!
1. CHAPTER 1. Introduction 2. 1.1. What Is the Hardware/Firmware Interface? 3. 1.2. What Is a Best Practice? 4. 1.3. “First Time Right” Also Means… 5. 1.4. Target Audience 6. 1.5. Project Life Cycle 7. 1.6. Case Study 8. 1.7. Summary 9. CHAPTER 2. Principles 10. 2.1. Seven Principles of Hardware/Firmware Interface Design 11. 2.2. Summary 12. CHAPTER 3. Collaboration 13. 3.1. First Steps 14. 3.2. Formal Collaboration 15. 3.3. Informal Collaboration 16. 3.4. Summary 17. CHAPTER 4. Planning 18. 4.1. Industry Standards 19. 4.2. Common Version 20. 4.3. Compatibility 21. 4.4. Defects 22. 4.5. Analysis 23. 4.6. Postmortem 24. 4.7. Summary 25. CHAPTER 5. Documentation 26. 5.1. Types 27. 5.2. Document Management 28. 5.3. Reviews 29. 5.4. Content 30. 5.5. Registers 31. 5.6. Bits 32. 5.7. Interrupts 33. 5.8. Time 34. 5.9. Errors 35. 5.10. Information 36. 5.11. Summary 37. CHAPTER 6. Superblock 38. 6.1. Benefits of a Superblock 39. 6.2. Consolidation 40. 6.3. I/O Signals 41. 6.4. Parameterization 42. 6.5. Summary 43. CHAPTER 7. Design 44. 7.1. Event Notification 45. 7.2. Performance 46. 7.3. Power-On 47. 7.4. Communication and Control 48. 7.5. Summary 49. CHAPTER 8. Registers 50. 8.1. Addressing 51. 8.2. Bit Assignment 52. 8.3. Data Types 53. 8.4. Hardware Identification 54. 8.5. Communication and Control 55. 8.6. Summary 56. CHAPTER 9. Interrupts 57. 9.1. Design 58. 9.2. Pending Register 59. 9.3. Enable Register 60. 9.4. Optional Registers 61. 9.5. Interrupt Module Review 62. 9.6. Triggering on Both Edges 63. 9.7. Using the Interrupt Module 64. 9.8. Summary 65. CHAPTER 10. Aborts, etc. 66. 10.1. Definitions 67. 10.2. Halts 68. 10.3. Resets 69. 10.4. Aborts 70. 10.5. Summary 71. CHAPTER 11. Hooks 72. 11.1. Designing for Hooks 73. 11.2. Peek… 74. 11.3. …And Poke 75. 11.4. Monitor 76. 11.5. More Hooks 77. 11.6. Summary 78. CHAPTER 12. Conclusion 79. 12.2. Benefits 80. 12.3. Seven Principles of Hardware/Firmware Interface Design 81. 12.4. It Finally Works! Let's Ship It! 82. Appendix A. Best Practices 83. Appendix B. Bicycle Controller Specification 84. Glossary 85. Index