summaryrefslogtreecommitdiffstats
path: root/firmware/target
AgeCommit message (Collapse)AuthorFilesLines
8 days[BugFix] Hosted incoming directory component leading slashes #2William Wilgus1-1/+1
Fix the rest.. Change-Id: Ie551772a073cba3eb6de176cd73a59d419057183
9 days[BugFix] Hosted incoming directory component leading slashesWilliam Wilgus1-1/+2
leading slashes in directory components to path_append makes a path with a leading slash absolute and discards the basepath Change-Id: I65253080c0ca4278b559894104ab25ab199a3100
9 daysRemove duplicate 'const' declaration in percent_to_volt_charge[]Solomon Peachy7-8/+8
Affetcs many hosted targets; probably was a typo that was copy-pasted everywhere else. Change-Id: Ifbb31e7ff1fce4874fa0f3c108db59f152e2f927
2024-04-01Sansa e200v2: bootloader: fit sizeRoman Artiukhin2-1/+15
Max allowed size: 120860 Old thumb build: 128494 New thumb build: 118514 (fits!) Disabled: Logo; alpha blending capabilities for bitmaps; Arm stack unwinder (backtrace); Related forum discussion: https://forums.rockbox.org/index.php/topic,54768.0.html Fixes FS#12380 Change-Id: I978720d795cb0ef5169103e467cf8386c21d8e93
2024-04-01use path_append for setting directories is several settingsWilliam Wilgus2-4/+5
sprintf, strcpy, memccpy can all just go thru path_append with the added benefit of some path sanitizing too Change-Id: I33510b56a364b8b3a0b06f2ff14b76491f6e3870
2024-03-31multiboot: Refactor boot data validation, add version numbersAidan MacDonald1-1/+1
Instead of verifying the CRC before every access of the boot data, verify the CRC once at startup and set a flag to indicate the boot data is valid. Also add a framework to support multiple boot protocol versions. Firmware declares the maximum supported protocol version using a version byte in the boot data header. The bootloader chooses the highest version supported by it and the firmware when deciding what boot protocol to use. Change-Id: I810194625dc0833f026d2a23b8d64ed467fa6aca
2024-03-31clipzip clean up lcd driver a bitWilliam Wilgus1-58/+36
consolidate some of the lcd cmd / data calls Change-Id: I2e2ccc7833806f7bf931138a04c48aa55ef4a13d
2024-03-23[BugFix] Multiboot Database duplicate filesWilliam Wilgus1-0/+5
When the sd card is mounted into the root namespace the database picks up files through both paths previously we hid the mounted drive but this causes issues with users databases when the drive letter changes Adds a way to keep track of volumes mounted in the root namespace Hides the enumerated volume in root Database: we can just parse the root directory ('/') and get to any mounted volume but we can also enumerate a volume in the root directory when this occurs it leads to multiple entries since the files can be reached through multiple paths ex, /Foo could also be /SD1/Foo Instead we will attempt to rewrite the root with any non-hidden volumes failing that just leave the paths alone Change-Id: I7bdba8cfaf63902d2a3852d28484bcf8ca317ebd
2024-01-02ErosQ Native ES9018K2M: Add digital filters capabilityDana Conrad1-1/+9
Setting not yet hidden for older hardware revision. Change-Id: Iaaa5727e63c38de578a6bbc73498ae1073180e65
2024-01-02ErosQ New Revision HW volumeDana Conrad5-9/+94
Add HW volume control via ES9018K2M, and reorganize eros_qn_codec.c/.h, audiohw-erosqnative.c. This automatically detects the presence of the new DAC and uses its hardware volume scaling. If not present, use same SWVOL we have been using so far. Add debug menu readout of SWVOL/I2C result. Break out es9018k2m stuff into its own file so that maybe it can be useful to other ports. Note that we may need to get smarter about detecting the DAC type if/when another model emerges. Change-Id: I586a1cf7f150dd6b4e221157859825952840af56
2023-11-30x1000: Support GD5F1GQ5xExx NAND chipsAidan MacDonald1-0/+3
This is basically identical to the GD5F1GQ4xExx series, except for the addition of double-data-rate transfer modes (which are useless for us). These devices may be found in some Surfans F20s. Change-Id: I2c04c86bd88f2e27d813de7fe01712ce365ba077
2023-10-06ipod: Support IAP remote MENU/SELECT/UP/DOWN keys in MODE2Solomon Peachy3-6/+21
Only the primary contexts (standard, wps, quckscreen, tree, radio) handle the new keys so far. Todo contexts: Settings, keyboard, pitchscreen, bookmark, & recording. Available docs for MODE4 don't list anything other than playback controls, so it's not clear if there is a path forward here. Change-Id: I91908092f75d96813e2e155e447129ba15f58051
2023-05-25dbtool: More fixes to dbtool operationSolomon Peachy1-1/+5
Now properly treats current directory as "/" Change-Id: I54357a65f2fda7d2cfb56ff18a044ae10b87bbce
2023-05-25fix yellow introduced in previous commitSolomon Peachy1-0/+1
Change-Id: I794f6423853cf5d2c368de55f4be2ce54e3076c9
2023-05-25hosted: Fix the disk storage display in the rockbox info pageSolomon Peachy1-1/+1
This was introduced by adding multivolume support to the hibyplayer units, and might affect other things, if so a more general fix might be needed. Change-Id: Ia9c1b6b1eb50e67221ce440d30d6770daaeac74e
2023-04-02[bugfix] x1000: Wait for FIFO to be empty rather than flushingDana Conrad1-2/+17
When data is not in packed-16-bit mode, flushing the fifo may result in swapping left and right channels if there happens to be an odd number of entries in the FIFO. This is especially likely when switching sample frequencies for some reason. When stopping PCM DMA, disable DMA and Underrun Interrupts and then wait for FIFO to be empty before stopping AIC's playback. Change-Id: I45b6b022c9e3889627842663cd9b7d2e0affb7c6
2023-03-23Fix unified syntax in ARM inline assemblyAidan MacDonald2-2/+4
GCC 4.9 always emits assembly with divided syntax. Setting unified syntax in inline assembly causes the assembler to complain about GCC's generated code, because the directive extends past the scope of the inline asm. Fix this by setting divided mode at the end of the inline assembly block. The assembler directives are hidden behind macros because later versions of GCC won't need this workaround: they can be told to use the unified syntax with -masm-syntax-unified. Change-Id: Ic09e729e5bbb6fd44d08dac348daf6f55c75d7d8
2023-03-23Using ARM Unified Assembler LanguageChris Chua4-34/+36
Change-Id: Iae32a8ba8eff6087330e458fafc912a12fee4509
2023-01-22ErosQNative: Enable Line Out capabilities on new revision playersDana Conrad3-33/+35
The newer players have some changed hardware, but most importantly the line out now appears to be routed through the stereo switch instead of being hardwired directly off the DAC. Disable muting the headphone amp, enable switching the stereo switch, and rename some of the GPIOs to be more generic since the DAC, headphone amp, and stereo switch all appear to have changed. Change-Id: I220fe5e37bcbcd959b544183e1fcf70673a83c13
2023-01-13fix red from #641e91aa2fSolomon Peachy1-1/+1
Change-Id: I7e648a7bdf1d706258afd49c1edd63655b2d2830
2023-01-13jz47xx: Add support for INIT regionSolomon Peachy4-7/+40
Change-Id: I100cd661e9b1225167463542800c6aafbc3c17b3
2023-01-13buflib: Refactor various debugging featuresAidan MacDonald1-1/+1
Gate buflib_get_data() checking, debug printing, and buflib integrity checks behind individual defines in buflib.h, and turn them all off by default. If needed, they can be turned on manually when compiling. The buflib debug menu is only available if debug printing is enabled, so after this commit it will no longer be included in normal builds -- it isn't very useful to end users. Change-Id: Iab25b7852bc7c5592ce04c9c45762046a87d5bc3
2023-01-13Remove buflib allocation names, part twoAidan MacDonald3-3/+3
Remove allocation names from the buflib API and fix up all callers. Change-Id: I3df922e258d5f0d711d70e72b56b4ed634fb0f5a
2023-01-12Add INIT_ATTR to i2c_init()Aidan MacDonald5-5/+5
It's usually only called from init() in main.c, so this is safe. There is one more call in system-dm320.c from system_init(), but that's also "safe". I don't know if it's okay to call i2c_init() twice, but presumably it works... Change-Id: I9c1cd918d162d9955f7cf03209e836cbd5e30c57
2023-01-12Add INIT_ATTR to system_init()Aidan MacDonald1-1/+1
On single-core targets, system_init() is only called from init() in main.c, which is also INIT_ATTR, so this is safe. Multi-core targets additionally call system_init() from cop_main(), which isn't marked INIT_ATTR. I'm fairly certain that it would be safe to add INIT_ATTR to cop_main() with a bit of refactoring, but I don't have a way of testing it. So for now, leave INIT_ATTR off for multi-core targets. Change-Id: I8fe4358f975880ca317d46bda01d7d9db529d3e3
2022-12-31x1000: Add INIT_ATTR to various target specific functionsAidan MacDonald6-20/+19
Add INIT_ATTR to some low-hanging fruit in the X1000 code: GPIO init, GPIO initial state tables, clock init, and DMA init. Change-Id: Ia02b20945da1bbed103e2e01eaf60553eb5f72d4
2022-12-31x1000: Enable support for INIT_ATTRAidan MacDonald3-0/+32
Enable INIT_ATTR support in config.h. Load init code to the codec buffer, following the convention used by other targets that support INIT_ATTR. Change-Id: I8935fbaa100f0013bb328d71c4a49ec2ffafd003
2022-12-19jx47xx: Rename crt0 'init' sections to 'startup'Solomon Peachy2-3/+7
Mirrors the change made to the x1000 target Change-Id: I69663245b1d05c001500240af33164f222e70e90
2022-12-18x1000: Rename crt0 .init sections to .startupAidan MacDonald4-5/+9
Avoid startup code clashing with the .init section, which is by convention used for INIT_ATTR code that can be discarded after app initialization. Change-Id: Id59b7618ef41e65c33fc0f133644e07555a913eb
2022-12-18x1000: Simplify app linker scriptAidan MacDonald1-5/+13
Get the linker to automatically assign load addresses for the .iram and .tcsm sections. Taken from the i.MX31 linker script. Change-Id: Ic03d577d8690c777726daf373a3289316639bfb9
2022-12-18x1000: Add missing LCD activation event on LCD enableAidan MacDonald1-0/+3
This event is needed to trigger a GUI redraw when the backlight turns on. Change-Id: Ib2300dfd1aaeacd84c6df8151072292409357212
2022-12-07bugfix: for Eros Q / Surfans F20, when the scroll wheel is moved, in ↵Richard Goedeken1-0/+2
addition to resetting the power-off timer, we also need to reset the backlight timer and turn it on in case it's currently off. Change-Id: I73b463e74727a2d00b0d4ce599f0cc611fb98685
2022-12-04bugfix: for ErosQ/SurfansF20, reset poweroff timer when scroll wheel is ↵Richard Goedeken1-0/+2
moved so that we dont blank the screen while the user is scrolling through a list Change-Id: Ifdce301e2d75e3f6f54fba5b3eef15b2141cb954
2022-12-01x1000: Add support for DS35x1GAxxx flash chipsAidan MacDonald1-0/+4
This flash chip is found on some Surfans F20 units. For our purposes it's the same as the GD5F1GA4xExx so just #define an alias instead of adding a whole new chip struct. Change-Id: I2f4c4fbf1faf3a0c7a1503534430afacbddc426e
2022-10-28x1000: Pass CPM scratch register to the bootloaderAidan MacDonald1-2/+5
Change-Id: Iaef4606dc6f3cb9904d87ee92db69fb9ef48bcb0
2022-10-28x1000: Allow SPL and bootloader to pass arguments to next stageAidan MacDonald1-0/+13
Change-Id: I61591d704c14acf06cd192a6e9355f0a9c25d0d8
2022-10-28x1000: Add a basic sanity check for bootloader backupsAidan MacDonald2-0/+17
The bootloader backup is intentionally simple, but it's a little *too* simple. Add a sanity check to make sure what we're backing up or restoring contains the first 8 bytes of the SPL header. This isn't going to catch all possible problems, but it'll stop obviously non-functional backups from being restored. Change-Id: I6e80351aeb96c467f0514bd0ecd77d94ff72a8f8
2022-10-17mips: consolidate exception handling, add exception backtracesAidan MacDonald14-461/+419
Merge the x1000 and jz47xx exception handling code since they use the same exception vectors and handlers. The interrupt handler is now called from the common exception vector, but remains separate for each board since they have different IRQ layouts. The new exception handler can provide a stack traceback from the interrupted code, rather than the (uninteresting) caller traceback displayed by panicf. This allows you to see what led up to a null pointer deref or division by zero, which makes it _much_ easier to track down errors that occur in common leaf functions like strcmp. Change-Id: I59a0ebb5e40fcb36505c3bfdb47f8cac2f9936b1
2022-10-15move buflib_free invalid handle check to the functionWilliam Wilgus1-2/+1
allow buflib_free to check for invalid or already freed handles within the function -- remove all the invalid handle guards thru core_free Change-Id: Ibdcbc82760fc93b674c42283fca420d94907df8e
2022-10-13Revert "Remove YUV blitting functions and LCD modes"Solomon Peachy43-1/+8436
This reverts commit fe6aa21e9eb88f49005863efd2003d0982920048. Change-Id: I8bb1e5d6c52ed1478002d2140ef494ec5d62b8e3
2022-10-10mips: Work around an issue with GCC 8.Solomon Peachy1-1/+5
Change-Id: I9867674978ab6d4c99f5fa67c93e5b830531aefd
2022-10-03Remove YUV blitting functions and LCD modesAidan MacDonald43-8436/+1
None of this is needed now that mpegplayer is gone. Change-Id: I360366db8513e4d988021e8d7b7d8eb09930efb8
2022-09-30Define LCD_STRIDEFORMAT unconditionallyAidan MacDonald2-5/+5
Instead of putting "#ifdef LCD_STRIDEFORMAT" at every usage of the macro it's simpler to have config.h define LCD_STRIDEFORMAT to the default of horizontal stride when the target leaves it unspecified. Change-Id: Ib187012aad65ac678dbd837b1464a83bad722411
2022-09-17x1000: add support for GD5F1GQ4xExx NAND flashAidan MacDonald1-0/+24
This is another chip used in newer Surfans F20 units. Like the Winbond chip, it's a 1-gigabit chip with on-die ECC. Notably it has an expanded 128-byte OOB area that is only accessible when on-die ECC is disabled. Change-Id: I2203918a15c914097f5a6bbe4afa2d3a60dc67f7
2022-09-17x1000: add support for the W25N01GVxx NAND flashAidan MacDonald2-0/+34
This chip is apparently used in some Surfans F20 units, and has the same geometry as the ATO25D1GA. It has an on-die ECC engine. Change-Id: I4d37a2455620ce43cec0a9bcbb32c776d1a8eba1
2022-09-17x1000: refactor NAND chip identificationAidan MacDonald2-60/+69
Decouple chip IDs from chips, and allow the chip ID table to list which read ID method should be used. Use a safe controller setup during identification instead of using the first chip's parameters. Change-Id: Ia725959c31b2838f4a3a30e5bb7fa6652ef377ed
2022-07-21x1000: simplify NAND command macrosAidan MacDonald2-15/+17
There is actually no need to parameterize most commands with row or column cycles, usually the opcode and row/column address width are linked. When this is not the case we can use raw SFC commands or define new macros. Change-Id: I22459d732dc01012e6a8ae026c4fb85495d372b4
2022-07-21x1000: move NAND commands to chip dataAidan MacDonald2-35/+18
Using predefined commands is too inflexible so allow the chip data to specify I/O commands directly. Change-Id: Ie8f943914da4b8299678a59b1063c4c6d226e83e
2022-07-19x1000: add NAND OTP access switchAidan MacDonald2-0/+9
Provide a way to toggle the OTP bit for reading OTP pages, mostly useful for debug purposes. Change-Id: Iec697de2dc188588c43d9ed466201971cac8f30c
2022-07-10Fix red in commit 131566b8f8Aidan MacDonald1-2/+2
Use per-function sections to avoid linking in x1000_boot_linux() on normal builds, which prevents link errors due to referencing a non-existent usb_close(). Change-Id: Ied7b233603c49fc856db8445e368675b181e2f1f