summaryrefslogtreecommitdiffstats
path: root/src/target/firmware/board
AgeCommit message (Collapse)AuthorFilesLines
2019-05-13firmware/Makefile.inc: fix sections with overlapping VMAHarald Welte2-4/+4
Starting from [1], not only LMA but also VMA areas are now checked for overlaps (see also [2]). This results into linking errors: arm-none-eabi-ld: section .text.exceptions VMA [000000000080001c,0000000000800037] overlaps section .compal.reservedram VMA [0000000000800000,00000000008000fe] arm-none-eabi-ld: section .text.exceptions VMA [000000000080001c,0000000000800037] overlaps section .compal.loader VMA [0000000000800000,00000000008000ff] Let's try to work around this. [1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a87dd97a2098b7e18ff2574a4e81ae521ef7e6f2 [2] https://sourceware.org/bugzilla/show_bug.cgi?id=18452 Change-Id: I098ddd33aabd7ec27981e2f09d8582f167bb649b Fixes: OS#1917
2019-02-19firmware/lib: introduce TIFFS filesystem supportMychaela Falconia5-0/+20
All known TI GSM firmwares implement some kind of flash file system, or FFS. We call it TIFFS (Texas Instruments FFS) because it is TI's invention. TIFFS is a file system with a hierarchical directory tree structure, and with Unixy forward-slash-separated, case-sensitive pathnames; the semantics of "what is a file" and "what is a directory" are exactly the same as in UNIX; and TIFFS even supports symlinks, although that support is a little under-developed, and apparently no FFS symlinks were ever used in any production GSM device. Thus the FFS implemented in TI-based GSM devices (modems and "dumbphone" handsets) is really no different from, for example, JFFS2 in embedded Linux systems. The FFS in a GSM device typically stores two kinds of content: - Factory data: IMEI, RF calibration values, device make/model/revision ID strings etc. These files are expected to be programmed on the factory production line and not changed afterward. - Dynamic data written into the FFS in normal device operation: contacts, settings / preferences, call history, received SMS, etc. It should be noted that both Compal (Mot C1xx) and Foxconn (Pirelli DP-L10) vendors moved their vital per-unit factory data out of the FFS into their own ad hoc flash data structures, leaving their FFS only for less critical data. However, we do enable TIFFS access for them anyway. The location of TIFFS within the flash memory of a given GSM device is defined by the firmware design of that device, but is always some integral number of contiguous flash sectors. - On Motorola/Compal C139/140 phones, the FFS used by the original proprietary firmware occupies 5 sectors of 64 KiB each (320 KiB in total), starting at 0x370000. C11x/123 use smaller FFS configurations, whereas C155/156 seem to have switched to some other FFS format, different from our familiar TIFFS. - On the Pirelli DP-L10, the FFS used by the original proprietary firmware occupies 18 sectors of 256 KiB each (for 4.5 MiB in total), starting at the beginning of the 2nd flash chip select (0x02000000 in the ARM7 address space). - On FCDEV3B (FreeCalypso hardware), the FFS is located in the first 8 sectors (of 256 KiB each) in the 2nd flash chip select bank, which appears at 0x01800000 in the ARM7 address space. - On the GTA01/02 GSM modem, FFS occupies 7 sectors of 64 KiB each, starting at flash offset 0x380000. For more information, please refer to the FreeCalypso project documentation, from where this great contribution comes from. Please note that existing MediaTek targets most likely use different storage format as they have nothing from TI Calypso. Also, we don't (yet) know the location of TIFFS on SE J100i and Compal E99 targets. The TIFFS support is needed for the follow-up change, that implements reading of the factory RF calibration values. Tweaked (coding style changes) by Vadim Yanitskiy <axilirator@gmail.com> Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Related: OS#3582
2019-02-19firmware/board: introduce new FCDEV3B (FreeCalypso) targetMychaela Falconia1-0/+141
FCDEV3B (stands for "FreeCalypso development board, triband") is a GSM mobile station development board by FreeCalypso project. The board features the same legendary TI Calypso GSM MS chipset that was used in commercial GSM/GPRS modems such as Openmoko's, and functions as a standalone (or "bare") GSM modem. For more information, please see the project's web side: https://www.freecalypso.org/fcdev3b.html. Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Related: OS#3581
2019-02-13firmware/board/compal_e99: enable reading the second half of flashMychaela Falconia1-0/+6
The ability to read the second half of flash on E99 is needed for the follow-up change, that implements reading of the factory RF calibration values. Change-Id: Ia677ebdc1ada9fd41daf211fd9da06cd118365fa Related: OS#3582
2019-02-13firmware/board/compal: indicate both DCS and PCS Rx ports as connectedMychaela Falconia2-4/+44
Each given Mot C1xx phone is made either for 900+1800 MHz, in which case only the DCS Rx port is connected, or for 850+1900 MHz, in which case only the PCS Rx port is connected. Let's tell the TRF6151 driver that both DCS and PCS ports are connected, so that the same binary build can be used on both EU-band and US-band C1xx phones. If one needs to tune the TRF6151 receiver out of spec, or at least outside of the DCS/PCS Rx SAW filter's legitimate passband (or if the SAW filter was changed or removed), then the rffe_get_rx_ports() function might be changed to indicate which Rx port is physically connected: PORT_DCS1800 only or PORT_PCS1900 only. Change-Id: I620084c33ad165faffbbfc45923faedad77aafb2
2019-02-12firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configurationMychaela Falconia1-13/+10
Most Calypso peripheral interface signals are unconnected on Openmoko GTA0x. Let's configure them to be GPIOs in IO_CONF_REG, then configure them to be outputs in IO_CNTL_REG, then set the outputs to 0 in ARMIO_LATCH_OUT. Change-Id: I306ffacb623d2b06a188f84026ccadab408d1676
2019-02-12firmware/board/pirelli_dpl10: fix ASIC_CONF_REG settingMychaela Falconia1-2/+2
Set LPG and PWL pin mux like Pirelli's firmware does. Change-Id: I099e13800b7821a8fb274c5264c9823153afe564
2013-12-29fw: tell linker to add init_array to ctor sectionSteve Markgraf5-0/+5
Starting with version 4.8, gcc places functions with __attribute__ ((constructor)) in .init_array instead of .ctors by default. This broke firmware images built with gcc >= 4.8. Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-05fw: pirelli_dpl10: initialize address line 22 for flash accessSteve Markgraf1-0/+6
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-05fw: keypad driver overhaul, support for different keymapsSteve Markgraf8-6/+67
Now the Pirelli DP-L10 keymap is supported. Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-05fw: introduce per-board uart mappingSteve Markgraf8-41/+62
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-05fw: introduce with_irq parameter for board_init()Steve Markgraf7-38/+44
So far the loader-app used to do the init on its own, which brought a lot of problems for board- specific initialization. Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-01-02target: Add support for IQ swap when requiredSylvain Munaut4-0/+24
Operation in GSM850 band requires IQ swap because of the offset PLL used in the TRF causing spectrum reversal. Thanks to Dieter Spaar for noticing the issue and the original patch Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2013-01-02fw: Fix link scripts to represent reality more accuratelySylvain Munaut2-17/+16
Previously they were hacks to allow build ... Not needed now. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2012-04-28Charging: Add to Compal_E88, dummy for others.Christian Vogel1-0/+4
2012-02-12firmware: add missing includesSteve Markgraf3-0/+3
This fixes all 'implicit-function-declaration'-warnings. Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-02-12firmware/fb: add framebuffer driver for the Pirelli DP-L10 displaySteve Markgraf1-8/+30
This commit adds a combined driver for the Sunplus SPCA-552E Multimedia Controller and the Samsung S6B33B1X LCD controller. I have to thank Stephan Meier, who helped me to reverse-engineer this beast during 28c3. Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-02-04firmware: Increased data size for for ram linker scripts.Andreas Eversberg2-4/+4
This is required, since monitor app requires a litte more than 64k.
2012-02-03firmware: remove deprecated function calls of old display API, cosmetic changesSteve Markgraf1-3/+3
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-02-03firmware/fb: add framebuffer driver for J100i displaySteve Markgraf1-3/+3
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-02-03firmware/fb: add framebuffer driver for TD014 display (C139/C140)Steve Markgraf1-3/+3
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-02-03Calypso FB: C155 / SSD1783 Color SupportChristian Vogel1-0/+4
2012-02-03Calypso FB: C123 / ST7558 Black and White SupportChristian Vogel1-0/+3
2012-02-03Removing all traces of the old display drivers.Christian Vogel3-9/+0
2011-09-18fw: Add SE J100i-specific board init code and build images for itSteve Markgraf1-0/+140
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-09-17fw/compal/rffe: Add correct RFFE-configuration for Compal E86Steve Markgraf1-0/+106
The Compal E86 (C139/C140) has a different RFFE-configuration than the other Compal phones. The Motorola C139 schematics on this part look exactly the same, but in fact the board is missing a transistor (U16), and it uses TSPACT2 adittionally. This fixes the long-known problem with the C139/C140 phones of the rx-level being over -20dBm worse as compared to the E88/E89 phones, as well as the band selection on the antenna switch in TX-mode (which was completely wrong, but sort of worked anyway). Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-07-17[rf] Adding rffe_set_gain() and rffe_get_gain() to get/set computed gainAndreas Eversberg3-3/+18
rffe_compute_gain() is the new name for rffe_set_gain(). I needed to change this, to solve the name collision with the rffe_set_gain() function, which actually sets the absolute gain. rffe_get_gain() will now read the absolute gain which has been computed by rffe_compute_gain() or set by rffe_set_gain().
2011-05-30board: mtk: increase RAM sizes in linker scriptWolfram Sang1-2/+2
gcc3 (and some gcc4) produce code which does not fit into the 0x5000-sized RAM sections. Extend them to 0x6000 for now, so it will build correctly again. The created binary (gcc3) has been successfully tested on my G2. Signed-off-by: Wolfram Sang <wolfram@the-dreams.de>
2011-05-30mtk: uart: remove forgotten calypso-includeWolfram Sang1-2/+0
Dunno how that survived... Signed-off-by: Wolfram Sang <wolfram@the-dreams.de>
2011-05-29fw/rffe/compal: Add support for 850 bandSylvain Munaut1-2/+2
The HW switch supports it. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-05-29fw/rffe: Add function to query RF wiringSylvain Munaut3-0/+36
Depending on the chipset and the HW, not all ports are connected and we need to know what we can use when we have the choice ... Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2011-05-05target/boards: add infrastructure for loaders for Mediatek platformsWolfram Sang5-0/+779
We are just interested in the loaders here, no other applications needed. Split it from the compal-based phones. Add mt62xx as first user. Based on a patch by steve-m, but cleaned up and seperated from compal/calypso. Signed-off-by: Steve Markgraf <steve@steve-m.de> Signed-off-by: Wolfram Sang <wolfram@the-dreams.de>
2011-05-05uart.h: move header out of calypso-directoryWolfram Sang5-5/+5
Everything defined is a pretty generic interface and can be used by mediatek, too. Signed-off-by: Wolfram Sang <wolfram@the-dreams.de>
2011-04-26src: use new libosmogsm and include/osmocom/[gsm|core] path to headersPablo Neira Ayuso3-3/+3
This patch changes include paths to get osmocom-bb working with the current libosmocore tree. Among all these renames, you can notice several tweaks that I added on purpose, and that require some explanation, they are: * hexdump() in osmocon.c and osmoload.c has been renamed to avoid clashing with hexdump() defined in libosmocore. * gsmmap now depends on libosmogsm. Actually I had to cleanup Makefile.am because I was experiencing weird linking problems, probably due to a bug in the autotools. With the change included in this patch, I got it compiled and linked here correctly. This patch has been tested with the phone Motorola C123 and the following images files: * firmware/board/compal_e88/hello_world.compalram.bin * firmware/board/compal_e88/layer1.compalram.bin Using the osmocon, bcch_scan and mobile tools. Signed-off-by: Pablo Neira Ayuso <pablo@gnumonks.org>
2011-02-06target/fw: correct IO_CNTL_REG name and small cosmetic fixesSteve Markgraf5-17/+16
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-01-24firmware: Add support for the Pirelli DP-L10 triband GSM/Wifi phoneSteve Markgraf3-0/+310
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-01-24fw/board/gta0x: move rffe configuration to board/gta0xSteve Markgraf1-0/+0
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-01-24fw/makefile: enable generation of Compal E86 images (Motorola C139/C140)Steve Markgraf1-0/+143
This target now has its own init.c which correctly initializes the display and the keypad backlight Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-01-24fw/board/gta0x: remove unused define in RFFE configurationSteve Markgraf1-1/+0
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-01-24fw/board/gta0x: implement TX support for gta0x devicesSteve Markgraf1-2/+16
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2011-01-24target/fw: set the TRF6151 tsp IDs from the rffe initializationSteve Markgraf2-4/+14
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2010-09-26target/layer1: Implement host-driven Tx power controlSylvain Munaut2-0/+125
It's up to L23 to change the parameters using the appropriate L1CTL call. This is a mix between Harald's version and Dieter's version of the TX control code. Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2010-07-23[firmware] bring back gta0x imagesSteve Markgraf1-10/+14
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2010-07-20firmware: moved cfi_flash header to flash subdirectoryIngo Albrecht3-3/+3
2010-07-20firmware: e88 flash linkageIngo Albrecht1-0/+134
2010-07-20firmware: some documentation about memory maps and linkageIngo Albrecht3-0/+66
2010-07-20firmware: fixed linker script titleIngo Albrecht1-1/+1
2010-07-20firmware: new highram linkageIngo Albrecht1-0/+121
2010-07-20firmware: fixed linkage of ctors and dtors for ram imagesIngo Albrecht1-2/+2
2010-07-20firmware: fixed linkage of ctors and dtors for flash imagesIngo Albrecht1-4/+2