Short answer: Based on your description, I think your firmware is defective.
Long answer: First, the EFI (or UEFI, which is just EFI 2.x) specification says NOTHING about user interfaces. Thus, you can build a purely text-mode EFI user interface that's still 100% compliant with the EFI/UEFI spec. BIOS doesn't have an official spec, but there have been attempts at graphical setup utilities for BIOSes. Thus, you should not use a graphical setup utility, or lack thereof, as an indicator of whether something is an EFI or a BIOS, or of how "complete" an implementation is. The eye candy is completely irrelevant to the point, and to your question.
As a side note, many manufacturers refer to their EFIs as BIOSes. IMHO, this is bad practice, because it creates confusion in users' minds about the distinction between the traditional 16-bit BIOS and modern 32- or 64-bit EFIs, which are very different in most important details.
That said, the EFI spec is pretty clear that the boot order variables (which are set via efibootmgr
in Linux) should be honored. If your firmware is ignoring those variables, then it's in violation of the spec. Unfortunately, such violations remain distressingly common, although they were more common a few years ago. A quick Google suggests that your model may have been introduced in 2012, so it may not be surprising that it's got an old and flawed EFI. You might want to check Toshiba's Web site to see if there's a firmware update available. That might or might not fix anything, but it's definitely worth checking.
You might also try using a tool other than efibootmgr
, such as EasyUEFI in Windows or bcfg
in an EFI shell. In theory, any of these tools should do the job. In practice, I've observed that efibootmgr
sometimes fails when other tools work.
As for a "hybrid BIOS/UEFI," such things do exist. I know of two broad categories:
- EFI atop BIOS -- The EFI spec doesn't cover some of the lowest-level hardware initialization features. To handle this task, some early EFIs for x86/x86-64, such as Gigabyte's Hybrid EFI, used a traditional BIOS, putting the EFI "above" that. My one experience with that (described in the link) was painful, but that may have had more to do with the implementation than the general approach. AFAIK, this approach has been abandoned in favor of other hardware-initialization code that interfaces better with the EFI above it.
- EFI locked into CSM -- The Compatibility Support Module (CSM) is an optional EFI feature that enables the EFI to boot old BIOS-mode boot loaders. I've heard claims that some "BIOSes" in the last years of BIOS-based computers actually used EFIs with their CSMs permanently enabled. Such computers could not boot in the normal EFI way, and they'd look just like regular BIOS-based computers. I don't know how common this practice was, though, and in fact I've never verified that the claim is true -- it could be an urban legend. Such a setup is certainly theoretically possible, whether or not such a firmware has ever actually been written.
Neither approach would explain your problem, which seems to be better described as a badly broken EFI.
efibootmgr
somehow). What can you see withls -l /sys/firmware/efi/efivars
? Is the directory empty?