1
0
Fork 0
forked from len0rd/rockbox
Commit graph

38107 commits

Author SHA1 Message Date
Aidan MacDonald
0f5c2877fe headergen_v2: generate register offsets and node addresses
Register offsets are defined as the address of the register minus
the address of the parent node. If enabled by the generator, these
will be emitted alongside defines for the node base addresses.

This allows the base address to be stored in a variable, and the
offset can be used to access registers relative to the base.

Change-Id: I15576aeb2945293a259007da7f00a26055f4d0f0
2025-04-20 15:53:54 -04:00
Solomon Peachy
81e050871b updatelang: Correct grammatical goofs in some of the errors
Change-Id: I3795d89e68453e636188b26a1620226a836c8a4d
2025-04-20 11:58:38 -04:00
Roman Artiukhin
17d73c968a Codecs: mp4: Fix possible glitch at the end of song
sample_to_chunk last value was ignored in some cases leading to invalid sample value in lookup_table.

Fixes FS#13600

Change-Id: I8f066966e15c384d3185f689b68a2cc2a3abad1d
2025-04-20 13:43:15 +03:00
Solomon Peachy
f563fe54c2 updatelang: Alter syntax for 'phrase missing entirely' errors
Instead of 'this phrase missing entirely [...]' followed by the
verbatim phrase copied from English, instead the message now
reads 'the 'PHRASE_ID' is missing entirely [...].  This allows
the warning to be self-contained.

Change-Id: I413c29e0c1f6616e74d875d197b34c4724330d67
2025-04-19 21:59:01 -04:00
Solomon Peachy
ceeca12f07 lang: Apply some mechanical corrections to Romanian and Korean
Change-Id: I01a2d4c2d4ee39e502913e58fc175ab5aaf8e9fd
2025-04-19 20:59:53 -04:00
Christian Soffke
ae54b06af4 playlist catalog: Hide Copy/Cut/Open With
It may make sense to only show these in the
file browser, where you'd expect to do more
general file operations involving other folders.

Change-Id: I008569d2017811ee54b4449acb30359843f35294
2025-04-19 20:59:16 -04:00
Solomon Peachy
b7b20c4a77 FS#13599: Updated Romanian translation (Mihai Alexandru Vasiliu)
Change-Id: Ia87c6a34c6776059e51c06f96708040914d3a97b
2025-04-19 17:43:14 -04:00
Aidan MacDonald
1aa9f26b02 arm: workaround to build Cortex-M7 targets with GCC 4.9
Cortex-M7 support was added in GCC 5, while GCC 4.9 only
supports the M4. The instruction set is almost identical
between both processors; the only difference is that the
M7 supports double-precision floating point and the M4
doesn't.

Since Rockbox currently doesn't use the FPU, building M7
targets as M4 works fine.

Change-Id: I5880d6e81a85fa9b3e16e08d57e7955b4493df0b
2025-04-19 13:16:36 -04:00
Aidan MacDonald
da4e02cdd3 codecs: disable incompatible ARM assembly for Cortex-M
Some assembly routines don't work on Thumb as-is. For now
just disable these so the codecs compile.

Affected codecs:

- libflac
- libmad
- libspeex
- libtta
- libwavpack

A few DSP routines need to be disabled for the same reason:

- crossfeed_process
- crossfeed_meier_process
- resample_hermite
- filter_process
- sample_output_stereo

Change-Id: I277e0719652096745a19a7e2b597eff32d8e1553
2025-04-19 13:00:17 -04:00
Aidan MacDonald
94c7c908b3 libmusepack: add ARMv7-M version of MPC_MULTIPLY_EX
We can't use Operand2 with register based shifts on ARMv7-M as it
isn't supported in the Thumb encoding. Instead, perform the shift
separately.

Change-Id: Ie96aa0a565e98bbca724dffc2ffc6d64fdb5d7c3
2025-04-19 12:26:47 -04:00
Aidan MacDonald
c249dea2b7 libsetjmp: fix unpredictable behavior warning on ARM Cortex-M
GAS warns about unpredictable behavior of "ldr sp, [a1], #4"
that exists on Cortex-M3 (errata 752419) but this warning is
incorrectly issued on other cores too (eg, Cortex-M7).

Since the fix is just one extra instruction we may as well
apply the workaround for all Cortex-M targets.

Change-Id: I0c2aa46837f776d67d0236b627af1572aa5ab307
2025-04-19 11:24:01 -04:00
Aidan MacDonald
6ea328f0f1 arm: add div0 handler for 64-bit division on ARMv7-M
Even though ARMv7-M has a hardware divider, 64-bit division is
handled in software and needs a div0 handler. The libgcc routines
call __aeabi_{i,l}div0 so we alias those to __div0.

Change-Id: I5152c43d39e25e03f31404753f13978a614aca06
2025-04-19 09:43:40 -04:00
Vencislav Atanasov
545506c923 New port: iPod Nano 4G
Currently, only the development bootloader can be built successfully.

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: I74ea0da999ddb1d8ce5d0f5434141b3f0b5f7448
2025-04-18 20:40:49 -04:00
Vencislav Atanasov
d6cd237f80 New port: iPod Nano 3G
Currently, only a bootloader can be built successfully. The development bootloader is functional, it enables further progress on the port.

This is a part of the large iPod Nano 3G and iPod Nano 4G support patch.

Credit: Cástor Muñoz <cmvidal@gmail.com>
Change-Id: Idf85e42334b0e0ae36f9ed273e2940d5d7736e34
2025-04-18 20:10:29 -04:00
Christian Soffke
96615af033 Shortcuts & QS: Fix tree sort settings not immediately applied
Change-Id: I51158f786ad7dae46ce6201826cb35958e8014ec
2025-04-18 20:00:42 -04:00
Solomon Peachy
d307568410 FS#13598: Updated Spanish translation (Guillermo Garcia Rojas)
Change-Id: Ida5f5319c0b9f37b04ac2d7be35186f798e3480a
2025-04-18 17:30:41 -04:00
Aidan MacDonald
3ed9fb3115 arm: add initial ARM Cortex-M support
M-profile cores manage interrupts differently from classic cores
and lack the FIQ. Split the interrupt management parts out into
separate headers but keep the endian swapping routines (which are
not profile-dependent) in the common system-arm header.

The initial part of the vector table is common to all Cortex-M
CPUs and is intended to be included by the target linker script,
with the vendor-specific part of the vector table appended to it.

Change-Id: Ib2ad5b9dc41db27940e39033cfef4308923db66d
2025-04-18 13:19:42 -04:00
Aidan MacDonald
96b6a7b4e4 arm: implement get_sp for Cortex-M
On Cortex-M we can just return SP directly, which will return
PSP/MSP depending on the current processor mode.

Note that unwarminder doesn't handle Cortex-M exception frames
yet, so a panic from an interrupt handler will currently stop
at the exception boundary.

Change-Id: I8818126c065c896d781bd52b877965a4094dee2a
2025-04-18 12:47:03 -04:00
Solomon Peachy
8d5fd1b20b manual: add 'manual-7zip' build target for 7zipped HTML manual.
7zip produces files nearly *half* the size of a zipped one.

Change-Id: Ic8bc4129dd4106a32060c98049061ea3848ebddc
2025-04-18 11:24:40 -04:00
Aidan MacDonald
c33aafcd5c arm: add ARMv7-M version of ARMv6 mixer code
GCC cannot compile the existing assembly here on ARMv7-M,
claiming impossible constraints. It is actually possible to
compile if the input arguments (addresses and sizes) are
first moved to a high register so as not to conflict with
the use of r0-r7 in ldm/stm -- this is exactly what GCC does
for ARMv6, but it won't do it on ARMv7-M for some reason.

We can get a result similar to the ARMv6 code by manually
moving the inputs into temporaries, but the generated code
is a actually a bit smaller on ARMv7-M if the r0-r7 block is
shifted up to r3-r10. This only works since ARMv7-M supports
the 32-bit Thumb encoding -- 16-bit Thumb can't represent an
ldm/stm instruction of this type.

It's worth #ifdef'ing the code because although the ARMv7-M
version works on ARMv6 too, it spills a lot of registers on
the stack even though register use is mostly similar.

Change-Id: I9bc8b5c76e198aecfd0a0e7a2158b1c00f82c4df
2025-04-18 10:57:45 -04:00
Vencislav Atanasov
a1bf19de36 Fix unused function warning
Change-Id: I6252a6db2a0f9cdd3d0c18262b5809856a5bd977
2025-04-18 10:57:04 -04:00
Aidan MacDonald
1c96d51717 arm: add ARMv7-M support for thread context switching
On ARMv7-M, stm/ldm instructions can't include SP, so we must
load and store that separately. This changes the order of
registers in the context struct, but it doesn't seem to be
accessed anywhere else so this shouldn't cause any problems.

Change-Id: Ie1cd23272f23384e030f51f0b76739624fa7332b
2025-04-18 10:55:32 -04:00
Aidan MacDonald
6712779ccb x1000: fix regression on Q1 with misaligned write pointer
Commit 1fb906500a ("x1000: LCD DMA fix") caused a regression
on the Q1 by breaking the LCD_X1000_DMA_WAIT_FOR_FRAME logic,
since the wrong branch of lcd_wait_frame() was taken.

Change-Id: Icb44335f506a1a691280de8219188526bb11468f
2025-04-18 10:49:27 -04:00
Aidan MacDonald
76c62dc429 x1000: remove bogus modes from lcd_dma_start()
These 'modes' don't do anything here except clutter the code.

Change-Id: I4e0eef39e0c3bac288c40d571ba855c9ffd7c1a1
2025-04-18 10:49:27 -04:00
Aidan MacDonald
b71337f1fd x1000: remove LCD fast sleep define
All the X1000 targets use "fast" sleep, as opposed to the normal
HAVE_LCD_SLEEP define which creates a user-configurable option.
Remove the ifdefs to make the code a bit easier to read.

Change-Id: Ibb80c92a8e23191651fee61fc8cf6f4e4fac8750
2025-04-18 10:35:49 -04:00
Vencislav Atanasov
7e2019fde9 iPod Nano 2G NAND: Use the correct bit names for FMCSTAT
Looks like they were always off-by-one, so the wrong functions have been used to rectify this bug. This is now properly fixed.

No changes to the ipodnano2g binaries (bootloader, rockbox)

Change-Id: I19fe1b89f9e5d722f7e877d60f68fc3275c3642a
2025-04-18 10:26:57 -04:00
Aidan MacDonald
a0bfcd77c8 arm: enable unified assembly syntax in more files
This makes these files compileable, or in some cases less
broken, on Cortex-M targets.

In lcd-16bit.c, newer versions of GAS complain about the
infix condition codes so we use the suffix form instead,
which requires unified syntax to compile on GCC 4.9.

Change-Id: If45166d3fc83d64c692cbb331096a966397aa9e9
2025-04-18 10:26:02 -04:00
Aidan MacDonald
639b587fc7 arm: add support for processors with hardware division
ARMv7-M has hardware division, so it doesn't require __div0
or any support functions for 32-bit division.

Change-Id: I840683a1a77d737f378899ca4bcf858216b81014
2025-04-18 09:22:48 -04:00
Aidan MacDonald
7e8a818d95 arm: add ARM architecture profile detection
Add some logic to detect classic and M-profile cores, and make
this info available to the build system. All existing targets
are classic profile.

Change-Id: I07bfcd418bcaa6297b9bbf889fc189f167147428
2025-04-18 09:22:48 -04:00
Solomon Peachy
9e79ebf78d bootloader: Fix red on hosted bootloaders
Fixes: 888ce7cae8
Change-Id: I802779cf158634d5b3b547d74999798cb56d2882
2025-04-17 08:31:33 -04:00
Christian Soffke
93b1611474 tagtree: defer context menu disk access
When the database isn't loaded into RAM,
or the "quick" load setting is enabled,
filenames for tracks must be retrieved
from disk.

With a single track selected, this
can cause a delay before its context
menu is displayed.

Since filenames are only needed after the
user has selected something from the menu,
it makes sense to defer retrieval until
disk access becomes inevitable.

Change-Id: I72b57eff3102b50f3e19441119e20aad903b1f2b
2025-04-17 08:23:45 -04:00
Roman Artiukhin
be47d646f0 jpeg: Add support for FORMAT_RETURN_SIZE flag
Change-Id: I01f883400d775ffee5cdaa107fc3d6fb89b02573
2025-04-17 08:23:32 -04:00
Solomon Peachy
888ce7cae8 disk: Dump partition tables when we can't find a usable partition
Change-Id: I10a1b4f149657da4292f34ac8a14e58ec6cdcf72
2025-04-17 08:15:13 -04:00
Roman Artiukhin
08bd5cdd3d plugins: db_folder_select, disktidy, main_menu_config: Fix selection dialog with Show Icons set to No
Temporarily enable icons for required lists. Probably not a proper fix but a simple workaround.

Fixes FS#13574

Change-Id: I011a80e2a9f03019927b32e92cd5a35275c051e1
2025-04-10 12:30:29 +03:00
Solomon Peachy
b3caf32f78 voice: Disable Greek voicing in daily and release builds
...Its coverage is below the 80% threshold.  If anyone complains, they
can help improve the translation coverage first.

Change-Id: I0201497ec1209a7d125ac99ec45de6e2a9e41098
2025-04-07 08:44:43 -04:00
Solomon Peachy
b26d85d2ff FS#13592: Update Brazilian Portuguese translation (Santiago Silva)
Change-Id: Id4e12b0af93878fdd8704fcee8597a273be66675
2025-04-07 07:40:23 -04:00
Solomon Peachy
8b54bec33e tools: Release scripts should only create artefacts for _stable_ targets
...Instead of including unstable targets too.  Those have to make do with
dailies.

Change-Id: Ie7d75338dab7b395e1f5980da54bc03f4b9f0184
2025-04-05 20:47:23 -04:00
Solomon Peachy
f884f92234 rbutil: http:// -> https:// for all displayed Rockbox URLs.
Change-Id: I6afe427144681103e52cb976ac10fdbd939e2237
2025-04-05 13:58:56 -04:00
Solomon Peachy
1fadf1cd89 Disable nightly Norweigan and Czech voice generation
They are hovering at 61% and 73% respectively.  Our current cutoff
is 75%, and that should arguably be raied to at least 80%.

If anyone complains we can politely request they help with the
translation.

Change-Id: I39fd0a3b40311669c2a644de8c359a29ae066e75
2025-04-04 11:31:38 -04:00
Christian Soffke
66a18f7c30 pictureflow: fix greylib crash when album not found
Change-Id: Ic9c532234613c805d851710b960db0c91d1049ab
2025-04-03 15:35:27 -04:00
Pavel Rzehák
4d616be48b Rockbox Utility: updated Czech translation
translated two missing strings

Change-Id: Ib1f938c4b103d37c9c4b78767a4b22935748fa09
2025-04-03 14:16:23 -04:00
Solomon Peachy
d835a294ef Minor mechanical correction to the Russian translation
(Now at 100%)

Change-Id: I236dd37ab9d4b88f7a42314ae22b8540aaf56b1d
2025-04-03 11:03:26 -04:00
Solomon Peachy
5c3976c521 FS#13590: Updated Russian Translation (Fedor Pomazkov)
Change-Id: Ib67c4107b793d843b2fa4afd616461aeb1c76fac
2025-04-03 10:38:29 -04:00
Solomon Peachy
87e9c3991a rbutil: Update tarball scripts
Change-Id: I33a42fc2535ddead1780bbceb2c4c048a3aba8de
2025-04-02 08:21:38 -04:00
William Wilgus
25c345feac Manual add theme list tags
these have been around since around 2010 add them to the manual

Change-Id: I4f28c4c8ef837f54e77f55c835355cde8991cdb2
2025-04-02 07:32:02 -04:00
Solomon Peachy
4347d41076 CREDITS: legal name change
Change-Id: Iec092f3e8d7f8dba165ff0a99d996d7076f6baa2
2025-04-01 20:02:08 -04:00
Solomon Peachy
4bdbd0785b tools: Update release script so that it generates 7z archives
Change-Id: Icc41a54af590d71a97baff16ad1c0124b26b0d0c
2025-04-01 17:26:08 -04:00
Solomon Peachy
15e79a0816 FS#13587: Updated Latvian translation (Renalds Belaks)
Change-Id: Ic086db0b8ce9341835e1e24aa6c9fa2a9bb594ba
2025-04-01 08:37:31 -04:00
Roman Artiukhin
ed40c5a036 metadata: opus, vorbis, speex: Don't fill metadata buffer with album art and cuesheet
Fixup for 0847bcc1. Fixes FS#13586

Change-Id: I2af63747266bf0dea85812354caadca432dfcd32
2025-04-01 08:33:16 -04:00
Solomon Peachy
7d51b14cca tools: Alter the 'voice_url' in the [release] build-info
Now it's consistent with everything else.  All old files have been renamed.

Change-Id: I5c6974fb30cc90a7aedb732d8f970800c7de74c4
2025-04-01 07:35:12 -04:00