summaryrefslogtreecommitdiff
path: root/firmware
AgeCommit message (Collapse)Author
2018-06-12Agptek Rocker: Implement RTC supportMarcin Bukat
Add define in config file to enable RTC support in rockbox, Fix time_menu.c to include radio.h only when tuner is present Implement time setting function on linux (was empty stub) Not tested. Change-Id: I40e6c4a6c1b66ada9cf4e698e502e221d0fc44df
2018-06-12Agptek Rocker: Add bass, treble and balance controlsMarcin Bukat
Change-Id: Ib84620850bbdc81afbdfff1610a0be7eab4f0ac0
2018-06-12Agptek Rocker: Implement USB mass storage driverMarcin Bukat
Agptek uses composite android driver. Change-Id: Iece188ad640f3dfd24c171946c14da4c3516b6d5
2018-06-12Agptek Rocker: Make simulator compile and runMarcin Bukat
There are some things to fix left but at least it starts and you can navigate. Change-Id: I76084bfc50334deeb55f46a10e97b5d6639815ac
2018-06-12Agptek Rocker: Restrict root directory to SD onlyMarcin Bukat
Actual / of underlying linux OS should not be available to user. I am still not sure if implementation is correct. It doesn't perform any relative path sandboxing for example. Change-Id: Ic577a10f3947f6e950e2c4d03173f9f207395eb7
2018-06-12Agptek Rocker: Initial commitMarcin Bukat
Change-Id: I26b51106c7b1c36a603fba6d521e917d79b5a95b
2018-05-25Fuze PLUS Fix lcd_update_rect()William Wilgus
Lcd_update rect was hanging during horizontal screen update x = 238 and width = 2 which was within the bounds of the screen, this seems to be a weird corner case but more testing needs done. Update_rect now properly bounded between 0 - screen w/h --Cleaned up code Pixels in x are now multiples of 4. Datasheet states: ------------------------------------------------------------------------------------------- WORD_LENGTH=0 implies the input frame buffer is RGB 16 bits per pixel. DATA_FORMAT_16_BIT field indicates if the pixels are in RGB 555 or RGB 565 format. Limitations: — BYTE_PACKING_FORMAT [3:0] should be 0x3 or 0xC if there is only one pixel per word. — If there are two pixels per word, BYTE_PACKING_FORMAT [3:0] should be 0xF and H_COUNT will be restricted to be a multiple of 2 pixels. and WORD_LENGTH=3 indicates that the input frame-buffer is RGB 24 bits per pixel (RGB 888). If BYTE_PACKING_FORMAT [3:0] is 0x7, it indicates that there is only one pixel per 32-bit word and there is no restriction on H_COUNT. Limitations: — If BYTE_PACKING_FORMAT [3:0] is 0xF, it indicates that the pixels are packed, i.e. there are 4 pixels in 3 words or 12 bytes. In that case, H_COUNT must be a multiple of 4 pixels. ------------------------------------------------------------------------------------------- We are using 16 bits per pixel and byte_packing = 0xF but device crashes with multiple of 2 pixels Behaviour can be verified with plugin - oscilloscope, Horizontal mode device hangs as indicator reaches right of screen Change-Id: I1445f5334f4e7fe59304c65c76b47d0daa0614b2
2018-05-25Fix Remove lcd_scroll_worker from bootloader except remote displays/charcellWilliam Wilgus
This patch was supposed to only remove scroll worker from devices without remote displays, the build system said otherwise Change-Id: I240db89ee6b55818dbd2567338515b53ebe09300 fixed: conditional define
2018-05-23Remove lcd_scroll_worker from bootloader except remote displays and charcellWilliam Wilgus
Removes unneeded scrolling fuctionality from bootloaders Change-Id: Iebe308144cc11c9139399702e3dcd1a548cb9831
2018-05-23Don't enable full vuprintf file in bootloader. Saves ~2KB packed space when ↵Michael Giacomelli
patching clip+ OF. Change-Id: Ie03714778918bfb4a1087f60534d60ff349a8330
2018-04-20Add battery calibration for Sony NWZ A10.Michael Giacomelli
2018-04-03Zen XFi2: Enable PluginsSebastian Leonhardt
Keymaps aren't tested, there may be room for improvement. Change-Id: I6b8fe697899b241ea6e96f4fe446d88671ad7818
2018-01-14Gigabeat S: Remove unwanted partitions on the flyMichael Sevakis
Windows now ignores the hidden flag, so just nullify the entries to hide depending upon whether or not bootloader install mode is activated. Change-Id: I00d0797e40ea3b5f5d5d8e1243b50cfcdd029bb4
2018-01-13Add information for NWZ-S630 and NWZ-S730Amaury Pouly
Change-Id: I4c48c9a8d862eaf67ec27c1c13b9b7f1fb204fc0
2018-01-07sonynwz: Add NVP information for NWZ-A810Amaury Pouly
Change-Id: I37671ddf15ee1a4b469f97fe06ec86249ff9ce60
2017-12-24Revert "Support floating-point formatting"Franklin Wei
This reverts commit 01c6dcf6c7b9bb1ad2fa0450f99bacc5f3d3e04b. The hack isn't used in duke, so having it is redundant. Change-Id: Ieb36d75718e0c2d1305440d08021744625117886
2017-12-23fix redFranklin Wei
Change-Id: I20f1bd6f0208f6108d68fb59206b09dd9da4f1af
2017-12-23Port of Duke Nukem 3DFranklin Wei
This ports Fabien Sanglard's Chocolate Duke to run on a version of SDL for Rockbox. Change-Id: I8f2c4c78af19de10c1633ed7bb7a997b43256dd9
2017-12-23Support floating-point formattingFranklin Wei
This is just a quick and dirty way to get %f formatting to work for some games. It works. Change-Id: I75585e0c6a0f9d6db41a87b71ca405b067d8b85d
2017-12-23stdio compat layer for pluginsMarcin Bukat
This is attempt to simplify porting programs to rockbox (as plugins). Currently this compat layer implements: fopen(), fclose(), fflush(), fread(), fwrite(), fseek(), fseeko(), ftell(), ftello(), fgetc(), ungetc(), fputc(), fgets(), clearerr(), ferror(), feof(), fprintf() In order to use it you need to include in ported sources "lib/stdio_compat.h" Change-Id: I5add615dd19c5af9c767ccbfb1bd5a4e466741cb
2017-12-12Get voice event out of playback.cMichael Sevakis
Purpose: A step in removing all voice references from playback code and prelude to other changes. Change-Id: Ic3ad7f7a33b979693e18a3456ced37eb1d2281a4
2017-12-09Playback: Move internal track list onto bufferMichael Sevakis
Does away the statically-allocated track list which frees quite a fair amount of in-RAM size. There's no compile-time hard track limit. Recommended TODO (but not right away): Have data small enough use the handle structure as its buffer data area. Almost the entire handle structure is unused for simple allocations without any associated filesystem path. Change-Id: I74a4561e5a837e049811ac421722ec00dadc0d50
2017-11-28Add a small 32-byte write buffer to fdprintf.Michael Sevakis
Avoids a call to write() for every output character. It doesn't need to be very large to have a great effect on speed and realize most of the potential. Change-Id: I11820c1968ed7b20aa00e106a022c1b864b03d21
2017-11-21Convert i.MX31 and AMS target to use RTC interruptMichael Sevakis
Instead of checking ticks, set a sticky dirty flag that indicates that the RTC needs to be read. This gives a timely update and more accurate readout without actually reading the RTC until it changes. The implementation should atomically read the flag and clear it. Setting the flag would typically happen in an RTC tick ISR. Change-Id: I6fd325f22845029a485c502c884812d3676026ea
2017-11-21Undo hacks to meant to get around string formatting limitationsMichael Sevakis
The new vuprintf makes unnecessary workarounds due to formatting limitations. I checked grep output for whatever appeared to fit but it's possible I missed some instances because they weren't so obvious. Also, this means sound settings can dynamically work with any number of decimals rather than the current assumption of one or two. Add an ipow() function to help and take advantage of dynamic field width and precision. Consolidate string formatting of sound settings. Change-Id: I46caf534859dfd1916cd440cd25e5206b192fcd8
2017-11-21Implement a much more capable vuprintf()Michael Sevakis
New support as well as some buggy support fixed. Still no floating point support if ever that would be desired. Support (*): * Flags: '-', '+', ' ', '#', '0' * Width and precision: 'n', '.n', '*' and '.*' * Length modifiers: 'hh', 'h', 'j', 'l', 'll', 't', 'z' * Radix: 'c', 'd', 'i', 'n', 'o', 'p/P', 's', 'u', 'x/X' (*) Provision exists to switch lesser-used stuff on or off or when certain functionality isn't desired (bootloader?). The compulsory radixes are everything but 'o', 'n', 'p/P' and 'x/X' with length modifiers being optional. The default setup is 'l', 'z', 'c', 'd', 'p/P', 's', 'u', 'x/X'. * Move fdprintf() to its own file. It was in a strange place. * Make callers compatible and fix a couple snprintf() bugs while at it. Could smush it down in size but I'm gonna get over the binsize neurosis and just the let optimizer do its thing. Change-Id: Ibdc613a9b6775802c188b29b9dd46c568c94f7c3
2017-11-14nwz: fix tuner on older players (also fixes audio because Sony)Amaury Pouly
Change-Id: I1915bcfc27708d34a9dde81fce1e0bc0b01e1040
2017-11-12Imx233 Disable Autoslow only at maximum cpu frequencyWilliam Wilgus
At normal loads: - disabling auto slow boosts performance at the cost of runtime (~ -5%) - disabling at max cpu does not noticibly decrease runtime Change-Id: I5de80201c9a24ce556862151cbd6b21b01708b63
2017-11-07rolo.c: Change 'int errno' to 'int err'Michael Sevakis
It can cause issues if errno.h finds itself included there Change-Id: Id5d2be66cd3af4c2760e4a37d3332853e9b54f95
2017-11-06nwzlinux: add support for radioAmaury Pouly
None of the Sony up to A15 seem to support RDS (they use either Si4702 or Si4708), thus I did not add any code to support RDS. Change-Id: I64838993b9705b36b94665f8470c7a89c772c961
2017-11-04fuzep: fix rdsAmaury Pouly
Change-Id: I15900f638f8f45cb7035a0e7b1caecb62d1d70e8
2017-11-01nwztools: add NW-A46 to the databaseAmaury Pouly
Change-Id: I85dc2080e0be07ff689384c0445f4f1595baf4ac
2017-10-30AMS: Convert ascodec_endofch() to use bit mod function's return value.Michael Sevakis
It cleans up the code and it was the initial inspiring reason to change them. Change-Id: I299499117b8a12d93d13d6563683bab89ab80555
2017-10-30Make atomic bit modification functions return previous value.Michael Sevakis
Change-Id: I19a94cf946735e1d9e51c3207cd82198fd4dfc1a
2017-10-29Add boot from other volumes in bootloader on targets with HAVE_MULTIVOLUMEWilliam Wilgus
Adds the ability to load firmware from other drives on MULTIVOLUME targets Mihail Zenkov <mihail.zenkov@gmail.com> had posted a hard coded patch to allow this on several Sansa players, I made it more universal Redirect file rockbox_main.<name> should placed in root of drive you would like to be main, if this file empty or there a single slash '/' firmware will be loaded from /.rockbox in root of this drive If instead a /<*DIRECTORY*> is supplied in rockbox_main.<name> then firmware will be loaded from /<dir>/.rockbox/ NOTES* The directory can have multiple levels however.. leading slash MUST be included trailing slash can be omitted (eg. /test/.rockbox would be simply '/test' in the redirect file) Redirect file will not work on internal drive (whatever is default boot drive) Volume with the highest index containing redirect file will be loaded first. Firmware file is checked for boot data region, if missing, firmware image will not be loaded. On failure or if no redirect file is found load will fallback to internal drive Currently only Sansa Fuze+, Sansa Clip+, Sansa Clip Zip, Sansa Fuzev2, and Sansa Fuzev1 are implemented. Players (with HAVE_MULTIVOLUME) will need #define HAVE_BOOTDATA and #define BOOT_REDIR "rockbox_main.<name>" added to their config file boot_data is implemented in crt0.s file (See g#1552) ARM and IMX233 have aleady been implemented Once these conditions are met <HAVE_MULTIBOOT> will be defined by config.h Partitions on the drives are able to have a redirect as well. Change-Id: Iada3263919f6bcad7d0d7d8279b4239aafa07ee9
2017-10-29Add boot data to MOST AS3525 DevicesWilliam Wilgus
Adds boot data to as3525 devices Sansa C200v2 E200v2 Clip Clipv2 Clip+ ClipZip fuze, fuzev2 m200v4 Adds boot_data to features.txt default arm crt0.s now had boot data if HAVE_BOOTDATA is defined Change-Id: I614a556696540511a69fc12a4520b01c268bf8a9
2017-10-29Add boot data support to rockbox.William Wilgus
Bootdata is a special location in the Firmware marked by a magic header The bootloader is able to copy information to the firmware by locating this struct and passing data to the firmware when it is loaded but before it is actually executed Data is verified by a crc of the bootdata Change-Id: Ib3d78cc0c3a9d47d6fe73be4747a11b7ad6f0a9e
2017-10-28imx233: Implement mutex for cpu_boost_lock/unlockWilliam Wilgus
Playing AAC-HE files resulted in a race condition between audio/codec/buffering for set_cpu_frequency Change-Id: I35e1c1fd18db623e2990c305acdca03f57184d0d
2017-10-26Fix a few missed things in 16454efc (and hopefully clear the red).Michael Sevakis
Change-Id: I2ce88e4c41e6e08efbfbdf261122318dfb0f8b0f
2017-10-26Unify storage threads into oneMichael Sevakis
* Editing a bunch of drivers' thread routines in order to implement a new feature is tedious. * No matter the number of storage drivers, they share one thread. No extra threads needed for CONFIG_STORAGE_MULTI. * Each has an event callback called by the storage thread. * A default callback is provided to fake sleeping in order to trigger idle callbacks. It could also do other default processing. Changes to it will be part of driver code without editing each one. * Drivers may sleep and wake as they please as long as they give a low pulse on their storage bit to ask to go into sleep mode. Idle callback is called on its behalf and driver immediately put into sleep mode. * Drivers may indicate they are to continue receiving events in USB mode, otherwise they receve nothing until disconnect (they do receive SYS_USB_DISCONNECTED no matter what). * Rework a few things to keep the callback implementation sane and maintainable. ata.c was dreadful with all those bools; make it a state machine and easier to follow. Remove last_user_activity; it has no purpose that isn't served by keeping the disk active through last_disk_activity instead. * Even-out stack sizes partly because of a lack of a decent place to define them by driver or SoC or whatever; it doesn't seem too critical to do that anyway. Many are simply too large while at least one isn't really adequate. They may be individually overridden if necessary (figure out where). The thread uses the greatest size demanded. Newer file code is much more frugal with stack space. I barely see use crack 50% after idle callbacks (usually mid-40s). Card insert/eject doesn't demand much. * No forcing of idle callbacks. If it isn't necessary for one or more non-disk storage types, it really isn't any more necessary for disk storage. Besides, it makes the whole thing easier to implement. Change-Id: Id30c284d82a8af66e47f2cfe104c52cbd8aa7215
2017-10-24nwztools: add NW-A45Amaury Pouly
Change-Id: I75a7723498564ee73c3682391582e354ad672fd7
2017-10-24nwztools: add NW-ZX300AAmaury Pouly
Change-Id: I8b311ed6b48b92b9ecf4fb25c19119cfb2d5beb1
2017-10-17sonynwz: add NW-A47 to the database and regenerate nwz_db.{c,h}Amaury Pouly
Change-Id: I6331a48a4d336348e90a32cf151427b29eeedb2b
2017-10-07sonynwz: add api and debug entries for "acoustic" and "cue/rev" modeAmaury Pouly
We don't really know what those are supposed to do. They seem to change the volume curve but it is not very clear what is the intended purpose. Change-Id: I65f5d18aba139844c23df092277ba17ee8518f96
2017-10-07Add alsa wrappers to get control valuesAmaury Pouly
Change-Id: Ic870261888f35717bfa939029dcd64bfe1a3df33
2017-10-07nwztools/scsitools: fix databaseAmaury Pouly
I forgot to add the NW-ZX300 to its series Change-Id: I78fd9440492e1868b887f6a2e137d4d0c2ff199a
2017-10-07Add Sony NW-ZX300 model id to databaseAmaury Pouly
Change-Id: I8e7a14b86408c52cbd4a059e2db6a9c9d0966fc6
2017-10-06cleanup linux cpuinfo codeAmaury Pouly
sonynwz: quirk for cpufreq broken driver There was some redundancy between frequency_linux(cpu, true) and current_scaling_frequency(), also I see no reason to compile the cpuinfo stuff unconditionally and the scaling info only on DX since it was already printed some partial scaling info anyway. Thus compile all the code unconditionally and simplify the logic in the debug menu. Also avoid putting buffers of size PATH_MAX on stack since it can be quite big and we only requires 64 bytes for those paths. On Sony NWZ, the cpu driver reports frequency in MHz instead of kHz thus we need to make the cpuinfo code aware of that bug. Change-Id: I61af45ab5f179ecc909b4841b9137a915a60193a
2017-10-06sonynwz: add nvp nodes for NW-A40/ZX300, various fixes for toolsAmaury Pouly
We still miss the model IDS for those device so scsitool won't be able to recognize them automatically. Change-Id: I17ae0f0d95c011cea8e289def63c7673b6c4b667
2017-10-01sonynwzlinux: print debug info to log on crashAmaury Pouly
Print the crash info and dump the memory map from /proc/self/maps Change-Id: I99de32e5e6cca3bf1aca4fa253834ca4ad599fbe