From 8a3386bfbf34deea1005db601ff5f17a48489359 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Mon, 28 Mar 2016 00:24:27 +0300 Subject: [PATCH] Bootloader: don't touch RTC memory if it doesn't contain a valid command (#619) --- bootloaders/eboot/Makefile | 5 ++--- bootloaders/eboot/eboot.c | 12 +++++++----- bootloaders/eboot/eboot.elf | Bin 10083 -> 9839 bytes 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/bootloaders/eboot/Makefile b/bootloaders/eboot/Makefile index 7a07d7615..e078263ca 100644 --- a/bootloaders/eboot/Makefile +++ b/bootloaders/eboot/Makefile @@ -1,5 +1,5 @@ XTENSA_TOOLCHAIN ?= ../../tools/xtensa-lx106-elf/bin/ -ESPTOOL ?= ../../tools/esptool +ESPTOOL ?= ../../tools/esptool/esptool BIN_DIR := ./ TARGET_DIR := ./ @@ -7,7 +7,7 @@ TARGET_DIR := ./ TARGET_OBJ_FILES := \ eboot.o \ eboot_command.o \ - + TARGET_OBJ_PATHS := $(addprefix $(TARGET_DIR)/,$(TARGET_OBJ_FILES)) @@ -50,4 +50,3 @@ clean: .PHONY: all clean default - diff --git a/bootloaders/eboot/eboot.c b/bootloaders/eboot/eboot.c index 3c0bc1cce..f53d3c912 100644 --- a/bootloaders/eboot/eboot.c +++ b/bootloaders/eboot/eboot.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2015 Ivan Grokhotkov. All rights reserved. +/* Copyright (c) 2015-2016 Ivan Grokhotkov. All rights reserved. * This file is part of eboot bootloader. * * Redistribution and use is permitted according to the conditions of the @@ -115,14 +115,16 @@ void main() int res = 9; struct eboot_command cmd; - if (eboot_command_read(&cmd)) { + if (eboot_command_read(&cmd) == 0) { + // valid command was passed via RTC_MEM + eboot_command_clear(); + ets_putc('@'); + } else { + // no valid command found cmd.action = ACTION_LOAD_APP; cmd.args[0] = 0; ets_putc('~'); - } else { - ets_putc('@'); } - eboot_command_clear(); if (cmd.action == ACTION_COPY_RAW) { ets_putc('c'); ets_putc('p'); ets_putc(':'); diff --git a/bootloaders/eboot/eboot.elf b/bootloaders/eboot/eboot.elf index 7fb4f5f93ab9814226b346dd2cb8adc101a861c9..aa61b97f02ff5a2a8444a08fc5e81495fe8b7727 100755 GIT binary patch delta 2032 zcmZWqeQZ-z6uBaXa@9+-%=~BB|M{stR_CG#;{JQ&#WdhH|1ovs&OmDCse?* zuDkYT^&CUc;MR*U@)d-{f^HqLpC=>Cj}em> zhgjW;e4tcsF?q1G-KZa0O)>T+D&-A0+ZYy0{hB zovepi9y$hTV5cVB8XE!`B6@70p7f>`jg!+yDx$B0;oqoExUtqegf4A zD$=5cX2smm%h3+;&)jsfw5t=q!kse1owDV~5L{20aHmYT!zjxW>dxF_By)#VxT7cB z(KE8tVv=~XJP35}tqwg2*32Y?n5R4lKZCVtPGyWPgxT&O>;sgxI|y20kE$+T-KsI{ z+V?)>+#oq!$Q!Wy&}I<+?R&PD2@FW!pq3FKin+j9b=0@cm#0`YrB13FzWEzZkw2G) ze+s2`>rxhC{_R6K5Cl;w+)uK4zxH~Axsg2M$qMcDg-3~NqLQNcXr)K(@;7;2r&w!F zz3H#b>fH93+!5O1vLQFO@@2dr79le@$oO)%#0JJflGKs=s7Pj_^tZntmd?B>AZE4H zi#>!hm*n0)PVHbhPSx2vOdSocDYZJk@zo}7i|~4|a<75a@cJ~Cw^zgK)tHpr8`G<$ zSHD^xj&n;5hMSx@jPe=hPv{m=btIfstxl`zt89Uds*9C7d8X7;wV#)&XP@Qj+eo}( zV0bvcYj|63$DWb&4suEtqNAeFjGdwiqw$7eb{T&MOYs#r5cFb6{8s_PXiWx>xC4xH z)mKh&Ip4(;r`+!U=?PaMMs>CVQyzL1*fuz;%fw+|JZoBX5;#%DlfZz?MgzhLU}`|q z0;A)EW55&-;y_{aMhSNSQ{xT5W*KkNntoSAPM}N-Xu>T@pAMP~Dtd4xUdC-@{lrWh znph=nMm_XrS?RK<3rb3|2aN-W^!(XZUH?!VVsJ@ Sp}Ft1mC0Xtt`tf2$o~KW&T$?9 delta 2295 zcmb_eZERCj7(VCRkKWR++jg6yv|HPKbc1Ex7>w~DlnF9$4kpC#F>qy_VY;rf9ZU_O zlY|&Qf@_Yb!6kx5orzIQk@!QUiw1x2Lm--93`*kE5X=|@9e;Gb@3|e4kob$6^gYk} zKF|A}bMATX?Y-9eOWUxY?eTsRl%?8Wf;<#HG?$D7_fJ)at*m-g@Yn&GoXHV#hLToB z6A0IqldACJu8n-NRL)u+$uvs&|d)wn+jP|6JKmr}XEB}@nW*l(>FjQ*>n~p5;ILeP@?L2803o(V)I)?MEe#8ru+>t zxdyUXdksc3Pbq{M7j?hs?G;1c@Q)8UBo4bCG|zL z{_S98A`fH5KnffvSUwJ;`Wx~U$P={!ab;fnB|4$6z?v4rq_XU^Lbmo67^@lhhK|r2&4GPGr2`hL}qN$_&39W=)<}YYIJpgf9pn+wXPCKRi zl(sx=$0HK zkbD?7*K}Qvn6UcDJ0P`vDhQ*-CfoB!v}ug@o6BmgxUj9Lk}_*l`(jjX6Gby8()MYT zZa3VMY5OoAGY2gnWALfSlpdMp6XxuKTmXhU{VbzvzKu#r;<3`?qk&bKw!rGPW$`jBawvU7i36_c3e&xq44_byX zHWyRR@hMByBNxyw#pa)cQhlP73NdR}JO%_pDCHVNSpbijWwzL3sR2TRPT_5JjUpGq zk}T8VmUyo?LCApF-pL3I%HHAc43hf zx$IxoG;5fBQ-GLwaW1kE&RjD!r`vy|s4bgqk@SbQgHW*EIhr3h#O$!?vyAttPnEl=HGu@%W z-KA!eu<~uo%vQk6tO+ZLxFW1aSR>1F2X+hmUj^AL^MEVlEF#nlyP|Yj?BIRMKX9zN zS6kq(yLR5QS~pw=X;XHedx-MWMZTK3;8TwHYZx)U2znCk2MNM&31Aq6W(BuP9&rK0 zuucbH%!9eoWG6WH=ZT|$;dLWKCjk5N_#9w>M1u(s`vKzw_`tv*;)p$fF+K-+8V0dY z#La+l;#R;)9=8k44nu^FEl=zcgi#d#J@MhdqK9YWdAu;M&&|eRafr+F`tj@q&wG^K z;MD8pFMD<6)j|SK#BpyK8!F~!yp`;DF`w{ODnGzWU+3+hs`2UUN-