Skip to content

cleanup/unify flash sector size define value #5327

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Nov 24, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion bootloaders/eboot/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@ AR := $(XTENSA_TOOLCHAIN)xtensa-lx106-elf-ar
LD := $(XTENSA_TOOLCHAIN)xtensa-lx106-elf-gcc
OBJDUMP := $(XTENSA_TOOLCHAIN)xtensa-lx106-elf-objdump


INC += -I../../tools/sdk/include
CFLAGS += -std=gnu99

CFLAGS += -O0 -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mno-text-section-literals

CFLAGS += $(INC)

LDFLAGS += -nostdlib -Wl,--no-check-sections -umain

LD_SCRIPT := -Teboot.ld
Expand Down
Binary file modified bootloaders/eboot/eboot.elf
Binary file not shown.
12 changes: 8 additions & 4 deletions bootloaders/eboot/flash.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,19 @@
#ifndef FLASH_H
#define FLASH_H


/* The geometry defines are placed in the sdk. The .h was factored out for reuse by eboot here.
* Beware: this means that eboot has an external dependency.
* The following .h is placed in tools/sdk/includes
*/
#include <spi_flash_geometry.h>

int SPIEraseBlock(uint32_t block);
int SPIEraseSector(uint32_t sector);
int SPIRead(uint32_t addr, void *dest, size_t size);
int SPIWrite(uint32_t addr, void *src, size_t size);
int SPIEraseAreaEx(const uint32_t start, const uint32_t size);

#define FLASH_SECTOR_SIZE 0x1000
#define FLASH_BLOCK_SIZE 0x10000
#define APP_START_OFFSET 0x1000

typedef struct {
unsigned char magic;
Expand All @@ -25,7 +29,7 @@ typedef struct {
/* SPI Flash Interface (0 = QIO, 1 = QOUT, 2 = DIO, 0x3 = DOUT) */
unsigned char flash_mode;

/* High four bits: 0 = 512K, 1 = 256K, 2 = 1M, 3 = 2M, 4 = 4M,
/* High four bits: 0 = 512K, 1 = 256K, 2 = 1M, 3 = 2M, 4 = 4M, 8 = 8M, 9 = 16M
Low four bits: 0 = 40MHz, 1= 26MHz, 2 = 20MHz, 0xf = 80MHz */
unsigned char flash_size_freq;

Expand Down
34 changes: 6 additions & 28 deletions cores/esp8266/flash_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,39 +21,17 @@
#ifndef FLASH_UTILS_H
#define FLASH_UTILS_H


#ifdef __cplusplus
extern "C" {
#endif

int SPIEraseBlock(uint32_t block);
int SPIEraseSector(uint32_t sector);
int SPIRead(uint32_t addr, void *dest, size_t size);
int SPIWrite(uint32_t addr, void *src, size_t size);
int SPIEraseAreaEx(const uint32_t start, const uint32_t size);

#define FLASH_SECTOR_SIZE 0x1000
#define FLASH_BLOCK_SIZE 0x10000
#define APP_START_OFFSET 0x1000

typedef struct {
unsigned char magic;
unsigned char num_segments;

/* SPI Flash Interface (0 = QIO, 1 = QOUT, 2 = DIO, 0x3 = DOUT) */
unsigned char flash_mode;

/* High four bits: 0 = 512K, 1 = 256K, 2 = 1M, 3 = 2M, 4 = 4M, 8 = 8M, 9 = 16M
Low four bits: 0 = 40MHz, 1= 26MHz, 2 = 20MHz, 0xf = 80MHz */
unsigned char flash_size_freq;

uint32_t entry;
} image_header_t;

/* Definitions are placed in eboot. Include them here rather than duplicate them.
* Also, prefer to have eboot standalone as much as possible and have the core depend on it
* rather than have eboot depend on the core.
*/
#include <../../bootloaders/eboot/flash.h>

typedef struct {
uint32_t address;
uint32_t size;
} section_header_t;

#ifdef __cplusplus
}
Expand Down
4 changes: 2 additions & 2 deletions tools/sdk/include/spi_flash.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
#ifndef SPI_FLASH_H
#define SPI_FLASH_H

#include <spi_flash_geometry.h>

#ifdef __cplusplus
extern "C" {
#endif
Expand All @@ -44,8 +46,6 @@ typedef struct{
uint32 status_mask;
} SpiFlashChip;

#define SPI_FLASH_SEC_SIZE 4096

extern SpiFlashChip * flashchip; // in ram ROM-BIOS

uint32 spi_flash_get_id(void);
Expand Down
15 changes: 15 additions & 0 deletions tools/sdk/include/spi_flash_geometry.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#ifndef SPI_FLASH_GEOMETRY_H
#define SPI_FLASH_GEOMETRY_H

/* The flash geometry is meant to be unified here. This header file should be included wherever needed.
* Beware: this file is needed by eboot as well as the Arduino core.
*/

#define FLASH_SECTOR_SIZE 0x1000
#define FLASH_BLOCK_SIZE 0x10000
#define APP_START_OFFSET 0x1000

//pulled this define from spi_flash.h for reuse in the Arduino core without pulling in a bunch of other stuff
#define SPI_FLASH_SEC_SIZE FLASH_SECTOR_SIZE

#endif
2 changes: 1 addition & 1 deletion tools/sdk/include/upgrade.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
extern "C" {
#endif

#include <spi_flash_geometry.h>

#define SPI_FLASH_SEC_SIZE 4096
#define LIMIT_ERASE_SIZE 0x10000

#define USER_BIN1 0x00
Expand Down