Skip to content

Commit

Permalink
[MIPS] Allow generic spaces.h to be included by platform specific ones
Browse files Browse the repository at this point in the history
Before this patch, when a platform needed to customize one constant in
spaces.h, they need to redefine all of them.

Now they can just redefine one constant and include the generic file
header at the end:

	#include <asm/mach-generic/spaces.h>

This patch doesn't allow to redefine CAC_BASE, IO_BASE and UNCAC_BASE
for 32 bits platforms because there's no need to do so.

This will avoid some macro duplications. It's important specially if
we'll add complex macros.

Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

 delete mode 100644 include/asm-mips/mach-ip32/spaces.h
  • Loading branch information
Franck Bui-Huu authored and Ralf Baechle committed Jul 10, 2007
1 parent 69ed25b commit 09bb9ce
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 73 deletions.
18 changes: 18 additions & 0 deletions include/asm-mips/mach-generic/spaces.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,18 @@
#define CAC_BASE 0x80000000
#define IO_BASE 0xa0000000
#define UNCAC_BASE 0xa0000000

#ifndef MAP_BASE
#define MAP_BASE 0xc0000000
#endif

/*
* This handles the memory map.
* We handle pages at KSEG0 for kernels with 32 bit address space.
*/
#ifndef PAGE_OFFSET
#define PAGE_OFFSET 0x80000000UL
#endif

/*
* Memory above this physical address will be considered highmem.
Expand All @@ -38,11 +43,13 @@
/*
* This handles the memory map.
*/
#ifndef PAGE_OFFSET
#ifdef CONFIG_DMA_NONCOHERENT
#define PAGE_OFFSET 0x9800000000000000UL
#else
#define PAGE_OFFSET 0xa800000000000000UL
#endif
#endif

/*
* Memory above this physical address will be considered highmem.
Expand All @@ -53,14 +60,25 @@
#define HIGHMEM_START (1UL << 59UL)
#endif

#ifndef CAC_BASE
#ifdef CONFIG_DMA_NONCOHERENT
#define CAC_BASE 0x9800000000000000UL
#else
#define CAC_BASE 0xa800000000000000UL
#endif
#endif

#ifndef IO_BASE
#define IO_BASE 0x9000000000000000UL
#endif

#ifndef UNCAC_BASE
#define UNCAC_BASE 0x9000000000000000UL
#endif

#ifndef MAP_BASE
#define MAP_BASE 0xc000000000000000UL
#endif

#define TO_PHYS(x) ( ((x) & TO_PHYS_MASK))
#define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK))
Expand Down
33 changes: 3 additions & 30 deletions include/asm-mips/mach-ip22/spaces.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,44 +11,17 @@
#define _ASM_MACH_IP22_SPACES_H


#ifdef CONFIG_32BIT

#define CAC_BASE 0x80000000
#define IO_BASE 0xa0000000
#define UNCAC_BASE 0xa0000000
#define MAP_BASE 0xc0000000

/*
* This handles the memory map.
* We handle pages at KSEG0 for kernels with 32 bit address space.
*/
#define PAGE_OFFSET 0x80000000UL

/*
* Memory above this physical address will be considered highmem.
*/
#ifndef HIGHMEM_START
#define HIGHMEM_START 0x20000000UL
#endif

#endif /* CONFIG_32BIT */

#ifdef CONFIG_64BIT
#define PAGE_OFFSET 0xffffffff80000000UL

#ifndef HIGHMEM_START
#define HIGHMEM_START (1UL << 59UL)
#endif
#define PAGE_OFFSET 0xffffffff80000000UL

#define CAC_BASE 0xffffffff80000000
#define IO_BASE 0xffffffffa0000000
#define UNCAC_BASE 0xffffffffa0000000
#define MAP_BASE 0xc000000000000000

#define TO_PHYS(x) ( ((x) & TO_PHYS_MASK))
#define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK))
#define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK))

#endif /* CONFIG_64BIT */

#include <asm/mach-generic/spaces.h>

#endif /* __ASM_MACH_IP22_SPACES_H */
9 changes: 2 additions & 7 deletions include/asm-mips/mach-ip27/spaces.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,17 @@
* IP27 uses the R10000's uncached attribute feature. Attribute 3 selects
* uncached memory addressing.
*/
#define CAC_BASE 0xa800000000000000

#define HSPEC_BASE 0x9000000000000000
#define IO_BASE 0x9200000000000000
#define MSPEC_BASE 0x9400000000000000
#define UNCAC_BASE 0x9600000000000000
#define MAP_BASE 0xc000000000000000

#define TO_PHYS(x) ( ((x) & TO_PHYS_MASK))
#define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK))
#define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK))
#define TO_MSPEC(x) (MSPEC_BASE | ((x) & TO_PHYS_MASK))
#define TO_HSPEC(x) (HSPEC_BASE | ((x) & TO_PHYS_MASK))

#define PAGE_OFFSET CAC_BASE

#define HIGHMEM_START (~0UL)

#include <asm/mach-generic/spaces.h>

#endif /* _ASM_MACH_IP27_SPACES_H */
36 changes: 0 additions & 36 deletions include/asm-mips/mach-ip32/spaces.h

This file was deleted.

0 comments on commit 09bb9ce

Please sign in to comment.