From 1ffbd94586f339cec259d76d3d0648c6777e4948 Mon Sep 17 00:00:00 2001 From: visa Date: Sun, 7 Jan 2018 05:19:41 +0000 Subject: [PATCH] Add references to errata. --- sys/arch/octeon/dev/if_cnmac.c | 11 ++++++----- sys/arch/octeon/dev/octmmc.c | 13 +++++++------ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/sys/arch/octeon/dev/if_cnmac.c b/sys/arch/octeon/dev/if_cnmac.c index 80adf0dfafb..a7f358b95fd 100644 --- a/sys/arch/octeon/dev/if_cnmac.c +++ b/sys/arch/octeon/dev/if_cnmac.c @@ -1,4 +1,4 @@ -/* $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. @@ -1162,10 +1162,11 @@ cnmac_recv_mbuf(struct cnmac_softc *sc, uint64_t *work, /* * 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) diff --git a/sys/arch/octeon/dev/octmmc.c b/sys/arch/octeon/dev/octmmc.c index 12d0972b7e2..a0a57d42823 100644 --- a/sys/arch/octeon/dev/octmmc.c +++ b/sys/arch/octeon/dev/octmmc.c @@ -1,4 +1,4 @@ -/* $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 @@ -821,11 +821,12 @@ octmmc_dma_load_6130(struct octmmc_softc *sc, struct sdmmc_command *cmd) 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 && -- 2.20.1