diff --git a/esp8266/Makefile b/esp8266/Makefile
index 3bb63dd87302f8dbbcd42990671118aa73a133cb..6790d5f7443e3c981ac1ab1a67bddbbf73de7f55 100644
--- a/esp8266/Makefile
+++ b/esp8266/Makefile
@@ -150,7 +150,7 @@ $(BUILD)/frozen.c: $(wildcard $(SCRIPTDIR)/*) $(CONFVARS_FILE)
 deploy: $(BUILD)/firmware-combined.bin
 	$(ECHO) "Writing $< to the board"
 	#$(Q)esptool.py --port $(PORT) write_flash 0 $<
-	$(Q)esptool.py --port $(PORT) --baud $(BAUD) write_flash --flash_size=8m 0 $(BUILD)/firmware.elf-0x00000.bin 0x10000 $(BUILD)/firmware.elf-0x10000.bin
+	$(Q)esptool.py --port $(PORT) --baud $(BAUD) write_flash --flash_size=8m 0 $(BUILD)/firmware.elf-0x00000.bin 0x9000 $(BUILD)/firmware.elf-0x0[1-f]000.bin
 
 reset:
 	echo -e "\r\nimport pyb; pyb.hard_reset()\r\n" >$(PORT)
@@ -158,7 +158,7 @@ reset:
 $(BUILD)/firmware-combined.bin: $(BUILD)/firmware.elf
 	$(ECHO) "Create $@"
 	$(Q)esptool.py elf2image $^
-	$(Q)$(PYTHON) makeimg.py $(BUILD)/firmware.elf-0x00000.bin $(BUILD)/firmware.elf-0x10000.bin $@
+	$(Q)$(PYTHON) makeimg.py $(BUILD)/firmware.elf-0x00000.bin $(BUILD)/firmware.elf-0x0[1-f]000.bin $@
 
 $(BUILD)/firmware.elf: $(OBJ)
 	$(ECHO) "LINK $@"
diff --git a/esp8266/esp8266.ld b/esp8266/esp8266.ld
index 87a0e5488a310ebecfdf6a8a2cbc233d35f6cfca..a74e2d25d86fc093464daa8f9d628a60ef2fcb28 100644
--- a/esp8266/esp8266.ld
+++ b/esp8266/esp8266.ld
@@ -5,7 +5,7 @@ MEMORY
     dport0_0_seg : org = 0x3ff00000, len = 0x10
     dram0_0_seg :  org = 0x3ffe8000, len = 0x14000
     iram1_0_seg :  org = 0x40100000, len = 0x8000
-    irom0_0_seg :  org = 0x40210000, len = 0x80000
+    irom0_0_seg :  org = 0x40209000, len = 0x80000
 }
 
 /* define the top of RAM */
diff --git a/esp8266/makeimg.py b/esp8266/makeimg.py
index 1ac681cb74fde51f4d8f75b873334de45c3c490b..e63f956bddd7b28e933b415d590196a7343dea7b 100644
--- a/esp8266/makeimg.py
+++ b/esp8266/makeimg.py
@@ -1,5 +1,7 @@
 import sys
 
+SEGS_MAX_SIZE = 0x9000
+
 assert len(sys.argv) == 4
 
 with open(sys.argv[3], 'wb') as fout:
@@ -9,7 +11,7 @@ with open(sys.argv[3], 'wb') as fout:
         fout.write(data_flash)
         print('flash    ', len(data_flash))
 
-    pad = b'\xff' * (0x10000 - len(data_flash))
+    pad = b'\xff' * (SEGS_MAX_SIZE - len(data_flash))
     fout.write(pad)
     print('padding  ', len(pad))
 
@@ -18,4 +20,4 @@ with open(sys.argv[3], 'wb') as fout:
         fout.write(data_rom)
         print('irom0text', len(data_rom))
 
-    print('total    ', 0x10000 + len(data_rom))
+    print('total    ', SEGS_MAX_SIZE + len(data_rom))