]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'master' of /home/git/u-boot
authorMarian Balakowicz <m8@semihalf.com>
Thu, 21 Feb 2008 16:18:01 +0000 (17:18 +0100)
committerMarian Balakowicz <m8@semihalf.com>
Thu, 21 Feb 2008 16:18:01 +0000 (17:18 +0100)
1  2 
Makefile
common/Makefile
lib_arm/Makefile
lib_arm/bootm.c
lib_ppc/Makefile

diff --cc Makefile
Simple merge
diff --cc common/Makefile
Simple merge
index aa9bee75cc88b9011cf3c335e55565068a22c550,bfd5b0e6f9974befee5d050a296fa7fb399dca36..18c9e971a6225a2ae281258e00b595144a98d73c
@@@ -27,8 -27,8 +27,8 @@@ LIB   = $(obj)lib$(ARCH).
  
  SOBJS = _ashldi3.o _ashrdi3.o _divsi3.o _modsi3.o _udivsi3.o _umodsi3.o
  
- COBJS = bootm.o board.o \
-         cache.o div0.o
 -COBJS = armlinux.o board.o \
++COBJS = board.o bootm.o \
+         cache.o div0.o interrupts.o
  
  SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
  OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
diff --cc lib_arm/bootm.c
index 529b0975ec9824a02404421f7f740b4f7cd2d9c4,42098fcd657243ca86a73ec1ed7c2763cdde7551..31c2d672257577914f37b1cf3d70d286ec6cbfb7
@@@ -60,21 -66,161 +60,29 @@@ static void setup_videolfb_tag (gd_t *g
  static struct tag *params;
  #endif /* CONFIG_SETUP_MEMORY_TAGS || CONFIG_CMDLINE_TAG || CONFIG_INITRD_TAG */
  
 -extern image_header_t header; /* from cmd_bootm.c */
 -
 -
  void do_bootm_linux (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
 -                   ulong addr, ulong *len_ptr, int verify)
 +                   image_header_t *hdr, int verify)
  {
 -      ulong len = 0, checksum;
        ulong initrd_start, initrd_end;
 -      ulong data;
        void (*theKernel)(int zero, int arch, uint params);
 -      image_header_t *hdr = &header;
        bd_t *bd = gd->bd;
+       int machid = bd->bi_arch_number;
+       char *s;
  
  #ifdef CONFIG_CMDLINE_TAG
        char *commandline = getenv ("bootargs");
  #endif
  
 -      theKernel = (void (*)(int, int, uint))ntohl(hdr->ih_ep);
 +      theKernel = (void (*)(int, int, uint))image_get_ep (hdr);
  
 -      /*
 -       * Check if there is an initrd image
 -       */
 -      if (argc >= 3) {
 -              show_boot_progress (9);
 -
 -              addr = simple_strtoul (argv[2], NULL, 16);
 -
 -              printf ("## Loading Ramdisk Image at %08lx ...\n", addr);
 -
 -              /* Copy header so we can blank CRC field for re-calculation */
 -#ifdef CONFIG_HAS_DATAFLASH
 -              if (addr_dataflash (addr)) {
 -                      read_dataflash (addr, sizeof (image_header_t),
 -                                      (char *) &header);
 -              } else
 -#endif
 -                      memcpy (&header, (char *) addr,
 -                              sizeof (image_header_t));
 -
 -              if (ntohl (hdr->ih_magic) != IH_MAGIC) {
 -                      printf ("Bad Magic Number\n");
 -                      show_boot_progress (-10);
 -                      do_reset (cmdtp, flag, argc, argv);
 -              }
 -
 -              data = (ulong) & header;
 -              len = sizeof (image_header_t);
 -
 -              checksum = ntohl (hdr->ih_hcrc);
 -              hdr->ih_hcrc = 0;
 -
 -              if (crc32 (0, (unsigned char *) data, len) != checksum) {
 -                      printf ("Bad Header Checksum\n");
 -                      show_boot_progress (-11);
 -                      do_reset (cmdtp, flag, argc, argv);
 -              }
 -
 -              show_boot_progress (10);
 -
 -              print_image_hdr (hdr);
 -
 -              data = addr + sizeof (image_header_t);
 -              len = ntohl (hdr->ih_size);
 -
 -#ifdef CONFIG_HAS_DATAFLASH
 -              if (addr_dataflash (addr)) {
 -                      read_dataflash (data, len, (char *) CFG_LOAD_ADDR);
 -                      data = CFG_LOAD_ADDR;
 -              }
 -#endif
 -
 -              if (verify) {
 -                      ulong csum = 0;
 -
 -                      printf ("   Verifying Checksum ... ");
 -                      csum = crc32 (0, (unsigned char *) data, len);
 -                      if (csum != ntohl (hdr->ih_dcrc)) {
 -                              printf ("Bad Data CRC\n");
 -                              show_boot_progress (-12);
 -                              do_reset (cmdtp, flag, argc, argv);
 -                      }
 -                      printf ("OK\n");
 -              }
 -
 -              show_boot_progress (11);
 -
 -              if ((hdr->ih_os != IH_OS_LINUX) ||
 -                  (hdr->ih_arch != IH_CPU_ARM) ||
 -                  (hdr->ih_type != IH_TYPE_RAMDISK)) {
 -                      printf ("No Linux ARM Ramdisk Image\n");
 -                      show_boot_progress (-13);
 -                      do_reset (cmdtp, flag, argc, argv);
 -              }
 -
 -#if defined(CONFIG_B2) || defined(CONFIG_EVB4510) ||  \
 -              defined(CONFIG_ARMADILLO) || defined(CONFIG_M501SK)
 -              /*
 -               *we need to copy the ramdisk to SRAM to let Linux boot
 -               */
 -              memmove ((void *) ntohl(hdr->ih_load), (uchar *)data, len);
 -              data = ntohl(hdr->ih_load);
 -#endif /* CONFIG_B2 || CONFIG_EVB4510 */
 -
 -              /*
 -               * Now check if we have a multifile image
 -               */
 -      } else if ((hdr->ih_type == IH_TYPE_MULTI) && (len_ptr[1])) {
 -              ulong tail = ntohl (len_ptr[0]) % 4;
 -              int i;
 -
 -              show_boot_progress (13);
 -
 -              /* skip kernel length and terminator */
 -              data = (ulong) (&len_ptr[2]);
 -              /* skip any additional image length fields */
 -              for (i = 1; len_ptr[i]; ++i)
 -                      data += 4;
 -              /* add kernel length, and align */
 -              data += ntohl (len_ptr[0]);
 -              if (tail) {
 -                      data += 4 - tail;
 -              }
 -
 -              len = ntohl (len_ptr[1]);
 -
 -      } else {
 -              /*
 -               * no initrd image
 -               */
 -              show_boot_progress (14);
 -
 -              len = data = 0;
 -      }
 -
 -#ifdef        DEBUG
 -      if (!data) {
 -              printf ("No initrd\n");
 -      }
 -#endif
 -
 -      if (data) {
 -              initrd_start = data;
 -              initrd_end = initrd_start + len;
 -      } else {
 -              initrd_start = 0;
 -              initrd_end = 0;
 -      }
+       s = getenv ("machid");
+       if (s) {
+               machid = simple_strtoul (s, NULL, 16);
+               printf ("Using machid 0x%x from environment\n", machid);
+       }
 +      get_ramdisk (cmdtp, flag, argc, argv, hdr, verify,
 +                      IH_ARCH_ARM, &initrd_start, &initrd_end);
  
        show_boot_progress (15);
  
index 6845ed0121dfe3207bdf4280d8d54618b53659ee,afbd5caf5a3d8e24b8255e6be39071be6ee1c21c..61507b038f3d4c5c53e67e9f01f15896f62b6a32
@@@ -25,11 -25,10 +25,11 @@@ include $(TOPDIR)/config.m
  
  LIB   = $(obj)lib$(ARCH).a
  
- SOBJS = ppcstring.o ticks.o
+ SOBJS = ppccache.o ppcstring.o ticks.o
  
  COBJS = board.o \
 -        bat_rw.o cache.o extable.o kgdb.o time.o interrupts.o
 +        bat_rw.o cache.o extable.o kgdb.o time.o interrupts.o \
 +        bootm.o
  
  SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
  OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))