Commit graph

27 commits

Author SHA1 Message Date
Michael Sevakis
e7e302f255 One more shot; errno.h needs to be in the ARM one too :)
Change-Id: Icf5e5fb269c975eaaefc6e756f46d4530b982b1f
2014-08-05 22:20:28 -04:00
Michael Sevakis
0615cb8042 Hosted builds using thread.c have errno as thread context.
Never came up testing but I don't have those SDKs installed. Taking a
jab at it.

Change-Id: I4d0de1c666e0895d41b3de41dd9024626bd37601
2014-08-05 22:05:20 -04:00
Amaury Pouly
d5591a2b28 zen/zenxfi: switch lcd driver to 24-bit mode
Change-Id: I2c42f0e422130bcdaf1aaf92c7b56776752f4f64
2014-06-24 18:07:55 +02:00
Thomas Martitz
a1842c04f9 lcd-24bit: Introduce a 24-bit mid-level LCD driver
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
2014-06-21 00:15:53 +02:00
Thomas Martitz
382d1861af kernel: Break out kernel primitives into separate files and move to separate dir.
No code changed, just shuffling stuff around. This should make it easier to
build only select parts kernel and use different implementations.

Change-Id: Ie1f00f93008833ce38419d760afd70062c5e22b5
2014-03-03 18:11:57 +01:00
Lorenzo Miori
e876f4df6d Samsung YP-R1 target port
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
2014-02-05 09:56:21 +01:00
Marcin Bukat
5dec7af1ec Revert "SH gcc 4.6.3 with link-time optimization, for Archos targets"
This was commited by accident, sorry.
2012-10-24 14:05:39 +02:00
Boris Gjenero
c975de1534 SH gcc 4.6.3 with link-time optimization, for Archos targets
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
2012-10-24 14:02:41 +02:00
Frank Gevaerts
268b725c40 Rearrange #ifdefs a bit, so SIGALTSTACK overrides CPU-specific threading.
Change-Id: Ie3661f53bd7576d965fcc52facb532199b87c017
2012-06-11 22:27:41 +02:00
Thomas Martitz
a54c687300 Apparently make doesn't like inline comments
Change-Id: If604af9713cf95dafbeb1a601219ca1b3a8964fa
2012-03-28 23:14:39 +02:00
Thomas Martitz
7b1a369cf7 build system: completely autodetect target cpu architecture.
The existing ARCH Makefile variable is exported to the C code as well.
Additionally the version (arm-only for now) is detected as well. This
allows to for complete autodetection, i.e. that optimized ASM is picked up
if determined by preprocessor (CPU_ARM, etc).

Building a sim/raaa on a arm host will now automatically generate a arm
optmized build like we have for native targets.

Change-Id: I0b35393f8fb3ebd20beaa9e7371fa57bf3782107
2012-03-28 23:02:39 +02:00
Michael Sevakis
64bb720edf Coldfire: Optimize emac context save/restore in mixer ISR.
Save only once if emac is used in ISR and restore only once per ISR
call if already saved.

Change-Id: I0e40db5d4aab2a8552480f76873f59ff6ccd9977
Reviewed-on: http://gerrit.rockbox.org/176
Tested-by: Michael Sevakis <jethead71@rockbox.org>
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
2012-03-12 00:16:12 +01:00
Michael Sevakis
286a4c5caa Revise the PCM callback system after adding multichannel audio.
Additional status callback is added to pcm_play/rec_data instead of
using a special function to set it. Status includes DMA error
reporting to the status callback. Playback and recording callback
become more alike except playback uses "const void **addr" (because
the data should not be altered) and recording  uses "void **addr".
"const" is put in place throughout where appropriate.

Most changes are fairly trivial. One that should be checked in
particular because it isn't so much is telechips, if anyone cares to
bother. PP5002 is not so trivial either but that tested as working.

Change-Id: I4928d69b3b3be7fb93e259f81635232df9bd1df2
Reviewed-on: http://gerrit.rockbox.org/166
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-03-03 07:23:38 +01:00
Michael Sevakis
9a25a6fe19 beep/mixer code: Code police a bit.
/firmware is in the #include path with makes #include "asm/beep.c" sufficient.

Add a comment to generic beep code and make another express intent better.

Change-Id: I587cd704478b894785927bdfe2e647e28614df62
2012-02-19 00:38:58 -05:00
Michael Sevakis
9a32a7b404 Split CPU-optimized beep code into the firmware/asm tree.
For now due to current lack of an apps/asm, place the ASM/generic code in the
firmware/asm directory.

Additionally, make generic beep code more generic.

Change-Id: I4a69b6ffcbb97d9e6dfde2209c5a118de19e5638
2012-02-18 04:50:33 -05:00
Michael Sevakis
43e6d7aef8 Urgh...actually change all the stuff I'm supposed to.
Goofed a couple fn params.

Change-Id: I2474d10fe08d2629ada54c83e201ee91c596d854
2012-02-05 22:48:47 -05:00
Michael Sevakis
691c7a7614 Make generic pcm-mixer.c more generic in the way it writes output.
Also remove unused firmmware/asm/generic directory.

Change-Id: If1961f96f4292f00227a9b0148181152ac405e51
2012-02-05 22:35:23 -05:00
Michael Sevakis
67dd4d6995 Generic find_first_set_bit can use __builtin_ctz instead of __builtin_ffs
The former gives 0-based indexes, which is what our implementation returns,
making the "- 1" unnecessary.

Change-Id: I172ab5e06695be62e4a18d4fd0415b8314f5dc26
2012-02-04 18:08:17 -05:00
Michael Sevakis
74736fcfc9 find_first_set_bit tweaks
Correct sizing in m68k asm.
Make the gerneric version far more generic.

Change-Id: I32945f7431771979b3fe0da5472bdb110fd054ae
2012-01-27 11:51:25 -05:00
Thomas Martitz
aeae94dbc4 Fix typo in comment.
Change-Id: I3a6813a5eb024aad799bc59c569db54337cb8d1f
2012-01-22 22:39:48 +01:00
Thomas Martitz
c94cf3b888 Move optimized ffs to firmware/asm, using the new automatic-asm-picking infrastructure.
Change-Id: I5e7bdc8be7de50ef604c16078857fff1b84650dc
2012-01-22 18:46:45 +01:00
Thomas Martitz
5e9b62cd8a ypr0: Use generic lcd memframe driver. 2012-01-22 18:46:45 +01:00
Thomas Martitz
094cbd586f Implement a C version lcd-as-memframe.c and move it and the asm to firmware/asm.
Change-Id: I20c3af0368202493d54fb776530300a39d47873a
2012-01-22 18:46:45 +01:00
Thomas Martitz
a035261089 Move optimized memcpy and friends and strlen to firmware/asm,
using the new automatic-asm-picking infrastructure.
2012-01-22 18:46:45 +01:00
Thomas Martitz
8e8e978de6 Add framework to let make automatically pick optimized asm implementations over generic C ones to firmware.
Example: for a file asm/foo.c, make will look for asm/arm/foo.[cS] and
compile it if found. If not found it'll fall back to asm/foo.c.

Also introduce new ARCH make variable. This is automatically detected by
configure. It is distinct from CPU since CPU defines the dir used for
the target tree (i.e. firmware/target/X, so it can be "hosted").
ARCH really has the target isa and can be x86 for sims/raaa too.

Change-Id: I18e5d2b7b7bbc2ad2be551a74a0fcae5ffbcbf8b
2012-01-22 18:46:45 +01:00
Thomas Martitz
3c17f28eca Move pcm_mixer helper routines to firmware/asm. 2012-01-22 18:46:45 +01:00
Thomas Martitz
991ae1e395 Create fimrware/asm directory for assembly optimized stuff.
This dir is suitable for stuff that doesn't fit the target tree, e.g. because
it also builds on hosted or otherwise. It also has a generic subfolder for
fallback C implementations so that not all archs need to provide asm files.

SOURCES should only contain "foo.c" where foo.c includes the specific
<arch>/foo.c files from the subdirs using the preprocessor. This way automatic
selection of asm versions or generic C verion is possible.

For the start, the thread support files are moved, since ASM threads can
be used on hosted platforms as well. Since core_sleep() remains platform
specific it's moved to the corresponding system.h headers.

Change-Id: Iebff272f3407a6eaafeb7656ceb0ae9eca3f7cb9
2012-01-22 18:46:44 +01:00