Read Spd Begin... The memory on CH :1 are different! N: pre svc call fun = 0xc2000f04 -- pm-1 = 0, pm-2 = 29819750, pm-3 = 0 N: ddr fun = 0x0 -- pm = 0x29819750, pm2 = 0x0 N: parameter mcu: v0.5 Mcu Start Work ... get_clocks_value: scpi send command start: 0x10 scpi send command success get clocks = 533 MHZ pll_scp_num = 8 Lmu Freq = 1066Mhz ch = 0 parameter set ch closed! DIMM Don't Probed! ch = 1 the dimm info is from uboot... Dimm_Capacity = 8GB Mcu Channel 1 AES configuration begin... AES bypass end... TZC configuration begin... TZC bypass end... use_0x14 == 0xb0100 ctl_cfg_begin...... pi_cfg_begin...... phy_cfg_begin...... fast mode caslat = 15 wrlat = 14 tinit = 856000 r2r_diffcs_dly = 4 r2w_diffcs_dly = 5 w2r_diffcs_dly = 3 w2w_diffcs_dly = 7 r2w_samecs_dly = 4 w2r_samecs_dly = 0 r2r_samecs_dly = 0 w2w_samecs_dly = 0 ch 1 adapter_alg -- 0-0-0-0-0-0-0 rtt_wr = dis rtt_park = 80ohm ron = 34ohm val_cpudrv = 34 rtt_nom = 48ohm val_cpuodt = 48 vref_dev = 10 vrefsel = 0x45 dq_oe_timing = 0x42 rank_num_decode = 1 set phy_indep_init_mode set pi_dram_init_en set_pi_start & ctl_start...... wait init complete...... init complete done...... wait complete done...... rddqs_lat = 0x2 tdfi_phy_rdlat = 0x1f begin software ntp training... rank_num: 0 phy_write_path_lat_add =-1-1-1-1-1-1-1-1-1 phy_write_path_lat_add = 0 0 0 0 0 0 0 0 0 phy_write_path_lat_add = 1 1 1 1 1 1 1 1 1 phy_write_path_lat_add = 2 2 2 2 2 2 2 2 2 phy_write_path_lat_add = 3 3 3 3 3 3 3 3 3 phy_write_path_lat_add = 4 4 4 4 4 4 4 4 4 rank 0 wdqlvl! r2r_diffcs_dly = 4 r2w_diffcs_dly = 7 w2r_diffcs_dly = 4 w2w_diffcs_dly = 6 r2w_samecs_dly = 5 rank 0 ch 1 training fail
时间: 2024-04-28 19:23:37 浏览: 283
根据您提供的信息,似乎是内存训练过程中出现了错误。错误信息中指出了CH1内存信息不同的问题,以及训练过程中的一些参数和配置。其中,"Mcu Channel 1 AES configuration begin... AES bypass end... TZC configuration begin... TZC bypass end... use_0x14 == 0xb0100 ctl_cfg_begin"等信息表示内存控制器的一些配置和初始化过程。而"rank 0 wdqlvl! r2r_diffcs_dly = 4 r2w_diffcs_dly = 7 w2r_diffcs_dly = 4 w2w_diffcs_dly = 6 r2w_samecs_dly = 5 rank 0 ch 1 training fail"则表示在对CH1的rank0进行写数据时出现了训练失败的情况。
具体的原因可能需要进一步分析,可能与内存硬件、时序参数、内存控制器等方面有关。建议您尝试重新启动或重新插拔内存模块,并检查是否有硬件故障或不良连接的情况。同时,您也可以检查内存访问时序参数和内存控制器的配置是否正确。如果问题仍然存在,建议您查看更详细的错误信息或寻求专业的技术支持。
相关问题
CH 1 : dimm info from spd, read spd... Read Spd Begin... Check Dram Type ... Parse SPD Data ... tAAmin = 13750ps tRCDmin = 13750ps tRPmin = 13750ps tRASmin = 32000ps tRCmin = 45750ps tFAWmin = 21000ps tRRD_Smin = 3300ps tRRD_Lmin = 4900ps tCCD_Lmin = 5000ps tWRmin = 15000ps tWTR_Smin = 2500ps tWTR_Lmin = 7500ps Dimm_Capacity = 8GB DDR4 RDIMM/4 Bank Groups/4 Banks/Column 10/Row 16/X8/1 Rank/ECC/Standard Unknown=0x86f1/Dram:Samsung/Serial:0x34
根据您提供的信息,这部分是内存模块的SPD信息,包括了各种时序参数和容量信息。其中,tAAmin、tRCDmin、tRPmin、tRASmin、tRCmin、tFAWmin、tRRD_Smin、tRRD_Lmin、tCCD_Lmin、tWRmin、tWTR_Smin和tWTR_Lmin这些参数是内存访问时的时序参数,用于指导内存控制器的读写操作。而Dimm_Capacity表示这个内存模块的容量为8GB,DDR4表示为DDR4内存,RDIMM/4 Bank Groups/4 Banks/Column 10/Row 16/X8/1 Rank/ECC/Standard Unknown=0x86f1/Dram:Samsung/Serial:0x34则表示内存的具体规格和厂商信息。
/usr/include/spdlog/logger.h:90:9: required from ‘void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, fmt::v8::format_string<T ...>, Args&& ...) [with Args = {cv::Rect_<int>&}; fmt::v8::format_string<T ...> = fmt::v8::basic_format_string<char, cv::Rect_<int>&>]’
这个错误提示出现在 `spdlog` 库的 `logger.h` 文件中,它表示在使用 `spdlog` 记录日志时,传递了一个 `cv::Rect_<int>&` 类型的参数,这个类型无法被格式化输出。具体来说,`fmt` 库不知道如何将这个类型转换成字符串,所以编译器报错了。
为了解决这个问题,你需要为 `cv::Rect_<int>&` 类型提供一个格式化器,告诉 `fmt` 库如何将它转换成字符串。具体的做法是,在你的代码中实现一个 `formatter<cv::Rect_<int>&>` 类型的类,然后在这个类中实现 `format` 函数,将 `cv::Rect_<int>&` 类型转换成字符串。然后将这个格式化器传递给 `spdlog::logger` 对象,让它在记录日志时使用这个格式化器。
下面是一个示例:
```c++
#include <fmt/format.h>
#include <spdlog/spdlog.h>
template <>
struct fmt::formatter<cv::Rect_<int>&> {
template <typename ParseContext>
constexpr auto parse(ParseContext& ctx) { return ctx.begin(); }
template <typename FormatContext>
auto format(const cv::Rect_<int>& rect, FormatContext& ctx) {
return fmt::format_to(ctx.out(), "{{ x:{}, y:{}, width:{}, height:{} }}", rect.x, rect.y, rect.width, rect.height);
}
};
int main() {
auto logger = spdlog::stdout_logger_mt("console");
cv::Rect_<int> rect(10, 20, 30, 40);
logger->info("Rect: {}", rect);
return 0;
}
```
在这个示例中,我们为 `cv::Rect_<int>&` 类型提供了一个格式化器 `formatter<cv::Rect_<int>&>`,然后在使用 `spdlog` 记录日志时,传递了一个 `cv::Rect_<int>&` 类型的参数,让它使用我们自己实现的格式化器输出日志。
阅读全文