The last successful build was 87c6df9-131213, shortly after the 3.13
relase, but even before that, it had been problematic due to severe
firmware image size limitations (200KB) of the hardware bootrom.
(Current git code genrates an image about 220KB)
Change-Id: Ibaf7bd61cbc0f0656c5e119bbb9934437aa9c47c
In addition to version and target also check id1_max & id2_max
for proper length before allowing voice file to be loaded
Change-Id: I36016059d07781b0bb43dd9873bbb6e565298d76
DX50/DX90 has a Cortex-A9 with NEON, use those specific flags
for speed.
Generic Android targets is for v4.4 (API 19) which doesn't support
pre-v7 ARM CPUs, so target generic armv7-a with hardfp support.
(This patch includes a rearrangement of the android toolchain helpers to
allow target-specific GCCOPTS. Huzzah)
Change-Id: I696051ef3fae25e1569c7b904decb7a3a0c6b674
The oldest verison of the NDK one can still download today is version
10e from mid-2015, which comes with GCC 4.9, and no longer supports
32-bit hosts.
With this, one can actually compile the iBasso DX50/DX90 targets again,
as well as the generic android target, as long as one has the correct
SDK platforms (v16 for ibasso, v19 for generic) and SDK tools installed.
Change-Id: I62f2e742d5cfc13133244aeff75a928a7294ac91
Provided by Roman Stolyarov
Integration, Refactoring, and Upstreaming by Solomon Peachy
X3II confirmed working by forum tester, X20 is nearly identical.
This includes bootloader, main firmware, and the flash image patcher.
Eventual Todo:
* Further refactor AGPTek Rocker & xduoo hiby bootloaders
* Further refactor AGPTek Rocker & xduoo hosted platform code
Change-Id: I34a674051d368efcc75d1d18c725971fe46c3eee
This frees us from having to keep the web site in sync.
Note that only currently-referenced patches were kept.
Change-Id: I50da1b75baeac214cf142c8b76a05a8c56b4c1d4
(From Stefan Ott)
I wrote a little patch for ipod_fw.c that allows me to create bootable
images for the iPod video without using any external software.
The patch adds two new options:
- The -s option can now be used to specify the sector size in blocks (typically 512 or 2048) when generating an image.
- The -n option can be used to create an image without a boot loader
Change-Id: I35ebcd19ba1491bba76dfc8011e5a856108bb9ad
This adds tools/list_targets.pl and tools/build-info.pl. list_targets does
exactly what it sounds like - it lists targets by target status. build-info
automates the generation of build-info.release for new releases.
Change-Id: I4c859fdeb54c8cc645832a7c4192f9d18590031e
This simplifies the tedious task of building all the Rockbox
toolchains manually by providing a build code for a Docker container
image. It's useful for quickly spinning up a build client with just a
couple commands and no waiting to compile (though downloading takes a
little while).
I've built an image as built1n/rbclient on Docker Hub.
All toolchains (even the weird ones) are included, except android16.
Change-Id: I6b863628ffb397604f59ec6def2f8bb8c8c7185f
paths.
If ROOTDIR=/rockbox and BUILDDIR=/rockbox/build-something, it is now possible to
successfully build both target binaries and simulators.
Change-Id: If12d1d5933c5a15feebf627a4f1636dc1e3a67fa
Vagrant is an application that automates creation and provisioning of a virtual
machine for development. The config here creates an Ubuntu 16.04 LTS machine,
updates it, downloads and installs the toolchains for sh, m68k and arm,
mingw-w64, SDL (for Windows simulators) and other packages needed for building
Rockbox.
It works fine for building a Windows simulator and compiling iPod classic
binaries. It should be possible to make the other build types, too.
MIPS toolchain fails to build, ARM-APP is not tested because the files download
very slow on my connection. Please test if it works for you, and let me know.
Quick start: download and install Vagrant and VirtualBox for your operating
system, make sure VT-x / AMD-V is enabled in your BIOS/EFI setup, open a
shell in rockbox/tools and input the command "vagrant up"
Change-Id: Ief5476ab066663a4db7e85404b25d2d781d90532
As rbcompat.h is -include'd on the command line, the mkdep script doesn't
pick it up. Explicitly add the dependency to lang_enum.h to the makefile.
Also add lang_enum.h to the 'make clean' target!
Change-Id: I33c8ed0cd5c1d44dce02ac9285469c0e4feac00e
Original patch by Mario Lang
Heavily updated by Igor Poretsky
Further updated by myself
This patch breaks binary API compatibility by placing the new
functions where they make the most logical sense. IMO this is
the better approach to take given the scope of the changes needed
for talk support.
Since binary API is changing, the patch also moves some other
functions around to more logical locations.
As well as voice support in plugins, this patch voice-enables several
simple plugins. There will be follow-up patches for many plugins that
build on this one.
Change-Id: I18070c06e77e8a3c016c2eb6b6c5dbe6633b9b54
For unknown reasons, -thumb builds need -lfirmware after -lrbcodec (but
still before -lunwarminder)i. Other builds are still happy if we do that.
Including it via CORE_LIBS instead of explicitly achieves that.
Change-Id: Id69e4a0c042f90f71cfd9a72202ce4d8ef6a4181
I use this to test duke3d in the sim, because it does some nasty pointer
arithmetic with 32-bit ints.
Should be useful for other things as well.
Change-Id: I807c81b32c61538de9edc3fca77fde193dc4e617
* bmp2rb generated a .h file that rockbox .c files used.
* .h files in .c files were used to generate dependency graphs for make
* When Make saw the .h file for the bitmap, it didn't know how what
to do with them
* Only arose in parallel builds
Fixed this by adding explicit dependencies for the .h files as part of
the existing 'bmpdepfile' function.
Solves the Xduoo X3 bootloader build failure that I could trigger 100%
of the time by using 'make -j8'
Change-Id: I6b3e78dde26c820a3b6c7c286e7d6c981b8e01fc
I realized there was a better way to do this..
Instead of specifying a path just have gcc run the preprocessor (-E) on
an input file consisting of only '#include <byteswap.h>' if it succeeds
then we can use it if not then don't define OS_USE_BYTESWAP_H
Change-Id: I0de8e469445221bc1b5ad8cc032de5b89a85ab66
__builtin found fix for rbendian.h
tools/configure defines SIM_USE_BYTESWAP_H if byteswap.h is found in
/usr/include/ maybe there is a better mechanism for this
Change-Id: I4d004e68313e8b32aa5587582be36bc459fdaf6b
__builtin found fix for rbendian.h
tools/configure defines SIM_USE_BYTESWAP_H if byteswap.h is found in
/usr/include/ maybe there is a better mechanism for this
genshortcut.sh is a simple script to make .desktop shortcut files
several newer distros don't allow you to run the simulator from the
file manager, this or perhaps a different method can probably be
included while building a sim at a later date.
for now it can be run manually like so:
similar to ../tools/configure
run from your simulator folder
../tools/genshortcut.sh exepath shortname icon
ex. ../tools/genshortcut.sh ./rockboxui clip+sim music-app
Change-Id: Ia05d3a9349b27c5968a4a7a68b2eb480e60faec3
Cleaned up, rebased, and forward-ported from the xvortex fork.
(original credit to vsoftster@gmail.com)
Change-Id: Ibcc023a0271ea81e901450a88317708c2683236d
Signed-off-by: Solomon Peachy <pizza@shaftnet.org>
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
Original firmware update is provided as .upt file. This file
is actually ISO9660 image containing uBoot, kernel image and
UBIFS rootfs and additional control files. Installing
bootloader means patching UBIFS rootfs image.
Change-Id: Ica86d1189dc1d5f3131d2035d8b87c8d08ec36b5
If we use mips-rockbox-linux target resulting toolchain is
big endian. If we use mipsel-rockbox-linux build fail since
linux doesn't have separate archs for BE and LE mips. So we
tweak arch passed to linux-headers stage to fix this.
Change-Id: Iccae529998d1cd8f3429fa3b2ca4f030122f23bb
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
Strangely it has the SAME encryption key as the E450. Either they didn't bother
changing it or more likely they have exactly the same internals and a slightly
different case.
Change-Id: I39ab88845b3e40db34160c2e61dde421f391df44
SUPPORTED SERIES:
- NWZ-E450
- NWZ-E460
- NWZ-E470
- NWZ-E580
- NWZ-A10
NOTES:
- bootloader makefile convert an extra font to be installed alongside the bootloader
since sysfont is way too small
- the toolsicon bitmap comes from the Oxygen iconset
- touchscreen driver is untested
TODO:
- implement audio routing driver (pcm is handled by pcm-alsa)
- fix playback: it crashes on illegal instruction in DEBUG builds
- find out why the browser starts at / instead of /contents
- implement radio support
- implement return to OF for usb handling
- calibrate battery curve (NB: of can report a battery level on a 0-5 scale but
probabl don't want to use that ?)
- implement simulator build (we need a nice image of the player)
- figure out if we can detect jack removal
POTENTIAL TODOS:
- try to build a usb serial gadget and gdbserver
Change-Id: Ic77d71e0651355d47cc4e423a40fb64a60c69a80
I did some cleanup of redudant stuff, simplify some logic, also switch to bash
because sh in the pain when ones want to locally define variables for functions
calls. I also added support to download more stuff like alsa-lib and more recent
gccs that use a different naming convention, as well as linux kernels.
I also add some build to build linux toolchains without ct-ng. The biggest problem
with ct-ng is that they regularly drop support for old stuff and as a result it
rots really quickly for old toolchains. I add a new toolchain for generic linux arm
with the minimum requirements, it works fine on Sony NWZ and also on YP-R0.
Finally, rockboxdev.sh now understand options on its command line (see --help).
Notably --target to give the list of targets (useful for noninteractive scripts),
--restart to restart at a step, --makeflags and others (instead of the environment
variables)
Change-Id: I869760c1faeb00ab381796a4cda82ffbc9637123
Somehow it got hooked to simulator file functions when it should
be (and was) using raw OS functions.
Credit: Frank Gevaerts
Change-Id: Iac02fed1067830a432183632a047e00dfd03d3c2
Fixes and Changes to configure the Windows simulator builds mostly for cygwin / mingw cross-compiling environments:
- fix CROSS_COMPILE values including detection for old and newer mingw
environments
- fix detection of sdl-config by searching inside CROSS_COMPILE
sys-root
- fix call of sdl-config and use correct (found) version
- add possibility to build a 64-bit simulator
- added several -Wno- options to GCCOPTS to prevent annoying compiler
warnings
- use cross-compiler as HOST_CC if no "native" HOST_CC is available
Change-Id: Ib5dd288c3f9a11be9b66e53e3406eadfa65f7604
Newer toolchains (both gcc and libc related) add a lot of warnings.
While these can be useful and correct, cleaning them up woult be a
lot of work and isn't likely to actually happen any time soon.
Change-Id: I8c4e8cd3dc92f9afa4bf003c63ca65e895e3ef00
* --static-libs isn't supported on some (possibly newer) SDL installs, falls back to --libs if this is the case
Patch mostly by Amaury Pouly.
Change-Id: I6dd2f4847f2a2d1de7b2d287c0af6651cec461ff
The current configure script unfortunately does not allow one to use another
toolchain than the one hardwire in the script. Although this is good to ensure
working builds, it can be burden when one wants to either test other compilers,
does not want to have to multiple redundant compilers or when the compiler
install script fails for unknown reasons (MIPS I'm looking at you).
The syntax is simple, for example:
/path/to/configure --compiler-prefix arm-none-eabi-
Also 'make reconf' will properly keep the prefix.
Change-Id: I5ee3bc61afa10193586ddd3aef694a8ac08854e2
OS X ar operates on fat libaries and cannot update existing archives. Remove it
first to avoid this.
Use a make function when removing files to allow calling the correct command on
Windows, which doesn't know about rm.
Change-Id: Ia0c13ef7907239a1e6f4abc26bb08238a226c476
Some arm gcc versions have multiple cpp symbols beginning with
__ARM_ARCH, but want only the one that contains the arch version.
Change-Id: I6792572e29200fc4e62ba07bdd63dc722356c2bb
Reorganization
- Separated iBasso devices from PLATFORM_ANDROID. These are now standlone
hosted targets. Most device specific code is in the
firmware/target/hosted/ibasso directory.
- No dependency on Android SDK, only the Android NDK is needed.
32 bit Android NDK and Android API Level 16.
- Separate implementation for each device where feasible.
Code cleanup
- Rewrite of existing code, from simple reformat to complete reimplementation.
- New backlight interface, seperating backlight from touchscreen.
- Rewrite of device button handler, removing unneeded code and fixing memory
leaks.
- New Debug messages interface logging to Android adb logcat (DEBUGF, panicf,
logf).
- Rewrite of lcd device handler, removing unneeded code and fixing memory leaks.
- Rewrite of audiohw device handler/pcm interface, removing unneeded code and
fixing memory leaks, enabling 44.1/48kHz pthreaded playback.
- Rewrite of power and powermng, proper shutdown, using batterylog results
(see http://gerrit.rockbox.org/r/#/c/1047/).
- Rewrite of configure (Android NDK) and device specific config.
- Rewrite of the Android NDK specific Makefile.
Misc
- All plugins/games/demos activated.
- Update tinyalsa to latest from https://github.com/tinyalsa/tinyalsa.
Includes
- http://gerrit.rockbox.org/r/#/c/993/
- http://gerrit.rockbox.org/r/#/c/1010/
- http://gerrit.rockbox.org/r/#/c/1035/
Does not include http://gerrit.rockbox.org/r/#/c/1007/ due to new backlight
interface and new option for hold switch, touchscreen, physical button
interaction.
Rockbox needs the iBasso DX50/DX90 loader for startup, see
http://gerrit.rockbox.org/r/#/c/1099/
The loader expects Rockbox to be installed in /mnt/sdcard/.rockbox/. If
/mnt/sdcard/ is accessed as USB mass storage device, Rockbox will exit
gracefully and the loader will restart Rockbox on USB disconnect.
Tested on iBasso DX50.
Compiled (not tested) for iBasso DX90.
Compiled (not tested) for PLATFORM_ANDROID.
Change-Id: I5f5e22e68f5b4cf29c28e2b40b2c265f2beb7ab7
perl -wc reported:
Parentheses missing around "my" list at sims.pl line 9.
Useless use of a variable in void context at sims.pl line 9.
Useless use of a variable in void context at sims.pl line 9.
Useless use of a variable in void context at sims.pl line 9.
Useless use of a variable in void context at sims.pl line 9.
Name "main::doonly" used only once: possible typo at sims.pl line 9.
-> now it's happy.
Change-Id: I3b3685d6918ddb77e47c58bade931897075c6e04
The port to for this two targets has been entirely developped by Ilia Sergachev (alias Il or xzcc). His source
can be found at https://bitbucket.org/isergachev/rockbox . The few necesary modifications for the DX90 port
was done by headwhacker form head-fi.org. Unfortunately i could not try out the final state of the DX90 port.
The port is hosted on android (without java) as standalone app. The official Firmware is required to run this port.
Ilia did modify the source files for the "android" target in the rockbox source to make the DX port work. The work I did
was to separate the code for DX50 (&DX90) from the android target.
On this Target Ilia used source from tinyalsa from AOSP. I did not touch that part of the code because I do not understand it.
What else I changed from Ilias sources besides the separation from the target "android":
* removed a dirty hack to keep backlight off
* changed value battery meter to voltage battery meter
* made all plugins compile (named target as "standalone") and added keymaps
* i added the graphics for the manual but did not do anything else for the manual yet
* minor optimizations
known bugs:
* timers are slowed donw when playback is active (tinyalsa related?)
* some minor bugs
Things to do:
* The main prolem will be how to install the app correctly. A guy called DOC2008 added a CWM (by androtab.info) to the
official firmware and Ilia made a CWM installation script and a dualboot selector (rbutils/ibassoboot, build with
ndk-build). We will have to find a way to install rockbox in a proper way without breaking any copyrights.
Maybe ADB is an option but it is not enable with OF by default. Patching the OF is probably the way to go.
* All the wiki and manual
to build:
needed: android ndk installed, android sdk installed with additional build-tools 19.1.0 installed
./tools/configure
select iBasso DX50 or iBasso DX90
make -j apk
the content of rockbox.zip/.rockbox needs to be copied to /system/rockbox/app_rockbox/rockbox/ (rockbox app not needed)
the content of libs/armeabi to /system/rockbox/lib/ (rockbox app needed)
The boot selector is needed as /system/bin/MangoPlayer and the iBasso app as /system/bin/MangoPlayer_original. There
is also the "vold" file. The one from OF does not work with DX50 rockbox (DX90 works!?), the one from Ilia is necessary.
Until we have found a proper way to install it, it can only be installed following the instructions of Ilia on his
bitbucket page, using the CWM-OF and his installation script package.
Change-Id: Ic4faaf84824c162aabcc08e492cee6e0068719d0
Reviewed-on: http://gerrit.rockbox.org/941
Tested: Chiwen Chang <rock1104.tw@yahoo.com.tw>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
This patch redoes the filesystem code from the FAT driver up to the
clipboard code in onplay.c.
Not every aspect of this is finished therefore it is still "WIP". I
don't wish to do too much at once (haha!). What is left to do is get
dircache back in the sim and find an implementation for the dircache
indicies in the tagcache and playlist code or do something else that
has the same benefit. Leaving these out for now does not make anything
unusable. All the basics are done.
Phone app code should probably get vetted (and app path handling
just plain rewritten as environment expansions); the SDL app and
Android run well.
Main things addressed:
1) Thread safety: There is none right now in the trunk code. Most of
what currently works is luck when multiple threads are involved or
multiple descriptors to the same file are open.
2) POSIX compliance: Many of the functions behave nothing like their
counterparts on a host system. This leads to inconsistent code or very
different behavior from native to hosted. One huge offender was
rename(). Going point by point would fill a book.
3) Actual running RAM usage: Many targets will use less RAM and less
stack space (some more RAM because I upped the number of cache buffers
for large memory). There's very little memory lying fallow in rarely-used
areas (see 'Key core changes' below). Also, all targets may open the same
number of directory streams whereas before those with less than 8MB RAM
were limited to 8, not 12 implying those targets will save slightly
less.
4) Performance: The test_disk plugin shows markedly improved performance,
particularly in the area of (uncached) directory scanning, due partly to
more optimal directory reading and to a better sector cache algorithm.
Uncached times tend to be better while there is a bit of a slowdown in
dircache due to it being a bit heavier of an implementation. It's not
noticeable by a human as far as I can say.
Key core changes:
1) Files and directories share core code and data structures.
2) The filesystem code knows which descriptors refer to same file.
This ensures that changes from one stream are appropriately reflected
in every open descriptor for that file (fileobj_mgr.c).
3) File and directory cache buffers are borrowed from the main sector
cache. This means that when they are not in use by a file, they are not
wasted, but used for the cache. Most of the time, only a few of them
are needed. It also means that adding more file and directory handles
is less expensive. All one must do in ensure a large enough cache to
borrow from.
4) Relative path components are supported and the namespace is unified.
It does not support full relative paths to an implied current directory;
what is does support is use of "." and "..". Adding the former would
not be very difficult. The namespace is unified in the sense that
volumes may be specified several times along with relative parts, e.g.:
"/<0>/foo/../../<1>/bar" :<=> "/<1>/bar".
5) Stack usage is down due to sharing of data, static allocation and
less duplication of strings on the stack. This requires more
serialization than I would like but since the number of threads is
limited to a low number, the tradoff in favor of the stack seems
reasonable.
6) Separates and heirarchicalizes (sic) the SIM and APP filesystem
code. SIM path and volume handling is just like the target. Some
aspects of the APP file code get more straightforward (e.g. no path
hashing is needed).
Dircache:
Deserves its own section. Dircache is new but pays homage to the old.
The old one was not compatible and so it, since it got redone, does
all the stuff it always should have done such as:
1) It may be update and used at any time during the build process.
No longer has one to wait for it to finish building to do basic file
management (create, remove, rename, etc.).
2) It does not need to be either fully scanned or completely disabled;
it can be incomplete (i.e. overfilled, missing paths), still be
of benefit and be correct.
3) Handles mounting and dismounting of individual volumes which means
a full rebuild is not needed just because you pop a new SD card in the
slot. Now, because it reuses its freed entry data, may rebuild only
that volume.
4) Much more fundamental to the file code. When it is built, it is
the keeper of the master file list whether enabled or not ("disabled"
is just a state of the cache). Its must always to ready to be started
and bind all streams opened prior to being enabled.
5) Maintains any short filenames in OEM format which means that it does
not need to be rebuilt when changing the default codepage.
Miscellaneous Compatibility:
1) Update any other code that would otherwise not work such as the
hotswap mounting code in various card drivers.
2) File management: Clipboard needed updating because of the behavioral
changes. Still needs a little more work on some finer points.
3) Remove now-obsolete functionality such as the mutex's "no preempt"
flag (which was only for the prior FAT driver).
4) struct dirinfo uses time_t rather than raw FAT directory entry
time fields. I plan to follow up on genericizing everything there
(i.e. no FAT attributes).
5) unicode.c needed some redoing so that the file code does not try
try to load codepages during a scan, which is actually a problem with
the current code. The default codepage, if any is required, is now
kept in RAM separarately (bufalloced) from codepages specified to
iso_decode() (which must not be bufalloced because the conversion
may be done by playback threads).
Brings with it some additional reusable core code:
1) Revised file functions: Reusable code that does things such as
safe path concatenation and parsing without buffer limitations or
data duplication. Variants that copy or alter the input path may be
based off these.
To do:
1) Put dircache functionality back in the sim. Treating it internally
as a different kind of file system seems the best approach at this
time.
2) Restore use of dircache indexes in the playlist and database or
something effectively the same. Since the cache doesn't have to be
complete in order to be used, not getting a hit on the cache doesn't
unambiguously say if the path exists or not.
Change-Id: Ia30f3082a136253e3a0eae0784e3091d138915c8
Reviewed-on: http://gerrit.rockbox.org/566
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
After a local commit, any file that included version.h would have to
be recompiled on account of the changed version string. This changes
version.h in the build directory to rbversion.h and includes the
preprocessor macro from rbversion.h in firmware/common/version.c so
that only that one file needs to be recompiled after a local commit
rather than a whole slew of them.
Change-Id: I900d97e3a24a0610698283416d97b4fa3a3a2cf6
Reviewed-on: http://gerrit.rockbox.org/937
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
find_first_set_bit() becomes a small inline on ARMv5+ and checkwps now gets
made with -std=gnu99 (it eats all the GCCOPTS) like the rest of things.
Change-Id: Ie6039b17fec057a3dcb0f453d8fd5efac984df89
* e200v2 shouldn't use 24bit (was just for testing)
* samsung ypr0/ypr1 should enable it but the correct number must be passed to bmp2rb
Change-Id: Ia91b0ff80a54265d4c3111d9dcb8e7b9dd12b5d4
With LCD driver all calculation will be performed on RGB888 and the hardware/OS
can display from our 24bit framebuffer.
It is not yet as performance optimized as the existing drivers but should be
good enough.The vast number of small changes is due to the fact that
fb_data can be a struct type now, while most of the code expected a scalar type.
lcd-as-memframe ASM code does not work with 24bit currently so the with 24bit
it enforces the generic C code.
All plugins are ported over. Except for rockpaint. It uses so much memory that
it wouldnt fit into the 512k plugin buffer anymore (patches welcome).
Change-Id: Ibb1964545028ce0d8ff9833ccc3ab66be3ee0754
This patch completes the plugin keymaps for the Zen X-Fi3 and enables those plugins for compilation.
One key was changed in "button-target.h" for compatibility with Rockboy.
This also caused the changes to "keymap-zenxfi3.c", to keep the stock functionality (no further changes in here).
Change-Id: Ic222faf89e9a9a2332a49d6e532cedb6eb16d3d7
Reviewed-on: http://gerrit.rockbox.org/762
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
Newer versions of Xcode / OS X don't support PPC code anymore and replace gcc
with clang. When clang is detected assume we want to build for the default
architecture only and change the minimum OS X version to 10.5.
Change-Id: I5843fa9bb3d957ec6f0a537e857608ad99c31517
The build system needed fixes because the tools paths changed and one tool that
we used (apkbuilder) was removed entirely. Recent NDKs don't ship gcc 4.4.3
anymore, therefore switch to 4.6. The code itself needed a fix for a jni
reference bug that was uncovered by KitKat.
The port now builds with latest sdk (r22) and ndk (r9d).
Change-Id: Id74fa54ba93bbb0ee30373fbe79e92c5ff03201d
The external storage will be created during make install, as simext folder in
the build directory. Upon pressing the e key the sim will mount (virtually
) this into the root directory. It can be accessed in the same way as an
sd/mmc card on real targets. This requires quite some path trickery in io.c.
Change-Id: I2fa9070a3146101ec5655b5b4115ca349d1d4bf4
Part of this change is to align sdlapp builds to other application targets
in that the sim_* wrappers are not used anymore (except for sim_read/write).
Path mangling is now done in rbpaths.c as well.
Change-Id: I9726da73b50a83d9e1a1840288de16ec01ea029d
This is the basic port to the new target Samsung
YP-R1, which runs on a similar platform as YP-R0.
Port is usable, although there are still
some optimizations that have to be done.
Change-Id: If83a8e386369e413581753780c159026d9e41f04
I've found this algorithm produces clearer results when rendering
some fonts at small point sizes.
Change-Id: If87d82731ad324405195b25baad78fe54e92c142
Reviewed-on: http://gerrit.rockbox.org/412
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Tested: Purling Nayuki <cyq.yzfl@gmail.com>
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
According to http://http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991, since
mingw-gcc 4.7.1 -mms-bitfields is on by default, and this option breaks the
packet attribute since around 4.2.0.
We haven't set this option so I'm assuming we don't need it. Therefore a
workaround in configure can make things work again, because we rely on
the packet attribute in quite a few places.
Change-Id: I8367c16594cecfdde97c548e04607deaa92e21de
The only true difference in this platform is the amount of iram
between MCF5249 and MCF5250. Instead of duplicating the file
simply use one with proper ifdefs.
Change-Id: Ifd56ebd2666813633502e3b5d83669424659c039
Reviewed-on: http://gerrit.rockbox.org/713
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
The port uses the imx233 soc, it's a STMP3650 based Samsung player
Change-Id: I50b6d7e77fd292fab5ed26de87853cd5aaf9eaa4
Reviewed-on: http://gerrit.rockbox.org/490
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
Originally written and uploaded by Lalufu (Ralf Ertzinger) in Feb 2012.
They have been condensed into a single patch and some further additions
by Andy Potter.
Currently includes Authentication V2 support from iPod to Accessory,
RF/BlueTooth transmitter support, selecting a playlist and selecting a
track from the current playlist. Does not support uploading Album Art
or podcasts. Has been tested on the following iPods,
4th Gen Grayscale, 4th Gen Color/Photo, Mini 2nd Gen, Nano 1st Gen and
Video 5.5Gen.
Change-Id: Ie8fc098361844132f0228ecbe3c48da948726f5e
Co-Authored by: Andy Potter <liveboxandy@gmail.com>
Reviewed-on: http://gerrit.rockbox.org/533
Reviewed-by: Frank Gevaerts <frank@gevaerts.be>
HiFi E.T. MA8 is almost the same as MA9 except
another DAC(pcm1792 in ma8, df1704 in ma9).
MA8 has ILI9342 lcd, MA8C has ILI9342C lcd.
Change-Id: If2ac04f5a3382590b2a392c46286559f54b2ed6a
The only difference between this target and HiFi E.T. MA9
is display driver (ILI9342 in MA9 and ILI9342c in MA9C)
Change-Id: Icc3d2490f850902a653175360f12283f3708bbb7
This is mostly for consistency, this tool will be unused by the newer targets.
Also update the usage() display to mention -no-ciff
Change-Id: I4500f5fdce771ad3c53701a0bbaace916e88759d
Added a 60s timeout to the script to avoid having to wait for ages when a download stalls.
Change-Id: I97f0aafe4eac0fb3cfc83805c99d19f1ef02b9f9
Reviewed-on: http://gerrit.rockbox.org/636
Reviewed-by: Kevin Zheng <kevinz5000@gmail.com>
Tested-by: Michael Rodger <rockbox@atinyhedgehog.za.net>
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
The dynmaic library support provided in dlfcn.h does not require
additional linker flags on FreeBSD. It is provided with the standard C
library and will fail to link if "-ldl" is specified.
Change-Id: I9f21d8369d45a9be94129a1b37b4607adf673c57
Reviewed-on: http://gerrit.rockbox.org/637
Tested-by: Kevin Zheng <kevinz5000@gmail.com>
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
Enable simulator for the target ypr0 to
be built and used.
Change-Id: I1b080f07ab90f5c4856881d08ad70e1053bbb0c0
Reviewed-on: http://gerrit.rockbox.org/618
Reviewed-by: Frank Gevaerts <frank@gevaerts.be>
This will be required by the R0 port. Generating C source with 24bit data is
not supported yet because Rockbox doesn't support this depth yet (and has no
data type for it).
Change-Id: I6474a6d32bb7942661bac833bb3348073335e25c
(Take #2)
If .bss wasn't large enough, and .ncdata was empty, .ncbss would be
at an address overlapping the alignment-padded end of .ncdata and
and linking would fail with an overlap error.
Adds plugin load end address that accounts for IRAM going past
the final .bss sections, making IRAM overlay compatible. load_code
could also use this instead of the file size.
The .lds becomes a bit more straightforward and explicit when
assigning addresses.
Change-Id: Id0c33f257710e97ece2c831e0feaaa32c1a14e05
Recent versions of texinfo breaks various binutils and GCC
builds. For GCC setting MAKEINFO=missing at configure time works
but not for binutils where patches are used to fix parsing errors.
This also makes rockboxdev.sh handle applying multiple patches.
Change-Id: Ia8e6dc7662ab725490e4b4428676d235f0bd38bb
Reviewed-on: http://gerrit.rockbox.org/471
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Since ar is not running in verbose mode there is normally no output to get rid
of, and in case of errors it's useful to see them. Also, Windows doesn't know
about /dev/null.
Make dependency generation for librbspeex more silent as well.
Change-Id: Ie0d4a406e665ebd67331d6cd1fa2fc02f8bf21b9
Similar as done in d2b8f91 change dependency generation to use one file per
source file. This removes the need to have external tools installed on Windows.
Previously Cygwin or msys tools needed to be in the system PATH which was
problematic at times.
This means that now building on Windows (using MinGW) doesn't require
additional tools anymore.
Change-Id: I4c0675e99c3cc3a729b91beefd58320db498ae0a
Similar as done for libtools.make ask the compiler for the binary it creates
instead of using uname to figure the target to avoid special handling when
cross compiling.
Change-Id: Icb4654616e4339bf9e6e3be5177b35e0bb313bcd
Windows mkdir doesn't know about the -p option and requires paths to use \ as
path separator. Try to detect when building on Windows and use the Windows
internal function instead of relying on a compatible mkdir in the path.
Change-Id: I47d47d45edeb38c672321f77d6e91268bf744dba
95e23de made -Wl,--gc-sections appear after -T by combining it with the global
linker options. Moving the global linker options in front of -T seems to fix
the crash observed on mini2g after that change -- as it seems the linker
behaves differently if --gc-sections is passed after -T.
Fixes FS#12857.
Change-Id: Id64dc6b91726760d75a1a0cd85bb7c06208d2f45
Similar as done in ea0bfe7 ask the compiler for the binary it creates instead
of using uname to figure the target.
Simplify source file preprocessing to avoid using grep to improve compatibility
with Windows.
Change-Id: I39ecfe690c9bb70b07b0af5a7804d7e5ab512d71
Previously it was sufficient to set those variables when running configure.
Since ANDROID_NDK_PATH is now also used in the Android Makefile set both
variables in the generated Makefile as well -- not everyone has (or wants) to
set them globally in the environment.
Change-Id: Ib64ffeea379c58c9d361b3fbfefb67084dce666c
If the host is ARM simply checking the architecture the compiler produces
binaries for will include unwarminder even for the PC tools, breaking them.
Fixes building checkwps and database on ARM hosts. Doesn't fix warble, there
are additional problems with that.
Change-Id: I135b1103a60b9e3720117cde1075b7d73424f384
As per title this patch aims at splitting common target
code and specific target code in a better way to
support future ports within the same environment
(e.g. Samsung YP-R1 where the Linux and the SoC
are the same, with differences in hardware devices
handling)
Change-Id: I67b4918c46403b184d3d8f42ab5aae7d01037fd0
Reviewed-on: http://gerrit.rockbox.org/409
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
sigaltstack() is not available (more accurately, not exposed by the
NDK) pre-gingerbread/2.3. However the android-arm target runs on
down to eclair/2.1, where the asm threads still work fine.
Change-Id: I2bb14bc6bb5653c401552189699a676109ac6587
This is work from FS#12431 synced to current HEAD and slightly
tweaked (gcc 4.6.2 -> 4.6.3, binutils 2.21.1 -> 2.22)
Change-Id: I76af91e80ac2a9c16a776c7f0a33cc51603bbf9b
This breaks themes on the theme site (that ship an rwps for remote targets) for
non-remote targets. As rockbox just ignores the rwps checkwps now does the same.
Change-Id: Id8c7833f0bd88d239dce87711456b94c93480a51
MSSP is accessible via vbs by simply changing the object to be used (both
SAPI5 and MSSP use the ISpVoice COM interface). Add command line parameter to
sapi_voice.vbs to switch the COM object used, and add the necessary
implementation of the SAPI class to Rockbox Utility.
Important: you will need to install the Speech Runtime separately and install
the version matching the bitsize of Rockbox Utility. I.e. you will need to
install the x86 version even on a x64 machine (unless you build a 64bit binary
of Rockbox Utility).
Change-Id: If760cd69c556c17a2ae539965d0941d16fdc10e1
The currently used comma for separating voices for the /listvoices command is
used by Speech Platform based voices. Change the character to a semicolon
which isn't used by voices.
Change-Id: I1a7e6e4229f864f56635143e864dadf38cdd7e73