Re: [U-Boot] [PATCH] powerpc/CoreNet: Allow pbl images to take u-boot images != 512K

2013-05-28 Thread Xie Shaohui-B21989
 On 27/05/13 18:18, Xie Shaohui-B21989 wrote:
  Hi, Chris,
 
  For the init value of next_pbl_cmd, there was a patch at below link
 can be used:
  http://lists.denx.de/pipermail/u-boot/2013-March/150260.html
 
 
 Thanks for the pointer. I did check the main u-boot.git tree but didn't
 search the list.
 
 I don't know if it's a concern for u-boot but the patch linked above
 assumes something that isn't quite true for my usage. My board uses the
 SPI booting option for factory boot-strap. The normal method is booting
 from NOR. When I build a NOR image I prepend a standalone application
 image to the bootloader for convenience of only having to program one
 image to NOR. In my case CONFIG_SYS_TEXT_BASE is not the base address of
 the binary I'm trying to wrap in a pbl image.
 
 Another advantage of my version is that you don't necessarily have to be
 using mkimage/pblimage on the current u-boot configuration. It could be
 an externally built image and we're just using mkimage/pblimage to wrap
 it into something that we can program into SPI.
 
[S.H] OK. I see what is your requirement. 
ACK.

Best Regards, 
Shaohui Xie

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] powerpc/CoreNet: Allow pbl images to take u-boot images != 512K

2013-05-27 Thread Xie Shaohui-B21989
Hi, Chris,

For the init value of next_pbl_cmd, there was a patch at below link can be 
used:
http://lists.denx.de/pipermail/u-boot/2013-March/150260.html

this patch with your modification below should can meet your requirement:
 -static unsigned char mem_buf[60];
 +static unsigned char mem_buf[100];


Best Regards, 
Shaohui Xie
 -Original Message-
 From: Chris Packham [mailto:judge.pack...@gmail.com]
 Sent: Monday, May 27, 2013 6:52 AM
 To: Fleming Andy-AFLEMING
 Cc: Xie Shaohui-B21989; u-boot@lists.denx.de; Chris Packham
 Subject: [PATCH] powerpc/CoreNet: Allow pbl images to take u-boot
 images != 512K
 
 From: Chris Packham chris.pack...@alliedtelesis.co.nz
 
 Instead of assuming that SYS_TEXT_BASE is 0xFFF8 calculate the
 initial pbl command offset by subtracting the image size from the top of
 the 24-bit address range. Also increase the size of the memory buffer to
 accommodate a larger output image.
 
 Signed-off-by: Chris Packham chris.pack...@alliedtelesis.co.nz
 ---
 Hi,
 
 I was trying to get a SPIFLASH image working for my board based on a
 P2040 and found that the pblimage tool assumes that u-boot.bin is always
 512K. In my case it's actually larger. This patch is my attempt to allow
 for an arbitrary u-boot.bin image size.
 
 Thanks,
 Chris
 
  tools/pblimage.c |   33 ++---
  1 file changed, 26 insertions(+), 7 deletions(-)
 
 diff --git a/tools/pblimage.c b/tools/pblimage.c index 508a747..3582ada
 100644
 --- a/tools/pblimage.c
 +++ b/tools/pblimage.c
 @@ -26,18 +26,14 @@
  #include pblimage.h
 
  /*
 - * The PBL can load up to 64 bytes at a time, so we split the U-Boot
 - * image into 64 byte chunks. PBL needs a command for each piece, of
 - * the form 81xx, where xx is the offset. SYS_TEXT_BASE
 - * is 0xFFF8 for PBL boot, and PBL only cares about low 24-bit,
 - * so it starts from 0x81F8.
 + * Initialize to an invalid value.
   */
 -static uint32_t next_pbl_cmd = 0x81F8;
 +static uint32_t next_pbl_cmd = 0x8200;
  /*
   * need to store all bytes in memory for calculating crc32, then write
 the
   * bytes to image file for PBL boot.
   */
 -static unsigned char mem_buf[60];
 +static unsigned char mem_buf[100];
  static unsigned char *pmem_buf = mem_buf;  static int pbl_size;  static
 char *fname = Unknown; @@ -52,6 +48,28 @@ static union
 
  #define ENDIANNESS ((char)endian_test.l)
 
 +/*
 + * The PBL can load up to 64 bytes at a time, so we split the U-Boot
 + * image into 64 byte chunks. PBL needs a command for each piece, of
 + * the form 81xx, where xx is the offset. Calculate the
 + * start offset by subtracting the size of the u-boot image from the
 + * top of the allowable 24-bit range.
 + */
 +static void init_next_pbl_cmd(FILE *fp_uboot) {
 + struct stat st;
 + int fd = fileno(fp_uboot);
 + size_t size;
 +
 + if (fstat(fd, st) == -1) {
 + printf(Error: Could not determine u-boot image size. %s\n,
 + strerror(errno));
 + exit(EXIT_FAILURE);
 + }
 +
 + next_pbl_cmd = 0x8200 - st.st_size; }
 +
  static void generate_pbl_cmd(void)
  {
   uint32_t val = next_pbl_cmd;
 @@ -80,6 +98,7 @@ static void pbl_fget(size_t size, FILE *stream)
  /* load split u-boot with PBI command 81xx. */  static void
 load_uboot(FILE *fp_uboot)  {
 + init_next_pbl_cmd(fp_uboot);
   while (next_pbl_cmd  0x8200) {
   generate_pbl_cmd();
   pbl_fget(64, fp_uboot);
 --
 1.7.9.5
 
 
 NOTICE: This message contains privileged and confidential
 information intended only for the use of the addressee
 named above. If you are not the intended recipient of
 this message you are hereby notified that you must not
 disseminate, copy or take any action in reliance on it.
 If you have received this message in error please
 notify Allied Telesis Labs Ltd immediately.
 Any views expressed in this message are those of the
 individual sender, except where the sender has the
 authority to issue and specifically states them to
 be the views of Allied Telesis Labs.


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH] powerpc/CoreNet: Allow pbl images to take u-boot images != 512K

2013-05-27 Thread Chris Packham
On 27/05/13 18:18, Xie Shaohui-B21989 wrote:
 Hi, Chris,
 
 For the init value of next_pbl_cmd, there was a patch at below link can be 
 used:
 http://lists.denx.de/pipermail/u-boot/2013-March/150260.html
 

Thanks for the pointer. I did check the main u-boot.git tree but didn't
search the list.

I don't know if it's a concern for u-boot but the patch linked above
assumes something that isn't quite true for my usage. My board uses the
SPI booting option for factory boot-strap. The normal method is
booting from NOR. When I build a NOR image I prepend a standalone
application image to the bootloader for convenience of only having to
program one image to NOR. In my case CONFIG_SYS_TEXT_BASE is not the
base address of the binary I'm trying to wrap in a pbl image.

Another advantage of my version is that you don't necessarily have to be
using mkimage/pblimage on the current u-boot configuration. It could be
an externally built image and we're just using mkimage/pblimage to wrap
it into something that we can program into SPI.

 this patch with your modification below should can meet your requirement:
 -static unsigned char mem_buf[60];
 +static unsigned char mem_buf[100];
 
 Best Regards, 
 Shaohui Xie
 -Original Message-
 From: Chris Packham [mailto:judge.pack...@gmail.com]
 Sent: Monday, May 27, 2013 6:52 AM
 To: Fleming Andy-AFLEMING
 Cc: Xie Shaohui-B21989; u-boot@lists.denx.de; Chris Packham
 Subject: [PATCH] powerpc/CoreNet: Allow pbl images to take u-boot
 images != 512K

 From: Chris Packham chris.pack...@alliedtelesis.co.nz

 Instead of assuming that SYS_TEXT_BASE is 0xFFF8 calculate the
 initial pbl command offset by subtracting the image size from the top of
 the 24-bit address range. Also increase the size of the memory buffer to
 accommodate a larger output image.

 Signed-off-by: Chris Packham chris.pack...@alliedtelesis.co.nz
 ---
 Hi,

 I was trying to get a SPIFLASH image working for my board based on a
 P2040 and found that the pblimage tool assumes that u-boot.bin is always
 512K. In my case it's actually larger. This patch is my attempt to allow
 for an arbitrary u-boot.bin image size.

 Thanks,
 Chris

  tools/pblimage.c |   33 ++---
  1 file changed, 26 insertions(+), 7 deletions(-)

 diff --git a/tools/pblimage.c b/tools/pblimage.c index 508a747..3582ada
 100644
 --- a/tools/pblimage.c
 +++ b/tools/pblimage.c
 @@ -26,18 +26,14 @@
  #include pblimage.h

  /*
 - * The PBL can load up to 64 bytes at a time, so we split the U-Boot
 - * image into 64 byte chunks. PBL needs a command for each piece, of
 - * the form 81xx, where xx is the offset. SYS_TEXT_BASE
 - * is 0xFFF8 for PBL boot, and PBL only cares about low 24-bit,
 - * so it starts from 0x81F8.
 + * Initialize to an invalid value.
   */
 -static uint32_t next_pbl_cmd = 0x81F8;
 +static uint32_t next_pbl_cmd = 0x8200;
  /*
   * need to store all bytes in memory for calculating crc32, then write
 the
   * bytes to image file for PBL boot.
   */
 -static unsigned char mem_buf[60];
 +static unsigned char mem_buf[100];
  static unsigned char *pmem_buf = mem_buf;  static int pbl_size;  static
 char *fname = Unknown; @@ -52,6 +48,28 @@ static union

  #define ENDIANNESS ((char)endian_test.l)

 +/*
 + * The PBL can load up to 64 bytes at a time, so we split the U-Boot
 + * image into 64 byte chunks. PBL needs a command for each piece, of
 + * the form 81xx, where xx is the offset. Calculate the
 + * start offset by subtracting the size of the u-boot image from the
 + * top of the allowable 24-bit range.
 + */
 +static void init_next_pbl_cmd(FILE *fp_uboot) {
 +struct stat st;
 +int fd = fileno(fp_uboot);
 +size_t size;
 +
 +if (fstat(fd, st) == -1) {
 +printf(Error: Could not determine u-boot image size. %s\n,
 +strerror(errno));
 +exit(EXIT_FAILURE);
 +}
 +
 +next_pbl_cmd = 0x8200 - st.st_size; }
 +
  static void generate_pbl_cmd(void)
  {
  uint32_t val = next_pbl_cmd;
 @@ -80,6 +98,7 @@ static void pbl_fget(size_t size, FILE *stream)
  /* load split u-boot with PBI command 81xx. */  static void
 load_uboot(FILE *fp_uboot)  {
 +init_next_pbl_cmd(fp_uboot);
  while (next_pbl_cmd  0x8200) {
  generate_pbl_cmd();
  pbl_fget(64, fp_uboot);
 --
 1.7.9.5


 NOTICE: This message contains privileged and confidential
 information intended only for the use of the addressee
 named above. If you are not the intended recipient of
 this message you are hereby notified that you must not
 disseminate, copy or take any action in reliance on it.
 If you have received this message in error please
 notify Allied Telesis Labs Ltd immediately.
 Any views expressed in this message are those of the
 individual sender, except where the sender has the
 authority to issue and specifically states them to
 be the views of Allied Telesis Labs.