Kartikay

If you want to get started with firmware development, especially with BIOS/UEFI development for enterprise servers a good place to start is Edk2, an opensource repo maintained by Intel. I wrote a bunch of medium articles explaining the process in detail :

1.Getting Started Using Docker: Use this setup if you are a masochist and like pain. Otherwise having a windows setup is recommended.

2.Windows Setup: Recommended.

3.EFI SHELL: Its cool and worth learning.

Now, I have made sure to write about the entire process including how to configure your .dsc, .dec and .fdf files(these define the platform you work with) in the earlier posts but have left it out in the later ones. I assume you got the idea. If you hit any roadblock just do what I did when I was learning - find similar type of module written in the codebase and study it. Also this handbook will be handy.

These are the various things covered

1.UEFI Firmware "Hello World": Good rite of passage. Not the typical easy to do write a string hello world. Still printing hello world but writing code at a lower level.

2.Peim Modules: These modules are badass. They run in low resource environments, before the main memory is initialised using CPU cache as RAM.

3.Hand Of Blocks: Sometimes you have to hand off info to the next phase from peim phase. These are handy.

4.DXE Driver: Wattup with Dxe phase? What are these drivers? How do they communicate with each other? All questions answered.

5.Uefi Driver Development: The UEFI Driver Model standardises how drivers interact with firmware, ensuring consistent initialisation and management. This is a handy guide for the same.