Skip to content

Commit 934053e

Browse files
committed
LFS support for ESP8266, part 1
CL: LFS support for ESP8266, part 1
1 parent 9b779cd commit 934053e

File tree

9 files changed

+23
-40
lines changed

9 files changed

+23
-40
lines changed

platforms/cc3200/Makefile.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ FS_ERASE_SIZE ?= 4096
7777
FS_META_SIZE = 64
7878
FS_IMAGE_SIZE = $(shell echo $$(($(FS_SIZE) + $(FS_META_SIZE))))
7979
MKSPIFFS ?= /usr/local/bin/mkspiffs
80+
MGOS_ROOT_FS_TYPE = SPIFFS
8081

8182
# With safe code update, new code image is written to a different file on update
8283
# making it possible to safely revert the update.

platforms/cc3220/Makefile.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ SDK_PATH ?=
4747
MGOS_CC3220_PATH ?= $(MGOS_PATH)/platforms/cc3220
4848
MGOS_CC32XX_PATH ?= $(MGOS_PATH)/platforms/cc32xx
4949
MKSPIFFS ?= /usr/local/bin/mkspiffs8
50+
MGOS_ROOT_FS_TYPE = SPIFFS
5051

5152
# Binary images must be signed. By default, we sign with dummy "playground" keys from the SDK.
5253
SIG_CERT ?= $(SDK_PATH)/tools/cc32xx_tools/certificate-playground/dummy-root-ca-cert

platforms/esp32/Makefile.build

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,6 @@ MGOS_DEBUG_UART ?= 0
4141
MGOS_ROOT_DEVTAB ?=
4242
MGOS_ROOT_FS_TYPE ?= SPIFFS
4343
MGOS_ROOT_FS_SIZE ?= 262144
44-
ifeq "$(MGOS_ROOT_FS_TYPE)" "SPIFFS"
45-
MKFS ?= /usr/local/bin/mkspiffs8
46-
MGOS_ROOT_FS_OPTS ?= {"bs": 4096, "ps": 256, "es": 4096}
47-
else
48-
ifeq "$(MGOS_ROOT_FS_TYPE)" "LFS"
49-
MKFS ?= /usr/local/bin/mklfs
50-
MGOS_ROOT_FS_OPTS ?= {"bs": 4096, "is": 128}
51-
endif
52-
endif
5344

5445
export MGOS_ROOT_FS_SIZE
5546

platforms/esp8266/Makefile.build

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,6 @@ MGOS_ESP8266_RTOS ?= 0
5151
MGOS_UPDATE_BOOT_LOADER ?= false
5252

5353
FLASH_SIZE ?= 4194304
54-
FS_BLOCK_SIZE = 4096
55-
FS_PAGE_SIZE = 256
56-
FS_ERASE_SIZE = 4096
5754

5855
RF_CAL_DATA_SIZE = 0x1000
5956
SYS_PARAMS_SIZE = 0x4000
@@ -166,7 +163,9 @@ MEMORY_FLAGS = -DFS_MAX_OPEN_FILES=5
166163

167164
MGOS_CFLAGS = -DMGOS_APP=\"$(APP)\" \
168165
-DMGOS_MAX_NUM_UARTS=2 \
169-
-DC_DISABLE_BUILTIN_SNPRINTF
166+
-DC_DISABLE_BUILTIN_SNPRINTF \
167+
-DMGOS_ROOT_FS_TYPE='$(MGOS_ROOT_FS_TYPE)' \
168+
-DMGOS_ROOT_FS_OPTS='$(MGOS_ROOT_FS_OPTS)'
170169

171170
MGOS_LIB = $(BUILD_DIR)/mongoose-os.a
172171
MGOS_CONFIG_C = $(GEN_DIR)/mgos_config.c
@@ -253,7 +252,7 @@ BOOT_CONFIG_WRITE_ADDR ?= $(BOOT_CONFIG_ADDR)
253252
SYS_PARAMS_ADDR = $(shell printf "0x%05x" "$$(($(FLASH_SIZE) - $(SYS_PARAMS_SIZE)))")
254253
# RF calibration data sector location is configurable, but we also keep it at the end, just above sys params.
255254
FW_RF_CAL_DATA_ADDR = $(shell printf "0x%05x" "$$(($(FLASH_SIZE) - $(SYS_PARAMS_SIZE) - $(RF_CAL_DATA_SIZE)))")
256-
MKSPIFFS ?= /usr/local/bin/mkspiffs8
255+
MGOS_ROOT_FS_TYPE ?= SPIFFS
257256

258257
ifeq ("$(FLASH_SIZE)", "1048576")
259258
#
@@ -351,7 +350,7 @@ CFLAGS += -DMGOS_ADC_MODE_VDD=$(MGOS_ADC_MODE_VDD)
351350
FW_PARTS = boot:addr=$(BOOT_LOADER_ADDR),src=$(BOOT_LOADER_BIN),update=$(MGOS_UPDATE_BOOT_LOADER) \
352351
boot_cfg:addr=$(BOOT_CONFIG_WRITE_ADDR),size=0x1000,fill=0xff \
353352
fw:addr=$(APP0_ADDR),src=$(APP_BIN) \
354-
fs:src=$(FS_IMG),type=fs,addr=$(FS0_ADDR),fs_size=$(FS_SIZE),fs_block_size=$(FS_BLOCK_SIZE),fs_page_size=$(FS_PAGE_SIZE),fs_erase_size=$(FS_ERASE_SIZE) \
353+
fs:src=$(FS_IMG),type=fs,addr=$(FS0_ADDR),fs_size=$(FS_SIZE) \
355354
rf_cal_data:addr=$(FW_RF_CAL_DATA_ADDR),size=$(RF_CAL_DATA_SIZE),fill=0xff \
356355
sys_params:type=sys_params,src=$(SDK_INIT_DATA_PATH)/bin/esp_init_data_default_v08.bin,addr=$(SYS_PARAMS_ADDR) \
357356
$(APP_EXTRA_FW_PARTS)
@@ -449,8 +448,8 @@ $(MG_BUILD_INFO_C): $(MGOS_OBJS)
449448

450449
# -- Filesystem.
451450

452-
$(FS_IMG): $(APP_FS_DIRS) $(FS_FILES) $(MGOS_CONFIG_C) $(MGOS_RO_VARS_C) $(MKSPIFFS)
453-
$(call mkspiffs,$(FS_SIZE),$(FS_BLOCK_SIZE),$(FS_PAGE_SIZE),$(FS_ERASE_SIZE))
451+
$(FS_IMG): $(MKFS) $(APP_FS_DIRS) $(FS_FILES)
452+
$(call mkfs,$(FS_SIZE),$(MGOS_ROOT_FS_OPTS))
454453

455454
#
456455
# Auxiliary targets.

platforms/rs14100/Makefile.build

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,6 @@ MGOS_ROOT_DEVTAB ?= qspi0 rsi1x_flash {"cs": 0} | \
111111
fs0 part {"dev": "qspi0", "offset": $(FLASH_FS0_ADDR), "size": $(MGOS_ROOT_FS_SIZE)}
112112
MGOS_ROOT_FS_TYPE ?= SPIFFS
113113
MGOS_ROOT_FS_SIZE ?= 262144
114-
ifeq "$(MGOS_ROOT_FS_TYPE)" "SPIFFS"
115-
MKFS ?= /usr/local/bin/mkspiffs8
116-
MGOS_ROOT_FS_OPTS ?= {"bs": 4096, "ps": 128, "es": 4096}
117-
else
118-
ifeq "$(MGOS_ROOT_FS_TYPE)" "LFS"
119-
MKFS ?= /usr/local/bin/mklfs
120-
MGOS_ROOT_FS_OPTS ?= {"bs": 4096, "is": 128}
121-
endif
122-
endif
123114
FS_STAGING_DIR = $(BUILD_DIR)/fs
124115

125116
FS_IMG = $(FW_STAGING_DIR)/fs.bin

platforms/stm32/Makefile.build

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -121,17 +121,6 @@ MGOS_ROOT_FS_SIZE ?= 0
121121
MGOS_ROOT_FS_ON_SYS_FLASH ?= 1
122122
# When FS is not on sys flash, we definitely need to extract.
123123
MGOS_ROOT_FS_EXTRACT ?= 1-$(MGOS_ROOT_FS_ON_SYS_FLASH)
124-
# Note: FS options do not correspond to the characteristics of on-board flash,
125-
# we fake small erases by performing an RMW which is unsafe but works.
126-
ifeq "$(MGOS_ROOT_FS_TYPE)" "SPIFFS"
127-
MKFS ?= /usr/local/bin/mkspiffs8
128-
MGOS_ROOT_FS_OPTS ?= {"bs": 4096, "ps": 128, "es": 4096}
129-
else
130-
ifeq "$(MGOS_ROOT_FS_TYPE)" "LFS"
131-
MKFS ?= /usr/local/bin/mklfs
132-
MGOS_ROOT_FS_OPTS ?= {"bs": 4096, "is": 128}
133-
endif
134-
endif
135124
FS_STAGING_DIR = $(BUILD_DIR)/fs
136125

137126
FS_IMG = $(FW_STAGING_DIR)/fs.bin

src/mgos_mmap_esp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
* limitations under the License.
1616
*/
1717

18+
#ifdef CS_MMAP
19+
1820
#include <stdlib.h>
1921
#include <sys/mman.h>
2022
#include <unistd.h>
@@ -32,8 +34,6 @@
3234
#error only esp32 and esp8266 are supported
3335
#endif
3436

35-
#ifdef CS_MMAP
36-
3737
/*
3838
* Reads unaligned byte, handles mmapped addresses properly.
3939
*

src/mgos_mmap_esp_internal.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010

1111
#include "common/platform.h"
1212

13+
#ifdef CS_MMAP
14+
1315
#include "spiffs.h"
1416

15-
#ifdef CS_MMAP
1617
#if CS_PLATFORM == CS_P_ESP32 || CS_PLATFORM == CS_P_ESP8266
1718

1819
/*

tools/mk/mgos_mkfs.mk

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@ ifneq "$(APP_FS_FILES)" ""
55
FS_FILES += $(foreach m,$(APP_FS_FILES),$(wildcard $(m)))
66
endif
77

8+
ifeq "$(MGOS_ROOT_FS_TYPE)" "SPIFFS"
9+
MKFS ?= /usr/local/bin/mkspiffs8
10+
MGOS_ROOT_FS_OPTS ?= $(MGOS_ROOT_FS_OPTS_SPIFFS)
11+
else
12+
ifeq "$(MGOS_ROOT_FS_TYPE)" "LFS"
13+
MKFS ?= /usr/local/bin/mklfs
14+
MGOS_ROOT_FS_OPTS ?= $(MGOS_ROOT_FS_OPTS_LFS)
15+
endif
16+
endif
17+
818
# Args: fs_size, block_size, page_size, erase_size.
919
define mkspiffs
1020
$(Q) rm -rf $(FS_STAGING_DIR) && mkdir -p $(FS_STAGING_DIR) $(dir $@)

0 commit comments

Comments
 (0)