ARC: gdbserver using regset interface possibly broken

ptrace regset interface relies on ELF_NGREG for ceiling the size of user
request. So if ELF_NGREG is smaller than the actual regfile size, ptrace
would return error.

The existing def of ELF_NGREG didn't use user_regs_struct and was
technically one placeholder short (stop_pc) - although the current code
would still work because pt_regs includes a bunch of extra fields,
making
      ELF_NGREG >= sizeof(struct user_regs_struct)/sizeof(long)

But we need to remove this ambiguity, specially since pt_regs should NOT
be directly associated with with anything userspace-ish.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: split elf.h into uapi and export it for userspace

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: make a copy of flat DT (3.9 backport)

The flat DT (currently embedded in vmlinux) is in .init section.
The unflattened/binary tree doesn't copy strings through and references
them from orig flat DT - which could cause catestrohpy if of_* APIs are
called post init, say from a driver which is a loadable module.

Reported-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>