mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
073b2209da
We had four versions of pre-built bootloaders for the esp8266 with different settings of logging and color logging. These bootloaders were manually built from the SDK and shipped with RIOT-OS source code. However there are more settings that affect the bootloader build that are relevant to the app or final board that uses this bootloader. In particular, flash size and flash speed is important for the bootloader to be able to load an app from a large partition table at the fastest speed supported by the board layout and flash chip. Another example is the UART baudrate of the logging output from the bootloader. The boot ROM will normally start at a baud rate of 74880 (depending on the crystal installed), so it might make sense to keep the UART output at the same speed so we can debug boot modes and bootloader with the same terminal. This patch builds the bootloader.bin file from the ESP8266 SDK source code. The code is built as a module (esp8266_bootloader) which at the moment doesn't generate any object code for the application and only produces a bootloader.bin file set to the BOOTLOADER_BIN make variable for the esptool.inc.mk to flash. The code needs to be compiled and linked with custom rules defined in the module's Makefile since the bootloader.bin is its own separate application. The `BOOTLOADER_BIN` variable is changed from a path relative to the `$(RIOTCPU)/$(CPU)/bin/` directory to be full path. This makes it easier for applications or board to provide their own bootloader binary if needed. As a result of building the bootloader from source we fixed the issue of having a large partition table. Fixes #16402.
86 lines
1.7 KiB
C
86 lines
1.7 KiB
C
/*
|
|
* Copyright (C) 2021 iosabi
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU Lesser
|
|
* General Public License v2.1. See the file LICENSE in the top level
|
|
* directory for more details.
|
|
*/
|
|
|
|
/**
|
|
* @ingroup pkg_esp8266_sdk
|
|
* @{
|
|
*
|
|
* @file
|
|
* @brief RIOT-OS modification of the bootloader SDK configuration
|
|
*
|
|
* The bootloader build of the ESP8266 SDK needs some settings from the SDK
|
|
* configuration. These are normally generated by the menuconfig in the vendor
|
|
* SDK.
|
|
*
|
|
* Some of these parameters are configurable by the application. For example,
|
|
* the UART baudrate used by the console and the verbose level of the
|
|
* bootloader.
|
|
*
|
|
* @author iosabi <iosabi@protonmail.com>
|
|
*/
|
|
|
|
#ifndef SDKCONFIG_H
|
|
#define SDKCONFIG_H
|
|
|
|
#if !DOXYGEN
|
|
|
|
#include "riotbuild.h"
|
|
|
|
#include "esp8266_idf_version.h"
|
|
#include "sdkconfig_default.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if MODULE_ESP_LOG_COLORED
|
|
#define CONFIG_LOG_COLORS 1
|
|
#endif
|
|
|
|
#ifndef CONFIG_LOG_BOOTLOADER_LEVEL
|
|
/*
|
|
* SDK Log levels:
|
|
*
|
|
* 0 = NONE
|
|
* 1 = ERROR
|
|
* 2 = WARN
|
|
* 3 = INFO
|
|
* 4 = DEBUG
|
|
* 5 = VERBOSE
|
|
*/
|
|
#if MODULE_ESP_LOG_STARTUP
|
|
#define CONFIG_LOG_BOOTLOADER_LEVEL 3 /* INFO */
|
|
#else
|
|
#define CONFIG_LOG_BOOTLOADER_LEVEL 0 /* NONE */
|
|
#endif
|
|
#endif
|
|
|
|
/*
|
|
* Bootloader output baudrate, defined by the app settings as BAUD or
|
|
* BOOTLOADER_BAUD.
|
|
*/
|
|
#ifndef CONFIG_CONSOLE_UART_BAUDRATE
|
|
#define CONFIG_CONSOLE_UART_BAUDRATE (RIOT_BOOTLOADER_BAUD)
|
|
#endif
|
|
|
|
/*
|
|
* The makefile FLASH_SIZE value is set in MB, but set as bytes to
|
|
* CONFIG_SPI_FLASH_SIZE.
|
|
*/
|
|
#ifndef CONFIG_SPI_FLASH_SIZE
|
|
#define CONFIG_SPI_FLASH_SIZE ((RIOT_FLASH_SIZE) * 1024 * 1024)
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* !DOXYGEN */
|
|
#endif /* SDKCONFIG_H */
|
|
/** @} */
|