1    /* --COPYRIGHT--,EPL
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     * 
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     * 
    11     * --/COPYRIGHT--*/
    12    /*
    13     *  ======== Boot.xdc ========
    14     */
    15    
    16    package ti.catalog.msp430.init;
    17    
    18    import xdc.rov.ViewInfo;
    19    
    20    /*!
    21     *  ======== Boot ========
    22     *  Boot time initialization code manager
    23     *
    24     *  The Boot module supports boot initialization for the MSP430 devices.
    25     *  A special boot init function is created based on the configuration
    26     *  settings for this module.  This function is hooked into the
    27     *  `{@link xdc.runtime.Reset#fxns xdc.runtime.Reset.fxns[]}` array and
    28     *  is called very early at boot time (prior to C runtime initialization).
    29     * 
    30     *  The code to support the boot module is placed in a separate section
    31     *  named `".text:bootCodeSection"` to allow placement of this section in
    32     *  the linker .cmd file if necessary. This section is a subsection of the
    33     *  `".text"` section so this code will be placed into the .text section
    34     *  unless explicitly placed, either through
    35     *  `{@link xdc.cfg.Program#sectMap Program.sectMap}` or through a linker
    36     *  command file.
    37     */
    38    @Template("./Boot.xdt")
    39    metaonly module Boot
    40    {
    41        metaonly struct ModuleView {
    42            Bool         disableWatchdog;
    43            UInt         watchdogAddress;
    44            Bool         configureDCO;
    45        }
    46    
    47        @Facet
    48        metaonly config ViewInfo.Instance rovViewInfo = 
    49            ViewInfo.create({
    50                viewMap: [
    51                [
    52                    'Module',
    53                    {
    54                        type: ViewInfo.MODULE,
    55                        viewInitFxn: 'viewInitModule',
    56                        structName: 'ModuleView'
    57                    }
    58                ],
    59                ]
    60            });
    61        
    62        /*! 
    63         *  ======== disableWatchdog ========
    64         *  Watchdog disable flag
    65         *
    66         *  The default is `true`.  Set to `false` to not automatically disable the
    67         *  watchdog timer.
    68         */
    69        config Bool disableWatchdog = true;
    70    
    71        /*! 
    72         *  ======== watchdogAddress ========
    73         *  Watchdog control register address
    74         *
    75         *  The default (0x15c) is set for MSP430F54xx and MSP430F552x devices.
    76         *  Change for other devices.
    77         */
    78        config UInt watchdogAddress = 0x15c;
    79    
    80        /*! 
    81         *  ======== configureDCO ========
    82         *  Configure DCO flag
    83         *
    84         *  The default is `false`.  Set to `true` to initialize DCO at boot.
    85         */
    86        config Bool configureDCO = false;
    87    };