Jump to content

Recommended Posts


Posted

@reboot12

Very easy, this Bios still builds a table for the legacy INT13 etc. calls.

This is the same, as if you disable all CSM on an UEFI-Bios.

It still builds this and so you can boot, because it isnt pure UEFI at all

Dietmar

Posted

@reboot12

Yepp, UEFI tool shows this in "PURE" Uefi in

QemuVideoDxe

ASCII text "csm" found in PE32 image section at header-offset 9029h

Dietmar

Posted (edited)

@reboot12

No, the idea is nice.

And with small changes you can do exact the same, what the UEFI-Bios do with all build in CSM disabled.

To give the table with all the legacy Interrupts.

For this I use the help of ChatGPT

and voila,

the whole code in C for the INT13h I put here already and how to put it into the existing code for csmwrap.efi

Dietmar

Edited by Dietmar
Posted (edited)
1 hour ago, Dietmar said:

Yepp, UEFI tool shows this in "PURE" Uefi in

QemuVideoDxe

ASCII text "csm" found in PE32 image section at header-offset 9029h

Heh.. this is not CSM related: InitializeBochsGraphicsMode ;)

Edited by reboot12
Posted (edited)

@reboot12

May be, that you can integrate CSM16.bin from source of SeaBios.

But you also need to fullfill the other legacy interrupts.

This means to integrate via Source Code at minimum

CsmThunkDxe

LegacyBiosDxe

LegacyRegion

Dietmar

 

PS:

You Do Not Need:

Full UEFI firmware source

Full SeaBIOS

QEMU or Coreboot

You only need these DXE drivers + Csm16.bin.

 

 

Edited by Dietmar
Posted

These EDK II components are required to thunk from UEFI to real-mode (Csm16.bin) and to install legacy boot services:

LegacyBiosDxe             Main driver that sets up legacy boot interface

CsmThunkDxe               Manages the switching between UEFI (32/64-bit) and 16-bit BIOS mode

LegacyRegion                Maps and unlocks legacy memory ranges (0xC0000–0xFFFFF)

CsmVideoDxe               (Optional but helpful) Legacy video service support

CsmKeyboardDxe         (Optional) PS/2 keyboard emulation

LegacyBiosPlatformDxe     Provides platform-specific hooks like where to load Csm16.bin in memory

Posted
7 minutes ago, Dietmar said:

You only need these DXE drivers + Csm16.bin

Maybe instead of adding the code to CSMWrap you can insert these modules into the motherboard no-CSM bios using UEFITool ??

Posted

Wait, wait, wait - after all, OVMF_CODE-pure-efi.fd bios doesn't have these modules and CSMWrap works :dubbio:

Posted

@reboot12

I tried this, does not work.

In "Setup" of Bios CSM is deep integrated.

And I dont know, if all the CSM files from EDKII are generic but worth a try

Dietmar

Posted

@reboot12

Yes, of course. If other part of the Bios build a table for all the legacy Interrups,

we have the same situation as if all CSM is disabled on a UEFI-Bios, that still have internal everything for csm-boot

Dietmar

Posted

@reboot12

As for INT13h support you can go also without all these legacy drivers, just speak direct to UEFI,

as the C code for INT13h above does.

But I dont know, how to enable this for the other legacy Interrupts also

Dietmar

Posted

@reboot12

Quote

I wonder if every UEFI no-CSM bios is missing table for all the legacy Interrups?

I think yes, because no need for any 16 bit or other legacy operations

Dietmar

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...