Could we just have qemu build the hpet tables and pass them through to seabios? Perhaps using the qemu_cfg_acpi_additional_tables() method.
Possible, and I considered that. I personally prefer to pass minimum information required for seabios to discover underlying HW and leave ACPI table creation to seabios. That is how things done for HW that seabios can actually detect. If we will go your way pretty soon we will move creation of ACPI/SMBIOS/MP tables into qemu and IMHO this will be step backworkds.
I agree. ACPI is a firmware/OS interface. If we move ACPI table generation into qemu, it becomes a mixed hardware/firmware/OS interface.
This seems to be a philosophical distinction. Lets go over the practical implications.
It seems there was a change in qemu to the hpet functionality. Although the change is solely between qemu and the OS, it's necessary to patch both qemu and seabios for the OS to see the change. This means creating and reviewing patches for two separate repos. This also requires release coordination - the seabios change has to be committed and released, and then qemu needs to be released with the new seabios. Additional changes in seabios tip will get merged into qemu, which could complicate testing.
I don't think you can draw a clear conclusion one way or the other. ACPI may defined and an API between the firmware and OS, but its primary purpose is to allow the OS to interface with the hardware.
While I do think it's desirable to have a single bios image work across the different machines qemu emulates, I don't think it's realistic to develop/release the two independently. The rate of change may be such that we have a fair amount of slack, and it may often be possible to make bios images backwards compatible. However I think it's entirely reasonable to require people use matching bios and qemu.
Paul