Paul Edwards wrote:
I have a new variation on this problem.
I have a Chromebook with seabios loaded.
But the Chromebook doesn't have a serial port.
I could get a USB to com port adapter.
But I would like seabios to drive this so that I can use int 14h in my os.
Is that something that exists or could be added?
Maybe. Like Bluetooth, USB is also non-trivial. But SeaBIOS does already have USB infrastructure and does already implement something in principle similar to what you want for int 13h and USB storage devices - that's both precedent and a reference.
I found that USB to serial port adapters are not standardized.
That is true but there aren't all that many popular manufacturers of chips for such products, and if I understand correctly you can at least to some degree make recommendations on specific hardware to replicate the setup you're aiming for, so maybe it's okay to also pick one particular USB-to-serial chip and recommend products using that?
So instead, what about adding NDIS to do USB tethering plus a tcpip stack to create a virtual modem that would allow you to do:
Since SeaBIOS has no TCP/IP stack that would require far larger development effort, and introduce significant complexity to SeaBIOS for a very rare use case that so far only one person requests while at the same time not signalling readiness to provide long-term maintenance effort of source code - making it unlikely to manifest.
Would most of this be able to use existing code?
A USB-to-serial adapter would allow pretty good reuse.
I prefer the CP210x family of chips because the USB protocol and cost is sane (unlike FTDI, which fails massively on those points) and because they have always been very reliable for me, although e.g. CP2102N rev A01 chips have a whole bunch of serious errata.
If you pick a CP2102N-based product then make sure to get ones using revision A02 chips. (This will be hard to find out! But: Other manufacturers have other issues, sometimes even undocumented.)
Less complexity in SeaBIOS would probably only be achievable with a custom USB device.
I asked before about the broader picture of your project but never got much of an answer.
If it would be acceptable to provide instructions for programming some microcontroller development board to replicate your success as opposed to providing product recommendation for a particular USB-to-serial adapters then you could essentially make your own USB-to-serial adapter with firmware and thereby USB protocol optimized for the in-SeaBIOS use case.
That may sound like over-engineering but the BIOS environment is special enough that it could be a reasonable design, if outside parameters and requirements permit.
Hope this helps