Attention is currently required from: Furquan Shaikh, Subrata Banik, Nick Vaccaro, EricR Lai. Tim Wawrzynczak has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/51374 )
Change subject: soc/intel/common/../car: Calculate SF Mask#1 based on MSR 0xc87 ......................................................................
Patch Set 9:
(2 comments)
File src/soc/intel/common/block/cpu/car/cache_as_ram.S:
https://review.coreboot.org/c/coreboot/+/51374/comment/1c0b08df_96927244 PS9, Line 528: esi
doesn't `edi` holds the number of data ways here ?
Sorry, `esi` holds the non-eviction mask (say, 0b00000111), `edi` holds the total number of ways (say, 0xc).
I don't see data_ways (let's say 0x4) stored in any register here... does data_ways needs to be recalculated, e,g.? ``` /* eax (data_ways) = (data size) CONFIG_DCACHE_RAM_SIZE / way size (ecx) */ mov $CONFIG_DCACHE_RAM_SIZE, %eax div %ecx
/* backup data_ways to ebx */ mov eax, ebx
/* Get SFWayCnt */ mov $IA32_SF_QOS_INFO, %ecx rdmsr and $0x3f, %eax
/* eax = eax - ebx (SFWayCnt - data_ways) */ sub %ebx, %eax ... ```
https://review.coreboot.org/c/coreboot/+/51374/comment/7534b227_b3087852 PS9, Line 533: esi
doesn't `edi` holds the number of data ways here ?
with the above, `ebx` has data_ways backed up in it