/* $NoKeywords:$ */ /** * @file * * Create outline and references for mainpage documentation. * * Design guides, maintenance guides, and general documentation, are * collected using this file onto the documentation mainpage. * This file contains doxygen comment blocks, only. * * @xrefitem bom "File Content Label" "Release Content" * @e project: AGESA * @e sub-project: Documentation * @e \$Revision: 34897 $ @e \$Date: 2010-07-14 10:07:10 +0800 (Wed, 14 Jul 2010) $ * */ /* ***************************************************************************** * * Copyright (c) 2011, Advanced Micro Devices, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * Neither the name of Advanced Micro Devices, Inc. nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * *************************************************************************** * */ /** * @mainpage * * The design and maintenance documentation for AGESA Sample Code is organized as * follows. On this page, you can reference design guides, maintenance guides, and * general documentation. Detailed Data Structure, Function, and Interface documentation * may be found using the Data Structures or Files tabs. See Related Pages for a * Release content summary, and, if this is not a production release, lists of To Do's, * Deprecated items, etc. * * @subpage starthere "Start Here - Initial Porting and Integration." * * @subpage optionmain "Build Configuration and Options Guides and Documentation." * * @subpage commonmain "Processor Common Component Guides and Documentation." * * @subpage cpumain "CPU Component Guides and Documentation." * * @subpage htmain "HT Component Guides and Documentation." * * @subpage memmain "MEM Component Guides and Documentation." * * @subpage gnbmain "GNB Component Documentation." * * @subpage idsmain "IDS Component Guides and Documentation." * * @subpage recoverymain "Recovery Component Guides and Documentation." * */ /** * @page starthere Initial Porting and Integration * * @par Basic Check List * * * * @par Debugging Using ASSERT and IDS_ERROR_TRAP * * While AGESA code uses ::ASSERT and ::IDS_ERROR_TRAP to check for internal errors, these macros can also * catch and assist debug of wrapper and platform BIOS issues. * * When an ::ASSERT fails or an ::IDS_ERROR_TRAP is executed, the AGESA code will enter a halt loop and display a * Stop Code. A Stop Code is eight hex digits. The first (most significant) four are the FILECODE. * FILECODEs can be looked up in Filecode.h to determine which file contains the stop macro. Each file has a * unique code value. * The least significant digits are the line number in that file. * For example, 0210 means the macro is on line two hundred ten. * (see ::IdsErrorStop for more details on stop code display.) * * Enabling ::ASSERT and ::IDS_ERROR_TRAP ensure errors are caught and also provide a useful debug assist. * Comments near each macro use will describe the nature of the error and typical wrapper errors or other * root causes. * * After your wrapper consistently executes ::ASSERT and ::IDS_ERROR_TRAP stop free, you can disable them in * OptionsIds.h, except for regression testing. IDS is not expected to be enabled in production BIOS builds. * */