xtensa: nommu: provide correct KIO addresses
KIO region location is different for noMMU cores. Provide different default physical address and make KIO virtual address equal to physical. Move xtensa_get_kio_paddr function close to XCHAL_KIO_PADDR definition and define it not only for MMUv3, but for all MMU options except MMUv2. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
Родитель
cfedf08b0c
Коммит
260c64bbab
|
@ -25,15 +25,6 @@
|
||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
|
|
||||||
#if XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY && defined(CONFIG_OF)
|
|
||||||
extern unsigned long xtensa_kio_paddr;
|
|
||||||
|
|
||||||
static inline unsigned long xtensa_get_kio_paddr(void)
|
|
||||||
{
|
|
||||||
return xtensa_kio_paddr;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return the virtual address for the specified bus memory.
|
* Return the virtual address for the specified bus memory.
|
||||||
* Note that we currently don't support any address outside the KIO segment.
|
* Note that we currently don't support any address outside the KIO segment.
|
||||||
|
|
|
@ -21,13 +21,26 @@
|
||||||
#include <variant/core.h>
|
#include <variant/core.h>
|
||||||
#include <platform/hardware.h>
|
#include <platform/hardware.h>
|
||||||
|
|
||||||
|
#if XCHAL_HAVE_PTP_MMU
|
||||||
#define XCHAL_KIO_CACHED_VADDR 0xe0000000
|
#define XCHAL_KIO_CACHED_VADDR 0xe0000000
|
||||||
#define XCHAL_KIO_BYPASS_VADDR 0xf0000000
|
#define XCHAL_KIO_BYPASS_VADDR 0xf0000000
|
||||||
#define XCHAL_KIO_DEFAULT_PADDR 0xf0000000
|
#define XCHAL_KIO_DEFAULT_PADDR 0xf0000000
|
||||||
|
#else
|
||||||
|
#define XCHAL_KIO_BYPASS_VADDR XCHAL_KIO_PADDR
|
||||||
|
#define XCHAL_KIO_DEFAULT_PADDR 0x90000000
|
||||||
|
#endif
|
||||||
#define XCHAL_KIO_SIZE 0x10000000
|
#define XCHAL_KIO_SIZE 0x10000000
|
||||||
|
|
||||||
#if XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY && defined(CONFIG_OF)
|
#if (!XCHAL_HAVE_PTP_MMU || XCHAL_HAVE_SPANNING_WAY) && defined(CONFIG_OF)
|
||||||
#define XCHAL_KIO_PADDR xtensa_get_kio_paddr()
|
#define XCHAL_KIO_PADDR xtensa_get_kio_paddr()
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
extern unsigned long xtensa_kio_paddr;
|
||||||
|
|
||||||
|
static inline unsigned long xtensa_get_kio_paddr(void)
|
||||||
|
{
|
||||||
|
return xtensa_kio_paddr;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#define XCHAL_KIO_PADDR XCHAL_KIO_DEFAULT_PADDR
|
#define XCHAL_KIO_PADDR XCHAL_KIO_DEFAULT_PADDR
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -190,7 +190,7 @@ static int __init parse_bootparam(const bp_tag_t* tag)
|
||||||
#ifdef CONFIG_OF
|
#ifdef CONFIG_OF
|
||||||
bool __initdata dt_memory_scan = false;
|
bool __initdata dt_memory_scan = false;
|
||||||
|
|
||||||
#if XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
|
#if !XCHAL_HAVE_PTP_MMU || XCHAL_HAVE_SPANNING_WAY
|
||||||
unsigned long xtensa_kio_paddr = XCHAL_KIO_DEFAULT_PADDR;
|
unsigned long xtensa_kio_paddr = XCHAL_KIO_DEFAULT_PADDR;
|
||||||
EXPORT_SYMBOL(xtensa_kio_paddr);
|
EXPORT_SYMBOL(xtensa_kio_paddr);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче