[PATCH] powerpc/85xx: do not force PHYS_64BIT on the P1022DS

Subsystems: linux for powerpc (32-bit and 64-bit), linux for powerpc embedded ppc85xx, the rest

STALE5380d

4 messages, 3 authors, 2011-11-28 · open the first message on its own page

[PATCH] powerpc/85xx: do not force PHYS_64BIT on the P1022DS

From: Timur Tabi <hidden>
Date: 2011-11-03 19:38:29

Kconfig option PHYS_64BIT sets the size of phys_addr_t to 64 bits, which
allows support for a 36-bit physical address space.  With this option, the
kernel can support more than 2GB of RAM, but the larger address size
impacts performance slightly.

By including "select PHYS_64BIT" in the Kconfig for a particular board,
that option is forced enabled, and it becomes impossible to create a 32-bit
kernel.  Instead, we should depend on the defconfig to enable this option.
We still build a 36-bit kernel by default, and we also allow users to build
32-bit kernels if they really want.

Signed-off-by: Timur Tabi <redacted>
---
 arch/powerpc/platforms/85xx/Kconfig |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig
index 12f5932..dddada4 100644
--- a/arch/powerpc/platforms/85xx/Kconfig
+++ b/arch/powerpc/platforms/85xx/Kconfig
@@ -80,7 +80,6 @@ config P1010_RDB
 config P1022_DS
 	bool "Freescale P1022 DS"
 	select DEFAULT_UIMAGE
-	select PHYS_64BIT	# The DTS has 36-bit addresses
 	select SWIOTLB
 	help
 	  This option enables support for the Freescale P1022DS reference board.
-- 
1.7.3.4

Re: [PATCH] powerpc/85xx: do not force PHYS_64BIT on the P1022DS

From: Kumar Gala <hidden>
Date: 2011-11-24 07:12:54

On Nov 3, 2011, at 2:38 PM, Timur Tabi wrote:
Kconfig option PHYS_64BIT sets the size of phys_addr_t to 64 bits, =
which
allows support for a 36-bit physical address space.  With this option, =
the
kernel can support more than 2GB of RAM, but the larger address size
impacts performance slightly.
=20
By including "select PHYS_64BIT" in the Kconfig for a particular =
board,
that option is forced enabled, and it becomes impossible to create a =
32-bit
kernel.  Instead, we should depend on the defconfig to enable this =
option.
We still build a 36-bit kernel by default, and we also allow users to =
build
32-bit kernels if they really want.
=20
Signed-off-by: Timur Tabi <redacted>
---
arch/powerpc/platforms/85xx/Kconfig |    1 -
1 files changed, 0 insertions(+), 1 deletions(-)
If you want me to apply this please also provided a 32-bit .dts for =
p1022ds.  This should be pretty trivial based on my recent .dts =
cleanups.

- k=

Re: [PATCH] powerpc/85xx: do not force PHYS_64BIT on the P1022DS

From: Tabi Timur-B04825 <hidden>
Date: 2011-11-24 13:57:04

On Nov 24, 2011, at 1:12 AM, Kumar Gala [off-list ref] wrote:
=20
If you want me to apply this please also provided a 32-bit .dts for p1022=
ds.  This should be pretty trivial based on my recent .dts cleanups.

Ok, I'll do that.=

Re: [PATCH] powerpc/85xx: do not force PHYS_64BIT on the P1022DS

From: Timur Tabi <hidden>
Date: 2011-11-28 17:41:45

Kumar Gala wrote:
If you want me to apply this please also provided a 32-bit .dts for
p1022ds.  This should be pretty trivial based on my recent .dts
cleanups.
I think I found another bug in the 36-bit DTS.  Looking at U-Boot, I see this:

#ifdef CONFIG_PHYS_64BIT
#define CONFIG_SYS_PCIE2_MEM_BUS	0xe0000000
#define CONFIG_SYS_PCIE2_MEM_PHYS	0xc20000000ull
#else
#define CONFIG_SYS_PCIE2_MEM_BUS	0xa0000000
#define CONFIG_SYS_PCIE2_MEM_PHYS	0xa0000000
#endif

But the 36-bit DTS has this:

pci0: pcie@ffe09000 {
	reg = <0x0 0xffe09000 0 0x1000>;
	ranges = <0x2000000 0x0 0xa0000000 0xc 0x20000000 0x0 0x20000000
		  0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x10000>;

I don't think these match.  I think the first 'ranges' line should have 0xe0000000 instead of 0xa0000000.

I see the same problem with the other two PCI busses.  It looks like the physical address is correct, but the BUS address is wrong (it's using the 32-bit bus address instead of the 36-bit bus address).

-- 
Timur Tabi
Linux kernel developer at Freescale
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help