As others have said, the two roles you are looking for more realistically fit 3-5 people. Plenty of people are versatile enough to train into the roles, but few will have the exact experience you are after.
Been working as a Firmware/Software engineer for 10yrs or so now. Anything from dabbling in .asm for an 8bit pic, C for 16bit micros, right through to sqlserver scripts, and C#/WPF. So pretty broad skillset, but dont exactly meet any of your requirements.
Realistically, your hardware guy does hardware stuff, your firmware guy does cortex and the hardware guys control code and an experienced linux guy may be able to do both driver and app development.