comparison FC-handset-spec @ 53:016f8cf2418c

FC-handset-spec: boot control idea documented
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 12 Jun 2021 02:58:47 +0000
parents cfe8623b915d
children 138021ca5eae
comparison
equal deleted inserted replaced
52:cfe8623b915d 53:016f8cf2418c
937 With only 3 FT2232x-to-Calypso signals needing to go through a USB-side-powered 937 With only 3 FT2232x-to-Calypso signals needing to go through a USB-side-powered
938 LVC buffer, and with 3 slots remaining available in the 74LVC541A buffer from 938 LVC buffer, and with 3 slots remaining available in the 74LVC541A buffer from
939 section 1.12.2.1, that one 74LVC541A IC can serve both signal directions (5 939 section 1.12.2.1, that one 74LVC541A IC can serve both signal directions (5
940 signals from Calypso to FT2232x and 3 signals going the other way), reducing the 940 signals from Calypso to FT2232x and 3 signals going the other way), reducing the
941 component count. 941 component count.
942
943 1.12.3. Boot control by USB host
944
945 Our DUART28C adapter (DUART28 hardware, EEPROM in the 'C' configuration) has a
946 nifty feature in the form of CTL1 and CTL2 open drain outputs, intended for
947 triggering Iota VRPC boot control signals on Calypso devices, i.e., boot control
948 signals from the {PWON, RPWON, nTESTRESET} set. So far none of our FreeCalypso
949 development boards bring out RPWON, but both FCDEV3B and Caramel2 feature PWON
950 and nTESTRESET controls, and we have an established convention for driving them
951 with CTL1 and CTL2 from a DUART28C. The end effect for the developer-operator
952 is that one can run operations based on Calypso boot ROM loading path (fc-iram,
953 fc-loadtool etc) purely from the host command line, without needing to press any
954 buttons on the development board: adding -Prts to the command line is equivalent
955 to pressing PWON, or adding -Pdtr is equivalent to pressing RESET. rvinterf can
956 also be run with the same options, allowing flashed firmware to be booted in a
957 similar no-buttons-needed manner.
958
959 It is the Mother's intent to replicate this boot control feature on our FC Libre
960 Dumbphone handset as well, i.e., make FT2232x Channel B RTS and DTR outputs
961 (otherwise unused) act as host-driven boot control triggers. In hardware terms,
962 this addition consists of just one tiny IC (74LVC2G07) and two pull-up resistors
963 on the BDBUS[24] lines from FT2232x to this OD buffer. FT2232x EEPROM will be
964 programmed with the same custom USB ID as DUART28C, and the Linux kernel
965 ftdi_sio driver will need to have our DUART28C support patch added to it.
966
967 There will be one change from our previous convention, however: the OD buffer
968 output controlled with Channel B RTS will be wired to RPWON rather than PWON;
969 the other OD buffer output controlled with Channel B DTR will still be wired to
970 nTESTRESET like before. The reason for this change is that our handset firmware
971 has more complex logic that treats different boot causes differently (as
972 required for standard expected handset functionality), and Iota PWON is now
973 reserved solely for the end user power-on button. Host-commanded boot needs to
974 be different from this end user power-on button (no long press is required, and
975 the firmware should enter its misc boot state that behaves like an ACI build),
976 hence we are changing the wiring so that -Prts will trigger RPWON rather than
977 PWON. The same boot effect can still be achieved with -Pdtr triggering
978 nTESTRESET, but it is a bigger hammer (reset of RTC can be unwanted), hence
979 -Prts will be recommended as the gentler option, leaving -Pdtr for times when
980 recovery from runaway code is needed.