アットウィキロゴ

load_initramfs

コンパイルされているかわからないので、後回し。

名称

load_initramfs - XXX

書式

int
load_initramfs(
    mic_ctx_t * mic_ctx,
    char *      initramfsname,
    uint32_t *  initramfs_image,
    uint32_t *  initramfs_size);

引数

mic_ctx
XXX
initramfsname
XXX
initramfs_image
XXX
initramfs_size
XXX

説明


戻り値


参照

  • XXX

実装

host/driver/uos_download.c
496 #ifdef INITRAMFS
497 /*
498   DESCRIPTION:: loads uos initramfs image at given path into gddr for KNC.
499   PARAMETERS::
500     [in]mic_ctx_t *mic_ctx - mic context
501     [in]initramfsname - file path for uos initramfs file to be loaded
502  */
503 int
504 load_initramfs(mic_ctx_t *mic_ctx, char *initramfsname, uint32_t *initramfs_image, uint32_t *initramfs_size)
505 {
506         void *aperture_va;
507         uint8_t *mmio_va;
508         uint32_t apic_id = 0;
509         uint32_t uos_load_offset = 0;
510         uint32_t file_load_offset = 0;
511         uint32_t adapter_memsize = 0;
512         uint32_t file_size = 0;
513         int status = 0;
514
515         aperture_va = mic_ctx->aper.va;
516         mmio_va = mic_ctx->mmio.va;
517
518         if (mic_ctx->state != MIC_BOOT) {
519                 printk("Not in booting state\n");
520                 return -EPERM;
521         }
522
523         status = mic_get_file_size(initramfsname, &file_size);
524
525         if (status) {
526                 mic_ctx->state = MIC_BOOTFAIL;
527                 printk("image not found at %s , status returned %d\n", initramfsname, status);
528                 return status;
529         }
530
531         status = [[get_uos_loadoffset]](mmio_va, &uos_load_offset);
532         file_load_offset = uos_load_offset << 1; /* Place initramfs higher than kernel; 128MB is ok */
533
534         *initramfs_size = (file_size >> 20) + 1; /* Size in whole MB */
535         *initramfs_image = file_load_offset;
536
537         // Determine the uOS reserve size after we have the m_pXpu interface
538         [[get_adapter_memsize]](mmio_va, &adapter_memsize);
539         status = [[get_apic_id]](mmio_va, &apic_id);
540
541         // store apic_id in adapter context for later use
542         mic_ctx->apic_id = apic_id;
543
544         // transfer uOs image file to gddr
545         status = mic_load_file(initramfsname, ((uint8_t*)aperture_va) + file_load_offset, file_size);
546         return status;
547 }
548 #endif
最終更新:2012年11月18日 12:39