From 97ce8a5c323698754d5cfc2899f6f0ecc7579587 Mon Sep 17 00:00:00 2001 From: BTChip Date: Sun, 22 Jan 2017 18:17:21 +0100 Subject: [PATCH] Refresh icons for Blue 2.0 --- .gitignore | 3 +- Makefile | 129 ++++++++++++++------------ glyphs/badge_bitcoin.gif | Bin 0 -> 362 bytes glyphs/badge_dash.gif | Bin 0 -> 338 bytes glyphs/badge_dogecoin.gif | Bin 0 -> 363 bytes glyphs/badge_litecoin.gif | Bin 0 -> 336 bytes glyphs/badge_transaction.gif | Bin 0 -> 339 bytes glyphs/badge_zcash.gif | Bin 0 -> 339 bytes glyphs/icon_bitcoin.gif | Bin 0 -> 68 bytes glyphs/icon_bitcoin_testnet.gif | Bin 0 -> 68 bytes glyphs/icon_dogecoin.gif | Bin 0 -> 75 bytes glyphs/icon_stratis.gif | Bin 0 -> 76 bytes glyphs/icon_toggle_reset.gif | Bin 0 -> 225 bytes glyphs/icon_toggle_set.gif | Bin 0 -> 227 bytes icon_bitcoin_blue.gif | Bin 0 -> 449 bytes icon_bitcoin_testnet.gif | Bin 0 -> 1131 bytes icon_bitcoin_testnet_blue.gif | Bin 0 -> 449 bytes icon_dash_blue.gif | Bin 0 -> 389 bytes icon_dogecoin.gif | Bin 0 -> 70 bytes icon_dogecoin_blue.gif | Bin 0 -> 427 bytes icon_litecoin_blue.gif | Bin 0 -> 373 bytes icon_stratis.gif | Bin 0 -> 71 bytes icon_zcash_blue.gif | Bin 0 -> 399 bytes script.ld | 154 -------------------------------- 24 files changed, 74 insertions(+), 212 deletions(-) create mode 100644 glyphs/badge_bitcoin.gif create mode 100644 glyphs/badge_dash.gif create mode 100644 glyphs/badge_dogecoin.gif create mode 100644 glyphs/badge_litecoin.gif create mode 100644 glyphs/badge_transaction.gif create mode 100644 glyphs/badge_zcash.gif create mode 100644 glyphs/icon_bitcoin.gif create mode 100644 glyphs/icon_bitcoin_testnet.gif create mode 100644 glyphs/icon_dogecoin.gif create mode 100644 glyphs/icon_stratis.gif create mode 100644 glyphs/icon_toggle_reset.gif create mode 100644 glyphs/icon_toggle_set.gif create mode 100644 icon_bitcoin_blue.gif create mode 100644 icon_bitcoin_testnet.gif create mode 100644 icon_bitcoin_testnet_blue.gif create mode 100644 icon_dash_blue.gif create mode 100644 icon_dogecoin.gif create mode 100644 icon_dogecoin_blue.gif create mode 100644 icon_litecoin_blue.gif create mode 100644 icon_stratis.gif create mode 100644 icon_zcash_blue.gif delete mode 100644 script.ld diff --git a/.gitignore b/.gitignore index 23684d2..d9280d1 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,5 @@ debug dep obj src/glyphs.c - - +src/glyphs.h diff --git a/Makefile b/Makefile index 968f6d2..57b971b 100755 --- a/Makefile +++ b/Makefile @@ -14,25 +14,37 @@ # See the License for the specific language governing permissions and # limitations under the License. #******************************************************************************* - -TARGET_ID = 0x31100002 #Nano S -#TARGET_ID = 0x31000002 #Blue +#extract TARGET_ID from the SDK to allow for makefile choices +TARGET_ID := $(shell cat $(BOLOS_SDK)/include/bolos_target.h | grep 0x | cut -f3 -d' ') +$(info TARGET_ID=$(TARGET_ID)) APP_LOAD_PARAMS=--appFlags 0x50 --path "" --curve secp256k1 +APPVERSION_M=1 +APPVERSION_N=1 +APPVERSION_P=3 +APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P) + +#prepare hsm generation +ifeq ($(TARGET_ID),0x31000002) +LOADFLAGS = --params --appVersion $(APPVERSION) +else +endif + + ################ # Default rule # ################ all: default -# consider every intermediate target as final to avoid deleting intermediate files +# consider every intermediate target aTARGET_ID=s final to avoid deleting intermediate files .SECONDARY: # disable builtin rules that overload the build process (and the debug log !!) .SUFFIXES: MAKEFLAGS += -r -SHELL = /bin/bash +SHELL = /bin/bash #.ONESHELL: @@ -44,62 +56,70 @@ PROG := token CONFIG_PRODUCTIONS := bin/$(PROG) GLYPH_FILES := $(addprefix glyphs/,$(sort $(notdir $(shell find glyphs/)))) -GLYPH_DEST := src/glyphs.c -$(GLYPH_DEST): $(GLYPH_FILES) $(BOLOS_SDK)/icon.py +GLYPH_DESTC := src/glyphs.c +GLYPH_DESTH := src/glyphs.h +$(GLYPH_DESTC) $(GLYPH_DESTH): $(GLYPH_FILES) $(BOLOS_SDK)/icon.py -rm $@ - if [ ! -z "$(GLYPH_FILES)" ] ; then for gif in $(GLYPH_FILES) ; do python $(BOLOS_SDK)/icon.py $$gif | grep -v "bitmap}," ; done > $(GLYPH_DEST) ; fi + if [ ! -z "$(GLYPH_FILES)" ] ; then for gif in $(GLYPH_FILES) ; do python $(BOLOS_SDK)/icon.py $$gif glyphcheader ; done > $(GLYPH_DESTH) ; fi + if [ ! -z "$(GLYPH_FILES)" ] ; then for gif in $(GLYPH_FILES) ; do python $(BOLOS_SDK)/icon.py $$gif glyphcfile ; done > $(GLYPH_DESTC) ; fi SOURCE_PATH := src $(BOLOS_SDK)/src $(dir $(shell find $(BOLOS_SDK)/lib_stusb* | grep "\.c$$")) -SOURCE_FILES := $(foreach path, $(SOURCE_PATH),$(shell find $(path) | grep -E "\.c$$|\.s") ) $(GLYPH_DEST) +SOURCE_FILES := $(foreach path, $(SOURCE_PATH),$(shell find $(path) | grep -E "\.c$$|\.s") ) $(GLYPH_DESTC) INCLUDES_PATH := $(dir $(shell find $(BOLOS_SDK)/lib_stusb* | grep "\.h$$")) include src $(BOLOS_SDK)/include $(BOLOS_SDK)/include/arm + ### platform definitions DEFINES := ST31 gcc __IO=volatile DEFINES += OS_IO_SEPROXYHAL IO_SEPROXYHAL_BUFFER_SIZE_B=300 -DEFINES += HAVE_BAGL HAVE_PRINTF +DEFINES += HAVE_BAGL HAVE_SPRINTF +#DEFINES += HAVE_PRINTF PRINTF=screen_printf +DEFINES += PRINTF\(...\)= DEFINES += HAVE_IO_USB HAVE_L4_USBLIB IO_USB_MAX_ENDPOINTS=6 IO_HID_EP_LENGTH=64 HAVE_USB_APDU +DEFINES += LEDGER_MAJOR_VERSION=$(APPVERSION_M) LEDGER_MINOR_VERSION=$(APPVERSION_N) LEDGER_PATCH_VERSION=$(APPVERSION_P) TCS_LOADER_PATCH_VERSION=0 -DEFINES += LEDGER_MAJOR_VERSION=1 LEDGER_MINOR_VERSION=1 LEDGER_PATCH_VERSION=2 TCS_LOADER_PATCH_VERSION=0 +# ifndef COIN +# COIN =bitcoin +# endif -ifndef COIN -COIN = bitcoin +ifeq ($(COIN),bitcoin_testnet) +# Bitcoin testnet +DEFINES += BTCHIP_P2PKH_VERSION=111 BTCHIP_P2SH_VERSION=196 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Bitcoin\" COINID_UPCASE=\"BITCOIN\" COLOR_HDR=0xFCB653 COLOR_DB=0xFEDBA9 COINID_NAME=\"Bitcoin\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"TEST\" COIN_BITCOIN_TESTNET +APPNAME ="Bitcoin Test" +else ifeq ($(COIN),bitcoin) +# Bitcoin mainnet +DEFINES += BTCHIP_P2PKH_VERSION=0 BTCHIP_P2SH_VERSION=5 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Bitcoin\" COINID_UPCASE=\"BITCOIN\" COLOR_HDR=0xFCB653 COLOR_DB=0xFEDBA9 COINID_NAME=\"Bitcoin\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"BTC\" COIN_BITCOIN +APPNAME ="Bitcoin" +else ifeq ($(COIN),litecoin) +# Litecoin +DEFINES += BTCHIP_P2PKH_VERSION=48 BTCHIP_P2SH_VERSION=5 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Litecoin\" COINID_UPCASE=\"LITECOIN\" COLOR_HDR=0xCCCCCC COLOR_DB=0xE6E6E6 COINID_NAME=\"Litecoin\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"LTC\" COIN_LITECOIN +APPNAME ="Litecoin" +else ifeq ($(COIN),dogecoin) +# Doge +DEFINES += BTCHIP_P2PKH_VERSION=30 BTCHIP_P2SH_VERSION=22 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Dogecoin\" COINID_UPCASE=\"DOGECOIN\" COLOR_HDR=0x65D196 COLOR_DB=0xB2E8CB COINID_NAME=\"Dogecoin\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"DOGE\" COIN_DOGE +APPNAME ="Dogecoin" +else ifeq ($(COIN),dash) +# Dash +DEFINES += BTCHIP_P2PKH_VERSION=76 BTCHIP_P2SH_VERSION=16 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"DarkCoin\" COINID_UPCASE=\"DASH\" COLOR_HDR=0x0E76AA COLOR_DB=0x87BBD5 COINID_NAME=\"Dash\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"DASH\" COIN_DASH +APPNAME ="Dash" +else ifeq ($(COIN),zcash) +# Zcash +DEFINES += BTCHIP_P2PKH_VERSION=7352 BTCHIP_P2SH_VERSION=7357 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Zcash\" COINID_UPCASE=\"ZCASH\" COLOR_HDR=0x3790CA COLOR_DB=0x9BC8E5 COINID_NAME=\"Zcash\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"ZEC\" COIN_ZCASH +APPNAME ="Zcash" +else ifeq ($(COIN),stratis) +# Stratis +DEFINES += BTCHIP_P2PKH_VERSION=63 BTCHIP_P2SH_VERSION=125 BTCHIP_COIN_FAMILY=2 BTCHIP_COINID=\"Stratis\" COINID_UPCASE=\"STRAT\" COLOR_HDR=0x3790CA COLOR_DB=0x9BC8E5 COINID_NAME=\"Strat\" COINID=$(COIN) BTCHIP_COINID_SHORT=\"STRAT\" COIN_STRATIS HAVE_PEERCOIN_SUPPORT +APPNAME ="Stratis" +else +ifeq ($(filter clean,$(MAKECMDGOALS)),) +$(error Unsupported COIN - use bitcoin_testnet, bitcoin, litecoin, dogecoin, dash, zcash, stratis) +endif endif -ifeq ($(COIN), bitcoin-testnet) -# Bitcoin testnet -DEFINES += BTCHIP_P2PKH_VERSION=111 BTCHIP_P2SH_VERSION=196 BTCHIP_COINID=\"Bitcoin\" BTCHIP_COINID_SHORT=\"TEST\" COIN_BITCOIN_TESTNET -APPNAME ="Bitcoin" -ICONNAME=icon_bitcoin.gif -else ifeq ($(COIN), bitcoin) -# Bitcoin mainnet -DEFINES += BTCHIP_P2PKH_VERSION=0 BTCHIP_P2SH_VERSION=5 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Bitcoin\" BTCHIP_COINID_SHORT=\"BTC\" COIN_BITCOIN -APPNAME ="Bitcoin" -ICONNAME=icon_bitcoin.gif -SIGNATURE=3045022100d7a784ba23f5eac9c82a8c132274d62de921039ccd6cc6ac24614a35329d20ae0220759dc74de0b509608a0e0d82e0ae5d0a07028c7411bf7e3368e7fe290360b274 -else ifeq ($(COIN), litecoin) -# Litecoin -DEFINES += BTCHIP_P2PKH_VERSION=48 BTCHIP_P2SH_VERSION=5 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Litecoin\" BTCHIP_COINID_SHORT=\"LTC\" COIN_LITECOIN -APPNAME ="Litecoin" -ICONNAME=icon_litecoin.gif -SIGNATURE=3045022100f2b8109a13ac96dfd78403647bbb07e654579ea4b1b80b9bff7eb0ea5b083c6002204b1ae026ff40dbc19fcaef86e2d1d189241d7bc0d23ee95dc8718e84fe041f5d -else ifeq ($(COIN), dogecoin) -# Doge -DEFINES += BTCHIP_P2PKH_VERSION=30 BTCHIP_P2SH_VERSION=22 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Dogecoin\" BTCHIP_COINID_SHORT=\"DOGE\" COIN_DOGE -APPNAME ="Dogecoin" -ICONNAME=icon_doge.gif -else ifeq ($(COIN), dash) -# Dash -DEFINES += BTCHIP_P2PKH_VERSION=76 BTCHIP_P2SH_VERSION=16 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"DarkCoin\" BTCHIP_COINID_SHORT=\"DASH\" COIN_DASH -APPNAME ="Dash" -ICONNAME=icon_dash.gif -else ifeq ($(COIN), zcash) -# ZCash -DEFINES += BTCHIP_P2PKH_VERSION=7352 BTCHIP_P2SH_VERSION=7357 BTCHIP_COIN_FAMILY=1 BTCHIP_COINID=\"Zcash\" BTCHIP_COINID_SHORT=\"ZEC\" COIN_ZCASH -APPNAME ="Zcash" -ICONNAME=icon_zcash.gif +ifeq ($(TARGET_ID),0x31000002) +ICONNAME=icon_$(COIN)_blue.gif else -$(error Unsupported COIN - use bitcoin-testnet, bitcoin, litecoin, dogecoin, dash, zcash) +ICONNAME=icon_$(COIN).gif endif # U2F @@ -109,8 +129,6 @@ DEFINES += BLE_SEGMENT_SIZE=32 #max MTU, min 20 #DEFINES += U2F_MAX_MESSAGE_SIZE=264 #257+5+2 DEFINES += U2F_MAX_MESSAGE_SIZE=200 DEFINES += UNUSED\(x\)=\(void\)x -DEFINES += PRINTF\(...\)= -DEFINES += TARGET_ID=$(TARGET_ID) ############## # Compiler # @@ -151,7 +169,7 @@ LDFLAGS += -fno-common -ffunction-sections -fdata-sections -fwhole-program -nos LDFLAGS += -mno-unaligned-access #LDFLAGS += -nodefaultlibs #LDFLAGS += -nostdlib -nostdinc -LDFLAGS += -Tscript.ld -Wl,--gc-sections -Wl,-Map,debug/$(PROG).map,--cref +LDFLAGS += -T$(BOLOS_SDK)/script.ld -Wl,--gc-sections -Wl,-Map,debug/$(PROG).map,--cref LDLIBS += -Wl,--library-path -Wl,$(GCCPATH)/../lib/armv6-m/ #LDLIBS += -Wl,--start-group LDLIBS += -lm -lgcc -lc @@ -169,9 +187,9 @@ ifeq ($(filter clean,$(MAKECMDGOALS)),) endif clean: - rm -fr obj bin debug dep $(GLYPH_DEST) + rm -fr obj bin debug dep $(GLYPH_DESTC) $(GLYPH_DESTH) -prepare: $(GLYPH_DEST) +prepare: $(GLYPH_DESTC) @mkdir -p bin obj debug dep .SECONDEXPANSION: @@ -181,16 +199,15 @@ log = $(if $(strip $(VERBOSE)),$1,@$1) default: prepare bin/$(PROG) -load: - python -m ledgerblue.loadApp --targetId $(TARGET_ID) --fileName bin/$(PROG).hex --appName $(APPNAME) --icon `python $(BOLOS_SDK)/icon.py 16 16 $(ICONNAME) hexbitmaponly` $(APP_LOAD_PARAMS) +reload: delete load -load_release: - python -m ledgerblue.loadApp --targetId $(TARGET_ID) --fileName bin/$(PROG).hex --appName $(APPNAME) --icon `python $(BOLOS_SDK)/icon.py 16 16 $(ICONNAME) hexbitmaponly` $(APP_LOAD_PARAMS) --signature $(SIGNATURE) +load: all + python -m ledgerblue.loadApp --targetId $(TARGET_ID) --fileName bin/$(PROG).hex --appName $(APPNAME) --icon `python $(BOLOS_SDK)/icon.py $(ICONNAME) hexbitmaponly` $(LOADFLAGS) $(APP_LOAD_PARAMS) delete: python -m ledgerblue.deleteApp --targetId $(TARGET_ID) --appName $(APPNAME) -bin/$(PROG): $(OBJECT_FILES) script.ld +bin/$(PROG): $(OBJECT_FILES) $(BOLOS_SDK)/script.ld @echo "[LINK] $@" $(call log,$(call link_cmdline,$(OBJECT_FILES) $(LDLIBS),$@)) $(call log,$(GCCPATH)/arm-none-eabi-objcopy -O ihex -S bin/$(PROG) bin/$(PROG).hex) diff --git a/glyphs/badge_bitcoin.gif b/glyphs/badge_bitcoin.gif new file mode 100644 index 0000000000000000000000000000000000000000..df0c7abb17dd681f27c330874b790cc71c637e67 GIT binary patch literal 362 zcmV-w0hRtoNk%w1VKM+R0FeLy-QC^o?d{CW%=!8GA^8LV00000EC2ui05SkF00092 zoR4`C00N^6s@j`e++5;sHQhJ@6bL@tbQ+AdqF1oCpSaobphD)p=m`KoUapv+d1O5z zveHCFpO)#Rr=up973EO-!CJWBYXo{OgUADKR;_R&R8A?R4S836h=?97U?lJtmnK*j z)`kbw>oyzPj&D?B-v0C{n%xdr$ zeIYyyvQC;PLFaxz8gCZ3YR5VQ_rly!vX7uQRB$F?6BMYSJaX?SN`z?5A{;S0dmh5^ zg3OjiD(L=w*@&s5Mpsu-MV!1H98obzBN+*veb!xuqW IASnOT=Nk%w1VKM+R0FeLy-QC^o?d{CW%=!8GA^8LV00000EC2ui05SkF00092 zoR4`C00N^6s@j`e++5;sHQhJ@6bL@tbQ+AdqF1oCpSaobphD)p=m`KoUapv+d1O5z zveHCFpO)#Rr=up973EO-!CJWBYXo{OgUADKR;_R&R8Dx1IGTMdScy3E?elC<*t-~)2Dn~z zt^UqT{dYZY;O-*7C^z@Jjt#ndi+Y3*Xh#e@XZ;ZVBUr}DE{8}YLSm>TRuLg1lYroW kXsU*cj~J=&8e+o6i<7d7kSu4;(8)|K;jEOD5=j97JH$q$8vpEPJ2 zcH2wRD)7sC!6-aOOzRsaq^raG(V<#;tc`)V9dZ6GMSuU)G;`HGb&w~p06JEvTA)5dTV#6bKQdh^B*nyqU*5zW0b zGm)VefgVW~vC`0C8I*@YB4Ky35yCjlo)9|sr_xN2jZD~})WPJSdix~o+(DF)P%S`L J_(W0w06Su&taShY literal 0 HcmV?d00001 diff --git a/glyphs/badge_litecoin.gif b/glyphs/badge_litecoin.gif new file mode 100644 index 0000000000000000000000000000000000000000..de0095b68b1e2ffd3d98831f8974dc292c239175 GIT binary patch literal 336 zcmV-W0k8f?Nk%w1VKM+R0FeLy-QC^p?(WRY%=!8GA^8LV00000EC2ui05SkF00092 zoR4`C00N^6s@j`e++5;sHQhJ@6bL@tbQ+AdqF1oCpSaobphD)p=m`KoUapv+d1O5z zveHCFpO)#Rr=up973EO-!CJWBYXo{OgUADKR;_R&RLXJ+K}DAdc?VHMd5MD4Vc69nB{ZU1!OBT8A;~x!qa_;# zlcvi7yAVm`1!}3MMLCFat3^k7y5cZRy{VA-7)C-eOJRDk&5iN6>=&MUSoaNQE-;78 zj#1vW9*-dRK58Eezt_KSL|+^>@x)ZAr>2;;e`T!5Bj^d@L4-TJAlf112dRu9Pb>}z i=E4=oLw8Krc;V_I7*yvvXe`)r7{E3SQnEl&0028oM3__n literal 0 HcmV?d00001 diff --git a/glyphs/badge_transaction.gif b/glyphs/badge_transaction.gif new file mode 100644 index 0000000000000000000000000000000000000000..131325d4a16f9889cb1efc0709cd4b7aa9130bc6 GIT binary patch literal 339 zcmV-Z0j&NFMd%*x1a>%=!8GA^8LV00000EC2ui05SkF00092 zoR5hREiYOCs@j_v-26=pT3SbTUl;}^KxN|=pclZM;rq1mp+feKi|q!zh;Ddz2~ou* zQqg2Wj!y;611eIhR^M#Oy@4ybSvk_klS7D6(z$^-0J(YLSsJ?+R9qS8KJnC7t#Tga!SS_ z({QtMd#20f^Kh2xn(Q0vK-X64*_WCl4P8<_0r+KP***E}Jo`2Lq&V6~J_Kp79(b&? z=iX(USu3BW9U6bHPmN&5uihzG{E8s*cW(|REeQ$YLwILSIs;MeRK#P%j1nXyMKU4@ lQe}<@PzyRb3uBU-6&(4(u(UQ(-pdk)5=wy4fTV>206Uxbnu-7b literal 0 HcmV?d00001 diff --git a/glyphs/badge_zcash.gif b/glyphs/badge_zcash.gif new file mode 100644 index 0000000000000000000000000000000000000000..0d069101510606339431c2c176f3b1bf51f7d112 GIT binary patch literal 339 zcmV-Z0j&NZj!r+O6`8cGhrPvqegZN|$*g>VpDak>#5i7g#WL4x! zh)c_HimHm_Mano#>{GZV@#&fAL%DMqDh0t1$$U9|J%F57;$YjAwk$dh{^#9o=u_lq zVBYE8uHN0H8l3)wa+Z7!RKyg=LC`5vWC%AA4XVrepW2R=jZ47`T76<|IEzHA^8LV00000EC2ui03ZMo000Dzut`ajNH6QXlTgGYHbual z=oS2p@Hr>=Y?x*0!CneV{8Cb2UlrYbRkT6QDgxWI!9gq*06JE~1l$0M&>}L>STr|?VH8@(Es)oYV7nDO zEa41+93?z1>BoT$JvHfM<{=Z=T%6tbe5aEk1(Xg( z2#SY;Ye|ZwriuUudr%x%r>}|vt4JNLs0j%Ix`m}=QM076GKr{wG^GMF38lcs$jZXT zGS49c#Ea6?$hy0w49(84rcT+~;-vr!2c~xA)FRiR>-W{@>mU3;5b*ae z;DZ4SykP<71092h3~=#Mqz+0gEay(?OEO>-l8mTs7-1=qCEmPF3lbVKFsNdtNRt%# z`f_4Wp+m$(enIgsN(zQOLHKDL@81d6&XA^-q8p@Yhz literal 0 HcmV?d00001 diff --git a/icon_bitcoin_testnet.gif b/icon_bitcoin_testnet.gif new file mode 100644 index 0000000000000000000000000000000000000000..9fa736b194931ccf48c15dac65a4f8b2f865f3d3 GIT binary patch literal 1131 zcmZ?wbhEHb6krfwXkcLY|NlP&1B2p!?g-xi1((Eh+i z#(Mch>H3D2mX`VkM*2oZx|Z5PB_e>IEf;+ybD@E~!PCWvMA{Mftf3V2@j6;&zKE zPV=C8Q*gV*45wawpkwqw(Tfz_Fd<+X0x{u<7s!Dp|I|ESnlAz-ZpQ!r{{H#>>*tT} z-@bnN{ORL|_wU}mdHw3;i|5atK6(7;;e-44?%uh5>*kH?*REcZ;0$^0LyB;-bQW{Jh+p?5xa; z^t9BJ|cQ;oTXD3GodplbjYb#3&b2C#D zVqwaWPR5VIe^Qem-6vZZ1v^b~aWPW+p~p z3GtH!SWYl7=zs`N*}=f1(9*y1^j*dU+*@{OygV~0^moDBMUqd0nx2$bU1U986vV(_ F4FE|6k1YTI literal 0 HcmV?d00001 diff --git a/icon_bitcoin_testnet_blue.gif b/icon_bitcoin_testnet_blue.gif new file mode 100644 index 0000000000000000000000000000000000000000..beec02c64712b55c2f5d219f2c28ed0ee1b67642 GIT binary patch literal 449 zcmV;y0Y3gmNk%w1VKM+R0J8u9|NQv<+o%2Y>HfM<{=Z=T%6tbe5aEk1(Xg( z2#SY;Ye|ZwriuUudr%x%r>}|vt4JNLs0j%Ix`m}=QM076GKr{wG^GMF38lcs$jZXT zGS49c#Ea6?$hy0w49(84rcT+~;-vr!2c~xA)FRiR>-W{@>mU3;5b*ae z;DZ4SykP<71092h3~=#Mqz+0gEay(?OEO>-l8mTs7-1=qCEmPF3lbVKFsNdtNRt%# z`f_4Wp+m$(enIgsN(zQOLHKDL@81d6&XA^-q8p@Yhz literal 0 HcmV?d00001 diff --git a/icon_dash_blue.gif b/icon_dash_blue.gif new file mode 100644 index 0000000000000000000000000000000000000000..abf0fd0e8b4eec4a76b8e6c4db5f82e6c62d812b GIT binary patch literal 389 zcmV;00eb#NNk%w1VKM+R0J8u9XsgZh_W0N5?wG{dsLtVfw9)17^agpZLX^K9g0wY` zyGfbCSD?oE`T76<{{VHYEC2ui05SkF000F4u*pfAA%&@Qp8p_tBnndyMy0MzFd$(p z&mJ-atm-Co?|X?`P9lK)jy;4RC*UEUv&2%>gj!|NO2BySeh|3Hz)SuNCIM&Jn+T8B z<#U4z?;#I-#Mn*gQ&=I7|>1e(!&;;E?Qd;svHZ+z?Zo2yXPF$)C(3LHof00MtKMu2-l zVj+?e4v(0K_~QgcA1E&NNI^?u4GH%;JerY^M&yS!VoZ9FL$YH;Fcqq3%tA$tLz*j! jyquC_N39@XhLC*m$3{@06)t4hfH2005+_m&i2wjQ#;2`q literal 0 HcmV?d00001 diff --git a/icon_dogecoin.gif b/icon_dogecoin.gif new file mode 100644 index 0000000000000000000000000000000000000000..82596997afeec656aa72f1b28bd1d59d232dca5f GIT binary patch literal 70 zcmZ?wbhEHb6krfwXkY+=|Ns9h{$v3&bwDIYhJi`8r+?+?xAhHE^8MU>!@`)au}Xih Q>@}Sveq`IaXa)vr0B)-kZ2$lO literal 0 HcmV?d00001 diff --git a/icon_dogecoin_blue.gif b/icon_dogecoin_blue.gif new file mode 100644 index 0000000000000000000000000000000000000000..880ca163a5b4e98626d9af3f479a2ec3ba314115 GIT binary patch literal 427 zcmV;c0aX4+Nk%w1VKM+R0J8u9#qQVj`S)himxJ4@spiGD>doi&?Qhnd-1Fz}_wt8>1_lTW zwvcnOj-$*Xkg?w2;U5Cyy9WTvj|=d42i(FQ%grFqkJ0tLGSv=}4e}S_*CPY5b!)9kqG8L{EJ=&$hlb}>`9Kp$?NDChIgp~2>!l@V= VW4%(ikYR($86!%ZNKqsL06Sj3z1#o* literal 0 HcmV?d00001 diff --git a/icon_litecoin_blue.gif b/icon_litecoin_blue.gif new file mode 100644 index 0000000000000000000000000000000000000000..62441b87131be98f0b42ec73c9ab9a88a010d8f9 GIT binary patch literal 373 zcmV-*0gC=dNk%w1VKM+R0J8u9&CSjB_V)bz{MOdi?d|R2;^Nxc+Vu4F^78V~(9rPk z@aN~}-{0T)`T76<|IEzHEC2ui05SkF000F4u*peVAjOOXp8p^SB!f{9L8Y$NGK6p} zd&82l>XOWS?Bqd|E>ZWu6=cl-%T0#$N1aTBY_ zX70NS4$Re;I~k)NXZl_mdjf=LUK?Wx4vP)~9czzW1&j^~W0745lnj7Jij--cGn0&# zqCT38oTogWj3@#ItRVn3l#~Ut9tH;jx3{^v3cr*Xn5VHBxq&=L|qapDJEiA5rOf8}`T76<|1pouEC2ui05SkF000F4u*pfA7$u=_p8p_t1V~a0LZz+^p&(%_ z&mN)>?8*dm?|T78ZnA*=jy=R82jC%}vjAYVa6+%4z_Mb*dOwH?<4gVsB?N2P8^ARb z>$O7CjeEla`}$HoAP^m77-a(v4g+NwWd?=@Wg2Awh5%(7R|o@{jD`*X2A^iF#@Ip0Q2+!W8Su|%vi`j`TBYaugw_WQc?v&w?1G;Ns>N8*Y|XxR7B(zi%W=pfDN%06X8-wfq18 literal 0 HcmV?d00001 diff --git a/script.ld b/script.ld deleted file mode 100644 index d3cd089..0000000 --- a/script.ld +++ /dev/null @@ -1,154 +0,0 @@ -/******************************************************************************* -* Ledger Blue - Secure firmware -* (c) 2016 Ledger -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -********************************************************************************/ - -/** - * Global chip memory layout and constants - * - */ - -MEMORY -{ - DISCARD (rwx) : ORIGIN = 0xd0000000, LENGTH = 1M - - FLASH (rx) : ORIGIN = 0xc0d00000, LENGTH = 400K - SRAM (rwx) : ORIGIN = 0x20001800, LENGTH = 4K -} - -PAGE_SIZE = 256; -STACK_SIZE = 1260; -END_STACK = ORIGIN(SRAM) + LENGTH(SRAM); - -SECTIONS -{ - ENTRY(main) - - /****************************************************************/ - /* This section locates the code in FLASH */ - /****************************************************************/ - - /** put text in Flash memory, VMA will be equal to LMA */ - .text : - { - /* provide start code symbol, shall be zero */ - _text = .; - - PROVIDE(_setjmp = setjmp); /*thanks clang*/ - - /* ensure main is always @ 0xC0D00000 */ - *(.boot*) - - /* place the other code and rodata defined BUT nvram variables that are displaced in a r/w area */ - *(.text*) - *(.rodata.[A-MO-Za-z_]*) /*.data.rel.ro* not here to detect invalid PIC usage */ - *(.rodata.N[A-MO-Za-z]*) - - . = ALIGN(4); - - /* all code placed */ - _etext = .; - - . = ALIGN(PAGE_SIZE); - - /* NVM data (ex-filesystem) */ - *(.bss.N_* .rodata.N_*) - - } > FLASH = 0x00 - - .data (NOLOAD): - { - . = ALIGN(4); - - /** - * Place RAM initialized variables - */ - _data = .; - - *(vtable) - *(.data*) - - _edata = .; - - } > DISCARD /*> SRAM AT>FLASH = 0x00 */ - - .bss : - { - /** - * Place RAM uninitialized variables - */ - _bss = .; - *(.bss*) - _ebss = .; - - - /** - * Reserve stack size - */ - _stack = .; - . = _stack + STACK_SIZE; - PROVIDE( _stack_size = STACK_SIZE ); - PROVIDE( _estack = ABSOLUTE(END_STACK) ); - - } > SRAM = 0x00 - - /****************************************************************/ - /* DEBUG */ - /****************************************************************/ - - /* remove the debugging information from the standard libraries */ - DEBUG (NOLOAD) : - { - libc.a ( * ) - libm.a ( * ) - libgcc.a ( * ) - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - -}