Re: [U-Boot] [PATCH] SPL: Add FIT data-position property support
> On Dec 4, 2017, at 21:02, Peng Fanwrote: > >> On Tue, Nov 28, 2017 at 05:14:58PM +, York Sun wrote: >>> On 11/27/2017 07:20 PM, Peng Fan wrote: >>> For external data, FIT has a optional property "data-position" which >>> can set the external data to a fixed offset to FIT beginning. >>> Add the support for this property in SPL FIT. >>> >>> Signed-off-by: Ye Li >>> Signed-off-by: Peng Fan >>> Cc: Simon Glass >>> Cc: Pantelis Antoniou >>> Cc: "Andrew F. Davis" >>> Cc: Igor Grinberg >>> Cc: "tomas.me...@vaisala.com" >>> Cc: Kever Yang >>> Cc: Andre Przywara >>> Cc: York Sun >>> Cc: Lokesh Vutla >>> Cc: "Cooper Jr., Franklin" >>> Cc: George McCollister >>> Cc: Tuomas Tynkkynen >>> Cc: Jean-Jacques Hiblot >>> Cc: Rick Altherr >>> Cc: Tom Rini >>> --- >>> common/image-fit.c | 25 + >>> common/spl/spl_fit.c | 11 +-- >>> include/image.h | 3 +++ >>> 3 files changed, 37 insertions(+), 2 deletions(-) >> >> >> Looks good. Would it be appropriate to update >> doc/uImage.FIT/source_file_format.txt to include this property? > > All, > > Is the following explaination ok? > > diff --git a/doc/uImage.FIT/source_file_format.txt > b/doc/uImage.FIT/source_file_format.txt > index 6f727a1e8a..0db23db6c7 100644 > --- a/doc/uImage.FIT/source_file_format.txt > +++ b/doc/uImage.FIT/source_file_format.txt > @@ -288,7 +288,8 @@ In this case the 'data' property is omitted. Instead you > can use: > > The 'data-offset' property can be substituted with 'data-position', which > defines an absolute position or address as the offset. This is helpful when > -booting U-Boot proper before performing relocation. > +booting U-Boot proper before performing relocation. Pass `-p [offset]` to > +mkimage to enable `data-position`. > > If it is ok, I'll add it into V2. > It's something. I am OK. York ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] SPL: Add FIT data-position property support
On Tue, Nov 28, 2017 at 05:14:58PM +, York Sun wrote: >On 11/27/2017 07:20 PM, Peng Fan wrote: >> For external data, FIT has a optional property "data-position" which >> can set the external data to a fixed offset to FIT beginning. >> Add the support for this property in SPL FIT. >> >> Signed-off-by: Ye Li>> Signed-off-by: Peng Fan >> Cc: Simon Glass >> Cc: Pantelis Antoniou >> Cc: "Andrew F. Davis" >> Cc: Igor Grinberg >> Cc: "tomas.me...@vaisala.com" >> Cc: Kever Yang >> Cc: Andre Przywara >> Cc: York Sun >> Cc: Lokesh Vutla >> Cc: "Cooper Jr., Franklin" >> Cc: George McCollister >> Cc: Tuomas Tynkkynen >> Cc: Jean-Jacques Hiblot >> Cc: Rick Altherr >> Cc: Tom Rini >> --- >> common/image-fit.c | 25 + >> common/spl/spl_fit.c | 11 +-- >> include/image.h | 3 +++ >> 3 files changed, 37 insertions(+), 2 deletions(-) > > >Looks good. Would it be appropriate to update >doc/uImage.FIT/source_file_format.txt to include this property? All, Is the following explaination ok? diff --git a/doc/uImage.FIT/source_file_format.txt b/doc/uImage.FIT/source_file_format.txt index 6f727a1e8a..0db23db6c7 100644 --- a/doc/uImage.FIT/source_file_format.txt +++ b/doc/uImage.FIT/source_file_format.txt @@ -288,7 +288,8 @@ In this case the 'data' property is omitted. Instead you can use: The 'data-offset' property can be substituted with 'data-position', which defines an absolute position or address as the offset. This is helpful when -booting U-Boot proper before performing relocation. +booting U-Boot proper before performing relocation. Pass `-p [offset]` to +mkimage to enable `data-position`. If it is ok, I'll add it into V2. Thanks, Peng. > >York > >___ >U-Boot mailing list >U-Boot@lists.denx.de >https://lists.denx.de/listinfo/u-boot -- ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] SPL: Add FIT data-position property support
On 11/28/2017 05:19 AM, Peng Fan wrote: > For external data, FIT has a optional property "data-position" which > can set the external data to a fixed offset to FIT beginning. > Add the support for this property in SPL FIT. > > Signed-off-by: Ye Li> Signed-off-by: Peng Fan > Cc: Simon Glass > Cc: Pantelis Antoniou > Cc: "Andrew F. Davis" > Cc: Igor Grinberg > Cc: "tomas.me...@vaisala.com" > Cc: Kever Yang > Cc: Andre Przywara > Cc: York Sun > Cc: Lokesh Vutla > Cc: "Cooper Jr., Franklin" > Cc: George McCollister > Cc: Tuomas Tynkkynen > Cc: Jean-Jacques Hiblot > Cc: Rick Altherr > Cc: Tom Rini > --- > common/image-fit.c | 25 + > common/spl/spl_fit.c | 11 +-- > include/image.h | 3 +++ > 3 files changed, 37 insertions(+), 2 deletions(-) > Reviewed-by: Tomas Melin ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] SPL: Add FIT data-position property support
On 11/27/2017 07:20 PM, Peng Fan wrote: > For external data, FIT has a optional property "data-position" which > can set the external data to a fixed offset to FIT beginning. > Add the support for this property in SPL FIT. > > Signed-off-by: Ye Li> Signed-off-by: Peng Fan > Cc: Simon Glass > Cc: Pantelis Antoniou > Cc: "Andrew F. Davis" > Cc: Igor Grinberg > Cc: "tomas.me...@vaisala.com" > Cc: Kever Yang > Cc: Andre Przywara > Cc: York Sun > Cc: Lokesh Vutla > Cc: "Cooper Jr., Franklin" > Cc: George McCollister > Cc: Tuomas Tynkkynen > Cc: Jean-Jacques Hiblot > Cc: Rick Altherr > Cc: Tom Rini > --- > common/image-fit.c | 25 + > common/spl/spl_fit.c | 11 +-- > include/image.h | 3 +++ > 3 files changed, 37 insertions(+), 2 deletions(-) Looks good. Would it be appropriate to update doc/uImage.FIT/source_file_format.txt to include this property? York ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] SPL: Add FIT data-position property support
On 27 November 2017 at 20:19, Peng Fanwrote: > For external data, FIT has a optional property "data-position" which > can set the external data to a fixed offset to FIT beginning. > Add the support for this property in SPL FIT. > > Signed-off-by: Ye Li > Signed-off-by: Peng Fan > Cc: Simon Glass > Cc: Pantelis Antoniou > Cc: "Andrew F. Davis" > Cc: Igor Grinberg > Cc: "tomas.me...@vaisala.com" > Cc: Kever Yang > Cc: Andre Przywara > Cc: York Sun > Cc: Lokesh Vutla > Cc: "Cooper Jr., Franklin" > Cc: George McCollister > Cc: Tuomas Tynkkynen > Cc: Jean-Jacques Hiblot > Cc: Rick Altherr > Cc: Tom Rini > --- > common/image-fit.c | 25 + > common/spl/spl_fit.c | 11 +-- > include/image.h | 3 +++ > 3 files changed, 37 insertions(+), 2 deletions(-) Reviewed-by: Simon Glass ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
[U-Boot] [PATCH] SPL: Add FIT data-position property support
For external data, FIT has a optional property "data-position" which can set the external data to a fixed offset to FIT beginning. Add the support for this property in SPL FIT. Signed-off-by: Ye LiSigned-off-by: Peng Fan Cc: Simon Glass Cc: Pantelis Antoniou Cc: "Andrew F. Davis" Cc: Igor Grinberg Cc: "tomas.me...@vaisala.com" Cc: Kever Yang Cc: Andre Przywara Cc: York Sun Cc: Lokesh Vutla Cc: "Cooper Jr., Franklin" Cc: George McCollister Cc: Tuomas Tynkkynen Cc: Jean-Jacques Hiblot Cc: Rick Altherr Cc: Tom Rini --- common/image-fit.c | 25 + common/spl/spl_fit.c | 11 +-- include/image.h | 3 +++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/common/image-fit.c b/common/image-fit.c index 7f17fd1410..b785d8a36e 100644 --- a/common/image-fit.c +++ b/common/image-fit.c @@ -806,6 +806,31 @@ int fit_image_get_data_offset(const void *fit, int noffset, int *data_offset) return 0; } +/** + * Get 'data-position' property from a given image node. + * + * @fit: pointer to the FIT image header + * @noffset: component image node offset + * @data_position: holds the data-position property + * + * returns: + * 0, on success + * -ENOENT if the property could not be found + */ +int fit_image_get_data_position(const void *fit, int noffset, + int *data_position) +{ + const fdt32_t *val; + + val = fdt_getprop(fit, noffset, FIT_DATA_POSITION_PROP, NULL); + if (!val) + return -ENOENT; + + *data_position = fdt32_to_cpu(*val); + + return 0; +} + /** * Get 'data-size' property from a given image node. * diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c index 32d9ee5901..c915b4b149 100644 --- a/common/spl/spl_fit.c +++ b/common/spl/spl_fit.c @@ -143,6 +143,7 @@ static int spl_load_fit_image(struct spl_load_info *info, ulong sector, int align_len = ARCH_DMA_MINALIGN - 1; uint8_t image_comp = -1, type = -1; const void *data; + bool external_data = false; if (IS_ENABLED(CONFIG_SPL_OS_BOOT) && IS_ENABLED(CONFIG_SPL_GZIP)) { if (fit_image_get_comp(fit, node, _comp)) @@ -159,9 +160,15 @@ static int spl_load_fit_image(struct spl_load_info *info, ulong sector, if (fit_image_get_load(fit, node, _addr)) load_addr = image_info->load_addr; - if (!fit_image_get_data_offset(fit, node, )) { - /* External data */ + if (!fit_image_get_data_position(fit, node, )) { + external_data = true; + } else if (!fit_image_get_data_offset(fit, node, )) { offset += base_offset; + external_data = true; + } + + if (external_data) { + /* External data */ if (fit_image_get_data_size(fit, node, )) return -ENOENT; diff --git a/include/image.h b/include/image.h index 127cfc5148..15e171d037 100644 --- a/include/image.h +++ b/include/image.h @@ -886,6 +886,7 @@ int bootz_setup(ulong image, ulong *start, ulong *end); /* image node */ #define FIT_DATA_PROP "data" +#define FIT_DATA_POSITION_PROP "data-position" #define FIT_DATA_OFFSET_PROP "data-offset" #define FIT_DATA_SIZE_PROP "data-size" #define FIT_TIMESTAMP_PROP "timestamp" @@ -967,6 +968,8 @@ int fit_image_get_entry(const void *fit, int noffset, ulong *entry); int fit_image_get_data(const void *fit, int noffset, const void **data, size_t *size); int fit_image_get_data_offset(const void *fit, int noffset, int *data_offset); +int fit_image_get_data_position(const void *fit, int noffset, + int *data_position); int fit_image_get_data_size(const void *fit, int noffset, int *data_size); int fit_image_hash_get_algo(const void *fit, int noffset, char **algo); -- 2.14.1 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot