reboot12 Posted May 25 Posted May 25 (edited) 5 minutes ago, Dietmar said: no CSM at all But CSMWrap.efi works OK on this UEFI64 firmware (works also 32-bit version OVMF 32-bit): https://msfn.org/board/topic/186793-csmwrap-boot-csm-on-uefi-only-systems/#findComment-1280103 How do you explain it? Edited May 25 by reboot12
Dietmar Posted May 25 Posted May 25 @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
Dietmar Posted May 25 Posted May 25 @reboot12 Yepp, UEFI tool shows this in "PURE" Uefi in QemuVideoDxe ASCII text "csm" found in PE32 image section at header-offset 9029h Dietmar
Dietmar Posted May 25 Posted May 25 (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 May 25 by Dietmar
reboot12 Posted May 25 Posted May 25 (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 May 25 by reboot12
Dietmar Posted May 25 Posted May 25 (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 May 25 by Dietmar
Dietmar Posted May 25 Posted May 25 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
reboot12 Posted May 25 Posted May 25 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 ??
reboot12 Posted May 25 Posted May 25 Wait, wait, wait - after all, OVMF_CODE-pure-efi.fd bios doesn't have these modules and CSMWrap works
Dietmar Posted May 25 Posted May 25 @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
Dietmar Posted May 25 Posted May 25 @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
Dietmar Posted May 25 Posted May 25 @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
reboot12 Posted May 25 Posted May 25 I wonder if every UEFI no-CSM bios is missing table for all the legacy Interrups?
Dietmar Posted May 25 Posted May 25 @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
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now