forked from len0rd/rockbox
Enable nocache sections using the linker. PP5022/4 must use SW_CORELOCK now with shared variables in DRAM (it seems swp(b) is at least partially broken on all PP or I'm doing something very wrong here :\). For core-shared data use SHAREDBSS/DATA_ATTR. NOCACHEBSS/DATA_ATTR is available whether or not single core is forced for static peripheral-DMA buffer allocation without use of the UNCACHED_ADDR macro in code and is likely useful on a non-PP target with a data cache (although not actually enabled in config.h and the .lds's in this commit).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16981 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
be698f086d
commit
05099149f1
40 changed files with 323 additions and 126 deletions
|
@ -21,12 +21,12 @@
|
|||
#include "plugin.h"
|
||||
#include "mpegplayer.h"
|
||||
|
||||
static struct mutex disk_buf_mtx NOCACHEBSS_ATTR;
|
||||
static struct event_queue disk_buf_queue NOCACHEBSS_ATTR;
|
||||
static struct queue_sender_list disk_buf_queue_send NOCACHEBSS_ATTR;
|
||||
static struct mutex disk_buf_mtx SHAREDBSS_ATTR;
|
||||
static struct event_queue disk_buf_queue SHAREDBSS_ATTR;
|
||||
static struct queue_sender_list disk_buf_queue_send SHAREDBSS_ATTR;
|
||||
static uint32_t disk_buf_stack[DEFAULT_STACK_SIZE*2/sizeof(uint32_t)];
|
||||
|
||||
struct disk_buf disk_buf NOCACHEBSS_ATTR;
|
||||
struct disk_buf disk_buf SHAREDBSS_ATTR;
|
||||
static struct list_item nf_list;
|
||||
|
||||
static inline void disk_buf_lock(void)
|
||||
|
@ -566,7 +566,7 @@ static int disk_buf_probe(off_t start, size_t length,
|
|||
{
|
||||
if (disk_buf.cache[page] != tag)
|
||||
{
|
||||
static struct dbuf_range rng NOCACHEBSS_ATTR;
|
||||
static struct dbuf_range rng IBSS_ATTR;
|
||||
DEBUGF("disk_buf: cache miss\n");
|
||||
rng.tag_start = tag;
|
||||
rng.tag_end = tag_end;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue