All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gregory CLEMENT <gregory.clement@bootlin.com>
To: Jiaxun Yang <jiaxun.yang@flygoat.com>,
	"paulburton@kernel.org" <paulburton@kernel.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	"linux-mips@vger.kernel.org" <linux-mips@vger.kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: "Vladimir Kondratiev" <vladimir.kondratiev@intel.com>,
	"Tawfik Bayouk" <tawfik.bayouk@mobileye.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Théo Lebrun" <theo.lebrun@bootlin.com>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>
Subject: Re: [PATCH 03/11] MIPS: support RAM beyond 32-bit
Date: Mon, 09 Oct 2023 17:59:38 +0200	[thread overview]
Message-ID: <87edi3bxcl.fsf@BL-laptop> (raw)
In-Reply-To: <f98d0cf9-6339-4cb1-8019-56bc71bfb822@app.fastmail.com>

Hello Jiaxun,

> 在2023年10月4日十月 下午5:10,Gregory CLEMENT写道:
>> From: Vladimir Kondratiev <vladimir.kondratiev@intel.com>
>>
>> Support platforms where RAM is mapped beyond 32-bit.
>>
>> The kernel parameter ddr32_alias allows to setup the alias to point
>> outside the first 4 GB of memory.
>
> Are you trying to fix the problem that if kernel text is loaded in
> XKPHYS there is no way to to set EBASE to that region?

Yes that exactly we try to fix.

>
> The common practice for other 64bit MIPS system is to load kernel
> in KSEG0 and add low 4G mirror with rest of the high memory to buddy
> system. By doing this Kernel still have access to all memory beyond
> 32 bit, the only draw back is Kernel's text and data can't be relocted
> beyond 32-bit.
>
> Loading kernel into KSEG0 (i.e. with KBUILD_SYM32) have significant benefit
> on performance, so I think you shouldn't try to load kernel into XKPHYS
> without a good reason, but it might be helpful to add a BUG_ON at
> CPS driver to handle such situation.

I guess that being in KSEG0 allows to use shorter pointer.  But in our
case the RAM is physically connected beyond 32bits, so it is not
accessible in KSEG0.

>
> Btw: Is your target hardware publicly available? Folks at CIP United
> are looking for EyeQ5 boards for a while, they are supporting MIPS R6
> support at various projects.

We use evaluation boards and I don't know if they are publicly
available.

Gregory

>
> Thanks
> Jiaxun
>
>>
>> Signed-off-by: Vladimir Kondratiev <vladimir.kondratiev@intel.com>
>> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
>> ---
>>  arch/mips/kernel/smp-cps.c | 12 +++++++++++-
>>  1 file changed, 11 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/mips/kernel/smp-cps.c b/arch/mips/kernel/smp-cps.c
>> index 47e76722a306..fcfb19487612 100644
>> --- a/arch/mips/kernel/smp-cps.c
>> +++ b/arch/mips/kernel/smp-cps.c
>> @@ -34,6 +34,16 @@ static unsigned __init core_vpe_count(unsigned int 
>> cluster, unsigned core)
>>  	return min(smp_max_threads, mips_cps_numvps(cluster, core));
>>  }
>> 
>> +static int ddr32_alias;
>> +
>> +static int __init ddr32_alias_setup(char *str)
>> +{
>> +	get_option(&str, &ddr32_alias);
>> +
>> +	return 0;
>> +}
>> +early_param("ddr32_alias", ddr32_alias_setup);
>> +
>>  /**
>>   * plat_core_entry - query reset vector for NMI/reset
>>   *
>> @@ -52,7 +62,7 @@ static u32 plat_core_entry(void)
>>  {
>>  #if defined(CONFIG_USE_XKPHYS)
>>  	return (UNCAC_ADDR(mips_cps_core_entry) & 0xffffffff)
>> -			| CM_GCR_Cx_RESET_BASE_MODE;
>> +			| ddr32_alias | CM_GCR_Cx_RESET_BASE_MODE;
>>  #else
>>  	return CKSEG1ADDR((unsigned long)mips_cps_core_entry);
>>  #endif
>> -- 
>> 2.40.1
>
> -- 
> - Jiaxun

-- 
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com

  reply	other threads:[~2023-10-09 15:59 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-04 16:10 [PATCH 00/11] Add support for the Mobileye EyeQ5 SoC Gregory CLEMENT
2023-10-04 16:10 ` [PATCH 01/11] MIPS: compressed: Use correct instruction for 64 bit code Gregory CLEMENT
2023-10-05  6:40   ` Philippe Mathieu-Daudé
2023-10-24  1:49   ` Florian Fainelli
2023-10-04 16:10 ` [PATCH 02/11] MIPS: use virtual addresses from xkphys for MIPS64 Gregory CLEMENT
2023-10-12 15:34   ` Thomas Bogendoerfer
2023-10-22 11:52     ` Jiaxun Yang
2023-10-22 11:39   ` Jiaxun Yang
2023-10-23 15:45     ` Gregory CLEMENT
2023-10-22 16:42   ` Jiaxun Yang
2023-10-24 16:08     ` Gregory CLEMENT
2023-10-04 16:10 ` [PATCH 03/11] MIPS: support RAM beyond 32-bit Gregory CLEMENT
2023-10-06 11:21   ` Arnd Bergmann
2023-10-07 20:14   ` Jiaxun Yang
2023-10-09 15:59     ` Gregory CLEMENT [this message]
2023-10-10  8:55       ` Jiaxun Yang
2023-10-11 14:46         ` Gregory CLEMENT
2023-10-12 20:40           ` Jiaxun Yang
2023-10-24  9:05             ` Maciej W. Rozycki
2023-10-04 16:10 ` [PATCH 04/11] dt-bindings: Add vendor prefix for Mobileye Vision Technologies Ltd Gregory CLEMENT
2023-10-05  6:34   ` Philippe Mathieu-Daudé
2023-10-06 16:32   ` Rob Herring
2023-10-04 16:10 ` [PATCH 05/11] dt-bindings: mips: cpu: Add I-Class I6500 Multiprocessor Core Gregory CLEMENT
2023-10-05  6:31   ` Philippe Mathieu-Daudé
2023-10-05 14:39   ` Serge Semin
2023-10-05 14:51     ` Gregory CLEMENT
2023-10-05 15:23       ` Serge Semin
2023-10-06 10:48       ` Arnd Bergmann
2023-10-06 16:40         ` Rob Herring
2023-10-09 15:32           ` Gregory CLEMENT
2023-10-09 18:48             ` Arnd Bergmann
2023-10-10 10:13             ` Serge Semin
2023-10-05 14:47   ` Sergio Paracuellos
2023-10-04 16:10 ` [PATCH 06/11] dt-bindings: mips: Add bindings for Mobileye SoCs Gregory CLEMENT
2023-10-04 16:47   ` Rob Herring
2023-10-05 14:55     ` Gregory CLEMENT
2023-10-06 16:50       ` Rob Herring
2023-10-04 16:10 ` [PATCH 07/11] dt-bindings: mfd: syscon: Document EyeQ5 OLB Gregory CLEMENT
2023-10-06 16:54   ` Rob Herring
2023-10-09 15:49     ` Gregory CLEMENT
2023-10-04 16:10 ` [PATCH 08/11] MIPS: mobileye: Add EyeQ5 dtsi Gregory CLEMENT
2023-10-04 16:41   ` Rob Herring
2023-10-05 15:17     ` Gregory CLEMENT
2023-10-04 16:10 ` [PATCH 09/11] MIPS: mobileye: Add EPM5 device tree Gregory CLEMENT
2023-10-06 11:18   ` Arnd Bergmann
2023-10-09 14:51     ` Gregory CLEMENT
2023-10-04 16:10 ` [PATCH 10/11] MIPS: generic: Add support for Mobileye EyeQ5 Gregory CLEMENT
2023-10-05  0:08   ` kernel test robot
2023-10-06 14:47     ` Arnd Bergmann
2023-10-09 14:58       ` Gregory CLEMENT
2023-10-04 16:10 ` [PATCH 11/11] MAINTAINERS: Add entry for Mobileye MIPS SoCs Gregory CLEMENT
2023-10-06 11:11   ` Arnd Bergmann
2023-10-09 15:06     ` Gregory CLEMENT

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=87edi3bxcl.fsf@BL-laptop \
    --to=gregory.clement@bootlin.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=paulburton@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=tawfik.bayouk@mobileye.com \
    --cc=theo.lebrun@bootlin.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=vladimir.kondratiev@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.