From owner-freebsd-hackers@freebsd.org Tue Sep 15 20:53:28 2015 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D9E479C35E8; Tue, 15 Sep 2015 20:53:28 +0000 (UTC) (envelope-from dieterbsd@gmail.com) Received: from mail-ig0-x231.google.com (mail-ig0-x231.google.com [IPv6:2607:f8b0:4001:c05::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AB15B1B14; Tue, 15 Sep 2015 20:53:28 +0000 (UTC) (envelope-from dieterbsd@gmail.com) Received: by igxx6 with SMTP id x6so20545630igx.1; Tue, 15 Sep 2015 13:53:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=XqGQWr6b+KnJ3c5D9icW30yWVWo8sFa9ef0IqYkX+JA=; b=ZZfknXKk7T+cfEkqLJ0CLR0GmZ9c3JRTNTh9ebnLUHjJQ+P9YVuQ6tfnpuS8N/HlbP ykxJ6fv+T+CAaex7cYNqI5dNW1vM9VJAI/lIHrWSJrhy4ovBQtUDvpRIASiSayClBHNr 8iW/axY1Rsa+cGLBjh3XuOO5EleroFxdfhzmb0AQiHvZP933sXIrrpMv19SEpmieXoIc v7+15cvLTJ6eqWeF5lTeZdOm5Lpo6gQ3mgJ9vzgqyrsTPxxtgnsMgKElddUnuUp3EVg1 J+CMQnWTO7Gb71QSWYCnMPuPeTFieMungr+Kyu7rfoX9JjV8TFobsQfWnVbtBU4SU6pn BerA== MIME-Version: 1.0 X-Received: by 10.50.98.39 with SMTP id ef7mr9947461igb.2.1442350408172; Tue, 15 Sep 2015 13:53:28 -0700 (PDT) Received: by 10.64.2.132 with HTTP; Tue, 15 Sep 2015 13:53:27 -0700 (PDT) Date: Tue, 15 Sep 2015 13:53:27 -0700 Message-ID: Subject: ECC support From: Dieter BSD To: freebsd-hardware@freebsd.org, freebsd-hackers@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Sep 2015 20:53:29 -0000 Many of AMD's CPU/APU parts support ECC memory. Not just the top of the line parts, but also many of the less expensive, less power hungry parts. However, many (most?) of the boards for these chips do not support ECC, or at least do not admit to it. They specify "non-ECC memory". Obviously there have to be connections between the memory controller and the memory for the extra bits. Aside from a little extra time for the board designer to add a few traces to the wire list, this would not raise the cost of the board. Despite this I have read that some boards lack the necessary traces. Does the firmware have to do anything to support ECC? Program a few registers in the memory controller perhaps? A few boards have FLOSS firmware available, so this code could be added, but most boards do not have firmware sources available. Assuming that a board does have the necessary connections but the firmware does not have ECC support, is there some reason that ECC support could not be added to the OS instead of the firmware? I grepped through FreeBSD 8.2 and 10.1 sources but couldn't find anything that looked relevant. Also did not find any code that reported ECC errors, other than one device. Perhaps I missed it? I've been running machines with ECC for 15-20 years and have never seen a report of an ECC error from either NetBSD or FreeBSD. I have seen reports of ECC errors from Digital Unix. And remember getting panics due to parity errors on machines before ECC. So I'm thinking that the BSDs must ignore hardware reports of single bit ECC errors. :-(