diff mbox

ARM: dts: exynos5422-odroidxu3: reduce total RAM by 22 MiB

Message ID 0b5601d036d6$d9628c80$8c27a580$@kernel.org (mailing list archive)
State New, archived
Headers show

Commit Message

kgene@kernel.org Jan. 23, 2015, 6:35 a.m. UTC
Marek Szyprowski wrote:
> 
> Last 22 MiB is RAM is reserved by secure monitor code and cannot be
> accessed from Linux kernel, so adjust total RAM size to 0x7EA00000
> (2 GiB - 22 MiB). This fixes random 'imprecise kernel abort' kernel
> failures.
> 
> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> ---
>  arch/arm/boot/dts/exynos5422-odroidxu3.dts | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> index f6fc9442f631..50843208860d 100644
> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> @@ -18,7 +18,7 @@
>  	compatible = "hardkernel,odroid-xu3", "samsung,exynos5800", "samsung,exynos5";
> 
>  	memory {
> -		reg = <0x40000000 0x80000000>;
> +		reg = <0x40000000 0x7EA00000>;
>  	};
> 
>  	chosen {
> --

Hi,

Maybe is it related to the SoC not only for odriodxu3 board. If so, following
would be better?

---8<------------8<---
---8<------------8<---

- Kukjin

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Marek Szyprowski Jan. 23, 2015, 7:26 a.m. UTC | #1
Hello,

On 2015-01-23 07:35, Kukjin Kim wrote:
> Marek Szyprowski wrote:
>> Last 22 MiB is RAM is reserved by secure monitor code and cannot be
>> accessed from Linux kernel, so adjust total RAM size to 0x7EA00000
>> (2 GiB - 22 MiB). This fixes random 'imprecise kernel abort' kernel
>> failures.
>>
>> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
>> ---
>>   arch/arm/boot/dts/exynos5422-odroidxu3.dts | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> index f6fc9442f631..50843208860d 100644
>> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
>> @@ -18,7 +18,7 @@
>>   	compatible = "hardkernel,odroid-xu3", "samsung,exynos5800", "samsung,exynos5";
>>
>>   	memory {
>> -		reg = <0x40000000 0x80000000>;
>> +		reg = <0x40000000 0x7EA00000>;
>>   	};
>>
>>   	chosen {
>> --
> Hi,
>
> Maybe is it related to the SoC not only for odriodxu3 board. If so, following
> would be better?
>
> ---8<------------8<---
> diff --git a/arch/arm/boot/dts/exynos5800.dtsi b/arch/arm/boot/dts/exynos5800.dtsi
> index c0bb356..54840e3 100644
> --- a/arch/arm/boot/dts/exynos5800.dtsi
> +++ b/arch/arm/boot/dts/exynos5800.dtsi
> @@ -13,6 +13,8 @@
>    * published by the Free Software Foundation.
>    */
>
> +/memreserve/ 0x80000000 0x1600000;
> +
>   #include "exynos5420.dtsi"
>
>   / {

I don't think so. It is related only to the setup done by the respective 
board's bootloader,
not the SoC itself. It is already known that exynos 5800-based 
Chromebooks uses different
bootloader setup (BL1+BL2+Trustzone) than Odroid XU3. Also please note 
that u-boot for Odroid
XU3 limits the total memory passed to Linux kernel to 0x7EA00000, so we 
should not confuse
the kernel about such 'reserved' regions. The same approach is used for 
Odroid X2/U3.

Best regards
kgene@kernel.org Jan. 23, 2015, 7:50 a.m. UTC | #2
Marek Szyprowski wrote:
> 
> Hello,
> 
Hi,

> On 2015-01-23 07:35, Kukjin Kim wrote:
> > Marek Szyprowski wrote:
> >> Last 22 MiB is RAM is reserved by secure monitor code and cannot be
> >> accessed from Linux kernel, so adjust total RAM size to 0x7EA00000
> >> (2 GiB - 22 MiB). This fixes random 'imprecise kernel abort' kernel
> >> failures.
> >>
> >> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> >> ---
> >>   arch/arm/boot/dts/exynos5422-odroidxu3.dts | 2 +-
> >>   1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-
> odroidxu3.dts
> >> index f6fc9442f631..50843208860d 100644
> >> --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> >> +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> >> @@ -18,7 +18,7 @@
> >>   	compatible = "hardkernel,odroid-xu3", "samsung,exynos5800", "samsung,exynos5";
> >>
> >>   	memory {
> >> -		reg = <0x40000000 0x80000000>;
> >> +		reg = <0x40000000 0x7EA00000>;
> >>   	};
> >>
> >>   	chosen {
> >> --
> > Hi,
> >
> > Maybe is it related to the SoC not only for odriodxu3 board. If so, following
> > would be better?
> >
> > ---8<------------8<---
> > diff --git a/arch/arm/boot/dts/exynos5800.dtsi b/arch/arm/boot/dts/exynos5800.dtsi
> > index c0bb356..54840e3 100644
> > --- a/arch/arm/boot/dts/exynos5800.dtsi
> > +++ b/arch/arm/boot/dts/exynos5800.dtsi
> > @@ -13,6 +13,8 @@
> >    * published by the Free Software Foundation.
> >    */
> >
> > +/memreserve/ 0x80000000 0x1600000;
> > +
> >   #include "exynos5420.dtsi"
> >
> >   / {
> 
> I don't think so. It is related only to the setup done by the respective
> board's bootloader,
> not the SoC itself. It is already known that exynos 5800-based
> Chromebooks uses different
> bootloader setup (BL1+BL2+Trustzone) than Odroid XU3. Also please note
> that u-boot for Odroid
> XU3 limits the total memory passed to Linux kernel to 0x7EA00000, so we
> should not confuse
> the kernel about such 'reserved' regions. The same approach is used for
> Odroid X2/U3.
> 
If the boot-loader  passes limited memory, it makes sense. Thanks for the
explanation.

Will apply.

- Kukjin

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sjoerd Simons Jan. 23, 2015, 8:52 a.m. UTC | #3
On Fri, 2015-01-23 at 15:35 +0900, Kukjin Kim wrote:
> Marek Szyprowski wrote:
> > 
> > Last 22 MiB is RAM is reserved by secure monitor code and cannot be
> > accessed from Linux kernel, so adjust total RAM size to 0x7EA00000
> > (2 GiB - 22 MiB). This fixes random 'imprecise kernel abort' kernel
> > failures.
> > 
> > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
> > ---
> >  arch/arm/boot/dts/exynos5422-odroidxu3.dts | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> > index f6fc9442f631..50843208860d 100644
> > --- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> > +++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
> > @@ -18,7 +18,7 @@
> >  	compatible = "hardkernel,odroid-xu3", "samsung,exynos5800", "samsung,exynos5";
> > 
> >  	memory {
> > -		reg = <0x40000000 0x80000000>;
> > +		reg = <0x40000000 0x7EA00000>;
> >  	};
> > 
> >  	chosen {
> > --

Just checked hardkernels bootloader which defines:
  #define CONFIG_TRUSTZONE_RESERVED_DRAM  0x1600000

So looks good,

Reviewed-By: Sjoerd Simons <sjoerd.simons@collabora.co.uk>

> Hi,
> 
> Maybe is it related to the SoC not only for odriodxu3 board. If so, following
> would be better?
> 
> ---8<------------8<---
> diff --git a/arch/arm/boot/dts/exynos5800.dtsi b/arch/arm/boot/dts/exynos5800.dtsi
> index c0bb356..54840e3 100644
> --- a/arch/arm/boot/dts/exynos5800.dtsi
> +++ b/arch/arm/boot/dts/exynos5800.dtsi
> @@ -13,6 +13,8 @@
>   * published by the Free Software Foundation.
>   */
> 
> +/memreserve/ 0x80000000 0x1600000;
> +
>  #include "exynos5420.dtsi"
> 
>  / {
> ---8<------------8<---
> 
> - Kukjin
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/boot/dts/exynos5800.dtsi b/arch/arm/boot/dts/exynos5800.dtsi
index c0bb356..54840e3 100644
--- a/arch/arm/boot/dts/exynos5800.dtsi
+++ b/arch/arm/boot/dts/exynos5800.dtsi
@@ -13,6 +13,8 @@ 
  * published by the Free Software Foundation.
  */

+/memreserve/ 0x80000000 0x1600000;
+
 #include "exynos5420.dtsi"

 / {