mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-05-12 11:43:16 -04:00
Move the definition of NOCACHE_BASE to the CPU headers instead of having them copy-and-pasted in a few places. Change-Id: Ibbab27a5a07906d46dbd4dd9065f2238bc885d6b
105 lines
3.4 KiB
C
105 lines
3.4 KiB
C
/***************************************************************************
|
|
* __________ __ ___.
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
* \/ \/ \/ \/ \/
|
|
* $Id$
|
|
*
|
|
* Copyright (C) 2004 by Linus Nielsen Feltzing
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
* KIND, either express or implied.
|
|
*
|
|
****************************************************************************/
|
|
#ifndef __CPU_H
|
|
#define __CPU_H
|
|
|
|
#include "config.h"
|
|
|
|
#if CONFIG_CPU == MCF5249
|
|
#include "mcf5249.h"
|
|
#elif CONFIG_CPU == MCF5250
|
|
#include "mcf5250.h"
|
|
#elif (CONFIG_CPU == PP5020) || (CONFIG_CPU == PP5022)
|
|
#include "pp5020.h"
|
|
#elif CONFIG_CPU == PP5002
|
|
#include "pp5002.h"
|
|
#elif CONFIG_CPU == PP5024
|
|
#include "pp5024.h"
|
|
#elif CONFIG_CPU == PP6100
|
|
#include "pp6100.h"
|
|
#elif CONFIG_CPU == S3C2440
|
|
#include "s3c2440.h"
|
|
#elif CONFIG_CPU == DM320
|
|
#include "dm320.h"
|
|
#elif CONFIG_CPU == IMX31L
|
|
#include "imx31l.h"
|
|
#elif defined(CPU_TCC780X)
|
|
#include "tcc780x.h"
|
|
#elif defined(CPU_S5L87XX)
|
|
#include "s5l87xx.h"
|
|
#elif CONFIG_CPU == JZ4732
|
|
#include "jz4740.h"
|
|
#elif CONFIG_CPU == JZ4760B
|
|
#include "jz4760b.h"
|
|
#elif CONFIG_CPU == AS3525
|
|
#include "as3525.h"
|
|
#elif CONFIG_CPU == AS3525v2
|
|
#include "as3525v2.h"
|
|
#elif CONFIG_CPU == IMX233
|
|
#include "imx233.h"
|
|
#elif CONFIG_CPU == RK27XX
|
|
#include "rk27xx.h"
|
|
#elif CONFIG_CPU == X1000
|
|
#include "x1000.h"
|
|
#elif CONFIG_CPU == STM32H743
|
|
#include "stm32h743.h"
|
|
#endif
|
|
|
|
#if (CONFIG_PLATFORM & PLATFORM_NATIVE) && (defined(CPU_ARM) || defined(CPU_MIPS))
|
|
# define HAVE_CPU_CACHE_ALIGN
|
|
#endif
|
|
|
|
#if defined(HAVE_CPU_CACHE_ALIGN)
|
|
# if !defined(CACHEALIGN_BITS)
|
|
# error "CPU header must define CACHEALIGN_BITS"
|
|
# elif !defined(CACHEALIGN_SIZE)
|
|
# error "CPU header must define CACHEALIGN_SIZE"
|
|
# elif CACHEALIGN_SIZE != (1u << CACHEALIGN_BITS)
|
|
# error "CACHEALIGN_SIZE and CACHEALIGN_BITS are inconsistent"
|
|
# endif
|
|
#else
|
|
# if defined(CACHEALIGN_BITS) && defined(CACHEALIGN_SIZE)
|
|
# error "CACHEALIGN_BITS and CACHEALIGN_SIZE must not be defined for targets with no CPU cache"
|
|
# endif
|
|
#endif
|
|
|
|
/*
|
|
* Note: NOCACHE_BASE assumes that DRAM is linearly mapped both
|
|
* at a lower cached address and an upper uncached address, so
|
|
* that you can add NOCACHE_BASE to the cached DRAM address to
|
|
* get the corresponding uncached address.
|
|
*
|
|
* Defining NOCACHE_BASE is only required if you need plugins to
|
|
* be able to link data at uncached addresses. If in doubt, you
|
|
* don't need this. It's mainly of use for dual-core PortalPlayer
|
|
* targets which need to do this for things like mutexes/queues;
|
|
* since PP lacks hardware cache coherency, data which is writable
|
|
* by more than one core often needs to accessed uncached.
|
|
*/
|
|
#if defined(NOCACHE_BASE)
|
|
# if !defined(HAVE_CPU_CACHE_ALIGN)
|
|
# error "NOCACHE_BASE cannot be defined on targets with no CPU cache!"
|
|
# elif NOCACHE_BASE == 0
|
|
# error "NOCACHE_BASE cannot be 0!"
|
|
# endif
|
|
#endif
|
|
|
|
#endif /* __CPU_H */
|