diff --git a/firmware/.gitignore b/firmware/.gitignore index d9c69017bc9a..29a0352b0a21 100644 --- a/firmware/.gitignore +++ b/firmware/.gitignore @@ -1,6 +1,6 @@ *.gen.S *.fw -*.bin +!*.bin *.csp *.dsp ihex2fw diff --git a/firmware/Makefile b/firmware/Makefile index 30e6b738839e..40730653007f 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -3,6 +3,8 @@ # kbuild file for firmware/ # +CONFIG_EXTRA_FIRMWARE_DIR="firmware" + # Create $(fwabs) from $(CONFIG_EXTRA_FIRMWARE_DIR) -- if it doesn't have a # leading /, it's relative to $(srctree). fwdir := $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE_DIR)) @@ -10,6 +12,82 @@ fwabs := $(addprefix $(srctree)/,$(filter-out /%,$(fwdir)))$(filter /%,$(fwdir)) fw-external-y := $(subst $(quote),,$(CONFIG_EXTRA_FIRMWARE)) +# There are three cases to care about: +# 1. Building kernel with CONFIG_FIRMWARE_IN_KERNEL=y -- $(fw-shipped-y) should +# include the firmware files to include, according to .config +# 2. 'make modules_install', which will install firmware for modules, and +# _also_ for the in-kernel drivers when CONFIG_FIRMWARE_IN_KERNEL=n +# 3. 'make firmware_install', which installs all firmware, unconditionally. + +# For the former two cases we want $(fw-shipped-y) and $(fw-shipped-m) to be +# accurate. In the latter case it doesn't matter -- it'll use $(fw-shipped-all). +# But be aware that the config file might not be included at all. + +fw-external-$(CONFIG_TOUCHSCREEN_IST40XX) += tsp_imagis/ist40xx_r1.bin tsp_imagis/ist40xx_r1_cmcs.bin \ + tsp_imagis/ist40xx_a70.bin tsp_imagis/ist40xx_a70_cmcs.bin tsp_imagis/ist40xx_a70s.bin tsp_imagis/ist40xx_a70s_cmcs.bin + +fw-external-$(CONFIG_TOUCHSCREEN_MELFAS_MSS100) += tsp_melfas/mss100_a70s.bin + +fw-external-$(CONFIG_TOUCHSCREEN_SEC_TS_Y771) += tsp_sec/y771_a71.bin tsp_sec/y771_a71_1l.bin tsp_sec/y771_m51.bin tsp_sec/y771_m51_sdc.bin + +fw-external-$(CONFIG_TOUCHSCREEN_ZINITIX_ZT7650) += tsp_zinitix/zt7650_a52.bin tsp_zinitix/zt7650_a72.bin tsp_zinitix/zt7650_a72_3rd.bin + +fw-external-$(CONFIG_TOUCHSCREEN_STM_FTS5CU56A) += tsp_stm/fts5cu56a_a52.bin tsp_stm/fts5cu56a_a72.bin tsp_stm/fts5cu56a_m42.bin +fw-external-$(CONFIG_TOUCHSCREEN_HIMAX_IC_HX83102) += tsp_himax/hx83102e_gts6litereresh.bin + +ifdef CONFIG_SEC_A70Q_PROJECT +ifdef CONFIG_SEC_A70Q_USA_PROJECT +fw-external-$(CONFIG_SENSORS_A96T3X6) += abov/a96t346_a70q_usa.bin +fw-external-$(CONFIG_SENSORS_A96T3X6_SUB) += abov/a96t346_a70q_sub_usa.bin +else +fw-external-$(CONFIG_SENSORS_A96T3X6) += abov/a96t346_a70q_eur.bin +endif +else ifdef CONFIG_SEC_A70SQ_PROJECT +fw-external-$(CONFIG_SENSORS_A96T3X6) += abov/a96t356_a70sq.bin +fw-external-$(CONFIG_SENSORS_A96T3X6_SUB) += abov/a96t356_a70sq_sub.bin +else ifdef CONFIG_SEC_A71_PROJECT +ifdef CONFIG_SEC_A71_CAN_PROJECT +fw-external-$(CONFIG_SENSORS_A96T3X6) += abov/a96t356_a71_can.bin +fw-external-$(CONFIG_SENSORS_A96T3X6_SUB) += abov/a96t356_a71_sub_can.bin +else +fw-external-$(CONFIG_SENSORS_A96T3X6) += abov/a96t356_a71.bin +fw-external-$(CONFIG_SENSORS_A96T3X6_SUB) += abov/a96t356_a71_sub.bin +endif +else ifdef CONFIG_SEC_M41_PROJECT +fw-external-$(CONFIG_SENSORS_A96T3X6) += abov/a96t356_m41.bin +fw-external-$(CONFIG_SENSORS_A96T3X6_SUB) += abov/a96t356_m41_sub.bin +else ifdef CONFIG_SEC_M51_PROJECT +fw-external-$(CONFIG_SENSORS_A96T3X6) += abov/a96t356_m51.bin +fw-external-$(CONFIG_SENSORS_A96T3X6_SUB) += abov/a96t356_m51_sub.bin +else ifdef CONFIG_SEC_A70S_PROJECT +fw-external-$(CONFIG_SENSORS_A96T3X6) += abov/a96t346_a70q_eur.bin +endif + +fw-external-$(CONFIG_TOUCHSCREEN_NOVATEK_NT36672) += tsp_novatek/nt36672_a60.bin tsp_novatek/nt36672_m40.bin \ + tsp_novatek/nt36672_a60_tianma.bin + +fw-external-$(CONFIG_EPEN_WACOM_WEZ01) += epen/w9021_gts6lite.bin +fw-external-$(CONFIG_EPEN_WACOM_W9019) += epen/w9019_gts6lite.bin + +#touch based grip sensor +fw-shipped-$(CONFIG_SENSORS_TC3XXK_A60) += coreriver/tc305k_a60_grip.fw + +# FIVE +ifeq ($(CONFIG_FIVE_TEE_DRIVER),y) +include $(srctree)/firmware/five/Makefile +endif + +fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) + +quiet_cmd_ihex = IHEX $@ + cmd_ihex = $(OBJCOPY) -Iihex -Obinary $< $@ + +quiet_cmd_ihex2fw = IHEX2FW $@ + cmd_ihex2fw = $(objtree)/$(obj)/ihex2fw $< $@ + +quiet_cmd_h16tofw = H16TOFW $@ + cmd_h16tofw = $(objtree)/$(obj)/ihex2fw -w $< $@ + quiet_cmd_fwbin = MK_FW $@ cmd_fwbin = FWNAME="$(patsubst firmware/%.gen.S,%,$@)"; \ FWSTR="$(subst /,_,$(subst .,_,$(subst -,_,$(patsubst \ @@ -42,14 +120,45 @@ wordsize_deps := $(wildcard include/config/64bit.h include/config/32bit.h \ include/config/x86_32.h include/config/x86_64.h \ firmware/Makefile) -$(patsubst %,$(obj)/%.gen.S, $(fw-external-y)): %: $(wordsize_deps) \ - include/config/extra/firmware/dir.h +$(patsubst %,$(obj)/%.gen.S, $(fw-shipped-y)): %: $(wordsize_deps) + $(call cmd,fwbin,$(patsubst %.gen.S,%,$@)) +$(patsubst %,$(obj)/%.gen.S, $(fw-external-y)): %: $(wordsize_deps) $(call cmd,fwbin,$(fwabs)/$(patsubst $(obj)/%.gen.S,%,$@)) # The .o files depend on the binaries directly; the .S files don't. +$(patsubst %,$(obj)/%.gen.o, $(fw-shipped-y)): %.gen.o: % $(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/% +# .ihex is used just as a simple way to hold binary files in a source tree +# where binaries are frowned upon. They are directly converted with objcopy. +$(obj)/%: $(obj)/%.ihex + $(call cmd,ihex) + +# Don't depend on ihex2fw if we're installing and it already exists. +# Putting it after | in the dependencies doesn't seem sufficient when +# we're installing after a cross-compile, because ihex2fw has dependencies +# on stuff like /usr/lib/gcc/ppc64-redhat-linux/4.3.0/include/stddef.h and +# thus wants to be rebuilt. Which it can't be, if the prebuilt kernel tree +# is exported read-only for someone to run 'make install'. +ifeq ($(INSTALL):$(wildcard $(obj)/ihex2fw),install:$(obj)/ihex2fw) +ihex2fw_dep := +else +ihex2fw_dep := $(obj)/ihex2fw +endif + +# .HEX is also Intel HEX, but where the offset and length in each record +# is actually meaningful, because the firmware has to be loaded in a certain +# order rather than as a single binary blob. Thus, we convert them into our +# more compact binary representation of ihex records () +$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep) + $(call cmd,ihex2fw) + +# .H16 is our own modified form of Intel HEX, with 16-bit length for records. +$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep) + $(call cmd,h16tofw) + obj-y += $(patsubst %,%.gen.o, $(fw-external-y)) +obj-$(CONFIG_FIRMWARE_IN_KERNEL) += $(patsubst %,%.gen.o, $(fw-shipped-y)) ifeq ($(KBUILD_SRC),) # Makefile.build only creates subdirectories for O= builds, but external @@ -57,8 +166,13 @@ ifeq ($(KBUILD_SRC),) _dummy := $(foreach d,$(addprefix $(obj)/,$(dir $(fw-external-y))), $(shell [ -d $(d) ] || mkdir -p $(d))) endif -targets := $(patsubst $(obj)/%,%, \ - $(shell find $(obj) -name \*.gen.S 2>/dev/null)) +# Remove .S files and binaries created from ihex +# (during 'make clean' .config isn't included so they're all in $(fw-shipped-)) +targets := $(fw-shipped-) $(patsubst $(obj)/%,%, \ + $(shell find $(obj) -name \*.gen.S 2>/dev/null)) + # Without this, built-in.o won't be created when it's empty, and the # final vmlinux link will fail. obj- := dummy + +hostprogs-y := ihex2fw diff --git a/firmware/abov/a96t346_a70q_eur.bin b/firmware/abov/a96t346_a70q_eur.bin new file mode 100644 index 000000000000..1de8d4268873 Binary files /dev/null and b/firmware/abov/a96t346_a70q_eur.bin differ diff --git a/firmware/abov/a96t346_a70q_sub_usa.bin b/firmware/abov/a96t346_a70q_sub_usa.bin new file mode 100644 index 000000000000..20c9f886b3ab Binary files /dev/null and b/firmware/abov/a96t346_a70q_sub_usa.bin differ diff --git a/firmware/abov/a96t346_a70q_usa.bin b/firmware/abov/a96t346_a70q_usa.bin new file mode 100644 index 000000000000..bb4cb1220ba3 Binary files /dev/null and b/firmware/abov/a96t346_a70q_usa.bin differ diff --git a/firmware/abov/a96t356_a70sq.bin b/firmware/abov/a96t356_a70sq.bin new file mode 100644 index 000000000000..dd3cd82419e6 Binary files /dev/null and b/firmware/abov/a96t356_a70sq.bin differ diff --git a/firmware/abov/a96t356_a70sq_sub.bin b/firmware/abov/a96t356_a70sq_sub.bin new file mode 100644 index 000000000000..dd3cd82419e6 Binary files /dev/null and b/firmware/abov/a96t356_a70sq_sub.bin differ diff --git a/firmware/abov/a96t356_a71.bin b/firmware/abov/a96t356_a71.bin new file mode 100644 index 000000000000..a8679e2ce5f8 Binary files /dev/null and b/firmware/abov/a96t356_a71.bin differ diff --git a/firmware/abov/a96t356_a71_can.bin b/firmware/abov/a96t356_a71_can.bin new file mode 100644 index 000000000000..d8373536b262 Binary files /dev/null and b/firmware/abov/a96t356_a71_can.bin differ diff --git a/firmware/abov/a96t356_a71_sub.bin b/firmware/abov/a96t356_a71_sub.bin new file mode 100644 index 000000000000..185533fdd405 Binary files /dev/null and b/firmware/abov/a96t356_a71_sub.bin differ diff --git a/firmware/abov/a96t356_a71_sub_can.bin b/firmware/abov/a96t356_a71_sub_can.bin new file mode 100644 index 000000000000..70702fb159ea Binary files /dev/null and b/firmware/abov/a96t356_a71_sub_can.bin differ diff --git a/firmware/abov/a96t356_m41.bin b/firmware/abov/a96t356_m41.bin new file mode 100644 index 000000000000..a8679e2ce5f8 Binary files /dev/null and b/firmware/abov/a96t356_m41.bin differ diff --git a/firmware/abov/a96t356_m41_sub.bin b/firmware/abov/a96t356_m41_sub.bin new file mode 100644 index 000000000000..185533fdd405 Binary files /dev/null and b/firmware/abov/a96t356_m41_sub.bin differ diff --git a/firmware/abov/a96t356_m51.bin b/firmware/abov/a96t356_m51.bin new file mode 100644 index 000000000000..a0e328afb6ff Binary files /dev/null and b/firmware/abov/a96t356_m51.bin differ diff --git a/firmware/abov/a96t356_m51_sub.bin b/firmware/abov/a96t356_m51_sub.bin new file mode 100644 index 000000000000..b07fd2c3a843 Binary files /dev/null and b/firmware/abov/a96t356_m51_sub.bin differ diff --git a/firmware/coreriver/tc305k_a60_grip.fw.ihex b/firmware/coreriver/tc305k_a60_grip.fw.ihex new file mode 100755 index 000000000000..b6f1b77b03c1 --- /dev/null +++ b/firmware/coreriver/tc305k_a60_grip.fw.ihex @@ -0,0 +1,802 @@ +:10000000011005003600000000320000FF00000073 +:10001000021871E49002ACF0A3F022022AC143F866 +:100020000875CD4053CC7F43CC4043CC2043CC100B +:1000300043CC0453CCFD43CB0243CB0153CBBFD2C3 +:10004000EB43F50343900343ED032202280C7F7634 +:100050007E107D017C00780412034FD3120286408B +:1000600003C21822D218220226C6FF021FD8BB01E3 +:100070000689828A83E0225002E722BBFE02E32245 +:1000800089828A83E49322BB010989828A83F8E00A +:1000900028F022500327F722BBFE05F8E328F322BD +:1000A0008A838982F8E4932822BB010689828A83A5 +:1000B000F0225002F722BBFE01F322EF8DF0A4A83C +:1000C000F0CF8CF0A428CE8DF0A42EFE22C5F0F83F +:1000D000A3E028F0C5F0F8E582158270021583E0F0 +:1000E00038F022BB0110E58229F582E5833AF583D9 +:1000F000E0F5F0A3E0225009E92582F886F008E651 +:1001000022BBFE0AE92582F8E2F5F008E222E58347 +:100110002AF583E993F5F0A3E99322F8BB0111E5F1 +:100120008229F582E5833AF583E8F0E5F0A3F02231 +:100130005009E92582C8F608A6F022BBFE09E92588 +:1001400082C8F2E5F008F222EF2BFFEE3AFEED391D +:10015000FDEC38FC22C3EF9BFFEE9AFEED99FDEC1F +:1001600098FC22E88FF0A4CC8BF0A42CFCE98EF054 +:10017000A42CFC8AF0EDA42CFCEA8EF0A4CDA8F00F +:100180008BF0A42DCC3825F0FDE98FF0A42CCD35D3 +:10019000F0FCEB8EF0A4FEA9F0EB8FF0A4CFC5F03D +:1001A0002ECD39FEE43CFCEAA42DCE35F0FDE43C36 +:1001B000FC2275F008758200EF2FFFEE33FECD3381 +:1001C000CDCC33CCC58233C5829BED9AEC99E582C8 +:1001D00098400CF582EE9BFEED9AFDEC99FC0FD554 +:1001E000F0D6E4CEFBE4CDFAE4CCF9A88222B80044 +:1001F000C1B90059BA002DEC8BF084CFCECDFCE50F +:10020000F0CBF97818EF2FFFEE33FEED33FDEC3332 +:10021000FCEB33FB10D703994004EB99FB0FD8E5B7 +:10022000E4F9FA227818EF2FFFEE33FEED33FDEC00 +:1002300033FCC933C910D7059BE99A4007EC9BFCF6 +:10024000E99AF90FD8E0E4C9FAE4CCFB2275F01082 +:10025000EF2FFFEE33FEED33FDCC33CCC833C810A7 +:10026000D7079BEC9AE899400AED9BFDEC9AFCE8D5 +:1002700099F80FD5F0DAE4CDFBE4CCFAE4C8F92222 +:10028000EB9FF5F0EA9E42F0E99D42F0EC6480C8F5 +:1002900064809845F022EB9FF5F0EA9E42F0E99DDC +:1002A00042F0E89C45F022E8600FECC313FCED132C +:1002B000FDEE13FEEF13FFD8F122E8600FEFC3331A +:1002C000FFEE33FEED33FDEC33FCD8F122BB010D24 +:1002D000E58229F582E5833AF58302032B5007E98D +:1002E0002582F802044DBBFE07E92582F802033798 +:1002F000E58229F582E5833AF583020459BB0107BB +:1003000089828A830203B15005E9F8020486BBFEA4 +:1003100005E9F80203BD22BB010DE58229F582E55E +:10032000833AF5830203B15007E92582F802048677 +:10033000BBFE07E92582F80203BD22E0FCA3E0FD35 +:10034000A3E0FEA3E0FF22E2FC08E2FD08E2FE08D3 +:10035000E2FF22E0F8A3E0F9A3E0FAA3E0FB22E247 +:10036000FB08E2F908E2FA08E2CBF822BB010789B0 +:10037000828A830203435005E9F8020469BBFE0543 +:10038000E9F802034F89828A830204767401FF33FD +:1003900095E0FEFDFCA3A3A3E0CF2FF0E58215823C +:1003A00070021583E0CE3EF0E5821582700215835F +:1003B000E0CD3DF0E582158270021583E0CC3CF083 +:1003C00022ECF0A3EDF0A3EEF0A3EFF022ECF208A4 +:1003D000EDF208EEF208EFF222A8828583F0D083D6 +:1003E000D0821203E01203E01203E01203E0E47390 +:1003F000E493A3C583C5F0C583C8C582C8F0A3C56F +:1004000083C5F0C583C8C582C822D083D082E49357 +:10041000F208740193F208740293F208740393F2E1 +:10042000740473A42582F582E5F03583F58322FAFE +:10043000E6FB0808E6F925F0F618E6CA3AF622E0E7 +:10044000FBA3E0FAA3E0F922EBF0A3EAF0A3E9F0C2 +:1004500022E493FB740193FA740293F922E6FC08F8 +:10046000E6FD08E6FE08E6FF22E493FC740193FD36 +:10047000740293FE740393FF22E6FB08E6F908E694 +:10048000FA08E6CBF822E493F8740193F974029326 +:10049000FA740393FB22ECF608EDF608EEF608EF8B +:1004A000F62290027AEFF01213E5E0FEA3E0FF756A +:1004B000F002ED9000BE12130C123123D3EF94C85A +:1004C000EE9400400890027B7401F08014D3EF9406 +:1004D00064EE940090027B40057402F08003740384 +:1004E000F090027AE075F004A424D0F9740035F09D +:1004F000FA7B011212E690027BE090028CF0122946 +:100500007690027AE01213E5EEF0A3EFF0ED75F0CD +:1005100004A42441F9740135F0FA7B0190027A12A7 +:1005200012E690028C7406F012297690027AE0901E +:1005300001311213E9EEF0A3EFF090027D1203C92E +:1005400000000000E490027BF090027D12032BC0BB +:1005500004C005C006C00790027AE0FD75F0149053 +:1005600000E0120413C083C08290027BE0D082D0EE +:10057000831213E9E0FEA3E0FFED1213061231230C +:10058000AB07AA06E4F9F8D007D006D005D00412CC +:10059000013890027D1203B190027BE004F0E0C3C9 +:1005A000940A40A590027D12032B90027A12138FB9 +:1005B0001203B190023CE07002A3E0703A90013067 +:1005C000E075F00A84E5F0F0E4FFEF12130675F031 +:1005D00014EF9000E0120413C083C082900130E059 +:1005E000D082D0831213E9ECF0A3EDF00FEFB40446 +:1005F000D9900130E004F0301F030206D730070322 +:100600000206D7900236E07002A3E060030206D72C +:1006100090022BE07002A3E060030206D77816E296 +:10062000FE08E2FFC39494EE941150189031BF7409 +:100630000193249CFDE49334FFFCD3EF9DEE9C409A +:10064000030206D790027AE0640360030206D790A3 +:1006500002811203C9FFFFFFFFE490027CF09002C9 +:100660007BF090027BE0FFC39404503375F004EFFD +:1006700090016312041312032B900281120343D3DF +:10068000120286401290027BE0A3F0121390120334 +:100690002B9002811203B190027BE004F080C390A2 +:1006A00001B012138F12032BE47B1E12146B503710 +:1006B00090027CE09001B0F0A3E09001391212EAC0 +:1006C0009001AC121389C006C0079001B0E075F02C +:1006D00002900139120413121401D007D00612013E +:1006E000459001AC1203B190027AE0B40316900178 +:1006F000B0E075F00212148EE0FFA3E09000C6CFC8 +:10070000F0A3EFF09001AC12032B9000C7E02FFF95 +:100710009000C6E03E900161F0A3EFF09001B0E0E0 +:10072000A3F090027AE0FF90013112130975F002F4 +:10073000EF900139120413ECF0A3EDF07A01799BEC +:100740001213747414F090016112143D7A017973DC +:10075000122C9C7B017A0179737D14122214AF4113 +:10076000AE40AD3FAC3E90019C0203B1E4900292DA +:10077000F0EF700302091512301A9001A81203C994 +:1007800000000000E4900293F09002981203C90068 +:10079000000000900293E0FF122BEA121A40900230 +:1007A000941203B1E4900291F090029412032B9002 +:1007B0000293E075F00C900079120413C083C0829C +:1007C000900291E0D082D08375F0041204131203DA +:1007D000B1121A52E0B403D1785C900294121A2F2D +:1007E0009002941203B1900293E0FF9000BE1219A0 +:1007F000979000C812199690013112199675F0025F +:10080000EF90013912199A75F004EF9000D012049C +:10081000131203C9009C4000900293E0FB75F004A2 +:100820009001411204131203C9009C40001219D810 +:1008300075F004EB9001511204131203B1E490021D +:1008400091F0900291E0FFC3940A5015900293E05A +:1008500075F0149000E0120413121996121A5280C7 +:10086000E19002981203431219D8120138900298AD +:100870001203B1900293E004F0C394045003020702 +:100880008390016112199D9000C612199D9001611B +:10089000E0FEA3E0FF900292E075F0029001731277 +:1008A0000413EEF0A3EFF09001A81203439001614E +:1008B000E0FEA3E0FFE4FCFD1201389001A8120362 +:1008C000B1900292E004F0C3941450030207741232 +:1008D0001A5C90019C121A599001A0121A597806BC +:1008E0001202AA9001A41203B1E49001B0F0A3F0A7 +:1008F000A3F09001AC1203C900000000E490029143 +:10090000F0900291E0FFC39405500F75F002EF9054 +:1009100001B512199A121A5280E79001C012199D5E +:10092000E49002CAF090019C1219DB90006A120355 +:10093000B19000701203C900000000E4900076F04E +:10094000A3F078147427F2087410F278127427F266 +:10095000087410F2E47816F208F2900209F0A3F09D +:100960009001B312199DE49001C2F0A3F09001C868 +:1009700012199DA31203C90009C4009001CE1219D7 +:100980009DA31203C90009C4009001D4740AF09019 +:1009900001E412199D9002051203C90000000090A5 +:1009A00001E212199D9001E61203C900000000E463 +:1009B000900291F0900291E0FB75F0049001EA1230 +:1009C00004131203C90000000075F002EB9001D57A +:1009D00012199A121A52E0B406DAE490023EF0A319 +:1009E000F0A3F0A3F0900258F0A3F0A3F0A3F090CE +:1009F0000203F0A3F022900271EEF0A3EFF0A3EC5B +:100A0000F0ED121399400D900273E0FFA3E0900205 +:100A100077020C0790005CE0900275120C159002B2 +:100A20007B12134C120C15900279EEF0A3EFF090AC +:100A300001E1E0900275F075F0029001D512130CFF +:100A4000120C5490027F12134CF075F0029001D5F5 +:100A500012130C120C5490027DEEF0A3EFF09002F2 +:100A600002E09002751213239002891203B112134F +:100A7000511213239002851203B19002731212F0E7 +:100A8000C006C0079001E2121401D007D00612017F +:100A9000459002811203B120002CD37817E2949480 +:100AA00018E29411502090020EE0601A900255E076 +:100AB0009400900254E09400500C300209900261BE +:100AC000E07003020BD5900236E07002A3E06003F1 +:100AD000020BD590022BE07002A3E06003020BD55D +:100AE0003000121213BE400D9002447402F09002C6 +:100AF0007604F08044D3900251E09400900250E0DC +:100B00009400400280033000089002447408F08092 +:100B1000243016099002447402F0E4801890020315 +:100B2000E0900244B4010A7403F090027614F0805D +:100B3000087401F0E4900276F03000191213BE4000 +:100B4000149002891203C90000000090028512036C +:100B5000C90000000075F0961213614003020BA853 +:100B6000900244E0FD75F0641213655006ED121416 +:100B70000C4069900276E02408FFE433FEC3900243 +:100B80007CE09F90027BE09E40141213809001E66F +:100B90001203B17F0E122EB5900238020BC5D3900E +:100BA0000239E09400900238E094004003020BCC3C +:100BB00075F064121361400B121494900285120CAC +:100BC000328012900244E012140C401912149490D6 +:100BD0000289120C32EEF0A3EFF08009121380901C +:100BE00001E61203B19002731212F09001E61203B3 +:100BF00043120145122735900277EEF0A3EFF0A3E0 +:100C0000E0FEA3E0FFA3E0FCA3E0FD12209F78122A +:100C1000E2FF08E290020BCFF0A3EFF0900277E042 +:100C2000FEA3E0FF22F025E02450F582E43400F535 +:100C300083E0FCA3E0FD900271E0FEA3E0FF12312F +:100C400023221203431201459001E61203B17F0DE6 +:100C5000122EB5900236EEF0A3EFF07F18122EB5EB +:100C600090025A22900273E0FEA3E0FF1231232289 +:100C700090020DE0900212F012231150051222C9C9 +:100C80004007E490020DF08008122BAA90020DEFAD +:100C9000F012233D4003020E8690020DE0FF122C5D +:100CA000D5EF700D12231150081222C95003020E05 +:100CB0008690020EE07058900261F090025DF0A301 +:100CC000F0900063F0A3F0900258F0A3F0C21EC2AF +:100CD000121225581230B07F01122EB5D390022087 +:100CE000E0940090021FE09400401E30140DEF7855 +:100CF00003CEC313CE13D8F9FF800EEEC4F854F020 +:100D0000C868FEEFC4540F48FF1210BB020DFD90DF +:100D10000063E07002A3E070139000631223057F6C +:100D200017122EB5900258EEF0A3EFF0900258E0A3 +:100D30007004A3E06401702A900063E0FEA3E0FF6A +:100D40002496FDE43EFC78081222F84004D21E806E +:100D500011EF246AFFEE34FFFEC3EB9FEA9E5002C0 +:100D6000D212301E3F1222D6D39DEE9C5003020DAC +:100D7000FD120E874003020DFD7F14122EB5EF7891 +:100D800002CEC313CE13D8F912234B7F15122EB502 +:100D90007C007D031200AB900250EEF0A3EFF0C296 +:100DA0001E020DFD3012241222D6D39DEE9C405D12 +:100DB000120E8750587F14122EB5EF7802CEC3134F +:100DC000CE13D8F912234BC212804230163F1222A2 +:100DD000D6D39DEE9C403612312312235D502E1245 +:100DE00022DD7816E2FC08E2FD123123AA06AB07E9 +:100DF0001222DD7C007D031200ABEF7802CEC3131C +:100E0000CE13D8F9C39BEE9A500312286C90024E71 +:100E1000E07004A3E06401700312286C90020EE0FD +:100E2000FFA3E06F603E122B5E7F19122EB5900279 +:100E30005FEEF0A3EFF0900210E030E421D3122235 +:100E4000C950051223124009E4900225F0A3F08056 +:100E50000D7F07122EB5900225EEF0A3EFF0900261 +:100E60000EE0A3F090020EE0602C90025FE07004B0 +:100E7000A3E0640170207816E2FE08E290025D12A1 +:100E8000234EC394DCEE940550079002617401F088 +:100E900022E4900261F022123123AC06AD079002E9 +:100EA00009E0C313FEA3E013C39DEE9C229002133E +:100EB000E475F0011200BDD3900218E09400900296 +:100EC00017E094004003122FD4D390021AE094004C +:100ED000900219E094004003122FD4D3900255E001 +:100EE0009400900254E094004003122FD4D3900257 +:100EF0001EE0940090021DE094004003122FD4D312 +:100F0000900224E09400900223E09400400F122FFE +:100F1000D4900223E07002A3E07002D210D39002BA +:100F200022E09400900221E094004003122FD4D3D9 +:100F3000900220E0940090021FE094004003122FE2 +:100F4000D490020DE030E011E4900225F0A3F0A36C +:100F5000F0A3F0A3F0A3F08042D3900226E0940027 +:100F6000900225E09400401A122FD4900225E070E0 +:100F700002A3E0700D7F0B122EB5900229EEF0A3B4 +:100F8000EFF0D390022AE09400900229E094004010 +:100F90000A900227E475F0011200BDD390022EE002 +:100FA000940090022DE094004003122FD4D39002BD +:100FB00037E09400900236E094004003122FD4D31F +:100FC000900239E09400900238E094004003122F20 +:100FD000D4D390023BE0940090023AE094004003A6 +:100FE000122FD4D390023DE0940090023CE0940094 +:100FF0004005122FD4800D7F10122EB590023CEECA +:10100000F0A3EFF0D390023FE0940090023EE09412 +:10101000004003122FD4D3900241E094009002408C +:10102000E094004003122FD4D3900243E094009048 +:101030000242E094004003122FD4D3900251E09476 +:1010400000900250E094004003122FD4D390024F3E +:10105000E0940090024EE094004003122FD4D3900D +:101060000253E09400900252E094004003122FD407 +:10107000D3900259E09400900258E094004003128B +:101080002FD4D390025BE0940090025AE094004089 +:1010900003122FD4D390022CE0940090022BE09402 +:1010A000004003122FD4D3900260E0940090025FBE +:1010B000E094004003122FD4D390021CE0940090DF +:1010C000021BE094004003122FD422900270EEF035 +:1010D000A3EFF0E4A3F0D3900226E0940090022561 +:1010E000E094004006122302021288900219E0FEEA +:1010F000A3E0FFD39400EE940050051222C9401ED5 +:101100001222EE40089001C4EAF0A3EBF09001C473 +:10111000E0FDA3E07814CDF208EDF202128E20007B +:101120000302120CD390021CE0940090021BE09486 +:1011300000500302120C1222EE40089001C4EAF0A3 +:10114000A3EBF0D3EF9400EE940050051222C940B7 +:10115000030211FB12232EFCA3E0FDECC313FEEDF2 +:1011600013FF900076E0FAA3E0FBC39FEA9E507065 +:10117000EDAE047802CEC313CE13D8F9FFC3EB9FB4 +:10118000EA9E40069001C7E060561212BD401690DC +:101190000270E0FEA3E07802CEC313CE13D8F9D3D9 +:1011A000122369503BA215301401B340337812E288 +:1011B000FE08E2FF08E2FC08E2FD9FEC9E5009C336 +:1011C000EF9404EE94294018D3EF9404EE94295040 +:1011D0000302128ED3ED9404EC9429500302128E74 +:1011E0009001C77401F0900272F0D37813E2940476 +:1011F00018E2942940157815E2940418E2942950D5 +:101200000A7429F2087404F202128E9001C4E0FFFD +:10121000A3E07814CFF208EFF202128E9000701261 +:101220000343C0007812E2FE08E2FFE4FCFDD000B8 +:101230001201389000701203B112232EFEA3E0C3F6 +:1012400012236950221212BD501DA215301401B391 +:101250004015900229E0FEA3E0FFD3900228E09F12 +:10126000900227E09E4037900076E0FEA3E0FFFB6F +:10127000AA06E4F9F890007012032B1201DE122383 +:101280003D400E7815E22FFF18E23EC313FEEF1328 +:10129000FF7814EEF208EFF29002727401F09002FF +:1012A00072E06028E4900076F0A3F09000701203E2 +:1012B000C900000000E49001C2F0A3F0122302E490 +:1012C000900230F0A3F09002271222E6227808E282 +:1012D000FE08E2FF90004AE0FCA3E0FD123123D3B8 +:1012E000EF9414EE94002274FF900273FEFDFC1242 +:1012F0000343D3020270E09000BE75F002120413A3 +:10130000E0FEA3E0FFE4FCFD22E47FE87E03FDFCB9 +:101310001203430201539000C875F002120413E057 +:10132000FCA3E0FD2290005CE0245DF582E4340043 +:10133000F58322F075F0049001EA120413120343BE +:101340009001E612032B020145900270E075F00C4B +:10135000A42479F9740035F0FA7B0122EEF0A3EFB2 +:10136000F0900275E02403F0E075F00684AFF0EF32 +:1013700022900244E0A4FFC390027EE09F90027D91 +:10138000E095F0227B0190028812043890028B22B3 +:101390009001E612032B900281120343020138E010 +:1013A00090016375F004020413A3F0D390021AE0D5 +:1013B0009400900219E09400229002941203B190DC +:1013C000028C12034390029412032B0201DED3908D +:1013D000021CE0940090021BE0940022900288120C +:1013E000042F02005EFFE4FCFDFE12034F120153C6 +:1013F0007807020297FD9000C875F00202041324DA +:10140000FFFFEE34FFFE3395E0FDFC12035C0201AA +:1014100053E0FEA3E0FBAA06E4F9F82275F0AFA4BE +:10142000FFC3900280E09F90027FE095F0221204BB +:101430002F740102007775F004A4F58285F08322F1 +:1014400090027A12043890027D7403F022E0FFA328 +:10145000E090028CCFF0A3EFF0221202978F278E3C +:10146000268D258C24221202978F278E268D258C7F +:101470002422785CE6FFE4FCFDFE22FAF9F8C302C0 +:101480000286E0FF74017E00A80708221203B190D3 +:10149000029002032B12033790027E0203B19000E8 +:1014A000BE0204139001E602032B7B017A0179CA84 +:1014B000E4FCFD90027F7405F01229219001C8EE32 +:1014C000F0EF121399400280339001B31212F0C072 +:1014D00006C0079001C8121401D007D006120145BA +:1014E0009002731203B1E47FFA1212D940069002FF +:1014F00077021549E47FB41212D94009900277743B +:1015000005F002154CE47F641212D9400280227467 +:10151000FF7FF1FEFDFC900273120343C3120270C1 +:101520004008900277740AF080327F9C1212D740F4 +:10153000089002777408F080237F4C1212D740087D +:101540009002777406F0801474FF7F061212D9900F +:10155000027740057404F080037401F0900277E094 +:101560009001D4F09001B31212F0900277E0900253 +:101570007FF07B017A0179D0122921900271EEF07F +:10158000A3EFF090023AE07002A3E06003021601BC +:101590007F0F122EB5EEC313FEEF13FF90023AEE4B +:1015A000F0A3EFF07B017A00795C1213767406F0F9 +:1015B0007808E2FF08E2A3CFF0A3EFF07A007950B9 +:1015C000122C9C7B017A0179E11213767406F0905B +:1015D000027112143D7A0179D5122C9C7B017A029A +:1015E000790290027B12043890027E7406F0121485 +:1015F0009490027F1203B17A0179EA122D45781690 +:10160000E2FF08E2900209CFF0A3EFF0121315E415 +:10161000F0900271E0FEA3E0FF22E4900271F07B03 +:10162000017A00793D12143078001214857A00791D +:1016300031122D0E7B017A00793112172B7B321279 +:10164000146B50069002717401F09002CAE090028F +:1016500070F0E4900272F0121339C002C0017A00F7 +:1016600079A9121430780A121485D001D002122DF3 +:101670000E12133912172B7BF47A0112146C5006D8 +:101680009002727401F0300045900271E07004A382 +:10169000E0603BD21A7B017A0079311216F9785B4F +:1016A00012146490027312130078071202977804E0 +:1016B0001203BD1213391216F9121462900273123A +:1016C00013007807120297780E1203BD8038C21AF1 +:1016D000785BE678001213D578041203BD78041203 +:1016E0000337EC4D4E4F70037F0222785CE6780A98 +:1016F0001213D5780E1203BD780E120337EC4D4E3F +:101700004F70037F02227F04227D03121D63C3E515 +:10171000419539FFE5409538FEE53F9537FDE53EBB +:101720009536FCC3EF953DFFEE953CFEED953BFDF8 +:10173000EC953AFC9002731203B1227D03121D63F3 +:10174000C3E539953DFFE538953CFEE537953BFD12 +:10175000E536953AFCE42290027A1203B112139B0B +:10176000405E90027A12032B90003E1203B1E47F98 +:1017700037FEFDFC90003E121300780A120297908B +:1017800000421203B1E4900283F0900283E0FFC3B1 +:101790009404502C75F00CEF900081120413120386 +:1017A00043C000121462D0001213DD900283E09057 +:1017B00000AA1213931203B1900283E004F080CACE +:1017C0009000BA1203C900000000900042120343C7 +:1017D00090003E121333C004C005C006C00790003D +:1017E0004212034390027A12133390028C1203B117 +:1017F0009002901203C900010000D007D006D00566 +:10180000D0041223759000461203B19000BA12035F +:101810004390027E121333C004C005C006C0079077 +:10182000028C1203C90001000090004612032B90A5 +:1018300002901203B1D007D006D005D00412237550 +:101840009002841203B19000BA12032BAB07AA06D0 +:1018500090028412032BEF2BFBEE3AFA900282E007 +:10186000F975F00490015112041312032BC3EB9F7E +:10187000FFEA9EFE75F002E912148EEEF0A3EFF07F +:1018800022439F04E453C6DFE5C600B5C6F3758363 +:101890000075820775FD0DE4E5FEF4FF75830075A4 +:1018A000820675FD0DE4E5FEB50704F59E8003751F +:1018B0009E0078100000D8FC53C6E043C60843C61B +:1018C0008075960775970975830075820475FD0DFF +:1018D000E5FD0404F58F75830075820375FD0DE445 +:1018E000E5FEF4FF75830075820275FD0DE4E5FEEB +:1018F000B50704F595800375958375BE0E5392FE6A +:101900009001007F007E02E4F0A3DFFCDEFA7800A5 +:101910007F00E4F208DFFC78FFE4F6D8FD7581C5AE +:1019200002195102000002241FE493A3F8E493A3D8 +:101930004003F68001F208DFF48029E493A3F85411 +:1019400007240CC8C333C4540F4420C8834004F494 +:1019500056800146F6DFE4800B01020408102040A7 +:101960008090310DE47E019360BCA3FF543F30E5CD +:1019700009541FFEE493A360010ECF54C025E0601C +:10198000A840B8E493A3FAE493A3F8E493A3C8C5EA +:1019900082C8CAC583CAF0A3C8C582C8CAC583CADB +:1019A000DFE9DEE780BEEF75F0021204137427F062 +:1019B000A37410F0221201539002701203B190022E +:1019C0004A12034390027012032B1201DE780812B0 +:1019D00002979002701203B17F0FE4FEFDFC9002AB +:1019E00070120343D302028690029412032BEF2459 +:1019F000F0FFEE34D8FEED34FFFDEC34FFFC229016 +:101A0000001BE09031B6932290027012032BC3EFBB +:101A1000940FFFEE9400FEED9400FDEC9400FC901A +:101A200002700203B175BBFF75A9A075AC0375AD5B +:101A3000C075AEC022E5BAF053BA0F43BA1022E621 +:101A4000FFE4FCFDFE1203431201537807020297E4 +:101A5000122F0F90001BE0FF0227AA900069E042BE +:101A6000F422900291E004F0221203B19001A80246 +:101A7000032B900069E0FFF452F4EF428022E0F57E +:101A8000B3A3E0F5B2A3E0F5B12290001AE09031E3 +:101A9000B693F5AB2275BF0F43B92053B9FD229021 +:101AA000027512032B9002712290027512032B9083 +:101AB0000271223011151231D0745AF07F0A122EA1 +:101AC000B5900221EEF0A3EFF0C211A214921530EE +:101AD00002028020D390021AE09400900219E09450 +:101AE000005011900222E09400900221E0940050F6 +:101AF0000320100A1231D0745AF0C2148008123137 +:101B0000D07403F0D21430141890025CE0B40104D5 +:101B10007F01800790025CE07004FF122E83123078 +:101B20005BA215301401B3502890020EE06012D26F +:101B3000167812E2FF08E2900245CFF0A3EFF080A2 +:101B4000107F02122EB590021FEEF0A3EFF01228C4 +:101B50006C2014173015147F03122EB5EEC313FE3C +:101B6000EF13FF900254EEF0A3EFF07812E2FE08BC +:101B7000E2FF900245E0FCA3E0FDD39FEC9E401203 +:101B8000ED9FFFEC9EFED3EF94DCEE940540031234 +:101B9000286C90020EE0700F30160312286CC216EB +:101BA000E4900245F0A3F022E4900292F0EF607B13 +:101BB00012301A9000291203C900000000122F0FE2 +:101BC0009000291227A21201389000291203B19027 +:101BD0000292E004F0C3941440E3E0FFFBE4FAF95E +:101BE000F890002912032B1201DE9002931203B128 +:101BF000785B900293121A2F78041203BDE49002CE +:101C000091F0900291E0FBC39403501F9002931255 +:101C1000032BEB25E025E02431F582E43400F58345 +:101C20001203B1900291E004F080D77804120337D8 +:101C3000EF24D0FFEE348A1219E59000251203B18B +:101C400090004A7475F0A37430F0A31203C9001D0C +:101C50004C00E4900291F0900291E0FFC394065092 +:101C600027EF25E02450F582E43400F5837475F005 +:101C7000A37430F0745D2FF582E43400F583E4F052 +:101C8000900291E004F080CFE490005CF07808745A +:101C900075F2087430F22220CA03021D62E5467014 +:101CA00003021D62E4FF74462FF8E6FE74712FF5FF +:101CB00082E43402F583EEF0E4F60FEFB405E7902A +:101CC0000271E0FF54F0FEEF540F900270F0AF0687 +:101CD000EF24A0602424F0602824D0603824E07031 +:101CE00003021D5624E07003021D59249060030274 +:101CF0001D627858E6440180057858E654FEF68067 +:101D000061E4FF1230C8785AEFF67856BFFF0376C9 +:101D1000052276FF22900270E0FD700B7858E630C5 +:101D2000E250123045803BEDB4010B7858E620E2DA +:101D300041123050802C900270E0FDB402117858AE +:101D4000E630E22E12304590025C7401F08013ED13 +:101D50006403701E7858E620E218123050E49002B6 +:101D60005CF0751C022202286CE4900219F0A3F0CA +:101D7000D21F2290027712043890027AEDF0E4F537 +:101D800028F527F526F52574FFF52CF52BF52AF512 +:101D900029E4F530F52FF52EF52DF52490027AE0A3 +:101DA000FFE524C39F507090027712042F75F00452 +:101DB000E524A4F58285F0831202BD8F348E338D25 +:101DC000328C31AF28AE27AD26AC25D3122FED4093 +:101DD0000C853428853327853226853125AF2CAEF6 +:101DE0002BAD2AAC29C3122FED500C85342C853332 +:101DF0002B85322A853129E5302534FFE52F35330F +:101E0000FEE52E3532FDE52D35318F308E2F8D2EAE +:101E1000F52D0524021D8C85283985273885263720 +:101E2000852536852C3D852B3C852A3B85293A85A1 +:101E30003041852F40852E3F852D3E90027AAF3070 +:101E4000AE2FAD2EAC2D122FDB227B077A0790022E +:101E5000711203C90000000012301AEB601A7401FD +:101E60007E00A803088005C333CE33CED8F9FFAD7A +:101E7000ACEF5D70031B80E3EA601A74017E00A87A +:101E800002088005C333CE33CED8F9FFADAEEF5D87 +:101E900070031A80E3AF037401A807088002C333FC +:101EA000D8FCF5AC7401A802088002C333D8FCFF4B +:101EB000F5AD8FAE53AACF43AA04900270121A2533 +:101EC0001219EF42AB121A409002751203B1121AA6 +:101ED00099120343C31202865006121A991203B1D3 +:101EE000900271120343C00090027112032B780319 +:101EF000120297D0001201389002711203B19002C1 +:101F00007112032B9000651203B143AA3053AAFB50 +:101F1000900270E0F5BA1219EFF452AB121A1B22BC +:101F20007B077A079002711203C90000000012308B +:101F30001AEB601A74017E00A803088005C333CE33 +:101F400033CED8F9FFADACEF5D70031B80E3EA60E0 +:101F50001A74017E00A802088005C333CE33CED8A0 +:101F6000F9FFADAEEF5D70031A80E3AF037401A813 +:101F700007088002C333D8FCF5AC7401A8020880BE +:101F800002C333D8FCFFF5AD8FAE53AACF900270D9 +:101F9000121A25122F0F1227A59002751203B112E3 +:101FA0001A8F120343C31202865006121A8F1203AD +:101FB000B1900271120343C00090027112032B789A +:101FC00003120297D0001201389002711203B190EF +:101FD000027112032B9000201203B143AA30900229 +:101FE00070E0F5BA121A1B22C0E0C0F0C083C082B4 +:101FF000C0D075D008C2CFD21130CD0302209420BA +:10200000CC6030CB2285CE54E554C3948040167505 +:10201000F003E5549024D71204131204418B518A23 +:102020005289538063807385CE35E5547022E5353F +:10203000B410099002CBE0F452808066E535B420FC +:10204000089002CBE0428080598535460554805285 +:10205000E554C39405500774462554F8A635055435 +:102060008040E554B4C0057546C08036E554B4C21E +:10207000107858E630E2057546A080267546A180A6 +:1020800021E554C3948040107851E475F0011204A6 +:102090001F12005EF5CE800A0554E5502554F8E67F +:1020A000F5CED210D0D0D082D083D0F0D0E0329014 +:1020B000028DECF0A3EDF0E4FD900203E07034C378 +:1020C000EF940AEE940040061213157401F01213F7 +:1020D00015E07002C21DE4FF745D2F12131BE07047 +:1020E00004C21D80130DEDB40602D21D0FEFB4061D +:1020F000E78005121315E4F0900240E07002A3E0BF +:10210000705790023EE07002A3E0704D900203E031 +:10211000701B301D187F11122EB590023EEEF0A3F9 +:10212000EFF09002037401F0D21BC21D2290020353 +:10213000E064017036C390028EE0940A90028DE054 +:10214000940050277F12122EB57C007D0C1200AB3C +:10215000900240EEF0A3EFF022900240E07004A362 +:10216000E064017006900203F0D21C2212301A9033 +:102170000271121A2578001203FA00000000900282 +:10218000707405F075ABFF122F0F780012034F1219 +:1021900027A512013878001203BDE4F5AB122F0F0A +:1021A0007800120337C004C005C006C0071227A577 +:1021B000A804A905AA06AB07D007D006D005D0040D +:1021C00012014578001203BD900270E014F0E07037 +:1021D000B3780012034F7F807E847D2D7C00120136 +:1021E000DE9002721203B190027212032B90027AF7 +:1021F0001203B17F967E007D007C00122E1EE47BD0 +:1022000032FAF9F8C31202865006785B7696800A95 +:1022100090027212032B785BA607900271E0F5BA68 +:10222000121A7A22900285120438900288EDF0E4A6 +:10223000F525F52674FFF527F528E4F52EF52DF59F +:102240002CF52BF524900288E0FFE524C39F50591C +:1022500090028512042F75F002E524A4F58285F022 +:10226000831200D3F52A85F029D39526E5299525F3 +:102270004006852925852A26C3E52A9528E529953E +:10228000275006852927852A28E4FCFDE52E252AE6 +:10229000FFE52D3529FEED352CFDEC352B8F2E8EEF +:1022A0002D8D2CF52B0524809CE485263985253839 +:1022B000F537F53685283D85273CF53BF53A852EE3 +:1022C00041852D40852C3F852B3E900288AF2EAE58 +:1022D0002DAD2CAC2B122FDB2290021EE09400902F +:1022E000021DE09400227816E2FC08E2FD9002094B +:1022F000E0FEA3E0FF22F0A3F0A3F0A3F022900100 +:10230000C4E0FCA3E0FD7812E2FA08E2FBD39DEA08 +:102310009C2290004A7808E2FF08E2CFF0A3EFF099 +:1023200022D390021AE09400900219E0940022E275 +:102330009DFF18E29CFE900270F0A3EFF022900047 +:1023400076E475F0011200BD900270E022D3900295 +:1023500055E09400900254E094002290024EFFEE6B +:10236000F0A3EFF0227814E2FE08E2FF22C39031DE +:10237000BF7401939FE4939E22FF900077E09F90AB +:102380000076E09E229002881203B1E47BE87A0393 +:10239000F9F89002881213B89002981203B19002D3 +:1023A000981212F9A804A905AA06AB079002881290 +:1023B000133390029C12147C900298121300121393 +:1023C000A99002A01203B190028C12032B9002A0DC +:1023D000121300A804A905AA06AB079002941213D1 +:1023E000339002A412147C90029C12130090029469 +:1023F0001203B1900294120343C000C001C002C096 +:10240000039002A41212F9D003D002D001D000121E +:1024100001381213A99002A81203B1E47FE87E03E9 +:10242000FDFC9002A01213009002A8121389221240 +:102430002EE41231DD1231C3122B1012307A120049 +:102440000E123162D2AF751C01E51C24FE601E1411 +:102450006036146056146060240470671231A6124E +:10246000313912314F1230DF7F04122C62D2D8E49E +:10247000900213F0A3F09002ACF0A3F0122DE8E567 +:102480001D70FC1230F68036D2D8E51D70FC121695 +:102490000A8F1C121AA39002CAE0900078F09002F2 +:1024A000CA04F0122DB21230F6801B122FAF8F1C0F +:1024B0001224C8120E9D800E120C60122F61751C22 +:1024C000038003751C01120057E51C6404700302AD +:1024D0002439121C870224397F859031BFE493FC94 +:1024E000740193FD1231967F879031BF740193245C +:1024F0009CFDE49334FFFC1231967F897D647C005F +:102500001231967F8F3018187D397C301231967FCA +:102510008D7D397C301231967F917D397C30801FE2 +:102520007812E2FC08E2FD1231967F8D7816E2FC0B +:1025300008E2FD1231967F917814E2FC08E2FD1268 +:1025400031967F9F900266E0FCA3E0FD1231967FFA +:102550009D900268E0FCA3E0FD1231967FA17D0210 +:102560007C001231960228C9900225E07002A3E097 +:1025700070573000231223559001B3E0FCA3E0FD17 +:10258000C39FEC9E5010C312231F12235D503112C3 +:1025900025BA4035802580281223557812E2FC08A0 +:1025A000E2FDC39FEC9E501AC3781512231FD394EB +:1025B00032EE9400400A1225BA400E12286C8002B6 +:1025C0008000E4900230F0A3F0227F05122EB5EED9 +:1025D000C313FEEF13FF900230E475F0011200BD4B +:1025E000FCD3E5F09FEC9E22780E12033790027523 +:1025F0001203B17804120337122C289001A8120399 +:10260000B190006A12032B9001A8120343C3120277 +:102610008650037F02229001A812032B122A1F90DA +:1026200001B3EEF0A3EFF09001CEE0FFA3E0900144 +:10263000E2CFF0A3EFF09001B3E0FEA3E0FF1214AD +:102640009A9001CEEEF0FCA3EFF0FD7808E2FE08D0 +:10265000E2FF1209E69001E4EEF0A3EFF07812EE4B +:10266000F208EFF27F0522010079FE000E0100BEA4 +:102670000100C80101AC0101610101A80101B30120 +:1026800001C80101CE0101E4FE0012FE0014FE00AB +:1026900016FE0018FE0000FE000401003E0100428C +:1026A000010046FE000801026601026E0102760189 +:1026B000027E01023C0100E00101630102620102AD +:1026C0006A0101B00100D001016301020301023E71 +:1026D000010240010219900247E030E1091227157A +:1026E000201803122725900247E054FDF0900210B5 +:1026F000E0540FFF6027900247E0FE30E206786466 +:10270000A6078010EE30E31C900210E0540FC45472 +:10271000F07864F620180612271512272590024734 +:10272000E054F3F022C2107F08122EB5900223EE7F +:10273000F0A3EFF022C2927F217E007D007C001288 +:102740003098D2922290028D1203B1E47F607EEA2B +:10275000FDFC90028D1212DF4004D2078002C207F6 +:10276000E47FFF7EFFFDFC90028D1212DF400C9093 +:10277000028D1203C90000FFFF8030E4FF90028D3C +:102780001212DC502612286C301E167F15122EB540 +:102790007C007D031200AB900250EEF0A3EFF0C27C +:1027A0001E90028D1203C90000271090028D1203A3 +:1027B0002B2212034390001AE0FFEFC3940450054C +:1027C00053B9EF800343B910EF6003B4040B85B72E +:1027D0001985B61A85B51B803AEF64016004EFB421 +:1027E000050B85EB1985EA1A85E91B8026EF640243 +:1027F0006004EFB4060B85F31985F21A85F11B808E +:1028000012EF64036004EFB4070985FB1985FA1A17 +:1028100085F91BAF1BAE1AAD19AC1822C0E0C0F091 +:10282000C083C082C0D075D01053B9FDE51D6401CE +:1028300070221227A578001203BD121A4B7F0112D5 +:102840002FF89002CAE0FF122BEA43B901D2D875E3 +:102850001D05801DE51D64057017121A43780A12C4 +:1028600003BD1219EFF452AB53AAFB121A62751D85 +:1028700000D0D0D082D083D0F0D0E032E51D70FC03 +:10288000E4FF121B98E4FF12075CE490020EF09044 +:102890000210F090022FF09002251222E6A3F0A37E +:1028A000F090022DF0A3F09002321222E6A3F0A3E2 +:1028B000F090022BF0A3F09002381222E690006311 +:1028C000F0A3F0A208300001B3500D7F04122EB522 +:1028D00090021DEEF0A3EFF022E47F557E06FDFC92 +:1028E000780012034F1219A540031219F87FFF1246 +:1028F00019CA400678C576FF800A90027012032B31 +:1029000078C5A607E47F147E0AFDFC9000811203BF +:10291000431219A540031219F8E47FFF1219CB40A6 +:1029200005789376FF2290027012032B7893A60706 +:102930002290027B1203B190027812043890027B3D +:1029400012032B78061202AA90027B1203B19002A6 +:102950007F1214728005C333CE33CED8F91213EF31 +:1029600090027B12138990027FE0F9F812144A90CA +:10297000027812042F1202EDAF27AE26AD25AC244B +:10298000780612144A229002881203B1900285122E +:10299000043890028812032B780A1202AA90028847 +:1029A0001203B190028C1214728005C333CE33CE61 +:1029B000D8F91213EF90028812138990028CE0F973 +:1029C000F812145690028512042F1202EDAF27AEB2 +:1029D00026AD25AC24780A1214562290024A12031E +:1029E000C900000000E4FF122F3875ABFF122F0F53 +:1029F00090024A1227A212013890024A1203B1E44F +:102A0000F5AB122F0F90024A12032BC004C005C071 +:102A100006C0071227A5A804A905AA06AB07D00778 +:102A2000D006D005D00412014590024A0203B190AD +:102A3000006A120343120145122735900271EEF02D +:102A4000A3EFF07A0179BF1213747405F0A3EEF0CE +:102A5000A3EFF07A0179B5122C9CA215301401B3C2 +:102A600050157B017A0179B57D051222149001C0C1 +:102A7000E544F0A3E545F0900271E0FEA3E0FF22FB +:102A800030001C1213BE40177814E2FE08E2FF90DB +:102A9000020BE0FCA3E0FDD39FEC9E402180147864 +:102AA00014E2FE08E2FF7812E2FC08E2FDD39FEC9C +:102AB0009E400BED9F7817F2EC9E18F28006E478AA +:102AC00016F208F27816E2FF08E208CFF208EFF2F9 +:102AD00022C0E0C0F0C083C082C0D075D000C0006A +:102AE000C28D758C32758AEB9002ACE475F00112E0 +:102AF00000BDC39002ADE094149002ACE09400409D +:102B000012900213A3E0785FF6900213E4F0A3F0B2 +:102B1000120004D000D0D0D082D083D0F0D0E032E8 +:102B2000E4FF1230C8785AEFF67856BFFF047605F6 +:102B3000800276FFE47864F67857763608F69031AE +:102B4000BF93FE740193FF7885A60608A607EF24BD +:102B50009C7888F6EE34FF18F6788976000876645B +:102B6000E412303BF612303B763775505522A907F8 +:102B7000E4FEFD900247E0FC703FEF5401FB900241 +:102B80000FE054016B600D30020A201807EC44027C +:102B9000900247F090020FE030E006EE4410FE8015 +:102BA00004EE4401FEE930E006ED4401FD8004ED51 +:102BB0004410FDEE5D900210F022E4FF90020EE062 +:102BC00070169031BF93FC740193FDC37819E29D98 +:102BD00018E29C401F0F801C9031BF740193249C0D +:102BE000FDE49334FFFCC37819E29D18E29C400495 +:102BF000EF4401FF9002C9EFF022121A4B9002CA73 +:102C0000E0D394034002E4F0EF1460121460171450 +:102C1000601D240370211219EFF452AB800D1219BC +:102C2000EFF452AB800E1219EF42AB53AAFB221203 +:102C300019EF42AB43AA04229002711203B1900033 +:102C400078E0900279F090027512032B90027E12C8 +:102C500003B1900279E0900282F090027112032B8E +:102C6000121747900279E0FF12049290019C120320 +:102C70002B22EF6003D38001C3920A92027858A6F8 +:102C800007900215E4F0A3745AF07F09122EB59054 +:102C90000219EEF0A3EFF07F1A122EB57C007D032F +:102CA0001200AB90021BEEF0A3EFF02290028CE03A +:102CB000FEA3E0FFC003C002C0011213CC75F002F6 +:102CC000121429D001D002D003EE8FF012010B9024 +:102CD000028812141E1213CCFF90028BE0B5070479 +:102CE000E4120099227E05EF5401FD90020EE0549B +:102CF000016D6007EFF0E490022FF07858E630E0C5 +:102D00000890020EE070027E0A90022FE004F0C3E9 +:102D10009E50037F002290022FEEF07F012290024E +:102D20007E12032BC003C002C00190027A1213CF9F +:102D3000121426D001D002D00312030790027A1297 +:102D4000141E90027A1213CFFF90027DE0B50704A3 +:102D5000E41200992290027F12032BC003C002C02C +:102D60000190027B1213CF121426D001D002D0039F +:102D700012030790027B12141E90027B1213CFFFE6 +:102D800090027EE0B50704E41200992200050108D4 +:102D900002020301040105010606070108010907F3 +:102DA0000A010B010C030D050E0A0F011001110A97 +:102DB000123C13011401153C1601173C18021902AC +:102DC0001A3C121A4BE4FF122F38121A2875BB0155 +:102DD000900069E0FF900024E04FF5B4E4F5B3F50E +:102DE000B275B110121A8553BAFE43B901D2D8E5B3 +:102DF000B930E1FBE4F5BF227858E6F520A20830AF +:102E00000001B350147F04122EB590021DEEF0A302 +:102E1000EFF012286CA2009208A20A300201B3500F +:102E200004A202920A30130512286CC213229002E7 +:102E3000761203B190027A12032B900276120343AA +:102E4000D3120286400B90027A12034390027680DE +:102E50000990027612034390027A12032B12014565 +:102E60002290002512032BAB07AA06780412033721 +:102E7000C3EF9BFFEE9AFE7B017A00794CE4FCFDE8 +:102E800090027F7408F01229217808EEF208EFF220 +:102E90007F0522E4F51D53B9FD53B9DF43CC02C2CF +:102EA000D9539FFD438760C28DEF700675BD0D75C8 +:102EB000BC0112317475BE0CD28C20C90343870348 +:102EC00000000000227D017C00EFC3941B5020EF26 +:102ED00025E0247DF582E4342DF583E493FF7E0024 +:102EE000900215E0FCA3E0FD1200ABAC06AD07AE0E +:102EF00004AF0522E4F5E3439F107F03FEFDFC12BF +:102F00003098439F027F037E007D007C0012309842 +:102F1000539FEF75BE0EE4F5BFF5B9759276221298 +:102F20001A4B75BF0F0000000000000000000000F9 +:102F300000000000000000D2D853B9FD43B901E5FC +:102F4000B930E1FBE4F5BF2253BA0F43BA30121A8D +:102F500015900024E0F5B4EF700AF5B375B2617511 +:102F6000B1A88006900021121A6E121A7A53AAFB99 +:102F700022900211E0FF900210E0FE6F6014300218 +:102F8000047864A606E4FF122EB590022BEEF0A39F +:102F9000EFF0900210E0A3F02290001AE09031B61A +:102FA00093FF900024F090001BE09031B693FE90C8 +:102FB0000069F0EF4E42D442F442E4F452DC229035 +:102FC00002707405F0122E511225D8900270EFF0A5 +:102FD000BF0205D213E0FF22122A7012003E9002B7 +:102FE00070E0FF2274FFF5F00200BDE0FBE4FAF9A7 +:102FF000F81201DE8F458E448D438C4222AB34AAF9 +:1030000033A932A83102028653BA0F43BA20121AEA +:1030100015900069E0F5B4EF7009F5B375B2AF75BE +:10302000B1C822900066121A6E2253BAFEE5B9208A +:10303000E004E51D6005E5B930E1FBE4F5BF53B9F7 +:10304000FD53B9FE121A62E4F51D2208F608F608CF +:10305000F608F6082254FBF6900247E04408F022F6 +:103060004404F6900247E04404F022E4900270F039 +:1030700075BE0E439F027F03FEFDFC12309875BCA7 +:1030800002E4F5BFD2D953CCFD22438901C28DD2CF +:10309000A953B8FD120003900213F0A3F0758C320F +:1030A000758AEBD28CD2AF229002711203B19002DA +:1030B0007174FF12037EEC4D4E4F60030080EF22CF +:1030C000122355D394F8EE942A5009C3EF9428EEB6 +:1030D0009423500312286C22E4FFF582F583744098 +:1030E000FEE493F42FFFA3EEB583F6227F0022E4E3 +:1030F000900223F0A3F07F0A122EB5900221EEF089 +:10310000A3EFF0D21022121A4B7F01122F38751D37 +:1031100001121A8543BA0143B901D2D82241001ADB +:103120000041001B0644001CFFFFFFFF04180000C5 +:10313000000000D3EF9DEE9C4007EF9DFFEE9CFE4C +:1031400022C3ED9FFFEC9EFE22E4FF122F381221D6 +:103150005C121F107F01122F38121B980229CBE43A +:10316000FF122FF81231D7121E3A7F01122FF802E8 +:10317000075C9031C1E493FF74019390006ECFF02F +:10318000A3EFF022438901C28CC28F120003758C19 +:10319000FB758AED2243D50453F5FB43ED04E4901F +:1031A0000247F0D2922220C90CC2AFA807A6040899 +:1031B000A605D2AF222275AA3B53BAF343BA0C43F9 +:1031C000B92053B9BF220102040810204080BC037B +:1031D000200064C2DA53D80F43D8D0D2D8D2D92233 +:1031E000900215E4F0A322785BE608F622122F89FC +:1031F000023185FFFFFFFFFFFFFFFFFFFFFFFFFF24 +:10320000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE +:00000001FF diff --git a/firmware/epen/w9019_gts6lite.bin b/firmware/epen/w9019_gts6lite.bin new file mode 100644 index 000000000000..d492951998c4 Binary files /dev/null and b/firmware/epen/w9019_gts6lite.bin differ diff --git a/firmware/epen/w9021_gts6lite.bin b/firmware/epen/w9021_gts6lite.bin new file mode 100644 index 000000000000..a54def6116fa Binary files /dev/null and b/firmware/epen/w9021_gts6lite.bin differ diff --git a/firmware/five/Makefile b/firmware/five/Makefile new file mode 100644 index 000000000000..4694abd90800 --- /dev/null +++ b/firmware/five/Makefile @@ -0,0 +1,64 @@ +# FIVE TA +five_fwlist := \ + five/five.mdt \ + five/five.b00 \ + five/five.b01 \ + five/five.b02 \ + five/five.b03 \ + five/five.b04 \ + five/five.b05 \ + five/five.b06 \ + five/five.b07 + +five_dir := firmware/five +five_signed_dir := firmware/five/signed +five_objs := $(addprefix $(obj)/,$(five_fwlist)) +__fwdir := firmware +ifneq ($(fwdir),) +__fwdir := $(fwdir) +endif + +$(five_objs): $(five_dir)/five.signed + +five_fwabs := $(addprefix $(objtree)/,$(filter-out /%,$(__fwdir)))$(filter /%,$(__fwdir)) + +$(patsubst %,$(obj)/%.gen.S, $(five_fwlist)): %: $(wordsize_deps) + $(call cmd,fwbin,$(five_fwabs)/$(patsubst $(obj)/%.gen.S,%,$@)) + +# The .o files depend on the binaries directly; the .S files don't. +$(patsubst %,$(obj)/%.gen.o, $(five_fwlist)): $(obj)/%.gen.o: $(__fwdir)/% + +obj-y += $(patsubst %,%.gen.o, $(five_fwlist)) + +ifeq ($(CONFIG_FIVE_SIGN_TA),y) +# Setup five_sign_runtype and five_sign_model +include $(srctree)/firmware/five/sign_mode.mk + +# The strings are came from Kconfig are quoted with \". This symbol must be removed +# because 'make' doesn't do that automatically +five_pilsplitter := $(subst $\",,$(CONFIG_FIVE_PILSPLITTER_PATH)) +five_signclient := $(subst $\",,$(CONFIG_FIVE_SIGNCLIENT_PATH)) + + +$(five_dir)/five.signed: $(five_pilsplitter) $(five_signed_dir)/five.mbn + python $(five_pilsplitter) $(five_signed_dir)/five.mbn $(five_dir)/five + touch $@ + +$(five_signed_dir)/five.mbn: $(five_signclient) $(srctree)/$(five_dir)/five.mbn + mkdir -p $(five_dir) $(five_signed_dir) + java -jar $(five_signclient) -model $(five_sign_model) \ + -runtype $(five_sign_runtype) -input $(srctree)/$(five_dir)/five.mbn \ + -output $(five_signed_dir)/five.mbn + +else # CONFIG_FIVE_SIGN_TA + +five_presigned := $(addprefix $(srctree)/$(five_dir)/presigned/,$(five_fwlist)) + +$(five_dir)/five.signed: $(five_presigned) + cp $(five_presigned) $(five_dir) + touch $@ + +endif # CONFIG_FIVE_SIGN_TA + +clean-files += $(five_objs) $(five_dir)/five.signed +clean-dirs += $(five_signed_dir) diff --git a/firmware/five/five.mbn b/firmware/five/five.mbn new file mode 100644 index 000000000000..9f31e4b2f3ee Binary files /dev/null and b/firmware/five/five.mbn differ diff --git a/firmware/five/presigned/five/five.b00 b/firmware/five/presigned/five/five.b00 new file mode 100644 index 000000000000..3801cebc0682 Binary files /dev/null and b/firmware/five/presigned/five/five.b00 differ diff --git a/firmware/five/presigned/five/five.b01 b/firmware/five/presigned/five/five.b01 new file mode 100644 index 000000000000..1a2e9c5fd0d1 Binary files /dev/null and b/firmware/five/presigned/five/five.b01 differ diff --git a/firmware/five/presigned/five/five.b02 b/firmware/five/presigned/five/five.b02 new file mode 100644 index 000000000000..fe3cee4d815f Binary files /dev/null and b/firmware/five/presigned/five/five.b02 differ diff --git a/firmware/five/presigned/five/five.b03 b/firmware/five/presigned/five/five.b03 new file mode 100644 index 000000000000..b567a79b117e Binary files /dev/null and b/firmware/five/presigned/five/five.b03 differ diff --git a/firmware/five/presigned/five/five.b04 b/firmware/five/presigned/five/five.b04 new file mode 100644 index 000000000000..a642aa51beba Binary files /dev/null and b/firmware/five/presigned/five/five.b04 differ diff --git a/firmware/five/presigned/five/five.b05 b/firmware/five/presigned/five/five.b05 new file mode 100644 index 000000000000..ca8632d09aa6 Binary files /dev/null and b/firmware/five/presigned/five/five.b05 differ diff --git a/firmware/five/presigned/five/five.b06 b/firmware/five/presigned/five/five.b06 new file mode 100644 index 000000000000..e9fc7d22ad85 Binary files /dev/null and b/firmware/five/presigned/five/five.b06 differ diff --git a/firmware/five/presigned/five/five.b07 b/firmware/five/presigned/five/five.b07 new file mode 100644 index 000000000000..06d44cb7cdfa Binary files /dev/null and b/firmware/five/presigned/five/five.b07 differ diff --git a/firmware/five/presigned/five/five.mdt b/firmware/five/presigned/five/five.mdt new file mode 100644 index 000000000000..c5e771f7cd0d Binary files /dev/null and b/firmware/five/presigned/five/five.mdt differ diff --git a/firmware/five/sign_mode.mk b/firmware/five/sign_mode.mk new file mode 100644 index 000000000000..5e7029731c87 --- /dev/null +++ b/firmware/five/sign_mode.mk @@ -0,0 +1,35 @@ +ifeq ($(CONFIG_SEC_A60Q_PROJECT),y) +five_old_signature := y +endif +ifeq ($(CONFIG_SEC_A70Q_PROJECT),y) +five_old_signature := y +endif +ifeq ($(CONFIG_SEC_A70S_PROJECT),y) +five_old_signature := y +endif +ifeq ($(CONFIG_SEC_A70SQ_PROJECT),y) +five_old_signature := y +endif +ifeq ($(CONFIG_SEC_M40_PROJECT),y) +five_old_signature := y +endif +ifeq ($(CONFIG_SEC_M41_PROJECT),y) +five_old_signature := y +endif +ifeq ($(CONFIG_SEC_M51_PROJECT),y) +five_old_signature := y +endif +ifeq ($(CONFIG_SEC_R1Q_PROJECT),y) +five_old_signature := y +endif + +ifeq ($(five_old_signature),y) +five_sign_runtype := qc_secimg50_tzapp +five_sign_model := QSEE_SM6150_TA +else +five_sign_runtype := qc_secimg50_tzapp +five_sign_model := $(SEC_BUILD_CONF_SIGNER_MODEL_NAME) +ifndef SEC_BUILD_CONF_SIGNER_MODEL_NAME + $(error "SEC_BUILD_CONF_SIGNER_MODEL_NAME isn't defined") +endif +endif diff --git a/firmware/tsp_himax/hx83102e_gts6litereresh.bin b/firmware/tsp_himax/hx83102e_gts6litereresh.bin new file mode 100755 index 000000000000..f1d1b24092a3 Binary files /dev/null and b/firmware/tsp_himax/hx83102e_gts6litereresh.bin differ diff --git a/firmware/tsp_imagis/ist40xx_a70.bin b/firmware/tsp_imagis/ist40xx_a70.bin new file mode 100755 index 000000000000..4ea51789beb0 Binary files /dev/null and b/firmware/tsp_imagis/ist40xx_a70.bin differ diff --git a/firmware/tsp_imagis/ist40xx_a70_cmcs.bin b/firmware/tsp_imagis/ist40xx_a70_cmcs.bin new file mode 100755 index 000000000000..047bd5a85c5e Binary files /dev/null and b/firmware/tsp_imagis/ist40xx_a70_cmcs.bin differ diff --git a/firmware/tsp_imagis/ist40xx_a70s.bin b/firmware/tsp_imagis/ist40xx_a70s.bin new file mode 100644 index 000000000000..d3c457bffe62 Binary files /dev/null and b/firmware/tsp_imagis/ist40xx_a70s.bin differ diff --git a/firmware/tsp_imagis/ist40xx_a70s_cmcs.bin b/firmware/tsp_imagis/ist40xx_a70s_cmcs.bin new file mode 100644 index 000000000000..047bd5a85c5e Binary files /dev/null and b/firmware/tsp_imagis/ist40xx_a70s_cmcs.bin differ diff --git a/firmware/tsp_imagis/ist40xx_r1.bin b/firmware/tsp_imagis/ist40xx_r1.bin new file mode 100644 index 000000000000..fb24ccbcac97 Binary files /dev/null and b/firmware/tsp_imagis/ist40xx_r1.bin differ diff --git a/firmware/tsp_imagis/ist40xx_r1_cmcs.bin b/firmware/tsp_imagis/ist40xx_r1_cmcs.bin new file mode 100644 index 000000000000..55cb33e245ef Binary files /dev/null and b/firmware/tsp_imagis/ist40xx_r1_cmcs.bin differ diff --git a/firmware/tsp_melfas/mss100_a70s.bin b/firmware/tsp_melfas/mss100_a70s.bin new file mode 100644 index 000000000000..d35de68b044a Binary files /dev/null and b/firmware/tsp_melfas/mss100_a70s.bin differ diff --git a/firmware/tsp_novatek/nt36672_a60.bin b/firmware/tsp_novatek/nt36672_a60.bin new file mode 100755 index 000000000000..d3ec4163f7c2 Binary files /dev/null and b/firmware/tsp_novatek/nt36672_a60.bin differ diff --git a/firmware/tsp_novatek/nt36672_a60_tianma.bin b/firmware/tsp_novatek/nt36672_a60_tianma.bin new file mode 100755 index 000000000000..e2d7d69cea07 Binary files /dev/null and b/firmware/tsp_novatek/nt36672_a60_tianma.bin differ diff --git a/firmware/tsp_novatek/nt36672_m40.bin b/firmware/tsp_novatek/nt36672_m40.bin new file mode 100644 index 000000000000..d3ec4163f7c2 Binary files /dev/null and b/firmware/tsp_novatek/nt36672_m40.bin differ diff --git a/firmware/tsp_sec/y771_a71.bin b/firmware/tsp_sec/y771_a71.bin new file mode 100644 index 000000000000..e146ab9cb1ac Binary files /dev/null and b/firmware/tsp_sec/y771_a71.bin differ diff --git a/firmware/tsp_sec/y771_a71_1l.bin b/firmware/tsp_sec/y771_a71_1l.bin new file mode 100644 index 000000000000..bcaed010bd6f Binary files /dev/null and b/firmware/tsp_sec/y771_a71_1l.bin differ diff --git a/firmware/tsp_sec/y771_m51.bin b/firmware/tsp_sec/y771_m51.bin new file mode 100644 index 000000000000..f9f6dd11a145 Binary files /dev/null and b/firmware/tsp_sec/y771_m51.bin differ diff --git a/firmware/tsp_sec/y771_m51_sdc.bin b/firmware/tsp_sec/y771_m51_sdc.bin new file mode 100644 index 000000000000..6ffe8a8dfa3e Binary files /dev/null and b/firmware/tsp_sec/y771_m51_sdc.bin differ diff --git a/firmware/tsp_stm/fts5cu56a_a52.bin b/firmware/tsp_stm/fts5cu56a_a52.bin new file mode 100755 index 000000000000..dbde85dbf498 Binary files /dev/null and b/firmware/tsp_stm/fts5cu56a_a52.bin differ diff --git a/firmware/tsp_stm/fts5cu56a_a52xq.bin b/firmware/tsp_stm/fts5cu56a_a52xq.bin new file mode 100644 index 000000000000..ed466fec472b Binary files /dev/null and b/firmware/tsp_stm/fts5cu56a_a52xq.bin differ diff --git a/firmware/tsp_stm/fts5cu56a_a72.bin b/firmware/tsp_stm/fts5cu56a_a72.bin new file mode 100644 index 000000000000..ca3e8c3dab1c Binary files /dev/null and b/firmware/tsp_stm/fts5cu56a_a72.bin differ diff --git a/firmware/tsp_stm/fts5cu56a_m42.bin b/firmware/tsp_stm/fts5cu56a_m42.bin new file mode 100644 index 000000000000..48261ac0db56 Binary files /dev/null and b/firmware/tsp_stm/fts5cu56a_m42.bin differ diff --git a/firmware/tsp_zinitix/zt7650_a52.bin b/firmware/tsp_zinitix/zt7650_a52.bin new file mode 100755 index 000000000000..56b8c8a6bc7f Binary files /dev/null and b/firmware/tsp_zinitix/zt7650_a52.bin differ diff --git a/firmware/tsp_zinitix/zt7650_a72.bin b/firmware/tsp_zinitix/zt7650_a72.bin new file mode 100755 index 000000000000..6d51a226744b Binary files /dev/null and b/firmware/tsp_zinitix/zt7650_a72.bin differ diff --git a/firmware/tsp_zinitix/zt7650_a72_3rd.bin b/firmware/tsp_zinitix/zt7650_a72_3rd.bin new file mode 100644 index 000000000000..9bf4faacdd3f Binary files /dev/null and b/firmware/tsp_zinitix/zt7650_a72_3rd.bin differ