Pci Encryption/decryption Controller May 2026

// 3. Set source and destination addresses (DMA) pci_write64(bar, SRC_ADDR, src_bus_addr); pci_write64(bar, DST_ADDR, dst_bus_addr);

// 5. Write IV (12 bytes) pci_write_burst(bar, IV, iv, 12); pci encryption/decryption controller

// 4. Set length and algorithm (AES-256-GCM) pci_write32(bar, LENGTH, data_len); pci_write32(bar, ALGO_MODE, 0x30); // 0x30 = AES-256-GCM STATUS) & 0x2) == 0)

// 8. Wait for STATUS.DONE (poll or interrupt) while ((pci_read32(bar, STATUS) & 0x2) == 0); // 7. Start operation pci_write32(bar

// 7. Start operation pci_write32(bar, CONTROL, 0x2); // GO bit

// 6. Write AAD length & data (if any) pci_write32(bar, AAD_LEN, aad_len); pci_write_burst(bar, AAD_BUF, aad, aad_len);