From 2386b644fa0a04a485ec99943d7c5951ff2a3993 Mon Sep 17 00:00:00 2001 From: notaz Date: Sat, 11 Jul 2009 23:21:21 +0300 Subject: [PATCH] r2 release --- README | 101 +++++++++++++++++++++++++++++++++++++++ bin/warm_2.4.25.o | Bin 0 -> 10062 bytes bin/warm_2.4.26-open2x.o | Bin 0 -> 9493 bytes bin/warm_2.6.24.ko | Bin 0 -> 86123 bytes 4 files changed, 101 insertions(+) create mode 100644 README create mode 100644 bin/warm_2.4.25.o create mode 100644 bin/warm_2.4.26-open2x.o create mode 100644 bin/warm_2.6.24.ko diff --git a/README b/README new file mode 100644 index 0000000..0dd19c5 --- /dev/null +++ b/README @@ -0,0 +1,101 @@ +About +----- + +wARM is a combination of library and Linux kernel module for ARM processor +control. It was created because ARM processor allows to perform certain +operations in privileged modes only, and ARM Linux kernel is only providing +limited functionality through some private system calls. The code was +developed for GPH GP2X/Wiz consoles, but it should be possible to use it +on other ARM Linux systems (probably with modifications). + +Currently wARM provides various cache control operations and supports only +ARM9 family processors. + + +Usage +----- + +The library consists of just 2 files: warm.c and warm.h, which should be +compiled into your program. The library performs module loading and +communication with it all by itself, you just need to call the right +functions. You will need to have a matching kernel module available for +kernel running on your device, several precompiled modules can be found +in bin/ directory: + + warm_2.4.25.o - for GP2X F100/F200 GPH firmwares + warm_2.4.26-open2x.o - for GP2X F100/F200 Open2x firmware + warm_2.6.24.ko - for Wiz GPH firmwares + +When the module is loaded into kernel, it creates /proc/warm file, which +can be read for some information about the CPU. + + +API +--- + +warm_init - must be called on startup. You must do it with current working + directory set to where kernel module can be found. + +warm_finish - should be called before exit to close internal files and unload + the module. + +warm_cache_op_range - + call to perform cache invalidation or clean operations (can + specify both with binary or - '|') for virtual address ranges. + In all cases write buffer is flushed (no operation can be + specified to just flush the write buffer). + +warm_cache_op_all - + same as above, only affects the whole cache. + +warm_change_cb_range - + set or clear C and/or B bits for memory region (if is_set is + nonzero, sets, else clears). The meaning of C and B bit + combinations is processor specific, for ARM9 C enables both + caching and buffering, B enables write buffer (when C is + cleared), or enables write-back caching (when C is set). + Note that in some cases the region needs to be accessed + before calling this function, so that kernel maps actual pages. + +warm_change_cb_upper - + same as above, only affects "upper" memory (RAM memory above + Linux accessible range, can be found in GP2X and Wiz). + +warm_virt2phys - + Converts virtual address to physical address. Note that the + returned address is only valid for one page where the address + points to (4KB in Linux). Next page will most likely point to + completely different physical memory location, instead of next + one. + +note: all operations except warm_cache_op_all() affect calling process only. + + +License +------- + + * Copyright (c) Gražvydas "notaz" Ignotas, 2009 + * notasas a gmail d com + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the organization nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/bin/warm_2.4.25.o b/bin/warm_2.4.25.o new file mode 100644 index 0000000000000000000000000000000000000000..23a80b8131063bfbc5ceb87f9171d144c62a777d GIT binary patch literal 10062 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 j#@Z5fe#yB}l=$S61E?sLPUZ5ExRH! literal 0 HcmV?d00001 diff --git a/bin/warm_2.6.24.ko b/bin/warm_2.6.24.ko new file mode 100644 index 0000000000000000000000000000000000000000..d2b8dc4df48baecade0fbf35c09ee5402fe9f6a1 GIT binary patch literal 86123 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 literal 0 HcmV?d00001 -- 2.39.5