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
38 package ti.catalog.c2800.concertoInit;
39
40 /*!
41 * ======== Boot ========
42 * Concerto C28 Boot Support.
43 *
44 * This Boot module can be used to generate a small section that supports
45 * booting the C28 processor from Flash. It consists of a single
46 * "LB _c_int00" instruction.
47 *
48 * When `{@link #bootFromFlash}` is true, the instruction will be placed
49 * at "BEGIN", as defined in the linker command file.
50 *
51 * Boot also supports initializing Flash controller wait states, enabling
52 * program prefetches, and data caching within the Flash controller.
53 */
54 @Template("./Boot.xdt")
55 @NoRuntime
56 module Boot
57 {
58 /*!
59 * Boot from Flash flag. Default is true.
60 *
61 * Set to true to enable booting the C28 from Flash.
62 */
63 metaonly config Bool bootFromFlash = true;
64
65 /*!
66 * Flash controller configuration flag, default is true.
67 *
68 * Set to true to enable the configuration of the Flash controller
69 * wait states, program and data cache.
70 */
71 metaonly config Bool configureFlashController = true;
72
73 /*!
74 * Flash controller wait states configuration flag, default is true.
75 *
76 * Set to true to configure the Flash controller wait states. The number
77 * of wait states is computed based upon the CPU frequency.
78 */
79 metaonly config Bool configureFlashWaitStates = true;
80
81 /*!
82 * Flash controller program prefetch enable flag, default is false.
83 *
84 * Set to true to enable the Flash controller's program prefetch.
85 *
86 * WARNING: Program prefetch must not be enabled on pre Revision A devices
87 * if there are any fast branch instructions in the program image. See
88 * the device errata for more information.
89 */
90 metaonly config Bool enableFlashProgramPrefetch = false;
91
92 /*!
93 * Flash controller data cache enable flag, default is true.
94 *
95 * Set to true to enable the Flash controller's data cache.
96 */
97 metaonly config Bool enableFlashDataCache = true;
98
99 /*!
100 * ======== loadSegment ========
101 * Specifies where to load the flash function (include the 'PAGE' number)
102 *
103 * If 'configureFlashWaitStates' is true, then this parameter
104 * determines where the ".ti_catalog_c2800_initF2837x_flashfuncs"
105 * section gets loaded.
106 */
107 metaonly config String loadSegment;
108
109 /*!
110 * ======== runSegment ========
111 * Specifies where to run the flash function (include the 'PAGE' number)
112 *
113 * If 'configureFlashWaitStates' is true then this parameter
114 * determines where the ".ti_catalog_c2800_initF2837x_flashfuncs"
115 * section gets executed at runtime.
116 */
117 metaonly config String runSegment;
118
119 internal:
120
121
122 metaonly config UInt flashWaitStates = 3;
123 };