*/
void esp_efuse_reset(void);
+/* @brief Disable BASIC ROM Console via efuse
+ *
+ * By default, if booting from flash fails the ESP32 will boot a
+ * BASIC console in ROM.
+ *
+ * Call this function (from bootloader or app) to permanently
+ * disable the console on this chip.
+ */
+void esp_efuse_disable_basic_rom_console(void);
+
#ifdef __cplusplus
}
#endif
// See the License for the specific language governing permissions and
// limitations under the License.
#include "esp_efuse.h"
+#include "esp_log.h"
#define EFUSE_CONF_WRITE 0x5A5A /* efuse_pgm_op_ena, force no rd/wr disable */
#define EFUSE_CONF_READ 0x5AA5 /* efuse_read_op_ena, release force */
#define EFUSE_CMD_PGM 0x02
#define EFUSE_CMD_READ 0x01
+static const char *TAG = "efuse";
+
void esp_efuse_burn_new_values(void)
{
REG_WRITE(EFUSE_CONF_REG, EFUSE_CONF_WRITE);
}
}
}
+
+void esp_efuse_disable_basic_rom_console(void)
+{
+ if ((REG_READ(EFUSE_BLK0_RDATA6_REG) & EFUSE_RD_CONSOLE_DEBUG_DISABLE) == 0) {
+ ESP_EARLY_LOGI(TAG, "Disable BASIC ROM Console fallback via efuse...");
+ esp_efuse_reset();
+ REG_WRITE(EFUSE_BLK0_WDATA6_REG, EFUSE_RD_CONSOLE_DEBUG_DISABLE);
+ esp_efuse_burn_new_values();
+ }
+}
default 40 if ESP32_XTAL_FREQ_40
default 26 if ESP32_XTAL_FREQ_26
+config DISABLE_BASIC_ROM_CONSOLE
+ bool "Permanently disable BASIC ROM Console"
+ default n
+ help
+ If set, the first time the app boots it will disable the BASIC ROM Console
+ permanently (by burning an efuse).
+
+ Otherwise, the BASIC ROM Console starts on reset if no valid bootloader is
+ read from the flash.
+
+ (Enabling secure boot also disables the BASIC ROM Console by default.)
+
config NO_BLOBS
bool "No Binary Blobs"
depends on !BT_ENABLED
used for timer storage, and should only be used for debugging/testing
purposes.
-endmenu
+endmenu # ESP32-Specific
menu Wi-Fi
help
Select this option to enable WiFi NVS flash
-endmenu
+endmenu # Wi-Fi
menu Phy
-
+
config ESP32_PHY_CALIBRATION_AND_DATA_STORAGE
bool "Do phy calibration and store calibration data in NVS"
default y
int
default ESP32_PHY_MAX_WIFI_TX_POWER
-endmenu
+endmenu # PHY
#include "esp_panic.h"
#include "esp_core_dump.h"
#include "esp_app_trace.h"
+#include "esp_efuse.h"
#include "esp_clk.h"
#include "esp_timer.h"
#include "trax.h"
#endif
#if CONFIG_BROWNOUT_DET
esp_brownout_init();
+#endif
+#if CONFIG_DISABLE_BASIC_ROM_CONSOLE
+ esp_efuse_disable_basic_rom_console();
#endif
rtc_gpio_force_hold_dis_all();
esp_vfs_dev_uart_register();