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>