Commit graph

38944 commits

Author SHA1 Message Date
Aidan MacDonald
f6dfa5144d stm32h743: break out SAI and DMA interrupt handlers
Change-Id: I6a8eba6211eab34915d99000426aacd6ea396769
2026-02-22 12:45:56 +00:00
Aidan MacDonald
0cc6f070dd stm32h743: add DMAMUX registers and request IDs
Change-Id: I3819c6535a224d73cfa98b1d8ba78c6927b55c9e
2026-02-22 12:45:56 +00:00
Aidan MacDonald
90bd32dc38 stm32h743: add DMA1/2 registers
Change-Id: I24487fd7a889ea7ae3627ecf1c800c8edffaea42
2026-02-22 12:45:56 +00:00
Aidan MacDonald
0d7f240d81 stm32h743: add SAI registers
Change-Id: I2d669005372daae537c41df68a32043ff96b8e76
2026-02-22 12:45:56 +00:00
Christian Soffke
ac3999d5ab plugins: stopwatch: fix missing or wrong SBS title
Change-Id: Iecdb7a3a142ee3754f25d374e71dae62dc4d5a17
2026-02-21 12:34:41 -05:00
Christian Soffke
a70436fe8e plugins: lrcplayer: fix non-UI font info vp w/ SBS enabled
With the statusbar enabled, the UI viewport's
font may be different from the UI font, which
breaks stringsize calculations in LRC Player
that are currently all based on the UI font.

Change-Id: Ib53de62134b250fa50353074959843278f38478f
2026-02-21 14:34:45 +01:00
Aidan MacDonald
59cc0282ec plugins: remove never-released beatbox plugin
It was added back in 2007 (commit 8b6d28790e) apparently
in a half-baked state, and has never been enabled since.

Change-Id: I728b5730fe05262bae292cd7fcdcfe4b53c4b315
2026-02-19 19:27:17 -05:00
Lourenço Soares
0b3a5ab1e6 plugin lrcplayer: Added manual scrolling feature
lrcplayer currently automatically scrolls the lyrics for you, as it assumes that there is sync information in the lyrics. In the case where there aren't (like for ID3V2 USLT tags), the plugin will automatically assume timestamps and will scroll automatically.
This commit adds an option in the Display Menu to allow automatic scrolling to be disabled. When disabled, you can scroll the lyrics using the volume keys (like you would on the iPod's OS).

Change-Id: I87ef27fd2b84c97374bdfd0e47f4c00ddb4bc85e
2026-02-19 16:10:14 -05:00
Aidan MacDonald
8013aa2370 audio: remove pcm_sw_volume include from sound.c
Drop the include because nothing here needs it.

Change-Id: Iad7ada127589c649359b3eea8bf2a21f5f00a344
2026-02-19 14:16:26 -05:00
Roman Artiukhin
3373ed6744 playback: fix single mode handling with auto frequency switch enabled
Fix single mode fails to pause between tracks with different sample rates with auto frequency switch enabled.

Fixup for c199d9a3

Change-Id: I51bbd33a15be16b711b3a8e46c0cab1b15a93705
2026-02-19 11:59:10 -05:00
Roman Artiukhin
5cf3c6bf9a Add ability to specify autostart plugin path and argument
Extend AUTOROCK define functionality to allow specifying both the
autostart plugin path and its argument.

Example:
#define AUTOROCK VIEWERS_DATA_DIR "/imageviewer.rock"
#define AUTOROCK_ARG "/jpegs/sample.jpg"

Change-Id: Icc41bceac676e8db17d3a63baefdf96e3023c181
2026-02-19 10:28:35 -05:00
Solomon Peachy
6f302083b5 cleanup: Get rid of erroneous execututable bit on various source files
Change-Id: I6382ba56dc6d99189c8647b010208c33fc2da7ca
2026-02-19 07:54:35 -05:00
Aidan MacDonald
af9a9bd9d4 echoplayer: increase LCD RGB & SPI output speed to medium
At low speed there's some occasional corrupted pixels,
most visible on album art and such; this goes away at
medium speed.

Change-Id: Ice4eaec4284023d2d3f5c571b242cb27ebc26da9
2026-02-18 18:14:24 -05:00
Aidan MacDonald
e5e82820f6 echoplayer: re-enable 50 MHZ SDMMC bus
The problem with drive strength and things not working reliably
at 50 MHz turned out to be entirely caused by the ESD diodes on
the data/command/clock lines, which have a whopping 200-300 pF
junction capacitance -- 6-10x higher than the 30 pF limit given
by the MMC spec.

After desoldering the diodes the bus seems stable at 50 MHz and
with any drive strength (note MEDIUM is still fast enough even
for 50 MHz, so the drive strength is unchanged).

Change-Id: If9847ee4145f5ed2f7e172cfa89acad0737a897f
2026-02-18 18:14:11 -05:00
Roman Artiukhin
c199d9a369 playback: fix single mode briefly plays audio from the next track before pausing
Change-Id: Iab82427d5429210701e65103325f72c7919685e1
2026-02-18 17:04:31 +02:00
Solomon Peachy
41567532a1 jz47xx: Further SD driver improvements
* Get rid of the SD_CIM_RESET meta-command and put all
   reset/init logic into one place
 * Don't double-issue the SD_GO_IDLE_STATE command
 * Explicitly set lowest speed upon reset

Change-Id: I5abfe9f64997e39087b8a77d525f90c77733a1a8
2026-02-17 17:34:59 -05:00
Solomon Peachy
e8b75a52ab sansafuzeplus: Support up to 96KHz playback.
It was limited to 48KHz due to insufficient IRAM but at some point in
the last five years or so that must have changed.

Change-Id: Ia893ed5e1f3026158daad77991c3d9cca2fed97c
2026-02-17 14:37:38 -05:00
Solomon Peachy
59f78841fd jz47xx: Numerous enhancements to the SD driver
* Rework logf/DEBUG distinction
 * Don't try to init a card that isn't detected
 * Inform card that host supports SDUC
 * Implement CMD22 (SET_UPPER_ADDR)
 * Implement CMD23 (SET_BLOCK_COUNT)
 * Disable DMA for transfers under 512 bytes
 * Created ACMD+data xfer command path
 * Incorrect handling of RESPONSE_R7
 * Clean up 4bit stuff, only turn it on after we enable it in the card.
 * Clear END_CMD_RES bit _after_ we check the status

 * Probe SCR  <-- NOT YET WORKING, DISABLED

jz4740 had these additional improvements:

 * Restructuring to bring it closer to 4760 driver
 * Unified read/write setup code
 * IRQ handling and polling improvements

Change-Id: I47379f097af4bf50177499b3d80a6c9c42d48057
2026-02-16 21:54:35 -05:00
Solomon Peachy
478303346c sd: Add definition for SET_BLOCK_COUNT command
Change-Id: Ib9cdc8e8bb7a43a4642be8cf88a1d734a6ae4808
2026-02-16 18:12:32 -05:00
Solomon Peachy
101f5cffe6 jz4740: NAND address needs to be 'unsigned long' not sector_t
Change-Id: I58ec94710b938306385df2482bd9279d09fb5362
2026-02-16 18:11:13 -05:00
Solomon Peachy
285157b1a8 jz4760: Correct typo in SoC header for MSC_CMDAT_RESPONSE_R7
Change-Id: I71226d1adb03a56cfea314ddd7af4f198a008986
2026-02-16 18:10:30 -05:00
Roman Artiukhin
aea9e1b63f configure: add ability to select plugins to build in --plugins flag
Use ":" as the separator. Useful for plugin development and debugging.

Example:
../tools/configure --target=hibyr1 --type=ADS --plugins="properties.c:imageviewer"

This creates a debug simulator build for Hiby R1 with the properties.c file and the imageviewer directory plugins enabled.

Change-Id: If974cfb0c54bd2c1a53ae11cc3f942c698ef2fe4
2026-02-16 13:42:58 +02:00
Aidan MacDonald
dd21a1d1d9 echoplayer: reduce LCD RGB & SPI output speed
Low speed works for 50pF loads up to 12 MHz. LCD signals
fall well within those limits so there's no reason to use
any higher speed.

Change-Id: I6dab899fac316bb02572174ef13a98cccbf4ae66
2026-02-10 15:51:32 +00:00
Aidan MacDonald
006859f16b stm32h7: spi: fix incorrect early transfer completion
The semaphore was released after all bytes were read/written
without waiting for the EOT event, which is why the delay at
the end of the transfer needed to be longer than expected.

Change-Id: I6b48fc01cda69564c0ec8f843afd1b0c3a9c5a3c
2026-02-10 15:51:32 +00:00
William Wilgus
46d644fcd7 stars.lua screen does not update int the sim
SDL needs to do lcd_update from the main thread
stars.lua uses an event that runs in a timer thread
so in the sim the screen never updates

Change-Id: I6002525363010c3133ebbfb490763f747c5d773a
2026-02-10 10:46:15 -05:00
Ingmar Steen
7327d9fb6c Implement set block count (CMD23) for x1000 target.
I have a 1TB SD card that gets filesystem corruption when writing large
amounts of data when using Rockbox in USB storage mode. The card doesn't show
this behaviour when using the original firmware or when using an external SD
card writer.

This is on an Aigo Eros Q device. Same brand 512GB card does not exhibit this
behaviour.

Whether this specific SD card explicitly requires CMD23 or if there's a
problem with the controller's timing of auto-CMD12 in combination with this
card is currently unknown, but implementing it does solve the problem.

This change request implements CMD23 by first probing if SBC is supported by
the SD card and then using it instead of AUTO_CMD12.

Change-Id: Ib2dc8e179b0fab98ca59c348061cb7d5850884dd
2026-02-10 07:43:47 -05:00
William Wilgus
ea5b0fb33a Clip Plus, Zip, Xduoo X3 Reconfigure keyboard to better use screen
Someone opened a bug, its not a bug but it is annoying
these are the smallest screens so the 18 character width ends up
wasting lines that could be displaying characters

this layout repeats some but should be more ergonomic

Change-Id: I2ed4c0887477aac49821c4edb6f3bf174e38d36e
2026-02-09 22:17:22 -05:00
Aidan MacDonald
06c9d87f53 stm32h7: sdmmc: implement missing R1b response handling
The driver didn't handle the busy signal at the end of
some command responses (R1b response type), notably the
CMD12 (STOP_TRANSMISSION) sent after a multiblock write
would time out because DTIMER==0 and leave the DPSM in
an incorrect state for the next command, causing a hang.

Change-Id: I406337a7612f759418a4872979aa2de5aa2244c7
2026-02-09 14:21:30 +00:00
Aidan MacDonald
c390467d19 stm32h7: sdmmc: don't panic on spurious IRQs
When doing I/O, the interrupt can rarely fire with no
active command and no status bits set. This is probably
because the interrupt is set pending by the NVIC while
the handler is already running, so should be harmless.

Change-Id: I0c2570abe6e3c85ddbfa2ebe0afcf8677b77408f
2026-02-09 14:21:30 +00:00
Solomon Peachy
f5be6cd10c rbutil: Add support for Vietnamese to the SAPI TTS glue code
Change-Id: I2cd7f8540717a95b3d05e836c5502313a9db6b50
2026-02-08 20:27:00 -05:00
Solomon Peachy
3629a765d2 FS13774 - Translate units in file operation splash messages
'MiB' and 'KiB' were hardcoded; use LANG_MEBIBYTE/KIBIBYTE instead.

Change-Id: I456521a222e213379f929e4d1113e084f87a3ac4
2026-02-08 20:02:38 -05:00
Solomon Peachy
7c00a059ff FS#13781 - Updated Hungarian Translation (Gyúróczki Norbert)
Change-Id: I59c57b025c4afdfd5b66ffc63f5316da1d86c657
2026-02-08 17:29:21 -05:00
William Wilgus
ed84047884 [Fix Red] open_plugins rb-> is required
Change-Id: I1f1a7e487d46a0427be7cebd319c65b848b4a9fb
2026-02-08 14:39:17 -05:00
William Wilgus
ef7739160b [BugFix] open_plugins allow more than one entry with a plugin / parameter
you should be able to have multiple parameters to a single plugin
you can do this from outsid the plugin, but not from within the plugin
this makes it possible to have several entries with the same
plugin and a different parameter for each entry

it now also updates the name of the entry to the name of the parameter
instead of the name of the plugin (unless user edited it)

Change-Id: Ifb52b21e3b8ed3257364635b5d92e7c21a35a199
2026-02-08 13:58:36 -05:00
Solomon Peachy
9057154fff mrobe500: Allow bootloader build without HAVE_BOOTLOADER_USB_MODE
I'm leaving it enabled because that's clearly the intent
of the bootloader, but at least there's now an easy path to disabling it
if so desired.

Change-Id: I4f4ecc9a453d376f92e411e0544b587fe4b4c864
2026-02-07 10:48:22 -05:00
Solomon Peachy
b722e3c83a mrobe500: define HAVE_BOOTLOADER_USB_MODE
Fixes red, and will restore USB functionality that was effectively
broken from earlier commits.

Change-Id: I98150a81e3f73131bfedccdaf3de740a091debf9
2026-02-07 09:32:16 -05:00
Solomon Peachy
80aaaaa2af bootloaders: Don't build usb_core without HAVE_BOOTLOADER_USB_MODE
This way we don't need to stub out a bunch of functionality when we
don't have any actual USB class drivers enabled.

Change-Id: Ia0ecf5be4bb41bebfcd347090959f3204a2aba59
2026-02-07 08:46:10 -05:00
Aidan MacDonald
58b186d6de Remove Creative Zen Vision and Vision:M ports
They haven't seen development activity for the better part
of two decades and apparently were never able to even boot
to Rockbox, although the Rockbox bootloader could load the
original firmware.

Change-Id: I5cfa5909c21feaf2825aa685a05e78044b893a13
2026-02-06 07:31:54 -05:00
Aidan MacDonald
5a21f049dc echoplayer: add exit WPS button to keymap
Change-Id: I3a7ef3ee0fb7494645338d3951fc9bc0c793503c
2026-02-06 07:09:41 -05:00
Aidan MacDonald
19af7131e2 echoplayer: allow enabling system debug in normal builds
Allow toggling the system debug state from the debug menu
in Rockbox, or by holding a button combo at boot, so that
an SWD/JTAG debugger can be attached to normal non-debug
builds without too much hassle.

Change-Id: Iee47ef916ade2e5ec1094a63c68e48f1b27b0bbb
2026-02-06 07:09:32 -05:00
Aidan MacDonald
02648abb8a echoplayer: disable 50 MHz SDMMC bus clock
While 50 MHz works for low activity and small amounts of
data, there are frequent CRC errors when handling larger
transfers. Increasing drive strength only makes it worse.
Everything seems stable at 25 MHz though.

Change-Id: I3471c490ab63b2302b21ee2fe601519ee5a40ce5
2026-02-06 07:08:28 -05:00
Aidan MacDonald
45a61d7e7b echoplayer: enable multiblock transfers for SDMMC
Change-Id: I152a6d58b008041d646ddcfec4273a47c4060932
2026-02-06 10:58:42 +00:00
Aidan MacDonald
6da20a18c3 sdmmc_host: support multiblock transfers
Change-Id: I6414028bbafd4ea4ef469f9a387f4bd52ec227e5
2026-02-06 10:58:42 +00:00
Solomon Peachy
acc9c21a78 FS#13773 - Update Latvian Translation (Renalds Belaks)
Change-Id: I8bc5a9f9ca5ed652d3751e7a54034f3aa19f1df1
2026-02-05 19:42:34 -05:00
Aidan MacDonald
a6c290e8e5 jz47xx: fix plugins/codec link address
Removing STUBOFFSET in commit 78542df466 caused DRAMSIZE
to be computed incorrectly, not taking into account the
16k offset used for 'IRAM'. As a result plugins & codecs
got shifted 16k upwards from their intended load address,
making them unable to load.

Change-Id: I6c338e04506e12fa2b8a69286a1ed785a2f8042d
2026-02-05 20:33:51 +00:00
Aidan MacDonald
92b0bf7a27 Clean up .ncdata/ncbss hackery in plugin linker script
The mess here can be reduced by paying careful attention to
how the linker allocates LMAs/VMAs within MEMORY regions.

Changing the way .ncdata and .ncbss are defined so that they
reserve the LMA/VMA ranges they use in PLUGIN_RAM removes the
need to explicitly set the VMAs of other sections, cutting
down on the number of ifdefs needed and making the script a
bit simpler.

Change-Id: I316fc6e8dedd621537261d52c1ec7c20ec09438a
2026-02-05 09:38:51 -05:00
Aidan MacDonald
bce2c4e069 Convert users of SHAREDDATA_ATTR to SHAREDBSS_ATTR
The handful of uses are only doing zero initialization
so don't need to go in the data section, they can go in
bss instead.

Change-Id: I7108ac60867aa20b4429ac0747d00109563bb3bf
2026-02-05 07:57:07 -05:00
Aidan MacDonald
7b91b81e49 stm32h7: define correct DRAM origin for plugins
Change-Id: I7fab9da0e99f328ce602607057f52620812476a8
2026-02-05 10:08:45 +00:00
Solomon Peachy
1a2235fb18 manual: Document HifiWalker H2 v2.3 as an erosqnative hw4 variant
Change-Id: I685a5c71b074f1942e1d345a2fe7d73f97ccfe76
2026-02-04 23:29:25 -05:00
Aidan MacDonald
653bca7ff4 make: allow building flat binary plugins on USE_ELF targets (attempt 2)
Looks like I forgot to test the hosted builds and for some
reason thought that make would expand objcopy recursively...

Change-Id: I61264eadcb1235660566f6a9f19f8718ebe14583
2026-02-04 16:45:25 +00:00