Lines Matching full:vpe
9 * VPE spport module for loading a MIPS SP program into VPE1. The SP
36 #include <asm/vpe.h>
52 /* get the vpe associated with this minor */
53 struct vpe *get_vpe(int minor) in get_vpe()
55 struct vpe *res, *v; in get_vpe()
73 /* get the vpe associated with this minor */
91 /* allocate a vpe and associate it with this minor (or index) */
92 struct vpe *alloc_vpe(int minor) in alloc_vpe()
94 struct vpe *v; in alloc_vpe()
96 v = kzalloc(sizeof(struct vpe), GFP_KERNEL); in alloc_vpe()
133 void release_vpe(struct vpe *v) in release_vpe()
141 /* Find some VPE program space */
248 pr_debug("VPE loader: apply_r_mips_gprel16: relative address 0x%x out of range of gp register\n", in apply_r_mips_gprel16()
267 pr_debug("VPE loader: apply_r_mips_pc16: relative address out of range 0x%x\n", in apply_r_mips_pc16()
289 pr_debug("VPE loader: apply_r_mips_26: unaligned relocation\n"); in apply_r_mips_26()
352 pr_debug("VPE loader: apply_r_mips_lo16/hi16: inconsistent value information\n"); in apply_r_mips_lo16()
458 pr_warn("VPE loader: .text+0x%x relocation type %s for symbol \"%s\" failed\n", in apply_relocations()
549 static int find_vpe_symbols(struct vpe *v, Elf_Shdr *sechdrs, in find_vpe_symbols()
571 * Allocates a VPE with some program code space(the load address), copies the
575 static int vpe_elfload(struct vpe *v) in vpe_elfload()
585 strcpy(mod.name, "VPE loader"); in vpe_elfload()
596 pr_warn("VPE loader: program wrong arch or weird elf version\n"); in vpe_elfload()
605 pr_err("VPE loader: program length %u truncated\n", len); in vpe_elfload()
622 pr_err("VPE program length %u truncated\n", in vpe_elfload()
647 pr_info("VPE loader: loading to %p\n", v->load_addr); in vpe_elfload()
735 pr_warn("VPE loader: program does not contain a __start symbol\n"); in vpe_elfload()
740 pr_warn("VPE loader: program does not contain vpe_shared symbol.\n" in vpe_elfload()
748 /* checks VPE is unused and gets ready to load program */
753 struct vpe *v; in vpe_open()
757 pr_warn("VPE loader: only vpe1 is supported\n"); in vpe_open()
764 pr_warn("VPE loader: unable to get vpe\n"); in vpe_open()
771 pr_debug("VPE loader: tc in use dumping regs\n"); in vpe_open()
783 pr_warn("VPE loader: unable to allocate memory\n"); in vpe_open()
798 struct vpe *v; in vpe_release()
811 pr_warn("VPE loader: ELF load failed.\n"); in vpe_release()
815 pr_warn("VPE loader: only elf files are supported\n"); in vpe_release()
821 lose what has happened. So perhaps if garbage is sent to the vpe in vpe_release()
832 pr_warn("VPE loader: ELF load failed.\n"); in vpe_release()
841 struct vpe *v; in vpe_write()
852 pr_warn("VPE loader: elf size too big. Perhaps strip unneeded symbols\n"); in vpe_write()
874 struct vpe *v = get_vpe(index); in vpe_get_shared()
885 struct vpe *v = get_vpe(index); in vpe_notify()
897 MODULE_DESCRIPTION("MIPS VPE Loader");