Building rmtfs on AOSP, we see a lot of the following:
warning: arithmetic on a pointer to void is a GNU extension
Fix this by casting the void* ptrs to char* when doing pointer
arithmatic.
Signed-off-by: John Stultz <john.stultz@linaro.org>
[AmitP: Fixed cherry-pick conflicts and updated commit log]
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
* Add Android.bp makefile to build rmtfs for AOSP.
* libudev is not supported on AOSP so read
/sys/class/rmtfs sysfs entries directly.
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
The 'phys_address' argument of rmtfs_mem_read() and rmtfs_mem_write() is
an 'unsigned long' type value, which is then passed to the
'phys_address' argument of rmtfs_mem_ptr(), which is an 'unsigned int'
type value. This patch fixes the mismatch.
Signed-off-by: Ben Chan <benchan@chromium.org>
I see warnings like this:
sharedmem.c:89:44: warning: incompatible pointer types passing 'uint64_t *' (aka 'unsigned long long *') to parameter of type 'unsigned long *' [-Wincompatible-pointer-types]
Since 'unsigned long' might actually be smaller than 'uint64_t', we
should really upgrade to 'unsigned long long' parsing.
At the same time, the existing error handling was wrong: it should have
been looking for ULONG_MAX (per the man page). Convert that to
ULLONG_MAX to fix that bug while we're at it.
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
The kernel driver exposing the shared memory was renamed, update the
path in rmtfs as well.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Attempt to open /dev/qcom_rfsa1 and use this instead of memory mapping
/dev/mem, while falling back to the old behavior. This allow us to drop
the dependency on /dev/mem access and will aid supporting multiple
memory regions.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Rather than exposing a pointer to the mmapped memory and performing IO
directly on this address pass the data through a local buffer and move
the reading and writing of memory into the sharedmem module.
This allows us to support shared memory that is not memory mapped in the
future.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Introduce a struct to pass around the parameters related to the rmtfs
memory, in preparation for supporting multiple memory regions.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
We don't have a way to notice if the remote crashes and free the memory,
so for now don't mark it as busy and just hand out the same memory the
next time.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
The rmtfs address differes from platform to platform, so fetch these
from the device-tree node in /proc instead of hard coding them.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
The rmtfs tool pushlishes the two QMI services "rmtfs" and "rfsa", and
implements the necessary requests for rmtfs that's needed to boot the
modem subsystem on a Qualcomm based board.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>