Enable mipsel-arc.
This commit is contained in:
parent
b04b5990df
commit
7f63a64fa0
11 changed files with 90 additions and 12 deletions
|
@ -399,6 +399,24 @@ struct image_target_desc image_targets[] =
|
|||
.link_align = GRUB_KERNEL_MIPS_ARC_LINK_ALIGN,
|
||||
.default_compression = COMPRESSION_NONE
|
||||
},
|
||||
{
|
||||
.dirname = "mipsel-arc",
|
||||
.names = {"mipsel-arc", NULL},
|
||||
.voidp_sizeof = 4,
|
||||
.bigendian = 0,
|
||||
.id = IMAGE_MIPS_ARC,
|
||||
.flags = PLATFORM_FLAGS_DECOMPRESSORS,
|
||||
.total_module_size = GRUB_KERNEL_MIPS_ARC_TOTAL_MODULE_SIZE,
|
||||
.decompressor_compressed_size = GRUB_DECOMPRESSOR_MIPS_LOONGSON_COMPRESSED_SIZE,
|
||||
.decompressor_uncompressed_size = GRUB_DECOMPRESSOR_MIPS_LOONGSON_UNCOMPRESSED_SIZE,
|
||||
.decompressor_uncompressed_addr = GRUB_DECOMPRESSOR_MIPS_LOONGSON_UNCOMPRESSED_ADDR,
|
||||
.section_align = 1,
|
||||
.vaddr_offset = 0,
|
||||
.link_addr = GRUB_KERNEL_MIPSEL_ARC_LINK_ADDR,
|
||||
.elf_target = EM_MIPS,
|
||||
.link_align = GRUB_KERNEL_MIPS_ARC_LINK_ALIGN,
|
||||
.default_compression = COMPRESSION_NONE
|
||||
},
|
||||
{
|
||||
.dirname = "mipsel-qemu_mips",
|
||||
.names = { "mipsel-qemu_mips-elf", NULL },
|
||||
|
@ -1530,11 +1548,14 @@ generate_image (const char *dir, const char *prefix,
|
|||
grub_memset (ecoff_img, 0, program_size + sizeof (*head) + sizeof (*section));
|
||||
head = (void *) ecoff_img;
|
||||
section = (void *) (head + 1);
|
||||
head->magic = grub_host_to_target16 (0x160);
|
||||
head->magic = image_target->bigendian ? grub_host_to_target16 (0x160)
|
||||
: grub_host_to_target16 (0x166);
|
||||
head->nsec = grub_host_to_target16 (1);
|
||||
head->time = grub_host_to_target32 (0);
|
||||
head->opt = grub_host_to_target16 (0x38);
|
||||
head->flags = grub_host_to_target16 (0x207);
|
||||
head->flags = image_target->bigendian
|
||||
? grub_host_to_target16 (0x207)
|
||||
: grub_host_to_target16 (0x103);
|
||||
head->magic2 = grub_host_to_target16 (0x107);
|
||||
head->textsize = grub_host_to_target32 (program_size);
|
||||
head->entry = grub_host_to_target32 (target_addr);
|
||||
|
@ -1544,6 +1565,11 @@ generate_image (const char *dir, const char *prefix,
|
|||
section->vaddr = grub_host_to_target32 (target_addr);
|
||||
section->size = grub_host_to_target32 (program_size);
|
||||
section->file_offset = grub_host_to_target32 (sizeof (*head) + sizeof (*section));
|
||||
if (!image_target->bigendian)
|
||||
{
|
||||
section->paddr = grub_host_to_target32 (0xaa60);
|
||||
section->flags = grub_host_to_target32 (0x20);
|
||||
}
|
||||
memcpy (section + 1, core_img, core_size);
|
||||
free (core_img);
|
||||
core_img = ecoff_img;
|
||||
|
|
|
@ -46,6 +46,7 @@ efi64_dir="${libdir}/@PACKAGE@/x86_64-efi"
|
|||
ia64_dir="${libdir}/@PACKAGE@/ia64-efi"
|
||||
sparc64_dir="${libdir}/@PACKAGE@/sparc64-ieee1275"
|
||||
arcs_dir="${libdir}/@PACKAGE@/mips-arc"
|
||||
arc_dir="${libdir}/@PACKAGE@/mipsel-arc"
|
||||
ppc_dir="${libdir}/@PACKAGE@/powerpc-ieee1275"
|
||||
rom_directory=
|
||||
override_dir=
|
||||
|
@ -325,6 +326,9 @@ if [ "${override_dir}" = "" ] ; then
|
|||
if test -e "${arcs_dir}" ; then
|
||||
process_input_dir "${arcs_dir}" mips-arc
|
||||
fi
|
||||
if test -e "${arc_dir}" ; then
|
||||
process_input_dir "${arc_dir}" mipsel-arc
|
||||
fi
|
||||
else
|
||||
. "${override_dir}"/modinfo.sh
|
||||
process_input_dir "${override_dir}" ${grub_modinfo_target_cpu}-${grub_modinfo_platform}
|
||||
|
@ -342,6 +346,7 @@ else
|
|||
i386_ieee1275_dir=
|
||||
sparc64_dir=
|
||||
arcs_dir=
|
||||
arc_dir=
|
||||
case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in
|
||||
i386-multiboot) multiboot_dir="${override_dir}" ;;
|
||||
i386-coreboot) coreboot_dir="${override_dir}" ;;
|
||||
|
@ -356,6 +361,7 @@ else
|
|||
powerpc-ieee1275) ppc_dir="${override_dir}"; system_area=common ;;
|
||||
sparc64-ieee1275) sparc64_dir="${override_dir}"; system_area=sparc64 ;;
|
||||
mips-arc) arcs_dir="${override_dir}"; system_area=arcs ;;
|
||||
mipsel-arc) arc_dir="${override_dir}" ;;
|
||||
i386-ieee1275) i386_ieee1275_dir="${override_dir}" ;;
|
||||
esac
|
||||
fi
|
||||
|
@ -491,6 +497,8 @@ if [ -e "${iso9660_dir}/boot/grub/mips-arc/core.img" ] && [ "$system_area" = arc
|
|||
grub_mkisofs_arguments="${grub_mkisofs_arguments} -mips-boot /boot/grub/mips-arc/sashARCS -mips-boot /boot/grub/mips-arc/sash -mips-boot /boot/grub/mips-arc/grub"
|
||||
fi
|
||||
|
||||
make_image "${arc_dir}" mipsel-arc "${iso9660_dir}/boot/grub/arc.exe" ""
|
||||
|
||||
make_image "${mipsel_qemu_dir}" mipsel-qemu_mips-elf "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" "pata"
|
||||
if [ -e "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" ] && [ -d "${rom_directory}" ]; then
|
||||
cp "${iso9660_dir}/boot/grub/roms/mipsel-qemu_mips.elf" "${rom_directory}/mipsel-qemu_mips.elf"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue