summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm
AgeCommit message (Collapse)AuthorFilesLines
2020-07-28Fix IPod 3G USB Recognition ProblemMichaelRey1-5/+11
Allow IPod 3rd generation to recognize when USB is connected and reboot into disk mode. This problem is listed at the bottom of the Ipod status page https://www.rockbox.org/wiki/IpodStatus Change-Id: I8f32afd065d3a91cddc56fe63454bd082bfa29b9
2020-07-28FS#8778: Fix iPod 1G scroll wheel not being enabled (Mark Fawcus and Rune Pade)Solomon Peachy3-5/+5
They confirmed it worked in the original ticket. Change-Id: I949f119554a1e8bbdd0e4160c104cbc4aa2bd17d
2020-07-27imx233: rtc: Initialize PERSISTENT0 registerMoshe Piekarski1-0/+1
Prevents the rtc from breaking on power removal Change-Id: I1e434285ccc27d864d2fd9454993d02cae32711d
2020-07-24Fix two variable-set-but-not-used warningsSolomon Peachy1-0/+4
(found using -Os with gcc494 on the nano2g) Change-Id: If0deee3e3cde50e6bf5aff595bebc0f134dcc393
2020-07-15imx233: rtc: Explicitly clear the soft reset bit when initializingSolomon Peachy1-0/+2
If we come up and the RTC is in a reset state, we need to release that before trying to initialze anything else. (See IMX23RM 23.8.1 and 39.3.10) Change-Id: I1820ab771ba81f7d428d07040b7d188d9f688127
2020-07-15rk27xx: rename 'start' to '__start'Solomon Peachy3-5/+5
Change-Id: I3c5bbbc952222e840e82171431ba996a6a5d298b
2020-07-09FS#12082: Add Tuner support to the Nano2G (Bertrik Sikken)Solomon Peachy1-1/+1
(The serial portions of the patch were already present, this just pulls in the tuner enablements) Change-Id: I8090e318f34835769ac0a56d7a48b9250631eb4f
2020-07-05portalplayer: Fix three set-but-not-used warnings.Solomon Peachy2-1/+7
(They show up when building with gcc494) Change-Id: Id5e2bccf18114ed78a557ac1b369f46b4f07d042
2020-07-05imx31: Fix regression in bootloader caused by cd9906Solomon Peachy1-1/+1
Change-Id: I1b561c9136a727f49e02e53798e46ef9197a3958
2020-07-05imx233: Fix bootloader link regression caused by cd9906Solomon Peachy1-2/+2
Change-Id: I6341069aa3855a8a3ea9ed021c27aaa742cab698
2020-07-05arm: Fix PortalPlayer linker scripts with binutils 2.21+Solomon Peachy5-7/+7
For reasons that are still unclear, the 'ncbss' region was overlapping the "audiobuffer" when linked with 2.21, but okay with 2.20. Fixed it by making the audiobuffer explcitly use the current position instead of relying on it being implicit. With this change, portalplayer-based targets generate working binaries when built with binutils 2.21 or newer. This bug also theoretically affects imx233/imx31 targets as they also have NOCACHE_BASE games in their linker scripts, but I lack access to one to test with. Change-Id: Idb38ab20f03599b9ed3d4bc0eafe519f38677438
2020-05-23Sansa AMS add Minimum Clocks for I2c IDE SDSLOT SSPWilliam Wilgus1-7/+28
This patch doesn't implement them just defines them Change-Id: I1762152c3c683cc68bcedac5923c536316441613
2020-05-23Sansa AMS set I2C properlyWilliam Wilgus1-5/+18
Change-Id: I95c93933487c4260a7aa43ebed273ab2c05e55c1
2020-05-23Sansa Clip+ set lcd SSP properlyWilliam Wilgus1-1/+15
Change-Id: I152f038954ac1649b30dd17c3e6332e4d756502c
2020-05-23Sansa ClipZip set lcd SSP properlyWilliam Wilgus1-1/+16
Change-Id: Ice62dfa7f266ee4369793777a39e675bceae1831
2020-04-17ClipZip LCD Corruption Backlight fixWilliam Wilgus1-3/+5
User reported LCD screen corruption via forum in 3.14 and 3.15 turning backlight off and back on seems to fix the issue http://forums.rockbox.org/index.php/topic,53192.0.html Change-Id: Id0b34d2f9b77e79ab0ecabace331f0b203184724
2020-04-13obsolete: Nuke the very-incomplete Archos AV300 targetSolomon Peachy4-208/+0
It's even missing a config header file. Just shoot it in the head. Change-Id: I4c5cdb4fb63361a4e4fc893e93d73d3890fe17df
2020-04-04pp502x: Don't fill the cache starting from address 0x0Solomon Peachy1-1/+5
The pp502x cache init code tries to flush the cache by reading a block of DRAM. Change the starting point from 0x0 to 0x1000 so the compiler doesn't helpfully insert an undefined instruction to deliberately crash the target. (This behavior is intentional on the part of GCC, and was triggered by using -Os with my experimental 4.9.4 toolchain) Change-Id: I2d2719615a1164a035f3dac8a56dd3737bbab1d5
2019-12-30Fix As3525 SD unused parameter warningWilliam Wilgus1-2/+3
Change-Id: I0a4bbcf94e9cadf43a822c1cb2f2dad3bd4f7588
2019-12-31Sansa AS3525V1 Sd Interface implement powersave modeWilliam Wilgus1-30/+65
This patch cleans up the sd driver for the V1 sansas powersave implemented for the sd interface Change-Id: I3d864f7aa304cf792cc65fa4ff06c1e52fbed329
2019-10-13iPod Classic: enable IRAM1 in bootloaderFranklin Wei1-0/+6
7442742 ("iPod Classic: disable IRAM1") was causing subsequent ipod6g bootloader builds to result in a completely black screen upon installation, with recovery only possible with a reflash through DFU mode. IRAM1 is re-enabled for bootloader only. Change-Id: I92d489c91f81cad55d66a8647c1e61a45f468770
2019-02-07YH820: implement LCD sleepSebastian Leonhardt2-4/+42
use sleep setting to keep transflective LCD active without backlight Change-Id: Iccd97e956d5e4a2a22abc90d15e9123782126ecb
2019-01-02Add Xuelin iHIFI 770/770C/800 supportSolomon Peachy17-502/+1662
Taken from the xvortex fork (Roman Stolyarov) Ported, rebased, and cleaned up by myself. Change-Id: I7b2bca2d29502f2e4544e42f3d122786dd4b7978
2018-07-30iPod Classic: disable IRAM1Cástor Muñoz3-3/+4
On Classic, IRAM1 (second 128Kb of a total of 256KB available IRAM) is slower than DRAM. Codecs that actually are using regions of IRAM1 runs faster when DRAM is used, so IRAM1 is disabled and only IRAM0 remains enabled: 48KB for core and 80KB for codecs/plugins. The next test_codec results shows how decode time is decreased: file boosted unboosted *.ra ~1.5% ~0.5% *.mpc ~21% ~4.5% *.ogg ~0.5% ~0% nero_he*.m4a ~8% ~1% nero*.m4a ~25% ~7% wmapro*.wma ~4.5% ~0% wma*.wma ~25% ~7% In addition there is a small power save when IRAM1 HW is disabled. Change-Id: I102adee11458e82037f23076d5d5956e23235de8
2018-07-28Revert "As3525 v1/v2 Add power savings menu"William Wilgus8-309/+51
This reverts commit 6f0320a9535bc1aa81d83fa879ac14d5ee603658. Change-Id: I7425d422a4a0af7a49e9194cfe0bb55d431bc401
2018-07-28Revert "Fix Red on PowerSave in Simulator"William Wilgus1-2/+0
This reverts commit 568b81202ebd24a3f7e9efe0558b5f6beed05b44. Change-Id: I2af42cd53d0ce490bf96c68288e9fbde034c0069
2018-07-28Slightly raise voltage on FuzeV2 devices.Michael Giacomelli1-0/+3
Some devices seem to have trouble accessing the storage at lower voltages.
2018-07-28Fix Red on PowerSave in SimulatorWilliam Wilgus1-0/+2
Change-Id: Ic5d9de230efceabc2c428e5c78fa6596a5a34840
2018-07-27As3525 v1/v2 Add power savings menuWilliam Wilgus8-51/+309
Allow user to select cpu undervolt There have been quite a few issues across the SANSA AMS line related to CPU undervolting while most players show greatly increased runtime some crash. Rather than constanly upping the voltage we now have a setting with a safe value for all players and the option for lower voltages I plan to add a few other options here later such as disk timings and maybe some other clocks/experimental settings Added: Disk Low speed option for AS3525v2 devices cuts frequency to 12 MHz from 24 MHz Added: Disk Low speed option for AS3525v1 devices cuts frequency to 15.5 MHz from 31 MHz Added: I2c Low Speed AS3525 devices, should be bigger improvement for v1 devices Fixed: Debug menu for AS3525v2 No SDSLOT frequency, Showed IDE freq though it is unused Added: DBOP and SSP underclocking affects display on v1/v2 respectively Fixed: debug menu now has SSP frequency, and SSP_CPSR Update: made settings menu more generic Update: cleaned up code Added: Clip v1 & Fuze v1 didn't have HAVE_ADJUSTABLE_CPU_VOLTAGE. not sure why but, waiting on testing to confirm Added: C200v2 and E200v2 devices and HAVE_ADJUSTABLE_CPU_VOLTAGE. Fixed: v1 devices don't like display timing set lower (dbop) v1 devices don't have a divider set for ssp (causes divide by 0) Fixed: ClipZip display lags with Max SSP divider changed from 0xFE to 0x32 Fixed: v1 devices didn't work properly with highspeed sd cards Added code from http://gerrit.rockbox.org/r/#/c/1704/ Added powersave and IDE interface enable/disable Added: V2 devices now have powersave enabled on sd interface Update: cleaned up code, lang defines, added manual entries Update ssp clock mechanism added calculated ssp divider to clipzip Update turn display clock off when clip+ turns off display Fixed: clipzip wrong register for SSP clock Change-Id: I04137682243be92f0f8d8bf1cfa54fbb1965559b TODO: add other players?
2018-07-26Optimize lcd-ssd1303 driver (clip series)William Wilgus5-82/+228
Saves 100+ bytes (50 of it in iram), saves a bit of power Internal LCD clock decreased but with added efficiency of drawing routines loses only around 2 Hz on the scanrate (~75Hz) while fps is slightly increased Column offsets are now calculated outside the loops saving a few instructions Passing a LCD_NOP command after lcd_update turns off Data/Cmd# gpio saving a bit more power Added a function lcd_write_cmd_triple() that allows 3 commands to be sent at once when enabled with LCD_USE_FIFO_FOR_COMMANDS it sends them back to back without checking FIFO status in between or sending to thhe D/C# Gpio. Makes an assumption about the FIFO being large enough to accept 3 commands after being emptied which should be the case on the clipv1, clipv2, clipplus. I have only enabled it for the clip plus as thats the only device I have to test it on. On clip+ the SSP clock is now turned off when screen is off Change-Id: Ib5fd24697bfe4ac8b8ee017361e789e4a7910d21
2018-07-26Update AS3525 v1/v2 debug menu; add scrolling and missing frequenciesWilliam Wilgus1-192/+188
On the clip zip most debug menu items get cut off and there is no way to read most of the debug menu items. This patch makes the menu button scroll the text 1 character to the right with each press and the center (select) button re-aligns the text Adds SSP frequency(v2) & register Adds SD slot frequency(v2) Change-Id: If4705d6790e25061931ca654062e22fc2e0a6f16
2018-07-25AMS v1/v2: Fix I2C2_CSPR debug menu entryWilliam Wilgus3-20/+32
I2c controller needs to be enabled in order to read CSPR0, CSPR1 registers function sets CGU_I2C_AUDIO_MASTER_CLOCK_ENABLE and only clears if it wasn't previously enabled Use divider set in register to calculate frequency rather than hard coded divider Change-Id: I54ecc0c1859e906c00f4c2ae8ae2424a4619df98
2018-07-25CLIPPLUS -- Remove un-needed handling for power button button ↵William Wilgus1-7/+9
button_read_device() switching GPIOB in order to read GPIOD96) (power button) is apparently unneeded Change-Id: I1fbf13f67f938806086754cdd5e389ef6746ae5f
2018-07-04AMS v1/v2: Remove sd_enabled as an externally-visible variable.Michael Sevakis4-42/+29
Also removes the sd_enable() function call. It was only used in the debug screen on AMSv1 and not used at all on AMS v2. For v1,obtain debug info in a struture passed to a dedicated debug info function so that enabling and disabling the controller isn't racy. Change-Id: I7c44693bc2df5a1f16168b05b3abfe622f9584ce
2018-05-25Fuze PLUS Fix lcd_update_rect()William Wilgus1-6/+21
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-04-03Zen XFi2: Enable PluginsSebastian Leonhardt1-2/+0
Keymaps aren't tested, there may be room for improvement. Change-Id: I6b8fe697899b241ea6e96f4fe446d88671ad7818
2018-01-14Gigabeat S: Remove unwanted partitions on the flyMichael Sevakis1-16/+18
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
2017-11-21Convert i.MX31 and AMS target to use RTC interruptMichael Sevakis4-9/+84
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-21Implement a much more capable vuprintf()Michael Sevakis1-1/+1
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-12Imx233 Disable Autoslow only at maximum cpu frequencyWilliam Wilgus1-2/+2
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-04fuzep: fix rdsAmaury Pouly1-3/+10
Change-Id: I15900f638f8f45cb7035a0e7b1caecb62d1d70e8
2017-10-30AMS: Convert ascodec_endofch() to use bit mod function's return value.Michael Sevakis1-8/+1
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 Sevakis2-48/+60
Change-Id: I19a94cf946735e1d9e51c3207cd82198fd4dfc1a
2017-10-29Add boot data to MOST AS3525 DevicesWilliam Wilgus1-1/+10
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 Wilgus1-0/+9
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 Wilgus2-0/+34
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 Sevakis1-0/+27
Change-Id: I2ce88e4c41e6e08efbfbdf261122318dfb0f8b0f
2017-10-26Unify storage threads into oneMichael Sevakis16-1028/+623
* 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-09-17Don't call touchscreen functions when we don't have a touchscreenAmaury Pouly1-0/+12
Change-Id: Ia8c05f45c289729031d6333445d932bb5ac242ca
2017-09-17imx233: make debug usable with a touchscreenAmaury Pouly1-0/+7
Change-Id: I08a3302024646c0d915aa34855970678730eb44c