msm: pil: Add support for relocatable images

Implement support for relocatable images. A relocatable image may
contain a mix of relocatable and non-relocatable segments. Bit 27
of the program header flag indicates if the segment is
relocatable or not. An image with any relocatable segments must
have an entry point within the relocatable region, therefore
check this requirement before booting the image.

We have to calculate the memory region slightly differently for
relocatable images. If the image has any relocatable segments the
pil driver for that image will only be informed of the
relocatable region via mem_setup(). In the mixed relocatable and
non-relocatable segments case it's expected that the
non-relocatable region is known before hand (i.e. some fixed
memory dedicated to the processor) either at compile time or
passed to the pil driver via some other means.

Change-Id: I8656ef899d9bdc5c9ed73abaec0f75e6968fae89
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
1 file changed