Added u-boot header generating functionality to ublimage
PATCH 1/1 Added u-boot header generating functionality to ublimage
--- tools/ublimage.c | 19 +++++++++++++++++++ tools/ublimage.h | 2 ++ 2 files changed, 21 insertions(+), 0 deletions(-)
tools/ublimage.c +19 -0
@@ -36,6 +36,10 @@#include <image.h> #include "ublimage.h" +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +/* * Supported commands for configuration file */
@@ -59,6 +63,7 @@ static table_entry_t ublimage_cmds[] = {*/ static table_entry_t ublimage_bootops[] = { {UBL_MAGIC_SAFE ,"safe" ,"Safe boot mode" , }, + {UBL_MAGIC_UBOOT ,"uboot" ,"Make u-boot header" , }, {-1 ,"" ,"Invalid" , }, };
@@ -89,6 +94,18 @@ static void print_hdr(struct ubl_header *ubl_hdr)printf ("start page : %08x\n" , ubl_hdr->page); } +static uint32_t getDataPageSize () { +uint32_t size =0 ; +struct stat buf; +int rv =stat (params.datafile, &buf); +if (rv ==0 ) { + size = (buf.st_size/UBL_BLOCK_SIZE ) + (buf.st_size %UBL_BLOCK_SIZE ==0 ?0 :1 ); + }else { +fprintf (stderr,"Error: could not stat datafile %s\n" , params.datafile); + } +return size; +} +static void parse_cfg_cmd (struct ubl_header *ublhdr,int32_t cmd,char *token,char *name,int lineno,int fld,int dcd_len) {
@@ -171,6 +188,8 @@ static uint32_t parse_cfg_file(struct ubl_header *ublhdr, char *name) *ptr =0xff ; ptr++; } + + ublhdr->pages =getDataPageSize ();/* * Very simple parsing, line starting with # are comments
tools/ublimage.h +2 -0
@@ -61,6 +61,8 @@ enum ublimage_fld_types {#define UBL_MAGIC_DMA_IC (0x44)/* DMA + ICache + Fast EMIF boot mode */ #define UBL_MAGIC_DMA_IC_FAST (0x55) +/* UBOOT header identifier for UBL */ +#define UBL_MAGIC_UBOOT (0x66)/* Define max UBL image size */ #define UBL_IMAGE_SIZE (0x00003800u)
Signature · 1 line
1.7.0.4
PATCH 1/1 Added u-boot header generating functionality to ublimage
tools/ublimage.c static void print_hdr(struct ubl_header *ubl_hdr) · line 97
Quoted 4 lines · On Sunday 20 May 2012 12:53:06 Stijn Souffriau wrote:
tools/ublimage.c +1
-0+static uint32_t getDataPageSize () {
don't use CamelCase in naming things. use "(void)" not "()". uncuddle the brace with function definitions.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120520/19c924b4/attachment.pgp>
PATCH 1/1 Added u-boot header generating functionality to ublimage
In reply to Stijn SouffriauHello Stijn,
Quoted 21 lines · Stijn Souffriau
--- tools/ublimage.c | 19 +++++++++++++++++++ tools/ublimage.h | 2 ++ 2 files changed, 21 insertions(+), 0 deletions(-)tools/ublimage.c +4
-0@@ -36,6 +36,10 @@#include <image.h> #include "ublimage.h" +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +/* * Supported commands for configuration file */
tools/ublimage.c static table_entry_t ublimage_cmds[] = { · line 66
Quoted 4 lines
tools/ublimage.c +1
-0@@ -59,6 +63,7 @@ static table_entry_t ublimage_cmds[] = {*/ static table_entry_t ublimage_bootops[] = { {UBL_MAGIC_SAFE ,"safe" ,"Safe boot mode" , }, + {UBL_MAGIC_UBOOT ,"uboot" ,"Make u-boot header" , },
Hmm... what is UBL_MAGIC_UBOOT? Could you explain this?
This list should contain "UBL Signatures and Special Modes" from the UBL descriptor defined in your processor manual (fast looked for the dm368 in sprufg5a.pdf table 110 ... a 0x66 fit to "UBL_MAGIC_PLL" = "With PLL enabled to have higher ARM/DMA clocks")
Quoted 36 lines
tools/ublimage.c +14
-0{-1, "", "Invalid", }, };@@ -89,6 +94,18 @@ static void print_hdr(struct ubl_header *ubl_hdr)printf ("start page : %08x\n" , ubl_hdr->page); } +static uint32_t getDataPageSize () { +uint32_t size =0 ; +struct stat buf; +int rv =stat (params.datafile, &buf); +if (rv ==0 ) { + size = (buf.st_size/UBL_BLOCK_SIZE ) + (buf.st_size %UBL_BLOCK_SIZE ==0 ?0 :1 ); + }else { +fprintf (stderr,"Error: could not stat datafile %s\n" , params.datafile); + } +return size; +} +static void parse_cfg_cmd (struct ubl_header *ublhdr,int32_t cmd,char *token,char *name,int lineno,int fld,int dcd_len) {@@ -171,6 +188,8 @@ static uint32_t parse_cfg_file(struct ubl_header *ublhdr, char *name) *ptr =0xff ; ptr++; } + + ublhdr->pages =getDataPageSize ();/* * Very simple parsing, line starting with # are comments tools/ublimage.h +0
-0
tools/ublimage.h enum ublimage_fld_types { · line 65
Quoted 5 lines
tools/ublimage.h +2
-0@@ -61,6 +61,8 @@ enum ublimage_fld_types {#define UBL_MAGIC_DMA_IC (0x44)/* DMA + ICache + Fast EMIF boot mode */ #define UBL_MAGIC_DMA_IC_FAST (0x55) +/* UBOOT header identifier for UBL */ +#define UBL_MAGIC_UBOOT (0x66)
Hmm.. see above comment, and comment in source code ...
please explain here more, what you want to do.
tools/ublimage.h enum ublimage_fld_types { · line 68
Quoted 2 lines
tools/ublimage.h +0
-0/* Define max UBL image size */ #define UBL_IMAGE_SIZE (0x00003800u)
bye,
Heiko
Signature · 3 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
PATCH 1/1 Added u-boot header generating functionality to ublimage
Quoted 30 lines · Heiko Schocher
Hello Stijn,
Quoted 21 lines · Stijn Souffriau
--- tools/ublimage.c | 19 +++++++++++++++++++ tools/ublimage.h | 2 ++ 2 files changed, 21 insertions(+), 0 deletions(-)tools/ublimage.c +4
-0@@ -36,6 +36,10 @@#include <image.h> #include "ublimage.h" +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +/* * Supported commands for configuration file */ tools/ublimage.c static table_entry_t ublimage_cmds[] = { · line 66
Quoted 4 lines
tools/ublimage.c +1
-0@@ -59,6 +63,7 @@ static table_entry_t ublimage_cmds[] = {*/ static table_entry_t ublimage_bootops[] = { {UBL_MAGIC_SAFE ,"safe" ,"Safe boot mode" , }, + {UBL_MAGIC_UBOOT ,"uboot" ,"Make u-boot header" , },Hmm... what is
UBL_MAGIC_UBOOT? Could you explain this?
Quoted 4 lines
This list should contain "UBL Signatures and Special Modes" from the UBL descriptor defined in your processor manual (fast looked for the dm368 in sprufg5a.pdf table 110 ... a
0x66fit to "UBL_MAGIC_PLL" = "With PLL enabled to have higher ARM/DMA clocks")
Well I didn't know that, I saw it in all the u-boot headers so I named it accordingly. I can change it to it's proper name to avoid confusion. Thanks!
Quoted 44 lines
Quoted 37 lines
tools/ublimage.c +14
-0{-1, "", "Invalid", }, };@@ -89,6 +94,18 @@ static void print_hdr(struct ubl_header *ubl_hdr)printf ("start page : %08x\n" , ubl_hdr->page); } +static uint32_t getDataPageSize () { +uint32_t size =0 ; +struct stat buf; +int rv =stat (params.datafile,&buf); +if (rv ==0 ) { + size = (buf.st_size/UBL_BLOCK_SIZE ) + (buf.st_size %UBL_BLOCK_SIZE ==0 ?0 :1 ); + }else { +fprintf (stderr,"Error: could not stat datafile %s\n" , params.datafile); + } +return size; +} +static void parse_cfg_cmd (struct ubl_header *ublhdr,int32_t cmd,char *token,char *name,int lineno,int fld,int dcd_len) {@@ -171,6 +188,8 @@ static uint32_t parse_cfg_file(struct ubl_header *ublhdr, char *name) *ptr =0xff ; ptr++; } + + ublhdr->pages =getDataPageSize ();/* * Very simple parsing, line starting with # are comments tools/ublimage.h +0
-0tools/ublimage.h enum ublimage_fld_types { · line 65
Quoted 5 lines
tools/ublimage.h +2
-0@@ -61,6 +61,8 @@ enum ublimage_fld_types {#define UBL_MAGIC_DMA_IC (0x44)/* DMA + ICache + Fast EMIF boot mode */ #define UBL_MAGIC_DMA_IC_FAST (0x55) +/* UBOOT header identifier for UBL */ +#define UBL_MAGIC_UBOOT (0x66)Hmm.. see above comment, and comment in source code ...
Quoted 1 line
please explain here more, what you want to do.
ok
Quoted 5 lines
tools/ublimage.h enum ublimage_fld_types { · line 68
Quoted 3 lines
tools/ublimage.h +0
-0/* Define max UBL image size */ #define UBL_IMAGE_SIZE (0x00003800u)bye,
Heiko