Thread (6 messages) 6 messages, 5 authors, 2014-06-14

[PATCH] ARM: zImage: Allow DTB to override broken ATAG_MEM

From: Bjorn Andersson <hidden>
Date: 2014-05-07 15:29:20
Also in: linux-arm-msm, lkml

On Wed, May 7, 2014 at 1:06 AM, Uwe Kleine-K?nig
[off-list ref] wrote:
On Tue, May 06, 2014 at 10:16:16PM -0700, Bjorn Andersson wrote:
quoted
Support overriding ATAG_MEM, by specifying non-zero content of the /memory/reg
property in the appended DTB. This is needed to work around bootloaders passing
broken tags.
This feels wrong. I think it's quite usual that the device tree
specifies a non-0 /memory/reg property. I checked four more or less
random dts files[1], and three of them have this property set with
actual values.
I thought u-boot did something like this, but after checking the code
it seems that I
was wrong.

But if that's not the case then you're right; we have to continue to
be bug-compatible
with all those dtbs out there.
So I wouldn't be surprised if this patch results in more damage than
it's worth. The optimal fix would be to make the bootloader do the right
thing. And if you trust your dtb more than your bootloader, disable
ARM_ATAG_DTB_COMPAT.
I unfortunately have a boot loader passing information in ATAG_CMDLINE that I
need, so I can't disable ARM_ATAG_DTB_COMPAT.


My problem is that the boot loader on every shipped Qualcomm MSM8x60, MSM8960
and APQ8064 based device passes ATAG_MEM with the incorrect start address. There
is no way to update the boot loader for these.

For development I have a .init_meminfo in my board file patching the
meminfo; this looks
really bad so I'm hoping we can find some alternative solution.

The proposed solution from some of the people working on this is to
(post build) patch the
zImage to inject code that corrects the ATAG_MEM before jumping to the
kernel; but I am
hoping we can find some sane way instead...

Regards,
Bjorn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help