comparison doc/TIFFS-Overview @ 734:23f41a61ff7a

doc/TIFFS-Overview: update for new developments
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 28 Aug 2020 18:23:36 +0000
parents 3100f534340b
children 0306449ba467
comparison
equal deleted inserted replaced
733:bed7981ac8ca 734:23f41a61ff7a
53 black box from one of their many proprietary software partners. (I was unable 53 black box from one of their many proprietary software partners. (I was unable
54 to identify it as any well-known, industry-standard FFS format, but absence of 54 to identify it as any well-known, industry-standard FFS format, but absence of
55 evidence is not evidence of absence.) But now that we have TI's original source 55 evidence is not evidence of absence.) But now that we have TI's original source
56 code which implements this FFS (first the MV100-0.1.rar source, then the full 56 code which implements this FFS (first the MV100-0.1.rar source, then the full
57 Leonardo one), complete with comments and a HISTORY file, we know that our FFS 57 Leonardo one), complete with comments and a HISTORY file, we know that our FFS
58 was invented and implemented by someone named Mads Meisner-Jensen at TI - I'm 58 was invented and implemented by someone named Mads Meisner-Jensen at TI-DK,
59 guessing in the SSA group in Nice, France. 59 apparently their flash chip expert who also wrote FLUID.
60 60
61 I am now making a naming transition from MPFFS to TIFFS: there is really no 61 I am now making a naming transition from MPFFS to TIFFS: there is really no
62 link between this FFS format and the Openmoko+Pirelli duo, other than the 62 link between this FFS format and the Openmoko+Pirelli duo, other than the
63 happenstance of me having first encountered this FFS on these two GSM device 63 happenstance of me having first encountered this FFS on these two GSM device
64 brands, and the name TIFFS is more neutrally-descriptive. 64 brands, and the name TIFFS is more neutrally-descriptive.
243 (This section is only relevant to you if you plan on physically producing your 243 (This section is only relevant to you if you plan on physically producing your
244 own GSM phones or modems on your own factory production line, like we currently 244 own GSM phones or modems on your own factory production line, like we currently
245 do at our family company, or if you simply enjoy knowing how it is done.) 245 do at our family company, or if you simply enjoy knowing how it is done.)
246 246
247 To my knowledge, TI never used or produced a tool akin to mkfs.jffs2 in the 247 To my knowledge, TI never used or produced a tool akin to mkfs.jffs2 in the
248 embedded Linux world, which would produce a TIFFS image complete with some 248 embedded Linux world, or akin to our recently developed tiffs-mkfs, which would
249 initial directory and file content "in vitro". Instead it appears that the FFS 249 produce a TIFFS image complete with some initial directory and file content
250 instances found in shipped products such as Openmoko phones have been created 250 "in vitro". Instead it appears that the FFS instances found in shipped products
251 "in vivo" by TI's firmware running on the device itself during the "production 251 such as Openmoko phones have been created "in vivo" by TI's firmware running on
252 test" phase. 252 the device itself during the "production test" phase.
253 253
254 We never got a copy of the original factory production line software that was 254 We never got a copy of the original factory production line software that was
255 used by Openmoko, but we have successfully replicated the process using our own 255 used by Openmoko, but we have successfully replicated the process using our own
256 Unix/Linux-based FreeCalypso host tools, the very same tools that are contained 256 Unix/Linux-based FreeCalypso host tools, the very same tools that are contained
257 in the present source package you are looking at. The process goes like this: 257 in the present source package you are looking at. The process goes like this:
419 * Mot C1xx phones present a lot more hassle: our current official procedure is 419 * Mot C1xx phones present a lot more hassle: our current official procedure is
420 to make a dump of the flash prior to the xenotransplantation procedure (also 420 to make a dump of the flash prior to the xenotransplantation procedure (also
421 serves as a backup), extract the RF calibration values with our c1xx-calextr 421 serves as a backup), extract the RF calibration values with our c1xx-calextr
422 tool, and then later in the procedure when you initialize your aftermarket FFS 422 tool, and then later in the procedure when you initialize your aftermarket FFS
423 with fc-fsio, upload these extracted and format-converted RF calibration files 423 with fc-fsio, upload these extracted and format-converted RF calibration files
424 as one of the several steps involved. You will need to enter your IMEI 424 as one of the several steps involved. You will also need to enter your IMEI
425 manually: we never figured out where Mot/SE/Compal have it stored and how it 425 manually: fc-loadtool flash compal-imei command can extract the factory IMEI
426 is obfuscated. 426 record from the flash chip's protection register and save it into a text file,
427 but you still need to feed it manually to the new firmware with fc-fsio
428 set-imeisv command.
427 429
428 FreeCalypso host tools for TIFFS 430 FreeCalypso host tools for TIFFS
429 ================================ 431 ================================
430 432
431 Our FC host tools package supports TIFFS in two ways: 433 Our FC host tools package supports TIFFS in two ways:
432 434
433 1) Our primary tool for working with GSM device file systems is fc-fsio. When 435 1) Our primary tool for working with GSM device file systems is fc-fsio. When
434 run against a compatible firmware version (primarily our own, but Pirelli's 436 run against a compatible firmware version (primarily our own, but Pirelli's
435 proprietary fw is also compatible), fc-fsio allows various read and write 437 proprietary fw is also compatible), fc-fsio allows various read and write
436 operations to be performed on the target device FFS. 438 operations to be performed on the target device FFS. fc-fsio can also be used
439 together with our fc-xram based FFS editing agent described below.
437 440
438 2) We have a TIFFS In Vitro Analyzer (IVA) tool for "in vitro" examination of 441 2) We have a TIFFS In Vitro Analyzer (IVA) tool for "in vitro" examination of
439 FFS images that have been read out of raw flash with fc-loadtool. See the 442 FFS images that have been read out of raw flash with fc-loadtool. See the
440 TIFFS-IVA-usage article for more information. 443 TIFFS-IVA-usage article for more information. As a very recent addition, we
444 also have another "in vitro" tool (tiffs-mkfs) that goes the other way, creating
445 new complete TIFFS images from a tree of directories and files.
441 446
442 In addition to the above, back in the days of Openmoko (back when the Openmoko 447 In addition to the above, back in the days of Openmoko (back when the Openmoko
443 community was still active and we considered ourselves a part of it) we had 448 community was still active and we considered ourselves a part of it) we had
444 produced a kit for editing the modem FFS on Openmoko GTA01/02 devices, giving 449 produced a kit for editing the modem FFS on Openmoko GTA01/02 devices, giving
445 users an easy way to change their /pcm/IMEI file. Changing IMEIs for no good 450 users an easy way to change their /pcm/IMEI file. Changing IMEIs for no good
450 other reason - hence the popular demand for IMEI changing tools. 455 other reason - hence the popular demand for IMEI changing tools.
451 456
452 Our Openmoko FFS editing kit from early 2014 consisted of a very early version 457 Our Openmoko FFS editing kit from early 2014 consisted of a very early version
453 of what much later became the present FC host tools package (more specifically, 458 of what much later became the present FC host tools package (more specifically,
454 it was before fc-fsio, and the set-imeisv command had been hacked into fc-tmsh 459 it was before fc-fsio, and the set-imeisv command had been hacked into fc-tmsh
455 instead) plus a pair of "in vivo" FFS editing agent target binaries. Our 460 instead) plus a pair of "in vivo" FFS editing agent target binaries that run on
456 current FC host tools fully supplant the ancient version in that 2014 kit, but 461 the target by way of fc-xram. Our current FC host tools fully supplant the
457 we do not currently have a non-deprecated replacement for the old "in vivo" FFS 462 ancient version in that 2014 kit, and our current replacement for the ancient
458 editing agent: those FFS editing agent binaries were built from our old gsm-fw 463 FFS editing agent is this new version:
459 framework which was deemed to be a dead end in 2016 and fully retired in 2018. 464
460 465 https://www.freecalypso.org/hg/ffs-editor/
461 We have not produced a new and actively maintained replacement for the "in vivo" 466
462 FFS editing function which was previously provided as a side product of the old 467 The new FFS editing agent linked above is run via fc-xram, while it is running
463 gsm-fw framework because we have no real need for it: the *only* use case we 468 you communicate with it via rvinterf (launched directly from fc-xram as the 2nd
464 have for it involves Openmoko devices, and even then only two special use cases: 469 program), and you can run fc-fsio against it to perform whatever actual FFS
465 470 manipulations are needed.
466 1) If someone wishes to change their IMEI from within the FreeRunner (without
467 using an external serial cable) *or* while keeping an old firmware version
468 (without updating to moko13 or later), or
469
470 2) If someone has updated the modem fw on their FR to one of our current
471 releases, wishes to fix the /gsm/com/rfcap file to reflect the true tri900 or
472 tri850 band configuration of their device, but wishes to do it from within the
473 FR, without using an external serial cable.
474
475 If anyone does need to exercise one of the two special use cases listed above,
476 they can use the "in vivo" FFS editing agent binaries from the ancient
477 ffs-edit-kit-r1.tar.bz2 package - they are ancient, but will do the job just
478 fine for both use cases in question.