> On 30 Nov 2018, at 21:20, Kevin O'Connor <ke...@koconnor.net> wrote: > > On Wed, Nov 28, 2018 at 05:50:01PM +0200, Liran Alon wrote: >> From: Nikita Leshchenko <nikita.leshche...@oracle.com> >> >> When mpt-scsi receives a SCSI message, it wraps it in a MPT request >> message and writes it's address to an IO port to be added to the >> request queue. >> >> This MPT request is allocated on the stack. Previous to this commit, >> the request is aligned to 4 bytes. However, VirtualBox LSI53c1030 >> device emulation aligns the request address to 8 bytes. >> Therefore, this commit change alignment of request to 8 bytes. >> >> VirtualBox source code which handles this is at >> Devices/Storage/DevLsiLogicSCSI.cpp. lsilogicRegisterWrite() >> LSILOGIC_REG_REQUEST_QUEUE handler adds the request to the >> queue (pRequestQueueBase). lsilogicR3Worker() reads request from >> pRequestQueueBase and aligns it to 8 bytes >> (u32RequestMessageFrameDesc & ~0x07). > > Thanks. Is this change done to match virtualbox, or because it fixes > some type of problem?
It can be seen from QEMU’s mptsas_mmio_write() MPI_REQUEST_POST_FIFO_OFFSET handler that QEMU aligns this value to 4 bytes which matches current SeaBIOS code. However QEMU only emulates LSISAS1068 and not LSILOGIC53C1030. This mpt-scsi.c SeaBIOS driver is suppose to handle both devices. Therefore, we thought that maybe LSILOGIC53C1030 does requires value to be aligned to 8 bytes. In contrast to LSISAS1068. Deduced from VirtualBox device emulation. -Liran > > -Kevin _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org https://mail.coreboot.org/mailman/listinfo/seabios