Dear all,

The Acer Aspire F5-573G is a low-cost laptop of the Kabylake-U platform
with 6th gen i7-7500U CPU and Intel IGD 620. Stock it comes with an 
Insidesys H2O BIOS on a Macronix 64Mbit flash, which can be programmed
in place with lastest flashrom.

While low-cost in many aspects (including a really cheap display), one 
of the things I really like about the laptop is it's spectacular 
low power-consumption. It can idle at around 4.2W in a desktop
environment with Wifi enabled and display at indoor brightness and go
down to 2.3W at minimum brightness with Wifi disabled.

I have made initial attempts to run the latest coreboot instead of the
vendor bios, and based my attempts on similar Kabylake platforms.

This is how far I got:

|  coreboot-4.14-1637-g51d0be751c-test6 Sat Sep  4 05:41:24 UTC 2021 romstage 
starting (log level: 8)...
|  pm1_sts: 0100 pm1_en: 0000 pm1_cnt: 00001c00
|  gpe0_sts[0]: 00000000 gpe0_en[0]: 00000000
|  gpe0_sts[1]: 00000000 gpe0_en[1]: 00000000
|  gpe0_sts[2]: 00000000 gpe0_en[2]: 00000000
|  gpe0_sts[3]: 00000000 gpe0_en[3]: 00000000
|  TCO_STS:   0000 0000
|  GEN_PMCON: d0040000 0000700a
|  GBLRST_CAUSE: 00000000 00000000
|  prev_sleep_state 5
|  FMAP: area COREBOOT found @ 630200 (1900032 bytes)
|  CBFS: Found 'fspm.bin' @0x9adc0 size 0x63000 in mcache @0xfef05080
|  FMAP: area RW_MRC_CACHE found @ 620000 (65536 bytes)
|  MRC: no data in 'RW_MRC_CACHE'
|  bootmode is set to: 0
|  SPD @ 0x52
|  SPD: module type is DDR4
|  SPD: module part number is 
|  SPD: banks 8, ranks 1, rows 16, columns 10, density 8192 Mb
|  SPD: device width 16 bits, bus width 64 bits
|  SPD: module size is 4096 MB (per channel)
|  FspMemoryInit returned 0x80000007
|  FspMemoryInit returned an error!
|  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Here is romstage.c which I mostly copied from similar platforms and changed
the I2C address of the SPD:

|  void mainboard_memory_init_params(FSPM_UPD *mupd)
|  {
|          const u16 rcomp_resistors[3] = { 121, 81, 100 };
|  
|          const u16 rcomp_targets[5] = { 100, 40, 20, 20, 26 };
|  
|          FSP_M_CONFIG *mem_cfg = &mupd->FspmConfig;
|  
|          struct spd_block blk = {
|                  .addr_map = { 0x52 }
|          };
|  
|          assert(sizeof(mem_cfg->RcompResistor) == sizeof(rcomp_resistors));
|          assert(sizeof(mem_cfg->RcompTarget)   == sizeof(rcomp_targets));
|  
|          get_spd_smbus(&blk);
|          dump_spd_info(&blk);
|          assert(blk.spd_array[0][0] != 0);
|  
|          memcpy(mem_cfg->RcompResistor, rcomp_resistors, 
sizeof(mem_cfg->RcompResistor));
|          memcpy(mem_cfg->RcompTarget,   rcomp_targets,   
sizeof(mem_cfg->RcompTarget));
|  
|          mem_cfg->DqPinsInterleaved = TRUE;
|          mem_cfg->MemorySpdDataLen = blk.len;
|          mem_cfg->MemorySpdPtr00 = (uintptr_t) blk.spd_array[0];
|  }

The DIMM is an A-DATA AM1P24HC4U1-B9RS.

What could be the reason for the 0x80000007 (EFI_ERROR ?) return from
FspMemoryInit()? If any other parameters are missing, how do you go to
extract them from the vendor bios?

Andreas
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to