[PATCH 09/13] ARM: dts: meson8: add reserved memory zones

Neil Armstrong narmstrong at baylibre.com
Mon Jun 12 00:32:01 PDT 2017


On 06/11/2017 12:16 PM, Martin Blumenstingl wrote:
> There seem to be two memory regions that need to be reserved, otherwise
> the system just hangs when running:
> $ stress --vm-bytes $(awk '/MemFree/{printf "%d\n", $2 * 0.9;}' < /proc/meminfo)k \
>   --vm-keep -m 1
> 
> The first memory region is really crucial and without it the system
> hangs. I could not find any references to this in Amlogic's GPL kernel
> sources.
> The second region is used by the "suspend firmware". The u-boot sources
> (/arch/arm/cpu/aml_meson/m8/firmwareld.c) state that the suspend
> firmware is located at "64M + 15M" which matches CONFIG_MESON_SUSPEND in
> the Amlogic GPL kernel sources. The "suspend firmware" is responsible
> for waking up the system from suspend state.
> 
> This also fixes reading the full SD card as without this the system
> would simply hang (probably related to the first memory region, if some
> buffer is allocated there).
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>
> ---
>  arch/arm/boot/dts/meson8.dtsi | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
> index 8582490fcb52..cf011dfe050e 100644
> --- a/arch/arm/boot/dts/meson8.dtsi
> +++ b/arch/arm/boot/dts/meson8.dtsi
> @@ -83,6 +83,33 @@
>  			reg = <0x203>;
>  		};
>  	};
> +
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		/* 2 MiB reserved for Hardware ROM Firmware? */
> +		hwrom_reserved: hwrom at 0 {
> +			reg = <0x0 0x200000>;
> +			no-map;
> +		};
> +
> +		/*
> +		 * 1 MiB reserved for the "ARM Power Firmware": this is ARM
> +		 * code which is responsible for system suspend. It loads a
> +		 * piece of ARC code ("arc_power" in the vendor u-boot tree)
> +		 * into SRAM, executes that and shuts down the (last) ARM core.
> +		 * The arc_power firmware then checks various wakeup sources
> +		 * (IR remote receiver, HDMI CEC, WIFI and Bluetooth wakeup or
> +		 * simply the power key) and re-starts the ARM core once it
> +		 * detects a wakeup request.
> +		 */
> +		suspend_firmware: secmon at 4f00000 {
> +			reg = <0x4f00000 0x100000>;
> +			no-map;
> +		};
> +	};
>  }; /* end of / */
>  
>  &aobus {
> 

Good, but maybe you could add _reserved to the secmon alias.

Apart of that :
Reviewed-by: Neil Armstrong <narmstrong at baylibre.com>



More information about the linux-amlogic mailing list