1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32
33 34 35
36
37 package ti.catalog.arm.cortexm4.tiva.l;
38
39 import xdc.rov.ViewInfo;
40 import xdc.runtime.Assert;
41
42 /*!
43 * ======== Boot ========
44 * Tiva Low power Embedded device Boot Support.
45 *
46 * The Boot module supports boot initialization for the Tiva low power devices.
47 * A special boot init function is created based on the configuration
48 * settings for this module. This function is hooked into the
49 * xdc.runtime.Startup.firstFxns[] array and called very early at boot time.
50 *
51 * The code to support the boot module is placed in a separate section
52 * named `".text:.bootCodeSection"` to allow placement of this section in
53 * the linker .cmd file if necessary. This section is a subsection of the
54 * `".text"` section so this code will be placed into the .text section unless
55 * explicitly placed, either through
56 * `{@link xdc.cfg.Program#sectMap Program.sectMap}` or through a linker
57 * command file.
58 */
59 @Template("./Boot.xdt")
60 module Boot
61 {
62 metaonly struct ModuleView {
63 Bool configureClocks;
64 Bool disableWatchdog;
65 }
66
67 @Facet
68 metaonly config ViewInfo.Instance rovViewInfo =
69 ViewInfo.create({
70 viewMap: [
71 [
72 'Module',
73 {
74 type: ViewInfo.MODULE,
75 viewInitFxn: 'viewInitModule',
76 structName: 'ModuleView'
77 }
78 ],
79 ]
80 });
81
82
83 /*!
84 * Clock configuration flag, default is false.
85 *
86 * Set to true to automatically configure the clocks.
87 */
88 metaonly config Bool configureClocks = false;
89
90 /*!
91 * Watchdog disable configuration flag, default is true.
92 *
93 * Set to false to disable the disabling of the watchdog.
94 */
95 metaonly config Bool disableWatchdog = true;
96
97 /*!
98 * @_nodoc
99 * ======== registerFreqListener ========
100 * Register a module to be notified whenever the frequency changes.
101 *
102 * The registered module must have a function named 'fireFrequencyUpdate'
103 * which takes the new frequency as an argument.
104 */
105 function registerFreqListener();
106
107 internal:
108
109 110 111 112 113 114
115 Void init();
116
117 /*!
118 * computed cpu frequency based on clock settings
119 */
120 metaonly config UInt computedCpuFrequency;
121
122 };