这篇教程C++ timestamp_add_now函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中timestamp_add_now函数的典型用法代码示例。如果您正苦于以下问题:C++ timestamp_add_now函数的具体用法?C++ timestamp_add_now怎么用?C++ timestamp_add_now使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了timestamp_add_now函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: mainvoid main(void){ timestamp_add_now(TS_START_ROMSTAGE); console_init(); configure_l2ctlr(); tsadc_init(); /* vdd_log 1200mv is enough for ddr run 666Mhz */ regulate_vdd_log(1200); timestamp_add_now(TS_BEFORE_INITRAM); sdram_init(get_sdram_config()); timestamp_add_now(TS_AFTER_INITRAM); /* Now that DRAM is up, add mappings for it and DMA coherency buffer. */ mmu_config_range((uintptr_t)_dram/MiB, sdram_size_mb(), DCACHE_WRITEBACK); mmu_config_range((uintptr_t)_dma_coherent/MiB, _dma_coherent_size/MiB, DCACHE_OFF); cbmem_initialize_empty(); timestamp_add_now(TS_END_ROMSTAGE); run_ramstage();}
开发者ID:bitpick,项目名称:coreboot,代码行数:29,
示例2: romstage_common/* Entry from the mainboard. */void romstage_common(struct romstage_params *params){ struct romstage_handoff *handoff; struct chipset_power_state *ps; int prev_sleep_state; timestamp_add_now(TS_BEFORE_INITRAM); ps = fill_power_state(); prev_sleep_state = chipset_prev_sleep_state(ps); printk(BIOS_DEBUG, "prev_sleep_state = S%d/n", prev_sleep_state);#if CONFIG_ELOG_BOOT_COUNT if (prev_sleep_state != 3) boot_count_increment();#endif /* Initialize RAM */ raminit(params->mrc_params, prev_sleep_state); timestamp_add_now(TS_AFTER_INITRAM); handoff = romstage_handoff_find_or_add(); if (handoff != NULL) handoff->s3_resume = (prev_sleep_state == 3); else printk(BIOS_DEBUG, "Romstage handoff structure not added!/n"); if (CONFIG_LPC_TPM) { init_tpm(prev_sleep_state == 3); }}
开发者ID:bitpick,项目名称:coreboot,代码行数:35,
示例3: fsp_notifyvoid fsp_notify(u32 phase){ FSP_NOTIFY_PHASE notify_phase_proc; NOTIFY_PHASE_PARAMS notify_phase_params; EFI_STATUS status; FSP_INFO_HEADER *fsp_header_ptr; fsp_header_ptr = fsp_get_fih(); if (fsp_header_ptr == NULL) { fsp_header_ptr = (void *)find_fsp(CONFIG_FSP_LOC); if ((u32)fsp_header_ptr < 0xff) { /* output something in case there is no serial */ post_code(0x4F); die("Can't find the FSP!/n"); } } /* call FSP PEI to Notify PostPciEnumeration */ notify_phase_proc = (FSP_NOTIFY_PHASE)(fsp_header_ptr->ImageBase + fsp_header_ptr->NotifyPhaseEntryOffset); notify_phase_params.Phase = phase; timestamp_add_now(phase == EnumInitPhaseReadyToBoot ? TS_FSP_BEFORE_FINALIZE : TS_FSP_BEFORE_ENUMERATE); status = notify_phase_proc(¬ify_phase_params); timestamp_add_now(phase == EnumInitPhaseReadyToBoot ? TS_FSP_AFTER_FINALIZE : TS_FSP_AFTER_ENUMERATE); if (status != 0) printk(BIOS_ERR, "FSP API NotifyPhase failed for phase 0x%x with status: 0x%x/n", phase, status);}
开发者ID:asuradaimao,项目名称:coreboot,代码行数:34,
示例4: do_fsp_memory_initstatic void do_fsp_memory_init(struct fsp_header *hdr, bool s3wake, const struct memranges *memmap){ uint32_t status; fsp_memory_init_fn fsp_raminit; FSPM_UPD fspm_upd, *upd; FSPM_ARCH_UPD *arch_upd; uint32_t fsp_version; post_code(POST_MEM_PREINIT_PREP_START); fsp_version = fsp_memory_settings_version(hdr); upd = (FSPM_UPD *)(hdr->cfg_region_offset + hdr->image_base); if (upd->FspUpdHeader.Signature != FSPM_UPD_SIGNATURE) die("Invalid FSPM signature!/n"); /* Copy the default values from the UPD area */ memcpy(&fspm_upd, upd, sizeof(fspm_upd)); arch_upd = &fspm_upd.FspmArchUpd; /* Reserve enough memory under TOLUD to save CBMEM header */ arch_upd->BootLoaderTolumSize = cbmem_overhead_size(); /* Fill common settings on behalf of chipset. */ if (fsp_fill_common_arch_params(arch_upd, s3wake, fsp_version, memmap) != CB_SUCCESS) die("FSPM_ARCH_UPD not found!/n"); /* Give SoC and mainboard a chance to update the UPD */ platform_fsp_memory_init_params_cb(&fspm_upd, fsp_version); if (CONFIG(MMA)) setup_mma(&fspm_upd.FspmConfig); post_code(POST_MEM_PREINIT_PREP_END); /* Call FspMemoryInit */ fsp_raminit = (void *)(hdr->image_base + hdr->memory_init_entry_offset); fsp_debug_before_memory_init(fsp_raminit, upd, &fspm_upd); post_code(POST_FSP_MEMORY_INIT); timestamp_add_now(TS_FSP_MEMORY_INIT_START); status = fsp_raminit(&fspm_upd, fsp_get_hob_list_ptr()); post_code(POST_FSP_MEMORY_EXIT); timestamp_add_now(TS_FSP_MEMORY_INIT_END); fsp_debug_after_memory_init(status); /* Handle any errors returned by FspMemoryInit */ fsp_handle_reset(status); if (status != FSP_SUCCESS) { printk(BIOS_CRIT, "FspMemoryInit returned 0x%08x/n", status); die("FspMemoryInit returned an error!/n"); } do_fsp_post_memory_init(s3wake, fsp_version);}
开发者ID:canistation,项目名称:coreboot,代码行数:60,
示例5: FspNotifyvoid FspNotify (u32 Phase){ FSP_NOTFY_PHASE NotifyPhaseProc; NOTIFY_PHASE_PARAMS NotifyPhaseParams; EFI_STATUS Status; if (fsp_header_ptr == NULL) { fsp_header_ptr = (void *)find_fsp(); if ((u32)fsp_header_ptr < 0xff) { post_code(0x4F); /* output something in case there is no serial */ die("Can't find the FSP!/n"); } } /* call FSP PEI to Notify PostPciEnumeration */ NotifyPhaseProc = (FSP_NOTFY_PHASE)(fsp_header_ptr->ImageBase + fsp_header_ptr->NotifyPhaseEntry); NotifyPhaseParams.Phase = Phase; timestamp_add_now(Phase == EnumInitPhaseReadyToBoot ? TS_FSP_BEFORE_FINALIZE : TS_FSP_BEFORE_ENUMERATE); Status = NotifyPhaseProc (&NotifyPhaseParams); timestamp_add_now(Phase == EnumInitPhaseReadyToBoot ? TS_FSP_AFTER_FINALIZE : TS_FSP_AFTER_ENUMERATE); if (Status != 0) printk(BIOS_ERR,"FSP API NotifyPhase failed for phase 0x%x with status: 0x%x/n", Phase, Status);}
开发者ID:lkundrak,项目名称:coreboot,代码行数:30,
示例6: do_silicon_initstatic enum fsp_status do_silicon_init(struct fsp_header *hdr){ struct FSPS_UPD upd, *supd; fsp_silicon_init_fn silicon_init; enum fsp_status status; supd = (struct FSPS_UPD *) (hdr->cfg_region_offset + hdr->image_base); if (supd->FspUpdHeader.Signature != FSPS_UPD_SIGNATURE) { printk(BIOS_ERR, "Invalid FSPS signature/n"); return FSP_INCOMPATIBLE_VERSION; } memcpy(&upd, supd, sizeof(upd)); /* Give SoC/mainboard a chance to populate entries */ platform_fsp_silicon_init_params_cb(&upd); timestamp_add_now(TS_FSP_SILICON_INIT_START); post_code(POST_FSP_SILICON_INIT); silicon_init = (void *) (hdr->image_base + hdr->silicon_init_entry_offset); status = silicon_init(&upd); timestamp_add_now(TS_FSP_SILICON_INIT_END); post_code(POST_FSP_SILICON_INIT); printk(BIOS_DEBUG, "FspSiliconInit returned 0x%08x/n", status); return status;}
开发者ID:AdriDlu,项目名称:coreboot,代码行数:29,
示例7: run_ramstagevoid run_ramstage(void){ struct prog ramstage = PROG_INIT(ASSET_RAMSTAGE, CONFIG_CBFS_PREFIX "/ramstage"); /* Only x86 systems currently take the same firmware path on resume. */ if (IS_ENABLED(CONFIG_ARCH_X86) && IS_ENABLED(CONFIG_EARLY_CBMEM_INIT)) run_ramstage_from_resume(romstage_handoff_find_or_add(), &ramstage); if (prog_locate(&ramstage)) goto fail; timestamp_add_now(TS_START_COPYRAM); if (IS_ENABLED(CONFIG_RELOCATABLE_RAMSTAGE)) { if (load_relocatable_ramstage(&ramstage)) goto fail; } else if (cbfs_prog_stage_load(&ramstage)) goto fail; stage_cache_add(STAGE_RAMSTAGE, &ramstage); timestamp_add_now(TS_END_COPYRAM); prog_run(&ramstage);fail: die("Ramstage was not loaded!/n");}
开发者ID:bitpick,项目名称:coreboot,代码行数:30,
示例8: fsp_run_silicon_initstatic void fsp_run_silicon_init(int is_s3_wakeup){ FSP_INFO_HEADER *fsp_info_header; FSP_SILICON_INIT fsp_silicon_init; SILICON_INIT_UPD *original_params; SILICON_INIT_UPD silicon_init_params; EFI_STATUS status; UPD_DATA_REGION *upd_ptr; VPD_DATA_REGION *vpd_ptr; /* Find the FSP image */ fsp_info_header = fsp_get_fih(); if (fsp_info_header == NULL) { printk(BIOS_ERR, "FSP_INFO_HEADER not set!/n"); return; } print_fsp_info(fsp_info_header); /* Initialize the UPD values */ vpd_ptr = (VPD_DATA_REGION *)(fsp_info_header->CfgRegionOffset + fsp_info_header->ImageBase); printk(BIOS_DEBUG, "0x%p: VPD Data/n", vpd_ptr); upd_ptr = (UPD_DATA_REGION *)(vpd_ptr->PcdUpdRegionOffset + fsp_info_header->ImageBase); printk(BIOS_DEBUG, "0x%p: UPD Data/n", upd_ptr); original_params = (void *)((u8 *)upd_ptr + upd_ptr->SiliconInitUpdOffset); memcpy(&silicon_init_params, original_params, sizeof(silicon_init_params)); soc_silicon_init_params(&silicon_init_params); /* Locate VBT and pass to FSP GOP */ if (IS_ENABLED(CONFIG_GOP_SUPPORT)) load_vbt(is_s3_wakeup, &silicon_init_params); mainboard_silicon_init_params(&silicon_init_params); /* Display the UPD data */ if (IS_ENABLED(CONFIG_DISPLAY_UPD_DATA)) soc_display_silicon_init_params(original_params, &silicon_init_params); /* Perform silicon initialization after RAM is configured */ printk(BIOS_DEBUG, "Calling FspSiliconInit/n"); fsp_silicon_init = (FSP_SILICON_INIT)(fsp_info_header->ImageBase + fsp_info_header->FspSiliconInitEntryOffset); timestamp_add_now(TS_FSP_SILICON_INIT_START); printk(BIOS_DEBUG, "Calling FspSiliconInit(0x%p) at 0x%p/n", &silicon_init_params, fsp_silicon_init); status = fsp_silicon_init(&silicon_init_params); timestamp_add_now(TS_FSP_SILICON_INIT_END); printk(BIOS_DEBUG, "FspSiliconInit returned 0x%08x/n", status); display_hob_info(fsp_info_header); soc_after_silicon_init();}
开发者ID:RafaelRMachado,项目名称:Coreboot,代码行数:55,
示例9: extract/** * Extract a node to given regions. * Returns true on error, false on success. */static bool extract(struct region *region, struct fit_image_node *node){ void *dst = (void *)region->offset; const char *comp_name; size_t true_size = 0; switch (node->compression) { case CBFS_COMPRESS_NONE: comp_name = "Relocating uncompressed"; break; case CBFS_COMPRESS_LZMA: comp_name = "Decompressing LZMA"; break; case CBFS_COMPRESS_LZ4: comp_name = "Decompressing LZ4"; break; default: printk(BIOS_ERR, "ERROR: Unsupported compression/n"); return true; } printk(BIOS_INFO, "FIT: %s %s to %p/n", comp_name, node->name, dst); switch (node->compression) { case CBFS_COMPRESS_NONE: memcpy(dst, node->data, node->size); true_size = node->size; break; case CBFS_COMPRESS_LZMA: timestamp_add_now(TS_START_ULZMA); true_size = ulzman(node->data, node->size, dst, region->size); timestamp_add_now(TS_END_ULZMA); break; case CBFS_COMPRESS_LZ4: timestamp_add_now(TS_START_ULZ4F); true_size = ulz4fn(node->data, node->size, dst, region->size); timestamp_add_now(TS_END_ULZ4F); break; default: return true; } if (!true_size) { printk(BIOS_ERR, "ERROR: %s node failed!/n", comp_name); return true; } prog_segment_loaded(region->offset, true_size, 0); return false;}
开发者ID:canistation,项目名称:coreboot,代码行数:55,
示例10: post_codeasmlinkage void *romstage_main(FSP_INFO_HEADER *fih){ void *top_of_stack; struct pei_data pei_data; struct romstage_params params = { .pei_data = &pei_data, .chipset_context = fih, }; post_code(0x30); timestamp_add_now(TS_START_ROMSTAGE); /* Load microcode before RAM init */ if (IS_ENABLED(CONFIG_SUPPORT_CPU_UCODE_IN_CBFS)) intel_update_microcode_from_cbfs(); memset(&pei_data, 0, sizeof(pei_data)); /* Display parameters */ printk(BIOS_SPEW, "CONFIG_MMCONF_BASE_ADDRESS: 0x%08x/n", CONFIG_MMCONF_BASE_ADDRESS); printk(BIOS_INFO, "Using FSP 1.1/n"); /* Display FSP banner */ print_fsp_info(fih); /* Stash FSP version. */ params.fsp_version = fsp_version(fih); /* Get power state */ params.power_state = fill_power_state(); /* * Read and print board version. Done after SOC romstage * in case PCH needs to be configured to talk to the EC. */ if (IS_ENABLED(CONFIG_BOARD_ID_AUTO)) printk(BIOS_INFO, "MLB: board version %d/n", board_id()); /* Call into mainboard. */ mainboard_romstage_entry(¶ms); soc_after_ram_init(¶ms); post_code(0x38); top_of_stack = setup_stack_and_mtrrs(); printk(BIOS_DEBUG, "Calling FspTempRamExit API/n"); timestamp_add_now(TS_FSP_TEMP_RAM_EXIT_START); return top_of_stack;}
开发者ID:af00,项目名称:coreboot,代码行数:51,
示例11: load_ramstagestatic voidload_ramstage(const struct prog_loader_ops *ops, struct romstage_handoff *handoff, struct prog *ramstage){ timestamp_add_now(TS_START_COPYRAM); if (ops->prepare(ramstage)) return; cache_loaded_ramstage(handoff, ramstage); timestamp_add_now(TS_END_COPYRAM); prog_run(ramstage);}
开发者ID:tidatida,项目名称:coreboot,代码行数:15,
示例12: acpi_jump_to_wakeupstatic void acpi_jump_to_wakeup(void *vector){ uintptr_t source = 0, target = 0; size_t size = 0; if (!acpi_s3_resume_allowed()) { printk(BIOS_WARNING, "ACPI: S3 resume not allowed./n"); return; } if (!CONFIG(RELOCATABLE_RAMSTAGE)) { struct resume_backup *backup_mem = cbmem_find(CBMEM_ID_RESUME); if (backup_mem && backup_mem->valid) { backup_mem->valid = 0; target = backup_mem->lowmem; source = backup_mem->cbmem; size = backup_mem->size; } else { printk(BIOS_WARNING, "ACPI: Backup memory missing. " "No S3 resume./n"); return; } } /* Copy wakeup trampoline in place. */ memcpy((void *)WAKEUP_BASE, &__wakeup, __wakeup_size); set_boot_successful(); timestamp_add_now(TS_ACPI_WAKE_JUMP); acpi_do_wakeup((uintptr_t)vector, source, target, size);}
开发者ID:canistation,项目名称:coreboot,代码行数:33,
示例13: perform_raminitvoid perform_raminit(int s3resume){ int cbmem_was_initted; struct pei_data pei_data; /* Prepare USB controller early in S3 resume */ if (!mainboard_should_reset_usb(s3resume)) enable_usb_bar(); mainboard_fill_pei_data(&pei_data); post_code(0x3a); pei_data.boot_mode = s3resume ? 2 : 0; timestamp_add_now(TS_BEFORE_INITRAM); sdram_initialize(&pei_data); cbmem_was_initted = !cbmem_recovery(s3resume); if (!s3resume) save_mrc_data(&pei_data); if (s3resume && !cbmem_was_initted) { /* Failed S3 resume, reset to come up cleanly */ outb(0x6, 0xcf9); halt(); }}
开发者ID:af00,项目名称:coreboot,代码行数:25,
示例14: acpi_jump_to_wakeupvoid acpi_jump_to_wakeup(void *vector){ u32 acpi_backup_memory = 0; if (HIGH_MEMORY_SAVE && acpi_s3_resume_allowed()) { acpi_backup_memory = (u32)cbmem_find(CBMEM_ID_RESUME); if (!acpi_backup_memory) { printk(BIOS_WARNING, "ACPI: Backup memory missing. " "No S3 resume./n"); return; } }#if CONFIG_SMP // FIXME: This should go into the ACPI backup memory, too. No pork sausages. /* * Just restore the SMP trampoline and continue with wakeup on * assembly level. */ memcpy(lowmem_backup_ptr, lowmem_backup, lowmem_backup_size);#endif /* Copy wakeup trampoline in place. */ memcpy((void *)WAKEUP_BASE, &__wakeup, __wakeup_size);#if CONFIG_COLLECT_TIMESTAMPS timestamp_add_now(TS_ACPI_WAKE_JUMP);#endif acpi_do_wakeup((u32)vector, acpi_backup_memory, CONFIG_RAMBASE, HIGH_MEMORY_SAVE);}
开发者ID:looser--,项目名称:coreboot,代码行数:33,
示例15: romstage_initvoid romstage_init(void){ void *entry; #if CONFIG_COLLECT_TIMESTAMPS uint64_t start_romstage_time; uint64_t before_dram_time; uint64_t after_dram_time; uint64_t base_time = timestamp_get(); start_romstage_time = timestamp_get();#endif rkclk_set_pll(); console_init();#if CONFIG_COLLECT_TIMESTAMPS before_dram_time = timestamp_get();#endif dram_main();#if CONFIG_COLLECT_TIMESTAMPS after_dram_time = timestamp_get();#endif udelay(100); cbmem_initialize_empty();#if CONFIG_COLLECT_TIMESTAMPS timestamp_init(base_time); timestamp_add(TS_START_ROMSTAGE, start_romstage_time ); timestamp_add(TS_BEFORE_INITRAM, before_dram_time ); timestamp_add(TS_AFTER_INITRAM, after_dram_time );#endif entry = cbfs_load_stage(CBFS_DEFAULT_MEDIA, "fallback/coreboot_ram");#if CONFIG_COLLECT_TIMESTAMPS timestamp_add_now(TS_END_ROMSTAGE);#endif stage_exit(entry);}
开发者ID:kleopatra999,项目名称:coreboot,代码行数:33,
示例16: VbExDiskGetInfoVbError_t VbExDiskGetInfo(VbDiskInfo **info_ptr, uint32_t *count, uint32_t disk_flags){ *count = 0; blockdev_type_t bd_type; ListNode *devs; if (disk_flags & VB_DISK_FLAG_FIXED) bd_type = BLOCKDEV_FIXED; else bd_type = BLOCKDEV_REMOVABLE; *count = get_all_bdevs(bd_type, &devs); // Only log for fixed disks to avoid spamming timestamps in recovery. if (disk_flags & VB_DISK_FLAG_FIXED) timestamp_add_now(TS_VB_STORAGE_INIT_DONE); // Allocate enough VbDiskInfo structures. VbDiskInfo *disk = NULL; if (*count) disk = xzalloc(sizeof(VbDiskInfo) * *count); *info_ptr = disk; // Fill them from the BlockDev structures. BlockDev *bdev; list_for_each(bdev, *devs, list_node) setup_vb_disk_info(disk++, bdev); return VBERROR_SUCCESS;}
开发者ID:coreboot,项目名称:depthcharge,代码行数:33,
示例17: after_cache_as_ramasmlinkage void after_cache_as_ram(void *chipset_context){ timestamp_add_now(TS_FSP_TEMP_RAM_EXIT_END); printk(BIOS_DEBUG, "FspTempRamExit returned successfully/n"); soc_display_mtrrs(); after_cache_as_ram_stage();}
开发者ID:AdriDlu,项目名称:coreboot,代码行数:8,
示例18: romstage_after_carvoid asmlinkage romstage_after_car(void){ timestamp_add_now(TS_END_ROMSTAGE); /* Load the ramstage. */ copy_and_run(); while (1);}
开发者ID:bitpick,项目名称:coreboot,代码行数:8,
示例19: romstagevoid romstage(void){ timestamp_add_now(TS_START_ROMSTAGE); console_init(); exception_init(); printk(BIOS_INFO, "T132: romstage here/n");#if CONFIG_BOOTROM_SDRAM_INIT printk(BIOS_INFO, "T132 romstage: SDRAM init done by BootROM, RAMCODE = %d/n", sdram_get_ram_code());#else sdram_init(get_sdram_config()); printk(BIOS_INFO, "T132 romstage: sdram_init done/n");#endif timestamp_add_now(TS_AFTER_INITRAM); /* * Trust Zone needs to be initialized after the DRAM initialization * because carveout registers are programmed during DRAM init. * cbmem_initialize() is dependent on the Trust Zone region * initalization because CBMEM lives right below the Trust Zone which * needs to be properly identified. */ trustzone_region_init(); /* * When romstage is running it's always on the reboot path -- never a * resume path where cbmem recovery is required. Therefore, always * initialize the cbmem area to be empty. */ cbmem_initialize_empty(); ccplex_cpu_prepare(); printk(BIOS_INFO, "T132 romstage: cpu prepare done/n"); ccplex_load_mts(); printk(BIOS_INFO, "T132 romstage: MTS loading done/n"); romstage_mainboard_init(); run_ramstage();}
开发者ID:AdriDlu,项目名称:coreboot,代码行数:45,
示例20: bs_dev_resourcesstatic boot_state_t bs_dev_resources(void *arg){ timestamp_add_now(TS_DEVICE_CONFIGURE); /* Now compute and assign the bus resources. */ dev_configure(); return BS_DEV_ENABLE;}
开发者ID:mytbk,项目名称:coreboot,代码行数:9,
示例21: bs_dev_enablestatic boot_state_t bs_dev_enable(void *arg){ timestamp_add_now(TS_DEVICE_ENABLE); /* Now actually enable devices on the bus */ dev_enable(); return BS_DEV_INIT;}
开发者ID:mytbk,项目名称:coreboot,代码行数:9,
示例22: bs_dev_initstatic boot_state_t bs_dev_init(void *arg){ timestamp_add_now(TS_DEVICE_INITIALIZE); /* And of course initialize devices on the bus */ dev_initialize(); return BS_POST_DEVICE;}
开发者ID:mytbk,项目名称:coreboot,代码行数:9,
示例23: bs_dev_init_chipsstatic boot_state_t bs_dev_init_chips(void *arg){ timestamp_add_now(TS_DEVICE_ENUMERATE); /* Initialize chips early, they might disable unused devices. */ dev_initialize_chips(); return BS_DEV_ENUMERATE;}
开发者ID:mytbk,项目名称:coreboot,代码行数:9,
示例24: bs_post_devicestatic boot_state_t bs_post_device(void *arg){ dev_finalize(); timestamp_add_now(TS_DEVICE_DONE); timestamp_reinit(); return BS_OS_RESUME_CHECK;}
开发者ID:mytbk,项目名称:coreboot,代码行数:9,
示例25: romstage_main_continue/******************************************************************************* * The FSP early_init function returns to this function. * Memory is setup and the stack is set by the FSP. */void romstage_main_continue(EFI_STATUS status, void *hob_list_ptr) { int cbmem_was_initted; void *cbmem_hob_ptr; uint32_t prev_sleep_state; struct romstage_handoff *handoff; timestamp_add_now(TS_AFTER_INITRAM); post_code(0x4a); printk(BIOS_DEBUG, "%s status: %x hob_list_ptr: %x/n", __func__, (u32) status, (u32) hob_list_ptr);#if IS_ENABLED(CONFIG_USBDEBUG_IN_ROMSTAGE) /* FSP reconfigures USB, so reinit it to have debug */ usbdebug_init();#endif /* IS_ENABLED(CONFIG_USBDEBUG_IN_ROMSTAGE) */ printk(BIOS_DEBUG, "FSP Status: 0x%0x/n", (u32)status); /* Get previous sleep state again and clear */ prev_sleep_state = chipset_prev_sleep_state(1); printk(BIOS_DEBUG, "%s: prev_sleep_state = S%d/n", __func__, prev_sleep_state); report_platform_info(); post_code(0x4b); late_mainboard_romstage_entry(); post_code(0x4c); /* if S3 resume skip ram check */ if (prev_sleep_state != 3) { quick_ram_check(); post_code(0x4d); } cbmem_was_initted = !cbmem_recovery(prev_sleep_state == 3); /* Save the HOB pointer in CBMEM to be used in ramstage*/ cbmem_hob_ptr = cbmem_add (CBMEM_ID_HOB_POINTER, sizeof(*hob_list_ptr)); *(u32*)cbmem_hob_ptr = (u32)hob_list_ptr; post_code(0x4e); handoff = romstage_handoff_find_or_add(); if (handoff != NULL) handoff->s3_resume = (prev_sleep_state == 3); else printk(BIOS_DEBUG, "Romstage handoff structure not added!/n"); post_code(0x4f); /* Load the ramstage. */ copy_and_run(); while (1);}
开发者ID:RafaelRMachado,项目名称:Coreboot,代码行数:59,
注:本文中的timestamp_add_now函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ timestamp_elapsed函数代码示例 C++ timestamp函数代码示例 |