tom Firmware
while using the SeaBios payload with MrChromebox's SMM variable
in coreboot. This is required even if we are booting off of a
USB, since it will give MMC errors in Linux and Windows 10
and 11 won't see it, though I didn't test 11, It would most
likely do it since all Linux versions I tried did the same.
Signed-off-by: Christopher Lentocha <christopherericlentocha@gmail.com>
---
src/boot.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/boot.c b/src/boot.c
index 1effd80..0844268 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -871,6 +871,18 @@ call_boot_entry(struct segoff_s bootsegip, u8 bootdrv)
// Set the magic number in ax and the boot drive in dl.
br.dl = bootdrv;
br.ax = 0xaa55;
+ // Fix Bay Trail Chromebook Bootup on MrChromebox's Custom Firmware
+ // while using the SeaBios payload with MrChromebox's SMM variable
+ // in coreboot. This is required even if we are booting off of a
+ // USB, since it will give MMC errors in Linux and Windows 10
+ // and 11 won't see it, though I didn't test 11, It would most
+ // likely do it since all Linux versions I tried did the same.
+ outb(0xcd, 0xb2);
+ // Don't Add the line above this comment to CBFS booting, because
+ // EDK2 as 2nd payload breaks, since its already being applied
+ // there too, and we should expect all CBFS payloads in ROM to do
+ // what we are doing here. The same bug is also in EDK2, so this
+ // line would need to be added in a similar way for EDK2 code.
farcall16(&br);
}
--
2.35.1
>
> on MrChromebox's Custom Firmware
>
> while using the SeaBios payload
>
> with MrChromebox's SMM variable in coreboot.
>
> This is required even if we are booting off of a USB,
>
> since it will give MMC errors in Linux and Windows 10
>
> won't see it.
>
> See comments and code in ./src/boot.c for more information.
>
> Signed-off-by: Christopher Lentocha <christopherericlentocha@gmail.com>
> ---
> src/boot.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/src/boot.c b/src/boot.c
> index 1effd80..8433f51 100644
> --- a/src/boot.c
> +++ b/src/boot.c
> @@ -871,6 +871,21 @@ call_boot_entry(struct segoff_s bootsegip, u8
> bootdrv)
> // Set the magic number in ax and the boot drive in dl.
> br.dl = bootdrv;
> br.ax = 0xaa55;
> + // Fix Bay Trail Chromebook Bootup
> + // on MrChromebox's Custom Firmware
> + // while using the SeaBios payload
> + // with MrChromebox's SMM variable in coreboot.
> + // This is required even if we are booting off of a USB,
> + // since it will give MMC errors in Linux and Windows 10
> + // won't see it.
> + outb(0xcd, 0xb2);
> + // Don't Add the line above this comment to CBFS booting,
> + // because EDK2 as 2nd payload breaks,
> + // since its already being applied there too,
> + // and we should expect all CBFS payloads in ROM to do
> + // what we are doing here.
> + // The same bug is also in EDK2, so this line would need to be
> + // added in a similar way for EDK2 code.
> farcall16(&br);
> }
>