[PATCH 09/13] ARM: dts: meson8: add reserved memory zones
Martin Blumenstingl
martin.blumenstingl at googlemail.com
Wed Jun 14 14:46:29 PDT 2017
On Mon, Jun 12, 2017 at 9:32 AM, Neil Armstrong <narmstrong at baylibre.com> wrote:
> 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.
good catch, thanks
it seems that "secmon@" is still a copy-and-paste left-over so I'd
rather change the whole line to "power_firmware:
power-firmware-memory at 4f00000" (as it's definitely not the secure
monitor firmware) instead
does that also sound good for you?
Regards,
Martin
More information about the linux-amlogic
mailing list