BIOS speedup
Elie De Brauwer
New Member Posts: 35 ✭
I have been doing some attempts to make the upboard boot fast, and at this moment I am able to boot into running Xorg with running Qt application into about 6.5 seconds. The problem is that I'm starting to run out of low hanging fruit, the recipe I followed is quite simple, throw out all the junk I don't need. Systemd is reporting the following
Meaning that 65% of my boot budget is wasted in the BIOS (10% in GRUB, 12.5% in the kernel and 12.5% in userland). I've tried looking for some low hanging fruit there, but I guess it's probably just silly timeouts, there's for example a one second timeout waiting for a keypress for boot selection (which can't be set to zero), and showing the splash screen also takes up some time. Which possibilities are there to get the up-board to get faster beyond the BIOS ?
root@c:~# systemd-analyze Startup finished in 4.222s (firmware) + 598ms (loader) + 838ms (kernel) + 796ms (userspace) = 6.456s
Meaning that 65% of my boot budget is wasted in the BIOS (10% in GRUB, 12.5% in the kernel and 12.5% in userland). I've tried looking for some low hanging fruit there, but I guess it's probably just silly timeouts, there's for example a one second timeout waiting for a keypress for boot selection (which can't be set to zero), and showing the splash screen also takes up some time. Which possibilities are there to get the up-board to get faster beyond the BIOS ?
Comments
-
And by the way, is there a possibility to either disable the splash screen, or replace it by a custom image ?
-
In case you use the UP board in your commercialised project, you may want to have a custom logo. The UP team will charge NRE for custom BIOS development and assist you to make correct BIOS reflash. You can drop email to customization@aaeon.eu .
If its only to change the logo its few hundred dollars -
-1 for trying to sell things which should've been part of the product in the first place.
I think anybody using the up-board in a custom project with a screen attached would be thrilled to have it boot faster and have the means to modify/disable the splash screen. -
Hi ElieDeBrauwer,
I think Aling's response covered the "official BIOS release with custom splash image" angle. For your usecase, there are a few things you might be able to do from the current BIOS settings:
Boot > Quiet boot
enabling this should show boot output instead of the splash image. I'm not sure if drawing the splash introduces much boot overhead, though. It's probably more a mix of timeouts and device initialization as you said.
CRB Boot > Setup Prompt Timeout (requires the engineering BIOS password to access)
that's the one-second timeout you were referring to. It seems it can be set to 0, although I can't test how well that works myself right now. Unless you're prepared to externally reflash the BIOS chip in the worst-case scenario, I'd advise not to take the risk for now.
It's plausible that some other engineering BIOS tweaks might result in shorter BIOS boot times (e.g. by disabling controllers you won't use). Again, please be cautious. We could verify if a given setting is safe for you if you're unsure.
Hope that's useful. -
Jarteaga,
Thanks for your input.
- Quiet boot , is a nice suggestion, I just gave this a try and then it shows the American megatrends logo, and this already shaves off 200 miliseconds (jay !).
- CRB BOOT > Setup Prompt Timeout, is something I already spotted but this timeout cannot be set to 0 ... (which imho is indeed a full second of 'dead weight'), probably responsible for 15% of my boot time budget. -
ElieDeBrauwer wrote:CRB BOOT > Setup Prompt Timeout, is something I already spotted but this timeout cannot be set to 0 ... (which imho is indeed a full second of 'dead weight'), probably responsible for 15% of my boot time budget.
On some other platforms, I remember seeing on occasion a "Fast Boot" option that overrides the "Setup Prompt Timeout" entirely and adds almost no delay (yet still allows you to hold Del or Esc before powering on the device to get inside the menu). I can't find anything like that, so it looks like this might just be a limitation of the AMI base for the current BIOS. -
Indeed I've also seen that on other platforms and/or bootloaders. Which was also a reason for starting this thread. This is imho a shortcoming of the current BIOS.