All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Zankel <chris@mvista.com>
To: Matt Porter <mporter@eng.mcd.mot.com>,
	Simone Piccardi <Simone.Piccardi@fi.infn.it>
Cc: linuxppc-dev@lists.linuxppc.org
Subject: BUGboot 0.2 Patch
Date: Fri, 29 Oct 1999 11:08:00 -0700	[thread overview]
Message-ID: <3819E280.43C05759@mvista.com> (raw)
In-Reply-To: 19991014094024.A568@fwrsl-11.phx.mcd.mot.com

[-- Attachment #1: Type: text/plain, Size: 932 bytes --]

Hi Matt,
Hi Simone,

Matt Porter wrote:
> 
> On Tue, Oct 12, 1999 at 12:37:03AM +0200, Simone Piccardi wrote:
> > Hi Matt,
> >
> > I'm trying your bugboot but I have some problem. I went through your
> > readme, and these are the steps that I did.
> >
> 
> Since I posted 0.2 I've been able to produce this problem with certain
> board/zImage combinations.  This fell down my list of priorities a little
> bit for the short term, but I will fix the problems and make a working
> 0.3 version available ASAP.

Enclosed you will find a patch that made bugboot work for me. You can
also use a  little-endian machine to build it if you have the apropriate
cross-compiling tools.

Ups.. I forgot to change the README file:
RESDATA_DEST and RESDATA_SIZE are now in romboot.S and ZIMAGE_SIZE is
now called KERNEL_IMAGE (in Makefile). 

Greetings,
Christian

--
Christian Zankel			MontaVista Software, Inc.
chris@mvista.com			+1 408-328-9211

[-- Attachment #2: bugboot-0.2.diff --]
[-- Type: text/plain, Size: 6273 bytes --]

diff -c bugboot-0.2/Makefile bugboot-0.2.1/Makefile
*** bugboot-0.2/Makefile	Thu Sep 30 13:15:17 1999
--- bugboot-0.2.1/Makefile	Fri Oct 29 10:44:49 1999
***************
*** 10,18 ****
  CFLAGS=-c
  OBJCOPY=$(CROSS_COMPILE)objcopy
  
! ZIMAGE_SIZE=602426
! RESDATA_DEST=0x1f78000
! RESDATA_SIZE=0x6a0c
  
  all: bugboot.bin
  
--- 10,16 ----
  CFLAGS=-c
  OBJCOPY=$(CROSS_COMPILE)objcopy
  
! ZIMAGE_SIZE=587399
  
  all: bugboot.bin
  
***************
*** 24,32 ****
  
  romboot.o: romboot.S
  	$(CC) $(CFLAGS) \
! 	-DZIMAGE_SIZE=`wc -c <kernel_image | sed "s: ::g"` \
! 	-DRESDATA_DEST=RESDATA_DEST \
! 	-DRESDATA_SIZE=RESDATA_SIZE \
  	-o romboot.o romboot.S
  
  mkbugboot: mkbugboot.c
--- 22,28 ----
  
  romboot.o: romboot.S
  	$(CC) $(CFLAGS) \
! 	-DKERNEL_IMAGE=`wc -c <kernel_image | sed "s: ::g"` \
  	-o romboot.o romboot.S
  
  mkbugboot: mkbugboot.c
Only in bugboot-0.2.1: kernel_image
diff -c bugboot-0.2/mkbugboot.c bugboot-0.2.1/mkbugboot.c
*** bugboot-0.2/mkbugboot.c	Thu Sep 30 11:44:09 1999
--- bugboot-0.2.1/mkbugboot.c	Fri Oct 29 10:47:48 1999
***************
*** 17,22 ****
--- 17,30 ----
  #include <errno.h>
  #include <fcntl.h>
  
+ // ON LITTLE ENDIAN MACHINES:
+ 
+ #ifdef LITTLE_ENDIAN
+ #define cpu_to_be32(x) le32_to_cpu(x)
+ #else
+ #define cpu_to_be32(x) (x)
+ #endif
+ 
  #define cpu_to_le32(x) le32_to_cpu((x))
  unsigned long le32_to_cpu(unsigned long x)
  {
***************
*** 162,169 ****
  
    /* Fill in the PPCBUG ROM boot header */
    strncpy(bbh->magic_word, "BOOT", 4);			/* PPCBUG magic word */
!   bbh->entry_offset	= header_size;			/* Entry address */
!   bbh->routine_length	= MAX_BOOT_SIZE+boot_size+2;	/* Routine length */
    strncpy(bbh->routine_name, "LINUXROM", 8);		/* Routine name   */
  
    /* Output the header and bootloader to the file */
--- 170,177 ----
  
    /* Fill in the PPCBUG ROM boot header */
    strncpy(bbh->magic_word, "BOOT", 4);			/* PPCBUG magic word */
!   bbh->entry_offset	= cpu_to_be32(header_size);			/* Entry address */
!   bbh->routine_length	= cpu_to_be32(MAX_BOOT_SIZE+boot_size+2);	/* Routine length */
    strncpy(bbh->routine_name, "LINUXROM", 8);		/* Routine name   */
  
    /* Output the header and bootloader to the file */
***************
*** 185,191 ****
      }
  
    /* BUG romboot requires that our size is divisible by 2 */
!   if (image_size % 2)
      {
      image_size++;
      write(out_fd, &zero, 1);
--- 193,200 ----
      }
  
    /* BUG romboot requires that our size is divisible by 2 */
!   /* align image to 4 byte boundary */
!   if (image_size % 4)
      {
      image_size++;
      write(out_fd, &zero, 1);
Only in bugboot-0.2.1: mkbugboot.c.orig
Only in bugboot-0.2.1: res_data
diff -c bugboot-0.2/romboot.S bugboot-0.2.1/romboot.S
*** bugboot-0.2/romboot.S	Thu Sep 30 12:05:14 1999
--- bugboot-0.2.1/romboot.S	Fri Oct 29 10:48:17 1999
***************
*** 5,51 ****
   */
  #include "ppc_asm.tmpl"
  
  #define ZIMAGE_START	0xff000100
  #define ZIMAGE_DEST	0x00005000
- #define BOOT_VECTOR	ZIMAGE_DEST + 0x400
- #define RESDATA_START	ZIMAGE_START + ZIMAGE_SIZE
  
  .text
  
  /*	.globl	main */
  
  kernel:
! 	lis	r9,ZIMAGE_START@h	/* Get pointer to top of zImage */
! 	ori	r9,r9,ZIMAGE_START@l	/* Bootloader starts immediately */
  	
! 	lis	r11,ZIMAGE_SIZE@h	/* Set zImage size */
! 	ori	r11,r11,ZIMAGE_SIZE@l
  
! 	lis	r12,ZIMAGE_DEST@h	/* Setup destination address for */
! 	ori	r12,r12,ZIMAGE_DEST@l	/* zImage in RAM		 */
  
  	mtctr	r11			/* Setup the counter */
- 	li	r13,0
  copy1:	lwzu	r11,4(r9)		/* Load a word in and increment */
  	stwu	r11,4(r12)		/* Store a word out and increment */
- 	xor	r13,r13,r11		/* Decrement and repeat until counter */
  	bdnz	copy1			/* is 0 */
  
  resdata:
!         lis     r9,RESDATA_START@h      /* Set top of resdata */
!         ori     r9,r9,RESDATA_START@l 
   
!         lis     r11,RESDATA_SIZE@h      /* Set resdata size */
!         ori     r11,r11,RESDATA_SIZE@l
   
!         lis     r12,RESDATA_DEST@h      /* Set destination address for */
!         ori     r12,r12,RESDATA_DEST@l  /* resdata in RAM                 */
   
          mtctr   r11                     /* Setup the counter */
-         li      r13,0
  copy2:  lwzu    r11,4(r9)               /* Load a word in and increment */
          stwu    r11,4(r12)              /* Store a word out and increment */
-         xor     r13,r13,r11             /* Decrement and repeat until counter */
          bdnz    copy2                   /* is 0 */
  
          lis     r3,RESDATA_DEST@h       /* Set pointer to resdata in R3 */
--- 5,52 ----
   */
  #include "ppc_asm.tmpl"
  
+ #define RESDATA_DEST    0x7f88000
+ #define RESDATA_SIZE    0x6a0c
+  
  #define ZIMAGE_START	0xff000100
  #define ZIMAGE_DEST	0x00005000
  
+ #define ZIMAGE_SIZE	(KERNEL_IMAGE + 3) & (~3)
+ #define BOOT_VECTOR	ZIMAGE_DEST + 0x400 
+ #define RESDATA_START	ZIMAGE_START + ZIMAGE_SIZE
+  
  .text
  
  /*	.globl	main */
  
  kernel:
! 	lis	r9,(ZIMAGE_START-4)@h	/* Get pointer to top of zImage */
! 	ori	r9,r9,(ZIMAGE_START-4)@l/* Bootloader starts immediately */
  	
! 	lis	r11,(ZIMAGE_SIZE+3)/4@h	/* Set zImage size (number of words) */
! 	ori	r11,r11,(ZIMAGE_SIZE+3)/4@l
  
! 	lis	r12,(ZIMAGE_DEST-4)@h	/* Setup destination address for */
! 	ori	r12,r12,(ZIMAGE_DEST-4)@l	/* zImage in RAM		 */
  
  	mtctr	r11			/* Setup the counter */
  copy1:	lwzu	r11,4(r9)		/* Load a word in and increment */
  	stwu	r11,4(r12)		/* Store a word out and increment */
  	bdnz	copy1			/* is 0 */
  
  resdata:
!         lis     r9,(RESDATA_START-4)@h      /* Set top of resdata */
!         ori     r9,r9,(RESDATA_START-4)@l 
   
!         lis     r11,(RESDATA_SIZE+3)/4@h      /* Set resdata size */
!         ori     r11,r11,(RESDATA_SIZE+3)/4@l
   
!         lis     r12,(RESDATA_DEST-4)@h      /* Set destination address for */
!         ori     r12,r12,(RESDATA_DEST-4)@l  /* resdata in RAM                 */
   
          mtctr   r11                     /* Setup the counter */
  copy2:  lwzu    r11,4(r9)               /* Load a word in and increment */
          stwu    r11,4(r12)              /* Store a word out and increment */
          bdnz    copy2                   /* is 0 */
  
          lis     r3,RESDATA_DEST@h       /* Set pointer to resdata in R3 */

  reply	other threads:[~1999-10-29 18:08 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-09-30 20:45 BUGboot 0.2 - Boot Linux from flash on Moto boards Matt Porter
1999-10-11 22:37 ` Simone Piccardi
1999-10-14 16:40   ` Matt Porter
1999-10-29 18:08     ` Christian Zankel [this message]
1999-11-02  9:24       ` BUGboot 0.2 Patch Simone Piccardi
1999-11-02  9:45       ` Simone Piccardi
1999-11-12 23:45 ` BUGboot 0.3 - Boot Linux from flash on Moto boards Matt Porter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3819E280.43C05759@mvista.com \
    --to=chris@mvista.com \
    --cc=Simone.Piccardi@fi.infn.it \
    --cc=linuxppc-dev@lists.linuxppc.org \
    --cc=mporter@eng.mcd.mot.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.