Thread (15 messages) flat view 15 messages, 5 authors, 2017-05-26
STALE3403d

Revision v1 of 6 in this series.

Revisions (6)
  1. v1 [diff vs current]
  2. v1 [diff vs current]
  3. v1 [diff vs current]
  4. v1 [diff vs current]
  5. v1 current
  6. v1 [diff vs current]

[PATCH 1/4] ARM: ep93xx: switch to SPARSEMEM

From: f.fainelli@gmail.com (Florian Fainelli)
Date: 2017-05-26 21:50:23

On 05/26/2017 02:28 PM, Alexander Sverdlin wrote:
Hello Florian,

On 26/05/17 18:13, Florian Fainelli wrote:
quoted
quoted
quoted
The EP93xx has four chip selects that can be used for the SDRAM memory.
These chip selects are decoded to specify an address domain:

  SDCS3  0x00000000-0x0fffffff with Boot Option ASDO=1
  SDCS0  0xc0000000-0xcfffffff
  SDCS1  0xd0000000-0xdfffffff
  SDCS2  0xe0000000-x0efffffff
  SDCS3  0xf0000000-0xffffffff with Boot Option ASDO=0

Because of the row/column/bank architecture of SDRAM, the mapping of
these memories into the processor's memory space is discontiguous.

Most ep93xx systems only use one of the chip selects. For these systems,
ARCH_HAS_HOLES_MEMORYMODEL has worked fine to handle the discontiguous
memory.

But, some of the TS-72xx boards use multiple chip selects. The TS-7300 in
particular uses SDCS3 (with ASDO=1) and SDCS2. On that system with
ARCH_HAS_HOLES_MEMORYMODEL the SDCS2 memory does not get handled correctly
and results in the system not booting.

Change the EP93xx to ARCH_SPARSEMEM_ENABLE. This handles the discontiguous
memory for all configurations.

This has been tested on the following ep93xx platforms:

EDB9307A with 64 MiB on SDCS0
Vision EP9307 with 64 MiB on SDCS0
TS-7300 with 64 MiB on SDCS3 (with ASDO=1) and 64 MiB on SDCS2
sim.one with 64 MiB on SDCS0

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Tested-by: Linus Walleij <redacted>
Cc: Russell King <linux@armlinux.org.uk>
Tested-by: Florian Fainelli <f.fainelli@gmail.com>

On a TS-3700 with 32MiB of SDRAM, thanks!
OK this is weird, this patch applied against v4.11 works fine on a 32MB
board configuration, but applied against v4.12-rc2 I now get the following:

Uncompressing Linux... done, booting the kernel.
Warning: Neither atags nor dtb found

as if r2 was lost somehow.

I will start a bisection to figure out if/when it started to break.
Russell do you have an idea?
I've applied the patch to 4.12-rc2 as well (to be more precise, 1b8f2ffc of Linus's tree),
and it boots fine on EDB9302 (32MiB one chip on SDCS3). I even ran "memtester" fine, one
iteration.
I need to debug this further because it does not make sense to me why
this patch on 4.12-rc1 works but on on 4.1-2-rc2 other than just having
a bit more bloat one image vs. another.

Thanks!
So, from my PoV
Tested-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>

--
Regards,
Alexander.

-- 
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help