Skip to content

Commit

Permalink
[ARM] 3060/1: allow constants found in asm/memory.h to be used in asm…
Browse files Browse the repository at this point in the history
… code

Patch from Nicolas Pitre

This patch allows for assorted type of cleanups by letting assembly code
use the same set of defines for constant values and avoid duplicated
definitions that might not always be in sync, or that might simply be
confusing due to the different names for the same thing.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Nicolas Pitre authored and Russell King committed Oct 29, 2005
1 parent c514e58 commit f09b997
Show file tree
Hide file tree
Showing 25 changed files with 49 additions and 38 deletions.
1 change: 0 additions & 1 deletion arch/arm/kernel/asm-offsets.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ int main(void)
DEFINE(VM_EXEC, VM_EXEC);
BLANK();
DEFINE(PAGE_SZ, PAGE_SIZE);
DEFINE(VIRT_OFFSET, PAGE_OFFSET);
BLANK();
DEFINE(SYS_ERROR0, 0x9f0000);
BLANK();
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/kernel/entry-armv.S
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
#include <linux/config.h>

#include <asm/memory.h>
#include <asm/glue.h>
#include <asm/vfpmacros.h>
#include <asm/hardware.h> /* should be moved into entry-macro.S */
Expand Down Expand Up @@ -310,7 +311,7 @@ __pabt_svc:

#if __LINUX_ARM_ARCH__ < 6 && !defined(CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG)
@ make sure our user space atomic helper is aborted
cmp r2, #VIRT_OFFSET
cmp r2, #TASK_SIZE
bichs r3, r3, #PSR_Z_BIT
#endif

Expand Down
5 changes: 3 additions & 2 deletions arch/arm/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <asm/procinfo.h>
#include <asm/ptrace.h>
#include <asm/asm-offsets.h>
#include <asm/memory.h>
#include <asm/thread_info.h>
#include <asm/system.h>

Expand Down Expand Up @@ -76,7 +77,7 @@
.equ swapper_pg_dir, DATAADDR - 0x4000

.macro pgtbl, rd, phys
ldr \rd, =((DATAADDR - 0x4000) - VIRT_OFFSET)
ldr \rd, =((DATAADDR - 0x4000) - PAGE_OFFSET)
add \rd, \rd, \phys
.endm
#endif
Expand Down Expand Up @@ -324,7 +325,7 @@ __create_page_tables:
/*
* Then map first 1MB of ram in case it contains our boot params.
*/
add r0, r4, #VIRT_OFFSET >> 18
add r0, r4, #PAGE_OFFSET >> 18
orr r6, r5, r7
str r6, [r0]

Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-aaec2000/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

#include <linux/config.h>

#define PHYS_OFFSET (0xf0000000UL)
#define PHYS_OFFSET UL(0xf0000000)

#define __virt_to_bus(x) __virt_to_phys(x)
#define __bus_to_virt(x) __phys_to_virt(x)
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-cl7500/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x10000000UL)
#define PHYS_OFFSET UL(0x10000000)

/*
* These are exactly the same on the RiscPC as the
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-clps711x/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0xc0000000UL)
#define PHYS_OFFSET UL(0xc0000000)

/*
* Virtual view <-> DMA view memory address translations
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-ebsa110/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x00000000UL)
#define PHYS_OFFSET UL(0x00000000)

/*
* We keep this 1:1 so that we don't interfere
Expand Down
10 changes: 5 additions & 5 deletions include/asm-arm/arch-ebsa285/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@ extern unsigned long __bus_to_virt(unsigned long);
#if defined(CONFIG_ARCH_FOOTBRIDGE)

/* Task size and page offset at 3GB */
#define TASK_SIZE (0xbf000000UL)
#define PAGE_OFFSET (0xc0000000UL)
#define TASK_SIZE UL(0xbf000000)
#define PAGE_OFFSET UL(0xc0000000)

#elif defined(CONFIG_ARCH_CO285)

/* Task size and page offset at 1.5GB */
#define TASK_SIZE (0x5f000000UL)
#define PAGE_OFFSET (0x60000000UL)
#define TASK_SIZE UL(0x5f000000)
#define PAGE_OFFSET UL(0x60000000)

#else

Expand All @@ -64,7 +64,7 @@ extern unsigned long __bus_to_virt(unsigned long);
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x00000000UL)
#define PHYS_OFFSET UL(0x00000000)

/*
* This decides where the kernel will search for a free chunk of vm
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-epxa10db/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x00000000UL)
#define PHYS_OFFSET UL(0x00000000)

/*
* Virtual view <-> DMA view memory address translations
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-h720x/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Page offset:
* ( 0xc0000000UL )
*/
#define PHYS_OFFSET (0x40000000UL)
#define PHYS_OFFSET UL(0x40000000)

/*
* Virtual view <-> DMA view memory address translations
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-imx/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#ifndef __ASM_ARCH_MMU_H
#define __ASM_ARCH_MMU_H

#define PHYS_OFFSET (0x08000000UL)
#define PHYS_OFFSET UL(0x08000000)

/*
* Virtual view <-> DMA view memory address translations
Expand Down
4 changes: 2 additions & 2 deletions include/asm-arm/arch-integrator/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x00000000UL)
#define BUS_OFFSET (0x80000000UL)
#define PHYS_OFFSET UL(0x00000000)
#define BUS_OFFSET UL(0x80000000)

/*
* Virtual view <-> DMA view memory address translations
Expand Down
4 changes: 2 additions & 2 deletions include/asm-arm/arch-iop3xx/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
* Physical DRAM offset.
*/
#ifndef CONFIG_ARCH_IOP331
#define PHYS_OFFSET (0xa0000000UL)
#define PHYS_OFFSET UL(0xa0000000)
#else
#define PHYS_OFFSET (0x00000000UL)
#define PHYS_OFFSET UL(0x00000000)
#endif

/*
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-ixp2000/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#ifndef __ASM_ARCH_MEMORY_H
#define __ASM_ARCH_MEMORY_H

#define PHYS_OFFSET (0x00000000UL)
#define PHYS_OFFSET UL(0x00000000)

/*
* Virtual view <-> DMA view memory address translations
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-ixp4xx/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x00000000UL)
#define PHYS_OFFSET UL(0x00000000)

#ifndef __ASSEMBLY__

Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-l7200/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
/*
* Physical DRAM offset on the L7200 SDB.
*/
#define PHYS_OFFSET (0xf0000000UL)
#define PHYS_OFFSET UL(0xf0000000)

#define __virt_to_bus(x) __virt_to_phys(x)
#define __bus_to_virt(x) __phys_to_virt(x)
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-lh7a40x/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0xc0000000UL)
#define PHYS_OFFSET UL(0xc0000000)

/*
* Virtual view <-> DMA view memory address translations
Expand Down
6 changes: 3 additions & 3 deletions include/asm-arm/arch-omap/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@
* Physical DRAM offset.
*/
#if defined(CONFIG_ARCH_OMAP1)
#define PHYS_OFFSET (0x10000000UL)
#define PHYS_OFFSET UL(0x10000000)
#elif defined(CONFIG_ARCH_OMAP2)
#define PHYS_OFFSET (0x80000000UL)
#define PHYS_OFFSET UL(0x80000000)
#endif

/*
Expand All @@ -66,7 +66,7 @@
/*
* OMAP-1510 Local Bus address offset
*/
#define OMAP1510_LB_OFFSET (0x30000000UL)
#define OMAP1510_LB_OFFSET UL(0x30000000)

#define virt_to_lbus(x) ((x) - PAGE_OFFSET + OMAP1510_LB_OFFSET)
#define lbus_to_virt(x) ((x) - OMAP1510_LB_OFFSET + PAGE_OFFSET)
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-pxa/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0xa0000000UL)
#define PHYS_OFFSET UL(0xa0000000)

/*
* Virtual view <-> DMA view memory address translations
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-rpc/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x10000000UL)
#define PHYS_OFFSET UL(0x10000000)

/*
* These are exactly the same on the RiscPC as the
Expand Down
4 changes: 2 additions & 2 deletions include/asm-arm/arch-s3c2410/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
* and at 0x0C000000 for S3C2400
*/
#ifdef CONFIG_CPU_S3C2400
#define PHYS_OFFSET (0x0C000000UL)
#define PHYS_OFFSET UL(0x0C000000)
#else
#define PHYS_OFFSET (0x30000000UL)
#define PHYS_OFFSET UL(0x30000000)
#endif

/*
Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-sa1100/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
/*
* Physical DRAM offset is 0xc0000000 on the SA1100
*/
#define PHYS_OFFSET (0xc0000000UL)
#define PHYS_OFFSET UL(0xc0000000)

#ifndef __ASSEMBLY__

Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-shark/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x08000000UL)
#define PHYS_OFFSET UL(0x08000000)

#ifndef __ASSEMBLY__

Expand Down
2 changes: 1 addition & 1 deletion include/asm-arm/arch-versatile/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x00000000UL)
#define PHYS_OFFSET UL(0x00000000)

/*
* Virtual view <-> DMA view memory address translations
Expand Down
18 changes: 14 additions & 4 deletions include/asm-arm/memory.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,16 @@
#ifndef __ASM_ARM_MEMORY_H
#define __ASM_ARM_MEMORY_H

/*
* Allow for constants defined here to be used from assembly code
* by prepending the UL suffix only with actual C code compilation.
*/
#ifndef __ASSEMBLY__
#define UL(x) (x##UL)
#else
#define UL(x) (x)
#endif

#include <linux/config.h>
#include <linux/compiler.h>
#include <asm/arch/memory.h>
Expand All @@ -21,20 +31,20 @@
* TASK_SIZE - the maximum size of a user space task.
* TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
*/
#define TASK_SIZE (0xbf000000UL)
#define TASK_UNMAPPED_BASE (0x40000000UL)
#define TASK_SIZE UL(0xbf000000)
#define TASK_UNMAPPED_BASE UL(0x40000000)
#endif

/*
* The maximum size of a 26-bit user space task.
*/
#define TASK_SIZE_26 (0x04000000UL)
#define TASK_SIZE_26 UL(0x04000000)

/*
* Page offset: 3GB
*/
#ifndef PAGE_OFFSET
#define PAGE_OFFSET (0xc0000000UL)
#define PAGE_OFFSET UL(0xc0000000)
#endif

/*
Expand Down

0 comments on commit f09b997

Please sign in to comment.