Skip to contentSkip to conversation

ARM: exynos: remove unused <mach/memory.h>

PATCH New Uwe Kleine-König 6 participants 18 messages Jul 2, 2014 – Jul 25, 2014

Subsystems (8)
lore
Share & tools
lore
#0 lore raw

PATCH 1/3 ARM: exynos: remove unused <mach/memory.h>

ARCH_EXYNOS doesn't select NEED_MACH_MEMORY_H, so <asm/memory.h> doesn't include <mach/memory.h> and so this file is not used and can go away.

---
Cc: Kukjin Kim <[email protected]>
Cc: linux-samsung-soc at vger.kernel.org

---
 arch/arm/mach-exynos/include/mach/memory.h | 27 ---------------------------
 1 file changed, 27 deletions(-)
 delete mode 100644 arch/arm/mach-exynos/include/mach/memory.h
arch/arm/mach-exynos/include/mach/memory.h deleted +0 -27
deleted file mode 100644
index 2a4cdb7cb326..000000000000
@@ -1,27 +0,0 @@
-/* linux/arch/arm/mach-exynos4/include/mach/memory.h
- *
- * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
- *		http://www.samsung.com
- *
- * EXYNOS4 - Memory definitions
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef __ASM_ARCH_MEMORY_H
-#define __ASM_ARCH_MEMORY_H __FILE__
-
-#define PLAT_PHYS_OFFSET		UL(0x40000000)
-
-#ifndef CONFIG_ARM_LPAE
-/* Maximum of 256MiB in one bank */
-#define MAX_PHYSMEM_BITS	32
-#define SECTION_SIZE_BITS	28
-#else
-#define MAX_PHYSMEM_BITS	36
-#define SECTION_SIZE_BITS	31
-#endif
-
-#endif /* __ASM_ARCH_MEMORY_H */
Signature · 1 line
2.0.0
#1 lore raw

PATCH 1/3 ARM: exynos: remove unused <mach/memory.h>

Hello,

who takes care of this series?

In fact they are all orthogonal to each other.

The first patch

ARM: exynos: remove unused <mach/memory.h>

has been reviewed and tested by Tomasz Figa and Sachin Kamat. Can the Samsung people pick it up? Or armsoc?

Patch 2 (v2!)

ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

touches several arch/arm/mach-*/include/mach/memory.h and arch/arm/Kconfig. armsoc? Russell?

Patch 3 fixes a warning regarding nommu and touches the Kconfig entry for Integrator and Renesas (non-multiplatform). armsoc?

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
#2 lore raw

PATCH 1/3 ARM: exynos: remove unused <mach/memory.h>

Quoted 4 lines · Uwe Kleine-K?nig

Hello,

who takes care of this series?

Quoted 8 lines

In fact they are all orthogonal to each other.

The first patch

ARM: exynos: remove unused <mach/memory.h>

has been reviewed and tested by Tomasz Figa and Sachin Kamat. Can the Samsung people pick it up? Or armsoc?

Kukjin should apply this one.

Quoted 6 lines

Patch 2 (v2!)

ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

touches several arch/arm/mach-*/include/mach/memory.h and arch/arm/Kconfig. armsoc? Russell?

This can go through either, but Russell has already reviewed it once so send it to his patch tracker.

Quoted 2 lines

Patch 3 fixes a warning regarding nommu and touches the Kconfig entry for Integrator and Renesas (non-multiplatform). armsoc?

Don't know without seeing the patch. What's the patch subject so I can find it?

-Olof

#3 lore raw

PATCH 1/3 ARM: exynos: remove unused <mach/memory.h>

Quoted 8 lines · Olof Johansson
Quoted 6 lines · Uwe Kleine-K?nig

Hello,

who takes care of this series?

In fact they are all orthogonal to each other.

Quoted 9 lines
Quoted 6 lines

The first patch

ARM: exynos: remove unused<mach/memory.h>

has been reviewed and tested by Tomasz Figa and Sachin Kamat. Can the Samsung people pick it up? Or armsoc?

Kukjin should apply this one.

Oh, thanks for gentle reminder and I've applied into 2nd cleanup.

Thanks,
Kukjin

Quoted 14 lines
Quoted 6 lines

Patch 2 (v2!)

ARM: remove remaining definitions of PLAT_PHYS_OFFSET from<mach/memory.h>

touches several arch/arm/mach-*/include/mach/memory.h and arch/arm/Kconfig. armsoc? Russell?

This can go through either, but Russell has already reviewed it once so send it to his patch tracker.

Quoted 2 lines

Patch 3 fixes a warning regarding nommu and touches the Kconfig entry for Integrator and Renesas (non-multiplatform). armsoc?

Don't know without seeing the patch. What's the patch subject so I can find it?

#4 lore raw

PATCH 1/3 ARM: exynos: remove unused <mach/memory.h>

In reply to Olof Johansson

Hello,

Quoted 7 lines · Olof Johansson
Quoted 6 lines

Patch 2 (v2!)

ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

touches several arch/arm/mach-*/include/mach/memory.h and arch/arm/Kconfig. armsoc? Russell?

Quoted 7 lines

This can go through either, but Russell has already reviewed it once so send it to his patch tracker.

Quoted 2 lines

Patch 3 fixes a warning regarding nommu and touches the Kconfig entry for Integrator and Renesas (non-multiplatform). armsoc?

Don't know without seeing the patch. What's the patch subject so I can find it?

I talked to Olof on irc. I sent patches 2 and 3 to the patch tracker as

	http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=8112/1

and

	http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=8113/1

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
#5 lore raw

PATCH 2/3 ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

In reply to Uwe Kleine-König

The platforms selecting NEED_MACH_MEMORY_H defined the start address of their physical memory in the respective <mach/memory.h>. With ARM_PATCH_PHYS_VIRT=y (which is quite common today) this is useless though because the definition isn't used but determined dynamically.

So remove the definitions from all <mach/memory.h> and provide the Kconfig symbol PHYS_OFFSET with the respective defaults in case ARM_PATCH_PHYS_VIRT isn't enabled.

This allows to drop the dependency of PHYS_OFFSET on !NEED_MACH_MEMORY_H which prevents compiling an integrator nommu-kernel. (CONFIG_PAGE_OFFSET which has "default PHYS_OFFSET if !MMU" expanded to "0x" because CONFIG_PHYS_OFFSET doesn't exist as INTEGRATOR selects NEED_MACH_MEMORY_H.)

---
 arch/arm/Kconfig                               | 11 +++++++++--
 arch/arm/include/asm/memory.h                  |  6 ++----
 arch/arm/mach-ebsa110/include/mach/memory.h    |  5 -----
 arch/arm/mach-ep93xx/include/mach/memory.h     | 22 ----------------------
 arch/arm/mach-footbridge/include/mach/memory.h |  5 -----
 arch/arm/mach-integrator/include/mach/memory.h |  5 -----
 arch/arm/mach-iop13xx/include/mach/memory.h    |  5 -----
 arch/arm/mach-ks8695/include/mach/memory.h     |  5 -----
 arch/arm/mach-omap1/include/mach/memory.h      |  5 -----
 arch/arm/mach-realview/include/mach/memory.h   | 11 -----------
 arch/arm/mach-rpc/include/mach/memory.h        |  5 -----
 arch/arm/mach-s5pv210/include/mach/memory.h    |  2 --
 arch/arm/mach-sa1100/include/mach/memory.h     |  5 -----
 13 files changed, 11 insertions(+), 81 deletions(-)
 delete mode 100644 arch/arm/mach-ep93xx/include/mach/memory.h
arch/arm/Kconfig +9 -2
index 245058b3b0ef..6dab0604b911 100644
@@ -262,8 +262,16 @@ config NEED_MACH_MEMORY_H
 
 config PHYS_OFFSET
 	hex "Physical address of main memory" if MMU
-	depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
+	depends on !ARM_PATCH_PHYS_VIRT
 	default DRAM_BASE if !MMU
+	default 0x00000000 if ARCH_EBSA110 || EP93XX_SDCE3_SYNC_PHYS_OFFSET || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_IOP13XX || ARCH_KS8695 || (ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET)
+	default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
+	default 0x20000000 if ARCH_S5PV210
+	default 0x70000000 if REALVIEW_HIGH_PHYS_OFFSET
+	default 0xc0000000 if EP93XX_SDCE0_PHYS_OFFSET || ARCH_SA1100
+	default 0xd0000000 if EP93XX_SDCE1_PHYS_OFFSET
+	default 0xe0000000 if EP93XX_SDCE2_PHYS_OFFSET
+	default 0xf0000000 if EP93XX_SDCE3_ASYNC_PHYS_OFFSET
 	help
 	  Please provide the physical address corresponding to the
 	  location of main memory in your system.
@@ -435,7 +443,6 @@ config ARCH_EP93XX
 	select ARM_VIC
 	select CLKDEV_LOOKUP
 	select CPU_ARM920T
-	select NEED_MACH_MEMORY_H
 	help
 	  This enables support for the Cirrus EP93xx series of CPUs.
 
arch/arm/include/asm/memory.h +2 -4
index 2b751464d6ff..04ccf1c0a1af 100644
@@ -150,13 +150,11 @@
 
 /*
  * PLAT_PHYS_OFFSET is the offset (from zero) of the start of physical
- * memory.  This is used for XIP and NoMMU kernels, or by kernels which
- * have their own mach/memory.h.  Assembly code must always use
+ * memory.  This is used for XIP and NoMMU kernels, and on platforms that don't
+ * have CONFIG_ARM_PATCH_PHYS_VIRT. Assembly code must always use
  * PLAT_PHYS_OFFSET and not PHYS_OFFSET.
  */
-#ifndef PLAT_PHYS_OFFSET
 #define PLAT_PHYS_OFFSET	UL(CONFIG_PHYS_OFFSET)
-#endif
 
 #ifndef __ASSEMBLY__
 
arch/arm/mach-ebsa110/include/mach/memory.h +0 -5
index 8e49066ad850..866f8a1c6ff7 100644
@@ -17,11 +17,6 @@
 #define __ASM_ARCH_MEMORY_H
 
 /*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET	UL(0x00000000)
-
-/*
  * Cache flushing area - SRAM
  */
 #define FLUSH_BASE_PHYS		0x40000000
arch/arm/mach-ep93xx/include/mach/memory.h deleted +0 -22
deleted file mode 100644
index c9400cf0051c..000000000000
@@ -1,22 +0,0 @@
-/*
- * arch/arm/mach-ep93xx/include/mach/memory.h
- */
-
-#ifndef __ASM_ARCH_MEMORY_H
-#define __ASM_ARCH_MEMORY_H
-
-#if defined(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0x00000000)
-#elif defined(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0xc0000000)
-#elif defined(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0xd0000000)
-#elif defined(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0xe0000000)
-#elif defined(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0xf0000000)
-#else
-#error "Kconfig bug: No EP93xx PHYS_OFFSET set"
-#endif
-
-#endif
arch/arm/mach-footbridge/include/mach/memory.h +0 -5
index 5c6df377f969..6f2ecccdf323 100644
@@ -59,11 +59,6 @@ extern unsigned long __bus_to_pfn(unsigned long);
  */
 #define FLUSH_BASE		0xf9000000
 
-/*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET		UL(0x00000000)
-
 #define FLUSH_BASE_PHYS		0x50000000
 
 #endif
arch/arm/mach-integrator/include/mach/memory.h +0 -5
index 334d5e271889..7268cb50ded0 100644
@@ -20,11 +20,6 @@
 #ifndef __ASM_ARCH_MEMORY_H
 #define __ASM_ARCH_MEMORY_H
 
-/*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET	UL(0x00000000)
-
 #define BUS_OFFSET	UL(0x80000000)
 #define __virt_to_bus(x)	((x) - PAGE_OFFSET + BUS_OFFSET)
 #define __bus_to_virt(x)	((x) - BUS_OFFSET + PAGE_OFFSET)
arch/arm/mach-iop13xx/include/mach/memory.h +0 -5
index 7c032d0ab24a..59307e787588 100644
@@ -3,11 +3,6 @@
 
 #include <mach/hardware.h>
 
-/*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET	UL(0x00000000)
-
 #ifndef __ASSEMBLY__
 
 #if defined(CONFIG_ARCH_IOP13XX)
arch/arm/mach-ks8695/include/mach/memory.h +0 -5
index 95e731a7ed6a..ab0d27fa8969 100644
@@ -15,11 +15,6 @@
 
 #include <mach/hardware.h>
 
-/*
- * Physical SRAM offset.
- */
-#define PLAT_PHYS_OFFSET		KS8695_SDRAM_PA
-
 #ifndef __ASSEMBLY__
 
 #ifdef CONFIG_PCI
arch/arm/mach-omap1/include/mach/memory.h +0 -5
index 3c2530523111..058a4f7d44c5 100644
@@ -6,11 +6,6 @@
 #define __ASM_ARCH_MEMORY_H
 
 /*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET		UL(0x10000000)
-
-/*
  * Bus address is physical address, except for OMAP-1510 Local Bus.
  * OMAP-1510 bus address is translated into a Local Bus address if the
  * OMAP bus type is lbus. We do the address translation based on the
arch/arm/mach-realview/include/mach/memory.h +0 -11
index db09170e3832..eb69feb3b804 100644
@@ -21,17 +21,6 @@
 #define __ASM_ARCH_MEMORY_H
 
 /*
- * Physical DRAM offset.
- */
-#ifdef CONFIG_REALVIEW_HIGH_PHYS_OFFSET
-#define PLAT_PHYS_OFFSET		UL(0x70000000)
-#else
-#define PLAT_PHYS_OFFSET		UL(0x00000000)
-#endif
-
-#ifdef CONFIG_SPARSEMEM
-
-/*
  * Sparsemem definitions for RealView PBX.
  *
  * The RealView PBX board has another block of 512MB of RAM at 0x20000000,
arch/arm/mach-rpc/include/mach/memory.h +0 -5
index 18a221093bf5..b7e49571417d 100644
@@ -19,11 +19,6 @@
 #define __ASM_ARCH_MEMORY_H
 
 /*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET	UL(0x10000000)
-
-/*
  * Cache flushing area - ROM
  */
 #define FLUSH_BASE_PHYS		0x00000000
arch/arm/mach-s5pv210/include/mach/memory.h +0 -2
index 2d3cfa221d5f..d584fac9156b 100644
@@ -13,8 +13,6 @@
 #ifndef __ASM_ARCH_MEMORY_H
 #define __ASM_ARCH_MEMORY_H
 
-#define PLAT_PHYS_OFFSET		UL(0x20000000)
-
 /*
  * Sparsemem support
  * Physical memory can be located from 0x20000000 to 0x7fffffff,
arch/arm/mach-sa1100/include/mach/memory.h +0 -5
index 12d376795abc..2054051eb797 100644
@@ -10,11 +10,6 @@
 #include <asm/sizes.h>
 
 /*
- * Physical DRAM offset is 0xc0000000 on the SA1100
- */
-#define PLAT_PHYS_OFFSET	UL(0xc0000000)
-
-/*
  * Because of the wide memory address space between physical RAM banks on the
  * SA1100, it's much convenient to use Linux's SparseMEM support to implement
  * our memory map representation.  Assuming all memory nodes have equal access
Signature · 1 line
2.0.0
#6 lore raw

PATCH 2/3 ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

arch/arm/Kconfig config NEED_MACH_MEMORY_H · line 267

Quoted 6 lines · Uwe Kleine-K?nig

config PHYS_OFFSET

arch/arm/Kconfig +2 -1
 	hex "Physical address of main memory" if MMU
-	depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
+	depends on !ARM_PATCH_PHYS_VIRT
 	default DRAM_BASE if !MMU
+	default 0x00000000 if ARCH_EBSA110 || EP93XX_SDCE3_SYNC_PHYS_OFFSET || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_IOP13XX || ARCH_KS8695 || (ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET)

It would be nice to see a few \ characters in that long line.

Signature · 2 lines
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.
#7 lore raw

PATCH 2/3 ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

Quoted 9 lines · Russell King - ARM Linux

arch/arm/Kconfig config NEED_MACH_MEMORY_H · line 267

Quoted 6 lines · Uwe Kleine-K?nig

config PHYS_OFFSET

arch/arm/Kconfig +2 -1
 	hex "Physical address of main memory" if MMU
-	depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
+	depends on !ARM_PATCH_PHYS_VIRT
 	default DRAM_BASE if !MMU
+	default 0x00000000 if ARCH_EBSA110 || EP93XX_SDCE3_SYNC_PHYS_OFFSET || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_IOP13XX || ARCH_KS8695 || (ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET)

It would be nice to see a few \ characters in that long line.

Yeah, right.

Also note that there is an ARCH_FOOTBRIDGE while mach-footbridge is selected by FOOTBRIDGE. Following up your comments to the footbridge series one of them should be changed. (But I wonder which one.)

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
#8 lore raw

PATCH 2/3 ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

Quoted 10 lines · Uwe Kleine-K?nig
Quoted 9 lines · Russell King - ARM Linux

arch/arm/Kconfig config NEED_MACH_MEMORY_H · line 267

Quoted 6 lines · Uwe Kleine-K?nig

config PHYS_OFFSET

arch/arm/Kconfig +2 -1
 	hex "Physical address of main memory" if MMU
-	depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
+	depends on !ARM_PATCH_PHYS_VIRT
 	default DRAM_BASE if !MMU
+	default 0x00000000 if ARCH_EBSA110 || EP93XX_SDCE3_SYNC_PHYS_OFFSET || ARCH_FOOTBRIDGE || ARCH_INTEGRATOR || ARCH_IOP13XX || ARCH_KS8695 || (ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET)

It would be nice to see a few \ characters in that long line.

Quoted 5 lines

Yeah, right.

Also note that there is an ARCH_FOOTBRIDGE while mach-footbridge is selected by FOOTBRIDGE. Following up your comments to the footbridge series one of them should be changed. (But I wonder which one.)

Yes, I spotted that. It's was actually harmless, because CO285 also built mach-footbridge:

+ machine-$(CONFIG_FOOTBRIDGE)     := footbridge
+  incdir-$(CONFIG_FOOTBRIDGE)     := ebsa285
+textaddr-$(CONFIG_ARCH_CO285)     := 0x60008000
+ machine-$(CONFIG_ARCH_CO285)     := footbridge
+  incdir-$(CONFIG_ARCH_CO285)     := ebsa285

which makes the machine- and incdir- for CO285 redundant... I'd recommend changing that CONFIG_FOOTBRIDGE to CONFIG_ARCH_FOOTBRIDGE because that's more conformant to the pattern which people expect.

Signature · 2 lines
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.
#9 lore raw

PATCH v2 2/3 ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

In reply to Uwe Kleine-König

The platforms selecting NEED_MACH_MEMORY_H defined the start address of their physical memory in the respective <mach/memory.h>. With ARM_PATCH_PHYS_VIRT=y (which is quite common today) this is useless though because the definition isn't used but determined dynamically.

So remove the definitions from all <mach/memory.h> and provide the Kconfig symbol PHYS_OFFSET with the respective defaults in case ARM_PATCH_PHYS_VIRT isn't enabled.

This allows to drop the dependency of PHYS_OFFSET on !NEED_MACH_MEMORY_H which prevents compiling an integrator nommu-kernel. (CONFIG_PAGE_OFFSET which has "default PHYS_OFFSET if !MMU" expanded to "0x" because CONFIG_PHYS_OFFSET doesn't exist as INTEGRATOR selects NEED_MACH_MEMORY_H.)

---
Changes since (implicit) v1:
- add line breaks in long select

 arch/arm/Kconfig                               | 17 +++++++++++++++--
 arch/arm/include/asm/memory.h                  |  6 ++----
 arch/arm/mach-ebsa110/include/mach/memory.h    |  5 -----
 arch/arm/mach-ep93xx/include/mach/memory.h     | 22 ----------------------
 arch/arm/mach-footbridge/include/mach/memory.h |  5 -----
 arch/arm/mach-integrator/include/mach/memory.h |  5 -----
 arch/arm/mach-iop13xx/include/mach/memory.h    |  5 -----
 arch/arm/mach-ks8695/include/mach/memory.h     |  5 -----
 arch/arm/mach-omap1/include/mach/memory.h      |  5 -----
 arch/arm/mach-realview/include/mach/memory.h   | 11 -----------
 arch/arm/mach-rpc/include/mach/memory.h        |  5 -----
 arch/arm/mach-s5pv210/include/mach/memory.h    |  2 --
 arch/arm/mach-sa1100/include/mach/memory.h     |  5 -----
 13 files changed, 17 insertions(+), 81 deletions(-)
 delete mode 100644 arch/arm/mach-ep93xx/include/mach/memory.h
arch/arm/Kconfig +15 -2
index 245058b3b0ef..44ed4a803d81 100644
@@ -262,8 +262,22 @@ config NEED_MACH_MEMORY_H
 
 config PHYS_OFFSET
 	hex "Physical address of main memory" if MMU
-	depends on !ARM_PATCH_PHYS_VIRT && !NEED_MACH_MEMORY_H
+	depends on !ARM_PATCH_PHYS_VIRT
 	default DRAM_BASE if !MMU
+	default 0x00000000 if ARCH_EBSA110 || \
+			EP93XX_SDCE3_SYNC_PHYS_OFFSET || \
+			ARCH_FOOTBRIDGE || \
+			ARCH_INTEGRATOR || \
+			ARCH_IOP13XX || \
+			ARCH_KS8695 || \
+			(ARCH_REALVIEW && !REALVIEW_HIGH_PHYS_OFFSET)
+	default 0x10000000 if ARCH_OMAP1 || ARCH_RPC
+	default 0x20000000 if ARCH_S5PV210
+	default 0x70000000 if REALVIEW_HIGH_PHYS_OFFSET
+	default 0xc0000000 if EP93XX_SDCE0_PHYS_OFFSET || ARCH_SA1100
+	default 0xd0000000 if EP93XX_SDCE1_PHYS_OFFSET
+	default 0xe0000000 if EP93XX_SDCE2_PHYS_OFFSET
+	default 0xf0000000 if EP93XX_SDCE3_ASYNC_PHYS_OFFSET
 	help
 	  Please provide the physical address corresponding to the
 	  location of main memory in your system.
@@ -435,7 +449,6 @@ config ARCH_EP93XX
 	select ARM_VIC
 	select CLKDEV_LOOKUP
 	select CPU_ARM920T
-	select NEED_MACH_MEMORY_H
 	help
 	  This enables support for the Cirrus EP93xx series of CPUs.
 
arch/arm/include/asm/memory.h +2 -4
index 2b751464d6ff..04ccf1c0a1af 100644
@@ -150,13 +150,11 @@
 
 /*
  * PLAT_PHYS_OFFSET is the offset (from zero) of the start of physical
- * memory.  This is used for XIP and NoMMU kernels, or by kernels which
- * have their own mach/memory.h.  Assembly code must always use
+ * memory.  This is used for XIP and NoMMU kernels, and on platforms that don't
+ * have CONFIG_ARM_PATCH_PHYS_VIRT. Assembly code must always use
  * PLAT_PHYS_OFFSET and not PHYS_OFFSET.
  */
-#ifndef PLAT_PHYS_OFFSET
 #define PLAT_PHYS_OFFSET	UL(CONFIG_PHYS_OFFSET)
-#endif
 
 #ifndef __ASSEMBLY__
 
arch/arm/mach-ebsa110/include/mach/memory.h +0 -5
index 8e49066ad850..866f8a1c6ff7 100644
@@ -17,11 +17,6 @@
 #define __ASM_ARCH_MEMORY_H
 
 /*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET	UL(0x00000000)
-
-/*
  * Cache flushing area - SRAM
  */
 #define FLUSH_BASE_PHYS		0x40000000
arch/arm/mach-ep93xx/include/mach/memory.h deleted +0 -22
deleted file mode 100644
index c9400cf0051c..000000000000
@@ -1,22 +0,0 @@
-/*
- * arch/arm/mach-ep93xx/include/mach/memory.h
- */
-
-#ifndef __ASM_ARCH_MEMORY_H
-#define __ASM_ARCH_MEMORY_H
-
-#if defined(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0x00000000)
-#elif defined(CONFIG_EP93XX_SDCE0_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0xc0000000)
-#elif defined(CONFIG_EP93XX_SDCE1_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0xd0000000)
-#elif defined(CONFIG_EP93XX_SDCE2_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0xe0000000)
-#elif defined(CONFIG_EP93XX_SDCE3_ASYNC_PHYS_OFFSET)
-#define PLAT_PHYS_OFFSET		UL(0xf0000000)
-#else
-#error "Kconfig bug: No EP93xx PHYS_OFFSET set"
-#endif
-
-#endif
arch/arm/mach-footbridge/include/mach/memory.h +0 -5
index 5c6df377f969..6f2ecccdf323 100644
@@ -59,11 +59,6 @@ extern unsigned long __bus_to_pfn(unsigned long);
  */
 #define FLUSH_BASE		0xf9000000
 
-/*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET		UL(0x00000000)
-
 #define FLUSH_BASE_PHYS		0x50000000
 
 #endif
arch/arm/mach-integrator/include/mach/memory.h +0 -5
index 334d5e271889..7268cb50ded0 100644
@@ -20,11 +20,6 @@
 #ifndef __ASM_ARCH_MEMORY_H
 #define __ASM_ARCH_MEMORY_H
 
-/*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET	UL(0x00000000)
-
 #define BUS_OFFSET	UL(0x80000000)
 #define __virt_to_bus(x)	((x) - PAGE_OFFSET + BUS_OFFSET)
 #define __bus_to_virt(x)	((x) - BUS_OFFSET + PAGE_OFFSET)
arch/arm/mach-iop13xx/include/mach/memory.h +0 -5
index 7c032d0ab24a..59307e787588 100644
@@ -3,11 +3,6 @@
 
 #include <mach/hardware.h>
 
-/*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET	UL(0x00000000)
-
 #ifndef __ASSEMBLY__
 
 #if defined(CONFIG_ARCH_IOP13XX)
arch/arm/mach-ks8695/include/mach/memory.h +0 -5
index 95e731a7ed6a..ab0d27fa8969 100644
@@ -15,11 +15,6 @@
 
 #include <mach/hardware.h>
 
-/*
- * Physical SRAM offset.
- */
-#define PLAT_PHYS_OFFSET		KS8695_SDRAM_PA
-
 #ifndef __ASSEMBLY__
 
 #ifdef CONFIG_PCI
arch/arm/mach-omap1/include/mach/memory.h +0 -5
index 3c2530523111..058a4f7d44c5 100644
@@ -6,11 +6,6 @@
 #define __ASM_ARCH_MEMORY_H
 
 /*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET		UL(0x10000000)
-
-/*
  * Bus address is physical address, except for OMAP-1510 Local Bus.
  * OMAP-1510 bus address is translated into a Local Bus address if the
  * OMAP bus type is lbus. We do the address translation based on the
arch/arm/mach-realview/include/mach/memory.h +0 -11
index db09170e3832..eb69feb3b804 100644
@@ -21,17 +21,6 @@
 #define __ASM_ARCH_MEMORY_H
 
 /*
- * Physical DRAM offset.
- */
-#ifdef CONFIG_REALVIEW_HIGH_PHYS_OFFSET
-#define PLAT_PHYS_OFFSET		UL(0x70000000)
-#else
-#define PLAT_PHYS_OFFSET		UL(0x00000000)
-#endif
-
-#ifdef CONFIG_SPARSEMEM
-
-/*
  * Sparsemem definitions for RealView PBX.
  *
  * The RealView PBX board has another block of 512MB of RAM at 0x20000000,
arch/arm/mach-rpc/include/mach/memory.h +0 -5
index 18a221093bf5..b7e49571417d 100644
@@ -19,11 +19,6 @@
 #define __ASM_ARCH_MEMORY_H
 
 /*
- * Physical DRAM offset.
- */
-#define PLAT_PHYS_OFFSET	UL(0x10000000)
-
-/*
  * Cache flushing area - ROM
  */
 #define FLUSH_BASE_PHYS		0x00000000
arch/arm/mach-s5pv210/include/mach/memory.h +0 -2
index 2d3cfa221d5f..d584fac9156b 100644
@@ -13,8 +13,6 @@
 #ifndef __ASM_ARCH_MEMORY_H
 #define __ASM_ARCH_MEMORY_H
 
-#define PLAT_PHYS_OFFSET		UL(0x20000000)
-
 /*
  * Sparsemem support
  * Physical memory can be located from 0x20000000 to 0x7fffffff,
arch/arm/mach-sa1100/include/mach/memory.h +0 -5
index 12d376795abc..2054051eb797 100644
@@ -10,11 +10,6 @@
 #include <asm/sizes.h>
 
 /*
- * Physical DRAM offset is 0xc0000000 on the SA1100
- */
-#define PLAT_PHYS_OFFSET	UL(0xc0000000)
-
-/*
  * Because of the wide memory address space between physical RAM banks on the
  * SA1100, it's much convenient to use Linux's SparseMEM support to implement
  * our memory map representation.  Assuming all memory nodes have equal access
Signature · 1 line
2.0.0
#10 lore raw

PATCH v2 2/3 ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

Quoted 9 lines · Uwe Kleine-K?nig

The platforms selecting NEED_MACH_MEMORY_H defined the start address of their physical memory in the respective <mach/memory.h>. With ARM_PATCH_PHYS_VIRT=y (which is quite common today) this is useless though because the definition isn't used but determined dynamically.

So remove the definitions from all <mach/memory.h> and provide the Kconfig symbol PHYS_OFFSET with the respective defaults in case ARM_PATCH_PHYS_VIRT isn't enabled.

Quoted 5 lines

This allows to drop the dependency of PHYS_OFFSET on !NEED_MACH_MEMORY_H which prevents compiling an integrator nommu-kernel. (CONFIG_PAGE_OFFSET which has "default PHYS_OFFSET if !MMU" expanded to "0x" because CONFIG_PHYS_OFFSET doesn't exist as INTEGRATOR selects NEED_MACH_MEMORY_H.)

Should I assume that this hasn't been build tested?

Quoted 7 lines
arch/arm/include/asm/memory.h +0 -0
index 2b751464d6ff..04ccf1c0a1af 100644
@@ -150,13 +150,11 @@
 
 /*

arch/arm/include/asm/memory.h line 159

Quoted 10 lines
arch/arm/include/asm/memory.h +2 -4
  * PLAT_PHYS_OFFSET is the offset (from zero) of the start of physical
- * memory.  This is used for XIP and NoMMU kernels, or by kernels which
- * have their own mach/memory.h.  Assembly code must always use
+ * memory.  This is used for XIP and NoMMU kernels, and on platforms that don't
+ * have CONFIG_ARM_PATCH_PHYS_VIRT. Assembly code must always use
  * PLAT_PHYS_OFFSET and not PHYS_OFFSET.
  */
-#ifndef PLAT_PHYS_OFFSET
 #define PLAT_PHYS_OFFSET	UL(CONFIG_PHYS_OFFSET)
-#endif

So when CONFIG_PHYS_OFFSET is not defined, PLAT_PHYS_OFFSET becomes the identifier "CONFIG_PHYS_OFFSETUL" here.

This leads our first error:

arch/arm/include/asm/memory.h:157:29: error: 'CONFIG_PHYS_OFFSETUL' undeclared (first use in this function)

Quoted 12 lines
arch/arm/mach-realview/include/mach/memory.h +0 -4
index db09170e3832..eb69feb3b804 100644
@@ -21,17 +21,6 @@
 #define __ASM_ARCH_MEMORY_H
 
 /*
- * Physical DRAM offset.
- */
-#ifdef CONFIG_REALVIEW_HIGH_PHYS_OFFSET
-#define PLAT_PHYS_OFFSET		UL(0x70000000)

arch/arm/mach-realview/include/mach/memory.h line 26

Quoted 10 lines
arch/arm/mach-realview/include/mach/memory.h +0 -7
-#else
-#define PLAT_PHYS_OFFSET		UL(0x00000000)
-#endif
-
-#ifdef CONFIG_SPARSEMEM
-
-/*
  * Sparsemem definitions for RealView PBX.
  *
  * The RealView PBX board has another block of 512MB of RAM at 0x20000000,

This bit of the patch is obviously bollocks - you're removing the #ifdef CONFIG_SPARSEMEM but its balancing #endif remains.

This gives us our second error:

arch/arm/mach-realview/include/mach/memory.h:62:2: error: #endif without #if

Olof's kbuilder found these, and I expect mine will find them in a bit over an hours time, followed by the zero day stuff when it hits linux-next (probably tomorrow.)

Submitting not very well tested patches now generates /lots/ of automated build systems to find their errors. Don't do it. :)

(Hint: try building realview_defconfig and realview-smp_defconfig.)

Signature · 2 lines
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up
according to speedtest.net.
#11 lore raw

PATCH v2 2/3 ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

Hello Russell,

Quoted 10 lines · Russell King - ARM Linux
Quoted 9 lines · Uwe Kleine-K?nig

The platforms selecting NEED_MACH_MEMORY_H defined the start address of their physical memory in the respective <mach/memory.h>. With ARM_PATCH_PHYS_VIRT=y (which is quite common today) this is useless though because the definition isn't used but determined dynamically.

So remove the definitions from all <mach/memory.h> and provide the Kconfig symbol PHYS_OFFSET with the respective defaults in case ARM_PATCH_PHYS_VIRT isn't enabled.

Quoted 7 lines
Quoted 5 lines

This allows to drop the dependency of PHYS_OFFSET on !NEED_MACH_MEMORY_H which prevents compiling an integrator nommu-kernel. (CONFIG_PAGE_OFFSET which has "default PHYS_OFFSET if !MMU" expanded to "0x" because CONFIG_PHYS_OFFSET doesn't exist as INTEGRATOR selects NEED_MACH_MEMORY_H.)

Should I assume that this hasn't been build tested?

darn, I admit being guilty not retesting it after rebasing to 3.16-rc. I think I did test it when I wrote the patch the first time, but you made me unsure if I tested all relevant cases. Working on a follow-up patch.

Mea culpa
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
#12 lore raw

PATCH v2 2/3 ARM: remove remaining definitions of PLAT_PHYS_OFFSET from <mach/memory.h>

Hello Russell,

Quoted 17 lines · Uwe Kleine-K?nig
Quoted 16 lines · Russell King - ARM Linux
Quoted 14 lines · Uwe Kleine-K?nig

The platforms selecting NEED_MACH_MEMORY_H defined the start address of their physical memory in the respective <mach/memory.h>. With ARM_PATCH_PHYS_VIRT=y (which is quite common today) this is useless though because the definition isn't used but determined dynamically.

So remove the definitions from all <mach/memory.h> and provide the Kconfig symbol PHYS_OFFSET with the respective defaults in case ARM_PATCH_PHYS_VIRT isn't enabled.

This allows to drop the dependency of PHYS_OFFSET on !NEED_MACH_MEMORY_H which prevents compiling an integrator nommu-kernel. (CONFIG_PAGE_OFFSET which has "default PHYS_OFFSET if !MMU" expanded to "0x" because CONFIG_PHYS_OFFSET doesn't exist as INTEGRATOR selects NEED_MACH_MEMORY_H.)

Quoted 4 lines
Quoted 1 line

Should I assume that this hasn't been build tested?

darn, I admit being guilty not retesting it after rebasing to 3.16-rc. I think I did test it when I wrote the patch the first time, but you made me unsure if I tested all relevant cases. Working on a follow-up patch.

The following patch fixes all defconfigs:

arch/arm/mach-realview/include/mach/memory.h +2 -0
index eb69feb3b804..23e7a313f75d 100644
@@ -20,6 +20,8 @@
 #ifndef __ASM_ARCH_MEMORY_H
 #define __ASM_ARCH_MEMORY_H
 
+#ifdef CONFIG_SPARSEMEM
+
 /*
  * Sparsemem definitions for RealView PBX.
  *

PLAT_PHYS_OFFSET then still has this strange value on builds with ARM_PATCH_PHYS_VIRT=y, but this doesn't matter as the value is unused then.

Do you squash this into the faulty patch or should I follow up with a proper patch to repair the mess?

Sorry again
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
#13 lore raw

PATCH 1/3 ARM: exynos: remove unused <mach/memory.h>

In reply to Uwe Kleine-König

Hi Uwe,

Quoted 11 lines · Uwe Kleine-K?nig

ARCH_EXYNOS doesn't select NEED_MACH_MEMORY_H, so <asm/memory.h> doesn't include <mach/memory.h> and so this file is not used and can go away.

---
Cc: Kukjin Kim <[email protected]>
Cc: linux-samsung-soc at vger.kernel.org

---
 arch/arm/mach-exynos/include/mach/memory.h | 27 ---------------------------
 1 file changed, 27 deletions(-)
 delete mode 100644 arch/arm/mach-exynos/include/mach/memory.h

Thanks for the patch.

[boot tested on Exynos4412-based Trats2 board]

Best regards,
Tomasz

#14 lore raw

PATCH 1/3 ARM: exynos: remove unused <mach/memory.h>

In reply to Uwe Kleine-König
Quoted 5 lines · Uwe Kleine-K?nig

ARCH_EXYNOS doesn't select NEED_MACH_MEMORY_H, so <asm/memory.h> doesn't include <mach/memory.h> and so this file is not used and can go away.

---

Tested on Arndale octa board (Exynos 5420).

Signature · 2 lines
Regards,
Sachin.
#15 lore raw

PATCH 3/3 ARM: only select ARM_PATCH_PHYS_VIRT if MMU is enabled

In reply to Uwe Kleine-König

This fixes the following warning:

	warning: (ARCH_MULTIPLATFORM && ARCH_INTEGRATOR && ARCH_SHMOBILE_LEGACY) selects ARM_PATCH_PHYS_VIRT which has unmet direct dependencies (!XIP_KERNEL && MMU && (!ARCH_REALVIEW || !SPARSEMEM))

---
I'm not sure why ARCH_MULTIPLATFORM appears here. It depends on MMU, isn't selectable at the same time as ARCH_REALVIEW and XIP_KERNEL depends on !ARCH_MULTIPLATFORM.

An alternative for ARCH_SHMOBILE_LEGACY is to let it depend on MMU, too.

*shrug*

---
 arch/arm/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
arch/arm/Kconfig +2 -2
index 6dab0604b911..ecfaf489cc95 100644
@@ -320,7 +320,7 @@ config ARCH_MULTIPLATFORM
 config ARCH_INTEGRATOR
 	bool "ARM Ltd. Integrator family"
 	select ARM_AMBA
-	select ARM_PATCH_PHYS_VIRT
+	select ARM_PATCH_PHYS_VIRT if MMU
 	select AUTO_ZRELADDR
 	select COMMON_CLK
 	select COMMON_CLK_VERSATILE
@@ -665,7 +665,7 @@ config ARCH_MSM
 config ARCH_SHMOBILE_LEGACY
 	bool "Renesas ARM SoCs (non-multiplatform)"
 	select ARCH_SHMOBILE
-	select ARM_PATCH_PHYS_VIRT
+	select ARM_PATCH_PHYS_VIRT if MMU
 	select CLKDEV_LOOKUP
 	select GENERIC_CLOCKEVENTS
 	select HAVE_ARM_SCU if SMP
Signature · 1 line
2.0.0
#16 lore raw

PATCH 3/3 ARM: only select ARM_PATCH_PHYS_VIRT if MMU is enabled

Quoted 9 lines · Uwe Kleine-K?nig

This fixes the following warning:

	warning: (ARCH_MULTIPLATFORM && ARCH_INTEGRATOR && ARCH_SHMOBILE_LEGACY) selects ARM_PATCH_PHYS_VIRT which has unmet direct dependencies (!XIP_KERNEL && MMU && (!ARCH_REALVIEW || !SPARSEMEM))

---
I'm not sure why ARCH_MULTIPLATFORM appears here. It depends on MMU, isn't selectable at the same time as ARCH_REALVIEW and XIP_KERNEL depends on !ARCH_MULTIPLATFORM.

The message is extremely confusing. It would read better if those && were || - because ARM_PATCH_PHYS_VIRT is selected by ARCH_MULTIPLATFORM _or_ ARCH_INTEGRATOR _or_ ARCH_SHMOBILE_LEGACY:

config ARCH_MULTIPLATFORM
select ARM_PATCH_PHYS_VIRT

config ARCH_INTEGRATOR
select ARM_PATCH_PHYS_VIRT

config ARCH_SHMOBILE_LEGACY
select ARM_PATCH_PHYS_VIRT

Signature · 2 lines
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.
#17 lore raw

PATCH 3/3 ARM: only select ARM_PATCH_PHYS_VIRT if MMU is enabled

Hello,

(adding Yann and linux-kbuild to recipents)

Quoted 11 lines · Russell King - ARM Linux
Quoted 9 lines · Uwe Kleine-K?nig

This fixes the following warning:

	warning: (ARCH_MULTIPLATFORM && ARCH_INTEGRATOR && ARCH_SHMOBILE_LEGACY) selects ARM_PATCH_PHYS_VIRT which has unmet direct dependencies (!XIP_KERNEL && MMU && (!ARCH_REALVIEW || !SPARSEMEM))

---
I'm not sure why ARCH_MULTIPLATFORM appears here. It depends on MMU, isn't selectable at the same time as ARCH_REALVIEW and XIP_KERNEL depends on !ARCH_MULTIPLATFORM.

Quoted 3 lines

The message is extremely confusing. It would read better if those && were || - because ARM_PATCH_PHYS_VIRT is selected by ARCH_MULTIPLATFORM _or_ ARCH_INTEGRATOR _or_ ARCH_SHMOBILE_LEGACY:

right, so there are two things that could be improved here. The resolution I'd prefer is to make this two warnings:

ARCH_INTEGRATOR selects ARM_PATCH_PHYS_VIRT which has unmet direct dependencies (!XIP_KERNEL && MMU) ARCH_SHMOBILE_LEGACY selects ARM_PATCH_PHYS_VIRT which has unmet direct dependencies (!XIP_KERNEL && MMU)

ARCH_REALVIEW cannot be selected at the same time as ARCH_INTEGRATOR or ARCH_SHMOBILE_LEGACY, so that can be dropped. And as stated above ARCH_MULTIPLATFORM isn't an issue.

This doesn't have the natural language problem that ARCH_MULTIPLATFORM *and* ARCH_INTEGRATOR *and* ARCH_SHMOBILE_LEGACY all select ARM_PATCH_PHYS_VIRT.

Quoted 9 lines

config ARCH_MULTIPLATFORM
select ARM_PATCH_PHYS_VIRT

config ARCH_INTEGRATOR
select ARM_PATCH_PHYS_VIRT

config ARCH_SHMOBILE_LEGACY
select ARM_PATCH_PHYS_VIRT

(For reference, the patch did:

- select ARM_PATCH_PHYS_VIRT
+ select ARM_PATCH_PHYS_VIRT if MMU

for ARCH_INTEGRATOR and ARCH_SHMOBILE_LEGACY)

Best regards
Uwe

Signature · 2 lines
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |