By modifying SeaBIOS, you meant the addition of a new Kconfig option I suppose? For the coreboot part I have finished almost all the necessary changes, so it should be fine (I'm already subscribed to both mailing lists).
Thanks for your help. Petr Dne 25. 04. 22 v 1:29 Keith Hui napsal(a): > (Looping in the SeaBIOS mailing list again.) > > See this: https://www.seabios.org/Runtime_config > > It appears CMOS locations are a legacy artifact and files within the > cbfs image (eg. etc/floppy0) is the preferred way of passing SeaBIOS > settings. If you want a proper fix with the value stored in CMOS (and > be configurable via nvramtool), you'll need to modify both SeaBIOS and > the coreboot option table layout for your board. If you need help with > coreboot and are not subscribed to that mailing list, I can reach out > and loop you in. > > @Kevin - What are we to do for SeaBIOS settings that the we may want > to change at runtime eg. via nvramtool? Are there any such settings? > > Keith > > On Sun, 24 Apr 2022 at 18:36, Petr Cvek <petrcve...@gmail.com> wrote: >> >> Linux actually reads the floppy type from the exact same CMOS location as >> QEMU compiled SeaBIOS: >> >> >> https://elixir.free-electrons.com/linux/v5.12.9/source/arch/x86/include/asm/floppy.h#L257 >> >> and if I remember correctly I've had to force the type through floppy module >> parameter, before I modified the coreboot+SeaBIOS source codes. >> >> The other operating systems will probably try to read the CMOS location as >> well. IMO it is actually a standard bitfield in IBM PC compatible computer. >> Also all cmos.layout files start the configuration from bit 384 and some of >> them even have the first 120 bits explicitly defined as "reserved". >> >> Under these constraints I think it should be possible to change the line to >> something like this: >> >> if (CONFIG_QEMU || CONFIG_USE_CMOS) { >> >> With CONFIG_USE_CMOS be "n" by default so non floppy boards will end with >> the old code path. >> >> Petr >> >> >> Dne 24. 04. 22 v 21:05 Keith Hui napsal(a): >>> Hi Petr, >>> >>> Linux seems to have been able to pick up all the floppy drives on its own. >>> >>> But if you read a few more lines beyond the snippet you posted, you'll >>> see that it only reads nvram for floppy types when compiled for and >>> run on QEMU because that layout is hard coded and QEMU-specific. To >>> extend it to other coreboot targets that layout will need to be >>> incorporated into the option table of all coreboot mainboards, which >>> isn't trivial and some boards don't even have floppy ports at all. And >>> should those nvram bytes hold value for something else, results can be >>> very unpredictable. >>> >>> You'll also see another way around it, using files etc/floppy0 and >>> etc/floppy1 added to the coreboot image. Some tracing within this file >>> will tell you what values to use. Downside is changing these values >>> also requires reflashing. >>> >>> Hope this helps. >>> >>> Keith >>> >>> On Sun, 24 Apr 2022 at 07:15, Petr Cvek <petrcve...@gmail.com> wrote: >>>> >>>> Hello, >>>> >>>> I was playing with coreboot + floppy and it seems the drive type can be >>>> read from CMOS only if the machine is QEMU. >>>> >>>> payloads/external/SeaBIOS/seabios/src/hw/floppy.c >>>> >>>> floppy_setup(void) >>>> { >>>> ... >>>> if (CONFIG_QEMU) { >>>> u8 type = rtc_read(CMOS_FLOPPY_DRIVE_TYPE); >>>> if (type & 0xf0) >>>> addFloppy(0, type >> 4); >>>> ... >>>> } else { >>>> u8 type = romfile_loadint("etc/floppy0", 0); >>>> ... >>>> >>>> Is it possible enable this function for a real coreboot target? What way >>>> is the most acceptable way to do it (something like || CONFIG_USE_CMOS)? >>>> >>>> I've forced it with "always true" condition and after adding >>>> configurations to cmos table and superio in coreboot, I was able to boot >>>> msdos on kontron 986lcd-m board. >>>> >>>> P.S. original message got stuck somewhere in the mailserver as I forgot to >>>> subscribe to seabios mailing list. >>>> >>>> Regards, >>>> Petr >>>> _______________________________________________ >>>> SeaBIOS mailing list -- seabios@seabios.org >>>> To unsubscribe send an email to seabios-le...@seabios.org _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org