On 11/10/2010 10:55 AM, Grant Likely wrote:
On Wed, Nov 10, 2010 at 11:53 AM, H. Peter Anvin<[email protected]> wrote:
On 11/10/2010 11:06 AM, Dirk Brandewie wrote:
On 11/10/2010 10:46 AM, H. Peter Anvin wrote:
On 11/10/2010 10:52 AM, [email protected] wrote:
The DTB's have been moved into the .init.data section.
Writeable? (As opposed to .init.rodata)?
That is what I remember from the conversation with Grant but I could be
mistaken. It is simple enough to move as long as the interested parties agree
:-)
Obviously. I'd like to see it readonly unless there is an explicit
reason not to, of course.
Definitely it should be ro
So I am a little confused (no big surprise :-)
objdump -h vmlinux shows in part:
3 .rodata 000d61b8 c1358000 01358000 00359000 2**5
CONTENTS, ALLOC, LOAD, READONLY, DATA
10 __init_rodata 00003a90 c1450be0 01450be0 00451be0 2**5
CONTENTS, ALLOC, LOAD, READONLY, DATA
13 .init.text 0002b297 c1488000 01488000 00489000 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
14 .init.data 0001e5e0 c14b32a0 014b32a0 004b42a0 2**5
CONTENTS, ALLOC, LOAD, DATA
There is no .init.rodata section that I can find.
It seems like correct place to park the DTB with the other init data in
.init.data. section by adding the KERNEL_DTB macro to the INIT_DATA macro in
vmlinux.lds.h. This picks up the largest number of architectures that use
vmlinux.lds.h. INIT_DATA gets picked up by
#define INIT_DATA_SECTION(initsetup_align) \
.init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { \
INIT_DATA \
INIT_SETUP(initsetup_align) \
INIT_CALLS \
CON_INITCALL \
SECURITY_INITCALL \
INIT_RAM_FS \
}
We could go into the INIT_TEXT macro to get the blobs into a RO section but that
seems kind of wrong.
IMHO if someone starts modifying things in .init.data and expect the changes to
stick they deserve what they get.
Comments/Suggestions?
--Dirk
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss