commit
4d10a6130b
17 changed files with 16 additions and 1900 deletions
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -28,3 +28,6 @@
|
|||
[submodule "components/ws2812"]
|
||||
path = components/ws2812
|
||||
url = https://github.com/badgeteam/esp32-component-ws2812.git
|
||||
[submodule "components/mch2022-efuse"]
|
||||
path = components/mch2022-efuse
|
||||
url = https://github.com/badgeteam/esp32-component-mch2022-efuse.git
|
||||
|
|
2
Makefile
2
Makefile
|
@ -6,6 +6,8 @@ SHELL := /usr/bin/env bash
|
|||
|
||||
.PHONY: prepare clean build flash erase monitor menuconfig image qemu install
|
||||
|
||||
all: prepare build flash
|
||||
|
||||
prepare:
|
||||
git submodule update --init --recursive
|
||||
cd esp-idf; bash install.sh
|
||||
|
|
1
components/mch2022-efuse
Submodule
1
components/mch2022-efuse
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 21ec9534018a3790816f00559d12e1bfa04d6727
|
2
efuse/.gitignore
vendored
2
efuse/.gitignore
vendored
|
@ -1,2 +0,0 @@
|
|||
sdkconfig.old
|
||||
build
|
|
@ -1,6 +0,0 @@
|
|||
# The following lines of boilerplate have to be in your project's
|
||||
# CMakeLists in this exact order for cmake to work correctly
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
project(appfs-test)
|
|
@ -1,8 +0,0 @@
|
|||
#
|
||||
# This is a project Makefile. It is assumed the directory this Makefile resides in is a
|
||||
# project subdirectory.
|
||||
#
|
||||
|
||||
PROJECT_NAME := hello-world
|
||||
|
||||
include $(IDF_PATH)/make/project.mk
|
|
@ -1,39 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e # Exit script on error
|
||||
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <port>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PORT=$1
|
||||
|
||||
echo "Burning e-fuses for MCH2022 badge on port $PORT..."
|
||||
|
||||
# Set the flash/psram voltage to 3.3V
|
||||
espefuse.py --port $PORT --do-not-confirm set_flash_voltage 3.3V # Ignore GPIO12 (MTDI) and force flash/psram voltage (using XPD efuses)
|
||||
|
||||
# Write protect the basic system settings
|
||||
espefuse.py --port $PORT --do-not-confirm write_protect_efuse MAC # Disables writing to MAC, MAC_CRC, CIP_VER_REV1, CHIP_VERSION, CHIP_PACKAGE fuses
|
||||
espefuse.py --port $PORT --do-not-confirm write_protect_efuse CODING_SCHEME # Disables writing to CODING_SCHEME, KEY_STATUS, FLASH_CRYPT_CONFIG, BLK3_PART_RESERVE
|
||||
|
||||
# Write protect the XPD fuses
|
||||
espefuse.py --port $PORT --do-not-confirm write_protect_efuse XPD_SDIO_FORCE # Disables writing to XPD_SDIO_FORCE, XPD_SDIO_REG and XPD_SDIO_TIEH
|
||||
|
||||
# Write protect the SPI pad fuses
|
||||
espefuse.py --port $PORT --do-not-confirm write_protect_efuse SPI_PAD_CONFIG_CLK # Disables writing to CHIP_VER_REV2 and all SPI_PAD_CONFIG_X fuses
|
||||
|
||||
# Write protect the JTAG disable fuse (don't allow people to disable JTAG)
|
||||
espefuse.py --port $PORT --do-not-confirm write_protect_efuse JTAG_DISABLE
|
||||
|
||||
# Disable the BASIC ROM console (it causes problems with waking up from deep sleep)
|
||||
espefuse.py --port $PORT --do-not-confirm burn_efuse CONSOLE_DEBUG_DISABLE
|
||||
|
||||
# Write protect the download mode disable efuse
|
||||
espefuse.py --port $PORT --do-not-confirm write_protect_efuse UART_DOWNLOAD_DIS # Disables writing to FLASH_CRYPT_CNT, UART_DOWNLOAD_DIS and EFUSE_WR_DIS_FLASH_CRYPT_CNT
|
||||
|
||||
# Write protect the secure boot fuses (don't allow people to enable secure boot)
|
||||
espefuse.py --port $PORT --do-not-confirm write_protect_efuse DISABLE_DL_ENCRYPT # Disables writing to CONSOLE_DEBUG_DISABLE, DISABLE_DL_ENCRYPT, DISABLE_DL_DECRYPT and DISABLE_DL_CACHE
|
||||
espefuse.py --port $PORT --do-not-confirm write_protect_efuse ABS_DONE_0
|
||||
espefuse.py --port $PORT --do-not-confirm write_protect_efuse ABS_DONE_1
|
|
@ -1,6 +0,0 @@
|
|||
idf_component_register(
|
||||
SRCS "main.c"
|
||||
"esp_efuse_custom_table.c"
|
||||
INCLUDE_DIRS "."
|
||||
"include"
|
||||
)
|
|
@ -1,4 +0,0 @@
|
|||
#
|
||||
# "main" pseudo-component makefile.
|
||||
#
|
||||
# (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.)
|
|
@ -1,106 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "sdkconfig.h"
|
||||
#include "esp_efuse.h"
|
||||
#include <assert.h>
|
||||
#include "esp_efuse_custom_table.h"
|
||||
|
||||
// md5_digest_table 6db56af37887e1bd4dd25861bbc384d1
|
||||
// This file was generated from the file esp_efuse_custom_table.csv. DO NOT CHANGE THIS FILE MANUALLY.
|
||||
// If you want to change some fields, you need to change esp_efuse_custom_table.csv file
|
||||
// then run `efuse_common_table` or `efuse_custom_table` command it will generate this file.
|
||||
// To show efuse_table run the command 'show_efuse_table'.
|
||||
|
||||
#define MAX_BLK_LEN CONFIG_EFUSE_MAX_BLK_LEN
|
||||
|
||||
// The last free bit in the block is counted over the entire file.
|
||||
|
||||
|
||||
static const esp_efuse_desc_t WR_DIS_WR_DIS[] = {
|
||||
{EFUSE_BLK0, 1, 1}, // Write protection for WR_DIS,
|
||||
};
|
||||
|
||||
static const esp_efuse_desc_t WR_DIS_MAC_AND_CHIP_INFO[] = {
|
||||
{EFUSE_BLK0, 3, 1}, // Write protection for MAC,
|
||||
};
|
||||
|
||||
static const esp_efuse_desc_t WR_DIS_XPD[] = {
|
||||
{EFUSE_BLK0, 5, 1}, // Write protection for XPD_SDIO_FORCE,
|
||||
};
|
||||
|
||||
static const esp_efuse_desc_t WR_DIS_SPI_PAD[] = {
|
||||
{EFUSE_BLK0, 6, 1}, // Write protection for CHIP_VER_REV2,
|
||||
};
|
||||
|
||||
static const esp_efuse_desc_t WR_DIS_SCHEME_KEY_CRYPT[] = {
|
||||
{EFUSE_BLK0, 10, 1}, // Write protection for CODING_SCHEME,
|
||||
};
|
||||
|
||||
static const esp_efuse_desc_t WR_DIS_ABS_DONE_0[] = {
|
||||
{EFUSE_BLK0, 12, 1}, // Write protection for ABS_DONE_0,
|
||||
};
|
||||
|
||||
static const esp_efuse_desc_t WR_DIS_ABS_DONE_1[] = {
|
||||
{EFUSE_BLK0, 13, 1}, // Write protection for ABS_DONE_1,
|
||||
};
|
||||
|
||||
static const esp_efuse_desc_t WR_DIS_JTAG_DISABLE[] = {
|
||||
{EFUSE_BLK0, 14, 1}, // Write protection for JTAG_DISABLE,
|
||||
};
|
||||
|
||||
static const esp_efuse_desc_t WR_DIS_CONSOLE_DEBUG_AND_DISABLE_DL_CRYPT[] = {
|
||||
{EFUSE_BLK0, 15, 1}, // Write protection for CONSOLE_DEBUG_DISABLE,
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_WR_DIS[] = {
|
||||
&WR_DIS_WR_DIS[0], // Write protection for WR_DIS
|
||||
NULL
|
||||
};
|
||||
|
||||
const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_MAC_AND_CHIP_INFO[] = {
|
||||
&WR_DIS_MAC_AND_CHIP_INFO[0], // Write protection for MAC
|
||||
NULL
|
||||
};
|
||||
|
||||
const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_XPD[] = {
|
||||
&WR_DIS_XPD[0], // Write protection for XPD_SDIO_FORCE
|
||||
NULL
|
||||
};
|
||||
|
||||
const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD[] = {
|
||||
&WR_DIS_SPI_PAD[0], // Write protection for CHIP_VER_REV2
|
||||
NULL
|
||||
};
|
||||
|
||||
const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SCHEME_KEY_CRYPT[] = {
|
||||
&WR_DIS_SCHEME_KEY_CRYPT[0], // Write protection for CODING_SCHEME
|
||||
NULL
|
||||
};
|
||||
|
||||
const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ABS_DONE_0[] = {
|
||||
&WR_DIS_ABS_DONE_0[0], // Write protection for ABS_DONE_0
|
||||
NULL
|
||||
};
|
||||
|
||||
const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ABS_DONE_1[] = {
|
||||
&WR_DIS_ABS_DONE_1[0], // Write protection for ABS_DONE_1
|
||||
NULL
|
||||
};
|
||||
|
||||
const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_JTAG_DISABLE[] = {
|
||||
&WR_DIS_JTAG_DISABLE[0], // Write protection for JTAG_DISABLE
|
||||
NULL
|
||||
};
|
||||
|
||||
const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CONSOLE_DEBUG_AND_DISABLE_DL_CRYPT[] = {
|
||||
&WR_DIS_CONSOLE_DEBUG_AND_DISABLE_DL_CRYPT[0], // Write protection for CONSOLE_DEBUG_DISABLE
|
||||
NULL
|
||||
};
|
|
@ -1,16 +0,0 @@
|
|||
# After editing this file, run the command manually "make efuse_custom_table" or "idf.py efuse_custom_table"
|
||||
|
||||
# WR_DIS_EFUSE_RD_DISABLE, EFUSE_BLK0, 0, 1, Write protection for RD_DIS, ADC_VREF
|
||||
WR_DIS_WR_DIS, EFUSE_BLK0, 1, 1, Write protection for WR_DIS
|
||||
# WR_DIS_FLASH_CRYPT_CNT, EFUSE_BLK0, 2, 1, Write protection for FLASH_CRYPT_CNT, UART_DOWNLOAD_DIS
|
||||
WR_DIS_MAC_AND_CHIP_INFO, EFUSE_BLK0, 3, 1, Write protection for MAC, MAC_CRC, CIP_VER_REV1, CHIP_VERSION, CHIP_PACKAGE
|
||||
WR_DIS_XPD, EFUSE_BLK0, 5, 1, Write protection for XPD_SDIO_FORCE, XPD_SDIO_REG, XPD_SDIO_TIEH
|
||||
WR_DIS_SPI_PAD, EFUSE_BLK0, 6, 1, Write protection for CHIP_VER_REV2, SPI_PAD_CONFIG
|
||||
# WR_DIS_BLK1, EFUSE_BLK0, 7, 1, Write protection for WR_DIS_BLK1
|
||||
# WR_DIS_BLK2, EFUSE_BLK0, 8, 1, Write protection for WR_DIS_BLK2
|
||||
# WR_DIS_BLK3, EFUSE_BLK0, 9, 1, Write protection for WR_DIS_BLK3, MAC_VERSION
|
||||
WR_DIS_SCHEME_KEY_CRYPT, EFUSE_BLK0, 10, 1, Write protection for CODING_SCHEME, KEY_STATUS, FLASH_CRYPT_CONFIG, BLK3_PART_RESERVE
|
||||
WR_DIS_ABS_DONE_0, EFUSE_BLK0, 12, 1, Write protection for ABS_DONE_0
|
||||
WR_DIS_ABS_DONE_1, EFUSE_BLK0, 13, 1, Write protection for ABS_DONE_1
|
||||
WR_DIS_JTAG_DISABLE, EFUSE_BLK0, 14, 1, Write protection for JTAG_DISABLE
|
||||
WR_DIS_CONSOLE_DEBUG_AND_DISABLE_DL_CRYPT, EFUSE_BLK0, 15, 1, Write protection for CONSOLE_DEBUG_DISABLE, DISABLE_DL
|
Can't render this file because it contains an unexpected character in line 1 and column 53.
|
|
@ -1,31 +0,0 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
// md5_digest_table 6db56af37887e1bd4dd25861bbc384d1
|
||||
// This file was generated from the file esp_efuse_custom_table.csv. DO NOT CHANGE THIS FILE MANUALLY.
|
||||
// If you want to change some fields, you need to change esp_efuse_custom_table.csv file
|
||||
// then run `efuse_common_table` or `efuse_custom_table` command it will generate this file.
|
||||
// To show efuse_table run the command 'show_efuse_table'.
|
||||
|
||||
|
||||
extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_WR_DIS[];
|
||||
extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_MAC_AND_CHIP_INFO[];
|
||||
extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_XPD[];
|
||||
extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SPI_PAD[];
|
||||
extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_SCHEME_KEY_CRYPT[];
|
||||
extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ABS_DONE_0[];
|
||||
extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_ABS_DONE_1[];
|
||||
extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_JTAG_DISABLE[];
|
||||
extern const esp_efuse_desc_t* ESP_EFUSE_WR_DIS_CONSOLE_DEBUG_AND_DISABLE_DL_CRYPT[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
|
@ -1,78 +0,0 @@
|
|||
#include <stdio.h>
|
||||
#include "sdkconfig.h"
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
#include "esp_system.h"
|
||||
#include "esp_spi_flash.h"
|
||||
#include "esp_efuse.h"
|
||||
#include "esp_efuse_table.h"
|
||||
#include "esp_efuse_custom_table.h"
|
||||
|
||||
void print_state() {
|
||||
esp_chip_info_t chip_info;
|
||||
esp_chip_info(&chip_info);
|
||||
uint8_t mac_address[6];
|
||||
esp_err_t res = esp_efuse_mac_get_default(mac_address);
|
||||
if (res != ESP_OK) {
|
||||
printf("Error while reading MAC address: %d\n", res);
|
||||
return;
|
||||
}
|
||||
bool secure_boot_v1_enabled = esp_efuse_read_field_bit(ESP_EFUSE_ABS_DONE_0);
|
||||
bool secure_boot_v2_enabled = esp_efuse_read_field_bit(ESP_EFUSE_ABS_DONE_1);
|
||||
bool jtag_disabled = esp_efuse_read_field_bit(ESP_EFUSE_DISABLE_JTAG);
|
||||
bool rom_basic_disabled = esp_efuse_read_field_bit(ESP_EFUSE_CONSOLE_DEBUG_DISABLE);
|
||||
bool uart_download_disabled = esp_efuse_read_field_bit(ESP_EFUSE_UART_DOWNLOAD_DIS);
|
||||
bool wp_efuse_rd_disable = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_EFUSE_RD_DISABLE);
|
||||
bool wp_wr_dis = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_WR_DIS);
|
||||
bool wp_flash_crypt_cnt = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_FLASH_CRYPT_CNT);
|
||||
bool wp_mac_chip_info = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_MAC_AND_CHIP_INFO);
|
||||
bool wp_xpd = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_XPD);
|
||||
bool wp_spi_pad = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_SPI_PAD);
|
||||
bool wp_blk1 = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_BLK1);
|
||||
bool wp_blk2 = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_BLK2);
|
||||
bool wp_blk3 = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_BLK3);
|
||||
bool wp_scheme_key_crypt = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_SCHEME_KEY_CRYPT);
|
||||
bool wp_abs_done_0 = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_ABS_DONE_0);
|
||||
bool wp_abs_done_1 = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_ABS_DONE_1);
|
||||
bool wp_jtag_disable = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_JTAG_DISABLE);
|
||||
bool wp_basic_console_dl_crypt = esp_efuse_read_field_bit(ESP_EFUSE_WR_DIS_CONSOLE_DEBUG_AND_DISABLE_DL_CRYPT);
|
||||
bool rd_blk1 = esp_efuse_read_field_bit(ESP_EFUSE_RD_DIS_BLK1);
|
||||
bool rd_blk2 = esp_efuse_read_field_bit(ESP_EFUSE_RD_DIS_BLK2);
|
||||
bool rd_blk3 = esp_efuse_read_field_bit(ESP_EFUSE_RD_DIS_BLK3);
|
||||
printf("This is %s chip with %d CPU core(s), WiFi%s%s, ",
|
||||
CONFIG_IDF_TARGET,
|
||||
chip_info.cores,
|
||||
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
|
||||
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
|
||||
printf("silicon revision %d, ", chip_info.revision);
|
||||
printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024), (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
|
||||
printf("Minimum free heap size: %d bytes\n", esp_get_minimum_free_heap_size());
|
||||
printf("MAC address: %02x:%02x:%02x:%02x:%02x:%02x\n", mac_address[0], mac_address[1], mac_address[2], mac_address[3], mac_address[4], mac_address[5]);
|
||||
printf("Secure boot v1 enabled: %s\n", secure_boot_v1_enabled ? "yes" : "no");
|
||||
printf("Secure boot v2 enabled: %s\n", secure_boot_v2_enabled ? "yes" : "no");
|
||||
printf("JTAG disabled: %s\n", jtag_disabled ? "yes" : "no");
|
||||
printf("ROM BASIC disabled: %s\n", rom_basic_disabled ? "yes" : "no");
|
||||
printf("UART DL mode disabled: %s\n", uart_download_disabled ? "yes" : "no");
|
||||
printf("Write protect for EFUSE READ DISABLE %s\n", wp_efuse_rd_disable ? "yes" : "no");
|
||||
printf("Write protect for EFUSE WRITE DISABLE %s\n", wp_wr_dis ? "yes" : "no");
|
||||
printf("Write protect for FLASH_CRYPT_CNT: %s\n", wp_flash_crypt_cnt ? "yes" : "no");
|
||||
printf("Write protect for MAC & chip info: %s\n", wp_mac_chip_info ? "yes" : "no");
|
||||
printf("Write protect XPD settings: %s\n", wp_xpd ? "yes" : "no");
|
||||
printf("Write protect SPI settings: %s\n", wp_spi_pad ? "yes" : "no");
|
||||
printf("Write protect for EFUSE block 1: %s\n", wp_blk1 ? "yes" : "no");
|
||||
printf("Write protect for EFUSE block 2: %s\n", wp_blk2 ? "yes" : "no");
|
||||
printf("Write protect for EFUSE block 3: %s\n", wp_blk3 ? "yes" : "no");
|
||||
printf("Write protect for coding scheme, key status & crypto config: %s\n", wp_scheme_key_crypt ? "yes" : "no");
|
||||
printf("Write protect for secure boot V1 enable: %s\n", wp_abs_done_0 ? "yes" : "no");
|
||||
printf("Write protect for secure boot V2 enable: %s\n", wp_abs_done_1 ? "yes" : "no");
|
||||
printf("Write protect for JTAG disable: %s\n", wp_jtag_disable ? "yes" : "no");
|
||||
printf("Write protect for BASIC console disable & DL crypt: %s\n", wp_basic_console_dl_crypt ? "yes" : "no");
|
||||
printf("Read disabled for EFUSE block 1: %s\n", rd_blk1 ? "yes" : "no");
|
||||
printf("Read disabled for EFUSE block 2: %s\n", rd_blk2 ? "yes" : "no");
|
||||
printf("Read disabled for EFUSE block 3: %s\n", rd_blk3 ? "yes" : "no");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
void app_main(void) {
|
||||
print_state();
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
# Name, Type, SubType, Offset, Size, Flags
|
||||
nvs, data, nvs, 0x9000, 0x4000
|
||||
otadata, data, ota, 0xd000, 0x2000
|
||||
phy_init, data, phy, 0xf000, 0x1000
|
||||
ota_0, 0, ota_0, 0x10000, 1856K
|
||||
ota_1, 0, ota_1, , 1856K
|
||||
locfd, data, fat, , 12608K
|
|
1581
efuse/sdkconfig
1581
efuse/sdkconfig
File diff suppressed because it is too large
Load diff
|
@ -1,16 +0,0 @@
|
|||
# After editing this file, run the command manually "make efuse_custom_table" or "idf.py efuse_custom_table"
|
||||
|
||||
# WR_DIS_EFUSE_RD_DISABLE, EFUSE_BLK0, 0, 1, Write protection for RD_DIS, ADC_VREF
|
||||
WR_DIS_WR_DIS, EFUSE_BLK0, 1, 1, Write protection for WR_DIS
|
||||
# WR_DIS_FLASH_CRYPT_CNT, EFUSE_BLK0, 2, 1, Write protection for FLASH_CRYPT_CNT, UART_DOWNLOAD_DIS
|
||||
WR_DIS_MAC_AND_CHIP_INFO, EFUSE_BLK0, 3, 1, Write protection for MAC, MAC_CRC, CIP_VER_REV1, CHIP_VERSION, CHIP_PACKAGE
|
||||
WR_DIS_XPD, EFUSE_BLK0, 5, 1, Write protection for XPD_SDIO_FORCE, XPD_SDIO_REG, XPD_SDIO_TIEH
|
||||
WR_DIS_SPI_PAD, EFUSE_BLK0, 6, 1, Write protection for CHIP_VER_REV2, SPI_PAD_CONFIG
|
||||
# WR_DIS_BLK1, EFUSE_BLK0, 7, 1, Write protection for WR_DIS_BLK1
|
||||
# WR_DIS_BLK2, EFUSE_BLK0, 8, 1, Write protection for WR_DIS_BLK2
|
||||
# WR_DIS_BLK3, EFUSE_BLK0, 9, 1, Write protection for WR_DIS_BLK3, MAC_VERSION
|
||||
WR_DIS_SCHEME_KEY_CRYPT, EFUSE_BLK0, 10, 1, Write protection for CODING_SCHEME, KEY_STATUS, FLASH_CRYPT_CONFIG, BLK3_PART_RESERVE
|
||||
WR_DIS_ABS_DONE_0, EFUSE_BLK0, 12, 1, Write protection for ABS_DONE_0
|
||||
WR_DIS_ABS_DONE_1, EFUSE_BLK0, 13, 1, Write protection for ABS_DONE_1
|
||||
WR_DIS_JTAG_DISABLE, EFUSE_BLK0, 14, 1, Write protection for JTAG_DISABLE
|
||||
WR_DIS_CONSOLE_DEBUG_AND_DISABLE_DL_CRYPT, EFUSE_BLK0, 15, 1, Write protection for CONSOLE_DEBUG_DISABLE, DISABLE_DL
|
Can't render this file because it contains an unexpected character in line 1 and column 53.
|
10
main/main.c
10
main/main.c
|
@ -33,6 +33,8 @@
|
|||
|
||||
#include "esp32/rom/crc.h"
|
||||
|
||||
#include "efuse.h"
|
||||
|
||||
static const char *TAG = "main";
|
||||
|
||||
typedef enum action {
|
||||
|
@ -282,6 +284,8 @@ void app_main(void) {
|
|||
|
||||
/* Initialize hardware */
|
||||
|
||||
efuse_protect();
|
||||
|
||||
bool lcdReady = false;
|
||||
res = board_init(&lcdReady);
|
||||
|
||||
|
@ -299,6 +303,7 @@ void app_main(void) {
|
|||
BNO055* bno055 = get_bno055();
|
||||
RP2040* rp2040 = get_rp2040();
|
||||
|
||||
/* Start AppFS */
|
||||
graphics_task(pax_buffer, ili9341, framebuffer, NULL, "AppFS init...");
|
||||
res = appfs_init();
|
||||
if (res != ESP_OK) {
|
||||
|
@ -308,6 +313,7 @@ void app_main(void) {
|
|||
}
|
||||
ESP_LOGI(TAG, "AppFS initialized");
|
||||
|
||||
/* Start NVS */
|
||||
graphics_task(pax_buffer, ili9341, framebuffer, NULL, "NVS init...");
|
||||
res = nvs_init();
|
||||
if (res != ESP_OK) {
|
||||
|
@ -317,6 +323,7 @@ void app_main(void) {
|
|||
}
|
||||
ESP_LOGI(TAG, "NVS initialized");
|
||||
|
||||
/* Start SD card */
|
||||
graphics_task(pax_buffer, ili9341, framebuffer, NULL, "Mount SD card...");
|
||||
res = mount_sd(SD_CMD, SD_CLK, SD_D0, SD_PWR, "/sd", false, 5);
|
||||
bool sdcard_ready = (res == ESP_OK);
|
||||
|
@ -325,12 +332,15 @@ void app_main(void) {
|
|||
graphics_task(pax_buffer, ili9341, framebuffer, NULL, "SD card mounted");
|
||||
}
|
||||
|
||||
/* Start LEDs */
|
||||
ws2812_init(GPIO_LED_DATA);
|
||||
uint8_t ledBuffer[15] = {50, 0, 0, 50, 0, 0, 50, 0, 0, 50, 0, 0, 50, 0, 0};
|
||||
ws2812_send_data(ledBuffer, sizeof(ledBuffer));
|
||||
|
||||
/* Start RP2040 firmware update check */
|
||||
rp2040_updater(rp2040, pax_buffer, ili9341, framebuffer);
|
||||
|
||||
/* Launcher menu */
|
||||
while (true) {
|
||||
menu_action_t menu_action;
|
||||
appfs_handle_t appfs_fd;
|
||||
|
|
Loading…
Reference in a new issue