-/* $OpenBSD: if_cnmac.c,v 1.73 2017/11/26 15:44:20 visa Exp $ */
+/* $OpenBSD: if_cnmac.c,v 1.74 2018/01/07 05:19:41 visa Exp $ */
/*
* Copyright (c) 2007 Internet Initiative Japan, Inc.
/*
* Because of a hardware bug in some Octeon models the size
- * field of word3 can be wrong. However, the hardware uses
- * all space in a buffer before moving to the next one so
- * it is possible to derive the size of this data segment
- * from the size of packet data buffers.
+ * field of word3 can be wrong (erratum PKI-100).
+ * However, the hardware uses all space in a buffer before
+ * moving to the next one so it is possible to derive
+ * the size of this data segment from the size
+ * of packet data buffers.
*/
size = OCTEON_POOL_SIZE_PKT - (addr - pktbuf);
if (size > left)
-/* $OpenBSD: octmmc.c,v 1.10 2017/11/09 02:35:34 visa Exp $ */
+/* $OpenBSD: octmmc.c,v 1.11 2018/01/07 05:19:41 visa Exp $ */
/*
* Copyright (c) 2016, 2017 Visa Hankala
paddr_t locked_block = 0;
/*
- * According to Linux, the DMA hardware has a silicon bug that can
- * corrupt data. As a workaround, Linux locks the second last block
- * of a transfer into the L2 cache if the opcode is multi-block write
- * and there are more than two data blocks to write. In Linux, it is
- * not described under what circumstances the corruption can happen.
+ * The DMA hardware has a silicon bug that can corrupt data
+ * (erratum EMMC-17978). As a workaround, Linux locks the second last
+ * block of a transfer into the L2 cache if the opcode is multi-block
+ * write and there are more than two data blocks to write.
+ * In Linux, it is not described under what circumstances
+ * the corruption can happen.
* Lacking better information, use the same workaround here.
*/
if (cmd->c_opcode == MMC_WRITE_BLOCK_MULTIPLE &&