linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale.com>
To: "Moffett, Kyle D" <Kyle.D.Moffett@boeing.com>
Cc: Baruch Siach <baruch@tkos.co.il>,
	Sonny Rao <sonnyrao@linux.vnet.ibm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Paul Gortmaker <paul.gortmaker@windriver.com>,
	Paul Mackerras <paulus@samba.org>,
	Scott Wood <scottwood@freescale.com>,
	Anatolij Gustschin <agust@denx.de>,
	"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>,
	Paul Bolle <pebolle@tiscali.nl>
Subject: Re: [RFC PATCH 02/17] powerpc: Split up PHYS_64BIT config option to fix "select" issues
Date: Thu, 10 Nov 2011 10:50:26 -0600	[thread overview]
Message-ID: <4EBC00D2.2030208@freescale.com> (raw)
In-Reply-To: <501ACA94-491F-43A7-9DCF-485BEE824DD5@boeing.com>

Moffett, Kyle D wrote:

> Did you look at the existing code?  It's already that complicated:
> 
> config ARCH_PHYS_ADDR_T_64BIT
> 	def_bool PPC64 || PHYS_64BIT

I never understood why we have PHYS_64BIT and ARCH_PHYS_ADDR_T_64BIT, since they mean the same thing.  

> config ARCH_DMA_ADDR_T_64BIT
> 	def_bool ARCH_PHYS_ADDR_T_64BIT
> 
> config {P1022_DS,P2041_RDB,P3041_DS,P3060_QDS,P4080_DS,P5020_DS}
> 	select PHYS_64BIT

I posted a patch to remove the P1022_DS version of this.  I'm in favor of removing it from the other boards and letting the defconfig define it, but Kumar nak'd that idea.

> config PTE_64BIT
> 	bool
> 	depends on 44x || E500 || PPC_86xx
> 	default y if PHYS_64BIT

I think this one is about how our TLB registers look, and it's not related to anything else.

> Even worse, PHYS_64BIT is not set on 64-bit processors, but there is
> a lot of driver code that seems to assume PHYS_64BIT indicates the
> size of "phys_addr_t".

There's a Kconfig option somewhere that takes care of this.

> The big issue is that the Kconfig docs are very clear that "select"
> should not be used on user-visible options (AKA: PHYS_64BIT), and yet
> half the PPC_85xx boards have this tidbit:
> 	select PHYS_64BIT # The DTS has 36-bit addresses

I'm not sure that Kconfig rule is enforceable.  We use 'select' all the time to make sure that our boards enable the options that need to be enabled.  I'd rather see this:

config X
	select A

config Y
	select A

config Z
	select A

than this:

config A
	default y if X | Y | Z

The former is more maintainable and does not allow the option of disabling "A" if someone wants "X".

> I'm totally OK with removing that from all those boards, but to preserve
> the existing behavior (also used by the entire 44x platform) I added the
> new config symbol PHYS_64BIT_DT_REQUIRED, which is used to control
> whether or not the "PHYS_64BIT" option is even visible to the user.
> 
> I originally called it "PHYS_64BIT_REQUIRED", but since all of the
> board comments talked about 36-bit DTS addresses, I added the _DT_.

They're really 64-bit DTS addresses.  The 36 bit is just a hardware quirk of our SOCs.  From the kernel's perspective, there's no difference between 36-bit and 64-bit physical address.

>> There are only two reasons to create a 32-bit kernel:
>>
>> 1) A small performance improvement on systems with 2GB or less.
>> 2) Some SOC devices only support 32-bit physical addresses, so the
>> easiest way to ensure a compatible address is to prohibit memory above
>> 4GB.
> 
> If this is true, then why does PHYS_64BIT have that big ugly list of
> dependencies right now? 

Because Kumar doesn't want to allow 32-bit kernels on our high-end parts.  Like I said, I'm not a fan of that decision.

> I don't know about the other platforms well
> enough to tell what would break by enabling PHYS_64BIT, but I assume
> that something in the past caused that dependency list.

It's just an arbitrary decision.  We don't ship 32-bit DTs for the P4080-class parts, and we don't have a U-Boot configuration option for building a 32-bit compatible U-Boot.

-- 
Timur Tabi
Linux kernel developer at Freescale

  reply	other threads:[~2011-11-10 16:50 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-20  4:56 [RFC PATCH] powerpc: 85xx: Make e500/e500v2 depend on !E500MC Baruch Siach
2011-07-12  4:15 ` Baruch Siach
2011-07-28 19:56 ` Tabi Timur-B04825
2011-07-28 20:02   ` Timur Tabi
2011-08-01  5:02     ` Baruch Siach
2011-07-28 20:20   ` Scott Wood
2011-08-01  4:59     ` Baruch Siach
2011-08-01  5:12       ` [PATCH] powerpc: 85xx: separate e500 from e500mc Baruch Siach
2011-08-08  9:07         ` [PATCH v2] " Baruch Siach
2011-08-08 19:42           ` Scott Wood
2011-08-10  4:43             ` Baruch Siach
2011-08-10  5:21               ` [PATCH v3] " Baruch Siach
2011-08-10 15:39                 ` Paul Gortmaker
2011-08-10 16:01                   ` Scott Wood
2011-08-10 16:40                     ` Paul Gortmaker
2011-11-10  0:03                     ` [RFC PATCH 00/17] powerpc/e500: " Kyle Moffett
2011-11-10 13:59                       ` Kumar Gala
2011-11-10 16:17                         ` Moffett, Kyle D
2011-11-10 16:30                           ` Kumar Gala
2011-11-10 16:54                             ` Scott Wood
2011-11-11  0:38                               ` Moffett, Kyle D
2011-11-11  4:40                                 ` Benjamin Herrenschmidt
2011-11-15  2:32                                   ` [RFC PATCH 0/2] powerpc: CPU cache op cleanup Kyle Moffett
2011-11-15 22:29                                     ` Benjamin Herrenschmidt
2011-11-15 22:45                                       ` Moffett, Kyle D
2011-11-15 23:46                                         ` Benjamin Herrenschmidt
2011-11-16  0:25                                           ` Moffett, Kyle D
2011-11-16  4:40                                         ` Paul Mackerras
2011-11-16 20:52                                           ` Moffett, Kyle D
2011-11-15  2:32                                   ` [RFC PATCH 1/2] powerpc: Remove duplicate cacheable_memcpy/memzero functions Kyle Moffett
2011-11-15 22:31                                     ` Benjamin Herrenschmidt
2011-11-15  2:32                                   ` [RFC PATCH 2/2] WIP: PowerPC cache cleanup Kyle Moffett
2011-11-15  2:36                                   ` [RFC PATCH 00/17] powerpc/e500: separate e500 from e500mc Moffett, Kyle D
2011-11-15  2:41                                     ` Tabi Timur-B04825
2011-11-15  3:40                                       ` Kyle Moffett
2011-11-15 22:41                                     ` Benjamin Herrenschmidt
2011-11-10  0:06                     ` Kyle Moffett
2011-11-10  0:06                     ` [RFC PATCH 01/17] powerpc/mpic: Fix bogus CONFIG_BOOKE conditional Kyle Moffett
2011-11-10 13:33                       ` Kumar Gala
2011-11-10  0:07                     ` [RFC PATCH 02/17] powerpc: Split up PHYS_64BIT config option to fix "select" issues Kyle Moffett
2011-11-10 13:36                       ` Kumar Gala
2011-11-10 14:04                       ` Timur Tabi
2011-11-10 16:31                         ` Moffett, Kyle D
2011-11-10 16:50                           ` Timur Tabi [this message]
2011-11-11  4:50                             ` Benjamin Herrenschmidt
2011-11-11 13:12                               ` Tabi Timur-B04825
2011-11-10  0:07                     ` [RFC PATCH 03/17] fsl_rio: Remove FreeScale e500 conditionals Kyle Moffett
2011-11-10  0:07                     ` [RFC PATCH 04/17] powerpc: Allow multiple machine-check handlers Kyle Moffett
2011-11-10 13:37                       ` Kumar Gala
2011-11-10 16:33                         ` Moffett, Kyle D
2011-11-10  0:07                     ` [RFC PATCH 05/17] powerpc/e500: Remove unused "default e500" from CPU table Kyle Moffett
2011-11-10  0:07                     ` [RFC PATCH 06/17] powerpc/e500: Split FreeScale e500v1/v2 and e500mc config options Kyle Moffett
2011-11-10  0:07                     ` [RFC PATCH 07/17] powerpc/e200: Rename CONFIG_E200 => CONFIG_FSL_E200 Kyle Moffett
2011-11-10  0:07                     ` [RFC PATCH 08/17] powerpc/e500: Remove conditional "lwsync" substitution Kyle Moffett
2011-11-10 13:40                       ` Kumar Gala
2011-11-10 16:31                         ` Scott Wood
2011-11-10 16:42                           ` Kumar Gala
2011-11-10 17:03                             ` Scott Wood
2011-11-10 20:27                               ` Moffett, Kyle D
2011-11-10 20:34                                 ` Kumar Gala
2011-11-11  4:45                                   ` Benjamin Herrenschmidt
2011-11-11  4:43                                 ` Benjamin Herrenschmidt
2011-11-10  0:07                     ` [RFC PATCH 09/17] powerpc/e500: Split idle handlers for e500v1/v2 and e500mc Kyle Moffett
2011-11-10  0:07                     ` [RFC PATCH 10/17] powerpc/e500: Fix up the last references to CONFIG_PPC_E500MC Kyle Moffett
2011-11-10  0:07                     ` [RFC PATCH 11/17] powerpc/e500: Use the correct assembler flags for e500mc and e5500 Kyle Moffett
2011-11-10  0:07                     ` [RFC PATCH 12/17] powerpc/e500: Separate e500mc CPU table entries from e500v1/e500v2 Kyle Moffett
2011-11-10  0:07                     ` [RFC PATCH 13/17] powerpc/e500: Add a new CONFIG_FSL_E5500 option for the e5500 Kyle Moffett
2011-11-10 13:46                       ` Kumar Gala
2011-11-10 16:49                       ` Scott Wood
2011-11-10  0:07                     ` [RFC PATCH 14/17] powerpc/e500: Don't make kgdb use e500v1/e500v2 registers on e500mc Kyle Moffett
2011-11-10 16:46                       ` Scott Wood
2011-11-10  0:07                     ` [RFC PATCH 15/17] powerpc/e500: Fix up all remaining code uses of CONFIG_E500 Kyle Moffett
2011-11-10  0:07                     ` [RFC PATCH 16/17] powerpc/e500: Make __setup_cpu_{e200, e500, e500mc, e5500} optional Kyle Moffett
2011-11-10 16:47                       ` [RFC PATCH 16/17] powerpc/e500: Make __setup_cpu_{e200,e500,e500mc,e5500} optional Scott Wood
2011-11-10 18:52                         ` [RFC PATCH 16/17] powerpc/e500: Make __setup_cpu_{e200, e500, e500mc, e5500} optional Kumar Gala
2011-11-10  0:07                     ` [RFC PATCH 17/17] powerpc/e500: Finally remove "CONFIG_E500" Kyle Moffett
2011-10-24  6:00                 ` [PATCH v3] powerpc: 85xx: separate e500 from e500mc Baruch Siach
2011-07-29  7:23   ` [RFC PATCH] powerpc: 85xx: Make e500/e500v2 depend on !E500MC Baruch Siach

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EBC00D2.2030208@freescale.com \
    --to=timur@freescale.com \
    --cc=Kyle.D.Moffett@boeing.com \
    --cc=agust@denx.de \
    --cc=baruch@tkos.co.il \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=paul.gortmaker@windriver.com \
    --cc=paulus@samba.org \
    --cc=pebolle@tiscali.nl \
    --cc=scottwood@freescale.com \
    --cc=sonnyrao@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).