On Fri, Apr 08, 2016 at 02:04:57PM +0800, Shawn Guo wrote:
On Fri, Apr 8, 2016 at 12:14 AM, Leo Yan leo.yan@linaro.org wrote:
On Thu, Apr 07, 2016 at 09:03:44AM -0700, John Stultz wrote:
<snip>
So is it just 4.1 that is having problems? And if so, how critical is it to have 4.1? I'm currently working to move the hikey AOSP side to 4.4, so I'd like to understand the need better so I can prioritize this issue.
Now 4.1 has problem. There have no any output from uart0/3 after uboot jump to kernel.
I think there are two problems with hi6220-hikey.dts on 4.1 branch when booting with U-Boot. Firstly, the 0x7400000 bytes memreserve at 0x0 is buggy, since we use reserved-memory node to reserve parts of that memory region. We are fine with UEFI, because UEFI doesn't use /memreserve/ in DTB. Secondly, the last 16MiB memory is marked as secured for TrustZone by ATF. If kernel tries to use that section of memory, we will have problem. U-Boot works around this by coding the physical memory size as 1024 - 16 = 1008 MiB. So to get the kernel work with U-Boot, we only need to remove the /memreserve/ line below from hi6220-hikey.dts.
/memreserve/ 0x00000000 0x07400000;
But a better change should be something like below, IMO.
Thanks, Shawn. When developed on 4.1, we have not finalized the memory reservation in DTS. Now we have changed to use memory node to reserve memory nodes but not use neither /memreserve/ or reserved-memory [1].
So current issue is uboot overwrites memory node, we need find a general method to let uboot avoid (or skip) this step. If you have any suggestion for this, please let me know.
[1] http://archive.arm.linux.org.uk/lurker/message/20160121.105347.30a96332.en.h...
Thanks, Leo Yan
diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts index 36d300f2aabd..0e95d7d297a6 100644 --- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts +++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts @@ -7,7 +7,7 @@
/dts-v1/;
-/memreserve/ 0x00000000 0x07400000; +/memreserve/ 0x3f000000 0x01000000; /* Reserved 16MiB for TrustZone */
#include "hikey-pinctrl.dtsi" #include "hikey-gpio.dtsi"