v1.26.3
This release provides major improvements in interrupt and network support, aimed at improved performance and compatibility with UEFI, AMD SEV-SNP environments and the new go-net stack/device abstraction driver. Additionally Firecracker support and QEMU sifive_u support are aligned to recent updates.
Major changes for tamago package API to improve GICv2 interrupt support:
- arm:
(*CPU).Initdrops argument as vbar override can be linknamed asvecTableStart(c514b55) - arm/gic:
(*GIC).Initsecureargument removed and assumed true (c00208e) - arm/gic:
(*GIC).Initdropfiqenargument in favor of*(GIC).FIQEn(c00208e) - arm/gic:
(*GIC).EnableInterruptssecureargument removed and assumed true (c00208e) - arm/gic:
(*GIC).GetInterruptsecureargument removed and assumed true (c00208e) - arm/gic:
(*GIC).GetNonSecureInterruptnew function to acknowledge NS IRQ (c00208e) - arm/gic:
(*GIC).SetInterruptGroup,(*GIC).SetInterruptGroupsnew functions to set S/NS IRQ (c00208e)
Major changes for tamago package API to improve Microchip support:
- microchip/flexcom:
(*FLEXCOM).EnableInterruptnew function to enable IRQ support (c01f01e) - microchip/flexcom:
(*FLEXCOM).Rxnow takesblockargument for conditional data wait (c01f01e) - microchip/lan969x:
ClearInterruptnew function to signal end of interrupt servicing (fbbfda2)
Major changes for tamago package API to add go-net compatibility:
- nxp/spi: add NXP ECSPI driver (dd5192b)
- nxp/enet:
(*ENET).Receivereplaces(*ENET).Rxfor go-net generic NetworkDevice compatibility (d194fa3) - nxp/enet:
(*ENET).Transmitreplaces(*ENET).Txfor go-net generic NetworkDevice compatibility (d194fa3) - nxp/enet: removed polling support from
(*ENET).Startand(*ENET).RxHandlerfield (d194fa3)
Major changes for tamago package API:
- riscv64:
(*CPU).SetExceptionHandlerrestore function for TEE use (7afa079) - virtio:
(*VirtualQueue).NeedsNotifynew function to hint(*VirtualQueue).QueueNotify(6419be1) - virtio:
(*VirtualQueue).Popnow takes caller buffer rather than returning one (e7d4ff8) - virtio: add
EnableInterrupttoVirtIOinterface,(*MMIO).EnableInterruptdummy function (b5ad5a4)
Major changes for tamago package internals:
- amd64: do not overwrite VMM Communication ISR (75921b5)
- amd64: reload GDT if required before IDT load (b757d2d)
- amd64: keep original GDT/IDT if cpuinit override is detected (d0233f3)
- amd64: use fresh CR3 before initializing SMP (4b7af08)
- amd64: avoid atomic MMIO operations under SEV-SNP (63941dd)
- arm64: force 2048-byte alignment of vector base address register (3f7e6ce, 94b9c0c)
- nxp/enet: force 8-byte alignment on DMA buffer copy to fix arm64 alignment fault (2575b98)
- firecracker/microvm: disable PIC to address spurious #UD exception (firecracker-microvm/firecracker#5805, 814a9cb)
- sifive/uart: set tx/rx enable (29100db)
- virtio: fix regression in VirtIO queue logic error which resulted in packet buffer overhead (e7d4ff8)
Full Changelog: v1.26.2...v1.26.3
This release requires GOOS=tamago support in the Go distribution with tamago-go1.26.2 or later releases, it has been tested with tamago-go1.26.3.