13.3.4 Clock ConfigurationBy default, the bootloader does not modify clocks. The Kinetis Bootloader in ROM willuse the clock configuration of the chip out of reset unless the clock configuration bits inthe FOPT register are cleared, or if a USB peripheral is enabled.• Alternate clock configurations are supported, by setting fields in the BootloaderConfiguration Area (BCA) shown in Table 13-3.• If the HighSpeed flag of the clockFlags configuration value is cleared, or if a USBperipheral is enabled, the bootloader will enable the internal 48 MHz reference clock.• In high speed mode, the core and bus clock frequencies are determined by theclockDivider configuration value.• The core clock divider is set directly from the inverted value of the clockDividerunless a USB peripheral is enabled. If a USB peripheral is enabled and the invertedvalue of the clockDivider is greater than 2, then the value is reduced to 2, in order tokeep the CPU clock above 20 MHz.• The bus clock divider is set to 1, unless the resulting bus clock frequency would begreater than the maximum supported value. In this case, the bus clock divider isincreased until the bus clock frequency is at or below the maximum.• Note that the maximum baud rate of serial peripherals is related to the core and busclock frequencies. To achieve the desired baud rates, high speed mode should beenabled in BCA.13.3.5 Bootloader Entry PointThe Kinetis Bootloader provides a function (runBootloader) that a user application cancall, to run the bootloader.To get the address of the entry point, the user application reads the word containing thepointer to the bootloader API tree at offset 0x1C of the bootloader's vector table. Thevector table is placed at the base of the bootloader's address range, which for the ROM is0x1C00_0000. Thus, the API tree pointer is at address 0x1C00_001C.The bootloader API tree is a structure that contains pointers to other structures, whichhave the function and data addresses for the bootloader. The bootloader entry point isalways the first word of the API tree.The prototype of the entry point is:void run_bootloader(void * arg);The arg parameter is currently unused, and is intended for future expansion (for example,passing options to the bootloader). To ensure future compatibility, a value of NULLshould be passed for arg.Functional DescriptionKL27 Sub-Family Reference Manual , Rev. 5, 01/2016180 Freescale Semiconductor, Inc.