<div dir="ltr">OK, then someone just asked me: how long does it take to rewrite that 128 MiB vs. the 512 byte sector on the floppy. :-)</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 30, 2016 at 1:18 PM ron minnich <<a href="mailto:rminnich@gmail.com">rminnich@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">amusement value: <div><br></div><div>The 512 bytes used for MBR is about .04% of the 8" floppy disk that shipped with the original IBM PC. For 128 MB to be that fraction of a new disk, the disk would have to be 256 GiB. That's about $40 worth of disk.</div><div><br></div><div>Geez. </div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 30, 2016 at 11:00 AM Zoran Stojsavljevic <<a href="mailto:zoran.stojsavljevic@gmail.com">zoran.stojsavljevic@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><span style="font-size:12.8px" class="gmail_msg">> Or do you want to do the full EFI "let's waste 128MB of</span><span style="font-size:12.8px" class="gmail_msg"> <b class="gmail_msg"><i class="gmail_msg"><u class="gmail_msg"><font color="#ff0000" class="gmail_msg">every</font></u></i></b></span><span style="font-size:12.8px" class="gmail_msg"><b class="gmail_msg"><i class="gmail_msg"><u class="gmail_msg"><font color="#ff0000" class="gmail_msg"> disk</font></u></i></b> on</span><div class="gmail_msg"><span style="font-size:12.8px" class="gmail_msg">> a special FAT32 partition" madness (which still requires</span><span style="font-size:12.8px" class="gmail_msg"> bootloaders to</span></div><div class="gmail_msg"><span style="font-size:12.8px" class="gmail_msg">> include one specific FS driver they might otherwise not </span><span style="font-size:12.8px" class="gmail_msg">want)?</span></div><div class="gmail_msg"><span style="font-size:12.8px" class="gmail_msg"><br class="gmail_msg"></span></div></div><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><span style="font-size:12.8px" class="gmail_msg">YES, you do. Accent on: </span><span style="font-size:12.8px" class="gmail_msg"><font color="#ff0000" style="font-weight:bold;font-style:italic;text-decoration:underline" class="gmail_msg">"every disk"</font><font color="#000000" class="gmail_msg"> .</font></span></div></div><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><span style="font-size:12.8px" class="gmail_msg"><b class="gmail_msg"><i class="gmail_msg"><u class="gmail_msg"><font color="#ff0000" class="gmail_msg"><br class="gmail_msg"></font></u></i></b></span></div><div class="gmail_msg"><span style="font-size:12.8px" class="gmail_msg"><font color="#000000" class="gmail_msg">Zoran</font></span></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg">On Tue, Nov 29, 2016 at 10:53 PM, Julius Werner <span dir="ltr" class="gmail_msg"><<a href="mailto:jwerner@chromium.org" class="gmail_msg" target="_blank">jwerner@chromium.org</a>></span> wrote:<br class="gmail_msg"></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="gmail_msg">> To sum it up, I want something that is lean and clean enough so it could<br class="gmail_msg">
be added to any bootloader. Even if that boot loader is not of the<br class="gmail_msg">
let's build a tiny OS type.<br class="gmail_msg">
<br class="gmail_msg">
</span>I don't really see how you could reach this goal with anything that<br class="gmail_msg">
requires reading a file from the boot media? There are billions of<br class="gmail_msg">
different file systems out there... do you want to require your<br class="gmail_msg">
"minimal" bootloader to include drivers for all of them? (There are<br class="gmail_msg">
bootloaders that don't contain any file system drivers at all, like<br class="gmail_msg">
depthcharge.) Or do you want to do the full EFI "let's waste 128MB of<br class="gmail_msg">
every disk on a special FAT32 partition" madness (which still requires<br class="gmail_msg">
bootloaders to include one specific FS driver they might otherwise not<br class="gmail_msg">
want)?<br class="gmail_msg">
<br class="gmail_msg">
I think if you want to do anything truly minimal and compatible with<br class="gmail_msg">
everything, you can't rely on files (and you should try to rely on<br class="gmail_msg">
partitions as little as possible, e.g. no full GPT parsing). Which<br class="gmail_msg">
probably means putting it in the first sector. And once you have that,<br class="gmail_msg">
you can create some fancy text-based format (or Go source file /<br class="gmail_msg">
node.js script / whatever the cool kids use these days) to describe<br class="gmail_msg">
the target sector, load address etc. of the fallback kernel... but<br class="gmail_msg">
you're really just exemplifying the XKCD Igor mentioned because you've<br class="gmail_msg">
just reinvented the MBR. (And let's face it... no coreboot bootloader<br class="gmail_msg">
has the pull to sufficiently promote adoption of some completely new<br class="gmail_msg">
fallback boot descriptor format right now, even if it doesn't require<br class="gmail_msg">
a Go compiler in your bootloader.)<br class="gmail_msg">
<br class="gmail_msg">
So, really, I think what you want is just the MBR. It is the deadest<br class="gmail_msg">
simple design possible (just load a sector and jump), it is as<br class="gmail_msg">
infinitely flexible as code itself, and it coexists perfectly with all<br class="gmail_msg">
partitioning schemes relevant today (MBR and GPT). Yes, it requires a<br class="gmail_msg">
software interrupt BIOS interface, but if the recovery kernel code is<br class="gmail_msg">
cleverly written you really only need the disk access part (and you<br class="gmail_msg">
know your bootloader already has that driver because that's how it<br class="gmail_msg">
loaded the MBR in the first place). And yes, on x86 it requires real<br class="gmail_msg">
mode (for non-x86 I'd just make up an as equivalent as possible system<br class="gmail_msg">
with your software interrupt solution of choice), but that's a small<br class="gmail_msg">
price you pay with a few files worth of shim code in exchange for<br class="gmail_msg">
automatic compatibility with 35 years worth of existing BIOSes. I'd<br class="gmail_msg">
say that's a better deal than any new dead-on-arrival scheme you could<br class="gmail_msg">
make up out of thin air.<br class="gmail_msg">
<br class="gmail_msg">
(If you really can't stand the idea of BIOS interrupts and real mode,<br class="gmail_msg">
I think your next best option would be to try to cram an<br class="gmail_msg">
as-small-as-possible binary recovery descriptor and the real mode code<br class="gmail_msg">
to parse/load/execute it together into the 446 bytes of MBR space you<br class="gmail_msg">
have. This way, your new payloads can just find and parse/load/execute<br class="gmail_msg">
the descriptor itself without having to provide any BIOS interface,<br class="gmail_msg">
but the thing is still compatible with existing legacy BIOSes as<br class="gmail_msg">
well.)<br class="gmail_msg">
</blockquote></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_7684435956630480394HOEnZb gmail_msg"><div class="m_7684435956630480394h5 gmail_msg">
--<br class="gmail_msg">
coreboot mailing list: <a href="mailto:coreboot@coreboot.org" class="gmail_msg" target="_blank">coreboot@coreboot.org</a><br class="gmail_msg">
<a href="https://www.coreboot.org/mailman/listinfo/coreboot" rel="noreferrer" class="gmail_msg" target="_blank">https://www.coreboot.org/mailman/listinfo/coreboot</a><br class="gmail_msg">
</div></div></blockquote></div></div></blockquote></div></blockquote></div>