diff --git a/esp8266/modesp.c b/esp8266/modesp.c
index 515319c9e04bb521990c9e6f0f0b372f06e00843..827907d42bd6e20a8e16578c409e82b1de757354 100644
--- a/esp8266/modesp.c
+++ b/esp8266/modesp.c
@@ -629,6 +629,11 @@ STATIC mp_obj_t esp_flash_size(void) {
 }
 STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_flash_size_obj, esp_flash_size);
 
+STATIC mp_obj_t esp_flash_user_start(void) {
+    return MP_OBJ_NEW_SMALL_INT(0x90000);
+}
+STATIC MP_DEFINE_CONST_FUN_OBJ_0(esp_flash_user_start_obj, esp_flash_user_start);
+
 STATIC mp_obj_t esp_check_fw(void) {
     MD5_CTX ctx;
     uint32_t *sz_p = (uint32_t*)0x40208ffc;
@@ -706,6 +711,7 @@ STATIC const mp_map_elem_t esp_module_globals_table[] = {
     { MP_OBJ_NEW_QSTR(MP_QSTR_flash_write), (mp_obj_t)&esp_flash_write_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_flash_erase), (mp_obj_t)&esp_flash_erase_obj },
     { MP_OBJ_NEW_QSTR(MP_QSTR_flash_size), (mp_obj_t)&esp_flash_size_obj },
+    { MP_OBJ_NEW_QSTR(MP_QSTR_flash_user_start), (mp_obj_t)&esp_flash_user_start_obj },
     #if MODESP_ESPCONN
     { MP_OBJ_NEW_QSTR(MP_QSTR_socket), (mp_obj_t)&esp_socket_type },
     { MP_OBJ_NEW_QSTR(MP_QSTR_getaddrinfo), (mp_obj_t)&esp_getaddrinfo_obj },
diff --git a/esp8266/modules/flashbdev.py b/esp8266/modules/flashbdev.py
index 98b0208fb6c06148460e08bc088fac7f854485a4..e879895fb0d0a66afc8dc7a46056102f489ecd5f 100644
--- a/esp8266/modules/flashbdev.py
+++ b/esp8266/modules/flashbdev.py
@@ -3,7 +3,7 @@ import esp
 class FlashBdev:
 
     SEC_SIZE = 4096
-    START_SEC = 0x90000 // SEC_SIZE
+    START_SEC = esp.flash_user_start() // SEC_SIZE
     NUM_BLK = 0x6b
 
     def __init__(self, blocks=NUM_BLK):