Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Aug 2009 14:28:31 +0200
From:      =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= <des@des.no>
To:        freebsd-hackers@freebsd.org
Subject:   Re: enable ECC in OS code?
Message-ID:  <864ort1lw0.fsf@ds4.des.no>
In-Reply-To: <20090827112229.GB14987@britannica.bec.de> (Joerg Sonnenberger's message of "Thu, 27 Aug 2009 13:22:29 %2B0200")
References:  <200908262253.n7QMrauP063683@wattres.watt.com> <200908271130.18073.erich@apsara.com.sg> <20090827112229.GB14987@britannica.bec.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Joerg Sonnenberger <joerg@britannica.bec.de> writes:
> Erich Dollansky <erich@apsara.com.sg> writes:
> > how should it be done at OS level at all when the OS is loaded=20
> > into RAM?
> Copy the kernel to the video RAM, jump to it, enable ECC, copy back.

Not just the kernel - you have to copy all the memory that is currently
in use, including interrupt tables, the BIOS configuration space, shadow
copies of various ROMs...  The CPU will probably not look too kindly on
having interrupt descriptors, segment descriptors, page tables etc. in
memory accessed through the I/O controller instead of the memory
controller.

The machine might not even have video RAM!

On systems that support ECC, I suspect that the BIOS enables it at the
same time as it configures the memory controller, which is one of the
very first things it does - literally within a few dozen (or perhaps a
few hundred) instructions from CPU reset - using only CPU registers, ROM
code, and configuration variables loaded from NVRAM.

DES
--=20
Dag-Erling Sm=C3=B8rgrav - des@des.no



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?864ort1lw0.fsf>