Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1373243

[PATCH v6 11/17] memory: omap-gpmc: Prevent mapping into 1st 16MB

From Roger Quadros <rogerq@ti.com>
Newsgroups linux.kernel
Subject [PATCH v6 11/17] memory: omap-gpmc: Prevent mapping into 1st 16MB
Date 2016-04-07 12:20 +0200
Message-ID <rlfcC-2gO-31@gated-at.bofh.it> (permalink)
References <rlfcB-2gO-1@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


We have been preventing mapping GPMC children in the
first 1MB but really it has to be the first 16MB as
the minimum GPMC partition size is 16MB.

Also print an error message if CS mapping fails
due to DT requesting address outside the GPMC
map.

Signed-off-by: Roger Quadros <rogerq@ti.com>
---
 drivers/memory/omap-gpmc.c | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c
index 8dc6e3b..bfe4e87 100644
--- a/drivers/memory/omap-gpmc.c
+++ b/drivers/memory/omap-gpmc.c
@@ -94,6 +94,14 @@
 #define GPMC_CS_SIZE		0x30
 #define	GPMC_BCH_SIZE		0x10
 
+/*
+ * The first 1MB of GPMC address space is typically mapped to
+ * the internal ROM. Never allocate the first page, to
+ * facilitate bug detection; even if we didn't boot from ROM.
+ * As GPMC minimum partition size is 16MB we can only start from
+ * there.
+ */
+#define GPMC_MEM_START		0x1000000
 #define GPMC_MEM_END		0x3FFFFFFF
 
 #define GPMC_CHUNK_SHIFT	24		/* 16 MB */
@@ -1297,12 +1305,7 @@ static void gpmc_mem_init(void)
 {
 	int cs;
 
-	/*
-	 * The first 1MB of GPMC address space is typically mapped to
-	 * the internal ROM. Never allocate the first page, to
-	 * facilitate bug detection; even if we didn't boot from ROM.
-	 */
-	gpmc_mem_root.start = SZ_1M;
+	gpmc_mem_root.start = GPMC_MEM_START;
 	gpmc_mem_root.end = GPMC_MEM_END;
 
 	/* Reserve all regions that has been set up by bootloader */
@@ -1966,6 +1969,15 @@ static int gpmc_probe_generic_child(struct platform_device *pdev,
 	if (ret < 0) {
 		dev_err(&pdev->dev, "cannot remap GPMC CS %d to %pa\n",
 			cs, &res.start);
+		if (res.start < GPMC_MEM_START) {
+			dev_info(&pdev->dev,
+				 "GPMC CS %d start cannot be lesser than 0x%x\n",
+				 cs, GPMC_MEM_START);
+		} else if (res.end > GPMC_MEM_END) {
+			dev_info(&pdev->dev,
+				 "GPMC CS %d end cannot be greater than 0x%x\n",
+				 cs, GPMC_MEM_END);
+		}
 		goto err;
 	}
 
-- 
2.5.0

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC NAND on non-OMAP platforms Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 10/17] mtd: nand: omap: Update DT binding documentation Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 16/17] memory: omap-gpmc: Prevent GPMC_STATUS from being accessed via gpmc_regs Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 09/17] mtd: nand: omap: Clean up device tree support Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 14/17] memory: omap-gpmc: Reserve WAITPIN if needed for WAIT monitoring Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 03/17] memory: omap-gpmc: Introduce GPMC to NAND interface Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 05/17] memory: omap-gpmc: Implement IRQ domain for NAND IRQs Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
    Re: [PATCH v6 05/17] memory: omap-gpmc: Implement IRQ domain for  NAND IRQs Rob Herring <robh@kernel.org> - 2016-04-11 17:00 +0200
  [PATCH v6 06/17] mtd: nand: omap: Use gpmc_omap_get_nand_ops() to get NAND registers Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 13/17] memory: omap-gpmc: Support general purpose input for WAITPINs Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
    Re: [PATCH v6 13/17] memory: omap-gpmc: Support general purpose  input for WAITPINs Rob Herring <robh@kernel.org> - 2016-04-11 17:10 +0200
  [PATCH v6 17/17] mtd: nand: omap2: Implement NAND ready using gpiolib Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
    Re: [PATCH v6 17/17] mtd: nand: omap2: Implement NAND ready using  gpiolib Rob Herring <robh@kernel.org> - 2016-04-11 17:10 +0200
  [PATCH v6 07/17] mtd: nand: omap: Switch to using GPMC-NAND ops for writebuffer empty check Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 11/17] memory: omap-gpmc: Prevent mapping into 1st 16MB Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 08/17] mtd: nand: omap: Copy platform data parameters to omap_nand_info data Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 01/17] ARM: OMAP2+: gpmc: Add platform data Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 04/17] memory: omap-gpmc: Add GPMC-NAND ops to get writebufferempty status Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 15/17] memory: omap-gpmc: Support WAIT pin edge interrupts Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
    Re: [PATCH v6 15/17] memory: omap-gpmc: Support WAIT pin edge  interrupts Rob Herring <robh@kernel.org> - 2016-04-11 17:10 +0200
  [PATCH v6 02/17] ARM: OMAP2+: gpmc: Add gpmc timings and settings to platform data Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  [PATCH v6 12/17] memory: omap-gpmc: Move device tree binding to correct location Roger Quadros <rogerq@ti.com> - 2016-04-07 12:20 +0200
  Re: [PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC NAND  on non-OMAP platforms Tony Lindgren <tony@atomide.com> - 2016-04-13 23:30 +0200
    Re: [PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC NAND  on non-OMAP platforms Roger Quadros <rogerq@ti.com> - 2016-04-15 11:40 +0200
      Re: [PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC  NAND on non-OMAP platforms Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-04-15 12:10 +0200
        Re: [PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC NAND  on non-OMAP platforms Roger Quadros <rogerq@ti.com> - 2016-04-15 13:00 +0200
          Re: [PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC  NAND on non-OMAP platforms Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-04-15 13:20 +0200
          Re: [PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC  NAND on non-OMAP platforms Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-04-15 14:00 +0200
            Re: [PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC NAND  on non-OMAP platforms Tony Lindgren <tony@atomide.com> - 2016-04-15 17:50 +0200
              Re: [PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC  NAND on non-OMAP platforms Boris Brezillon <boris.brezillon@free-electrons.com> - 2016-04-15 18:10 +0200
                Re: [PATCH v6 00/17] memory: omap-gpmc: mtd: nand: Support GPMC NAND  on non-OMAP platforms Tony Lindgren <tony@atomide.com> - 2016-04-15 18:30 +0200

csiph-web