EFI mixed mode allows a 64-bit operating system to boot on devices with 32-bit EFI firmware. It works in two phases - boot transition and runtime thunking. During boot transition, the 64-bit kernel image contains both 32-bit and 64-bit entry points to support different boot loaders. Runtime thunking uses a dedicated kernel page table to map UEFI regions with virtual equals physical addresses, truncates pointers to 32-bits, and switches to 32-bit CPU mode to call UEFI services. Supported boot loaders include Grub2, Efilinux, and potentially rEFInd. Developers need to be aware that unsigned long no longer represents the natural pointer size and some UEFI