diff options
Diffstat (limited to 'frontend/plat_pollux.c')
-rw-r--r-- | frontend/plat_pollux.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/frontend/plat_pollux.c b/frontend/plat_pollux.c index 589049c..1dafb7c 100644 --- a/frontend/plat_pollux.c +++ b/frontend/plat_pollux.c @@ -653,6 +653,22 @@ void plat_finish(void) close(memdev); } +/* WIZ RAM lack workaround */ +void *memtab_mmap(void *addr, size_t size) +{ + void *ret; + + if (gp2x_dev_id != GP2X_DEV_WIZ) + return mmap(addr, size, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0); + + ret = mmap(addr, size, PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_FIXED, memdev, 0x03000000); + if (ret != MAP_FAILED) + warm_change_cb_range(WCB_C_BIT | WCB_B_BIT, 1, ret, size); + return ret; +} + /* Caanoo stuff, perhaps move later */ static const char * const caanoo_keys[KEY_MAX + 1] = { [0 ... KEY_MAX] = NULL, |