Just tripped over this with FreeBSD: I need to set hw.broken_txfifo=1 to make the UART work once we enter userland in a Firecracker VM. This is a workaround I added to FreeBSD about a decade ago to address a QEMU/Xen bug which has long since been fixed there -- IIRC after the txfifo filled up, we wouldn't get an interrupt telling us when it had drained.
I haven't looked into the Firecracker UART code to see what's going on there; I'm opening this mainly as a placeholder so I don't forget to take a look at it later.
To Reproduce
Boot FreeBSD in Firecracker.
Expected behaviour
The UART should work. Instead, once FreeBSD hits userland it writes 16 characters and then gets stuck.
Environment
Running aljimenezb's pvh-v2 branch. FreeBSD HEAD with Firecracker hacks. m5.metal EC2 instance.
Describe the bug
Just tripped over this with FreeBSD: I need to set hw.broken_txfifo=1 to make the UART work once we enter userland in a Firecracker VM. This is a workaround I added to FreeBSD about a decade ago to address a QEMU/Xen bug which has long since been fixed there -- IIRC after the txfifo filled up, we wouldn't get an interrupt telling us when it had drained.
I haven't looked into the Firecracker UART code to see what's going on there; I'm opening this mainly as a placeholder so I don't forget to take a look at it later.
To Reproduce
Boot FreeBSD in Firecracker.
Expected behaviour
The UART should work. Instead, once FreeBSD hits userland it writes 16 characters and then gets stuck.
Environment
Running aljimenezb's pvh-v2 branch. FreeBSD HEAD with Firecracker hacks. m5.metal EC2 instance.