~hamo/ubuntu/precise/grub2/grub2.hi_res

« back to all changes in this revision

Viewing changes to util/grub-mkimage.c

Tags: upstream-1.98+20100705
ImportĀ upstreamĀ versionĀ 1.98+20100705

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
  enum {
54
54
    IMAGE_I386_PC, IMAGE_EFI, IMAGE_COREBOOT,
55
55
    IMAGE_SPARC64_AOUT, IMAGE_SPARC64_RAW, IMAGE_I386_IEEE1275,
56
 
    IMAGE_YEELOONG_ELF, IMAGE_QEMU, IMAGE_PPC
 
56
    IMAGE_YEELOONG_ELF, IMAGE_QEMU, IMAGE_PPC, IMAGE_YEELOONG_FLASH
57
57
  } id;
58
58
  enum
59
59
    {
224
224
      .install_bsd_part = TARGET_NO_FIELD,
225
225
    },
226
226
    {
 
227
      .name = "mipsel-yeeloong-flash",
 
228
      .voidp_sizeof = 4,
 
229
      .bigendian = 0,
 
230
      .id = IMAGE_YEELOONG_FLASH, 
 
231
      .flags = PLATFORM_FLAGS_NONE,
 
232
      .prefix = GRUB_KERNEL_MIPS_YEELOONG_PREFIX,
 
233
      .data_end = GRUB_KERNEL_MIPS_YEELOONG_DATA_END,
 
234
      .raw_size = GRUB_KERNEL_MIPS_YEELOONG_RAW_SIZE,
 
235
      .total_module_size = GRUB_KERNEL_MIPS_YEELOONG_TOTAL_MODULE_SIZE,
 
236
      .compressed_size = GRUB_KERNEL_MIPS_YEELOONG_COMPRESSED_SIZE,
 
237
      .kernel_image_size = GRUB_KERNEL_MIPS_YEELOONG_KERNEL_IMAGE_SIZE,
 
238
      .section_align = 1,
 
239
      .vaddr_offset = 0,
 
240
      .install_dos_part = TARGET_NO_FIELD,
 
241
      .install_bsd_part = TARGET_NO_FIELD,
 
242
      .link_addr = GRUB_KERNEL_MIPS_YEELOONG_LINK_ADDR,
 
243
      .elf_target = EM_MIPS,
 
244
      .link_align = GRUB_KERNEL_MIPS_YEELOONG_LINK_ALIGN
 
245
    },
 
246
    {
227
247
      .name = "mipsel-yeeloong-elf",
228
248
      .voidp_sizeof = 4,
229
249
      .bigendian = 0,
984
1004
        free (boot_path);
985
1005
      }
986
1006
      break;
 
1007
    case IMAGE_YEELOONG_FLASH:
 
1008
    {
 
1009
      char *rom_img;
 
1010
      size_t rom_size;
 
1011
      char *boot_path, *boot_img;
 
1012
      size_t boot_size;
 
1013
      
 
1014
      boot_path = grub_util_get_path (dir, "fwstart.img");
 
1015
      boot_size = grub_util_get_image_size (boot_path);
 
1016
      boot_img = grub_util_read_image (boot_path);
 
1017
 
 
1018
      rom_size = ALIGN_UP (core_size + boot_size, 512 * 1024);
 
1019
 
 
1020
      rom_img = xmalloc (rom_size);
 
1021
      memset (rom_img, 0, rom_size); 
 
1022
 
 
1023
      memcpy (rom_img, boot_img, boot_size);
 
1024
 
 
1025
      memcpy (rom_img + boot_size, core_img, core_size);
 
1026
 
 
1027
      memset (rom_img + boot_size + core_size, 0,
 
1028
              rom_size - (boot_size + core_size));
 
1029
 
 
1030
      free (core_img);
 
1031
      core_img = rom_img;
 
1032
      core_size = rom_size;
 
1033
    }
 
1034
    break;
987
1035
    case IMAGE_YEELOONG_ELF:
988
1036
    case IMAGE_PPC:
989
1037
    case IMAGE_COREBOOT: