For some reason, the console log that I attempted to attach did not seem to 
reach the list. I'll paste it here:

"coreboot-4.10-528-g809b7513a2-2.0-beta1 Mon Sep  2 20:08:20 UTC 2019 bootblock 
starting (log level: 7)...
CPU: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
CPU: ID 406e3, Skylake D0, ucode: 000000cb
CPU: AES supported, TXT NOT supported, VT supported
MCH: device id 1904 (rev 08) is Skylake-U
PCH: device id 9d48 (rev 21) is Skylake-U Premium
IGD: device id 1916 (rev 07) is Skylake ULT GT2
misccfg_mask:fff000ff misccfg_value:43200
CBFS: 'Master Header Locator' located CBFS at [270200:800000)
CBFS: Locating 'fallback/romstage'
CBFS: Found @ offset 80 size b3cc" (many null characters follow, but this is 
the end of the log)

I looked into FSP-T (TempRamInit on FSP 2.0) and apparently it does not support 
Skylake. That shouldn't be a problem, I've seen some laptops supported by 
coreboot using its 'common' cache-as-RAM, but it made me more certain that it's 
my romstage code at fault (FSP-T isn't needed, coreboot works on these laptops, 
etc).

I ended up investigating romstage.c + pei_data.c vs only romstage.c to discover 
that the former was deprecated and that ultimately, the code that I had been 
using for romstage.c with FSP 2.0 may have been a leftover from when I had been 
trying to use FSP 1.1. I'll paste a diff below in case it helps/anyone is 
interested.

"--- thenromstage.c     2019-09-18 15:18:13.165824532 +1000
+++ romstage.c  2019-09-17 19:26:56.417327000 +1000
@@ -16,12 +16,12 @@
  * GNU General Public License for more details.
  */
 
-#include <string.h>
 #include <assert.h>
 #include <soc/romstage.h>
 #include <spd_bin.h>
+#include <string.h>
 
-static void mainboard_fill_dq_map_data(void *dq_map_ch0, void *dq_map_ch1)
+static void mainboard_fill_dq_map_data(void *dq_map_ptr)
 {
        /* DQ byte map */
        const u8 dq_map[2][12] = {
@@ -29,18 +29,16 @@
                    0x0F, 0x00, 0xFF, 0x00, 0xFF, 0x00 },
                  { 0x33, 0xCC, 0x00, 0xCC, 0x33, 0xCC,
                    0x33, 0x00, 0xFF, 0x00, 0xFF, 0x00 } };
-       memcpy(dq_map_ch0, dq_map[0], sizeof(dq_map[0]));
-       memcpy(dq_map_ch1, dq_map[1], sizeof(dq_map[1]));
+       memcpy(dq_map_ptr, dq_map, sizeof(dq_map));
 }
 
-static void mainboard_fill_dqs_map_data(void *dqs_map_ch0, void *dqs_map_ch1)
+static void mainboard_fill_dqs_map_data(void *dqs_map_ptr)
 {
        /* DQS CPU<>DRAM map */
        const u8 dqs_map[2][8] = {
                { 0, 1, 3, 2, 4, 5, 6, 7 },
                { 1, 0, 4, 5, 2, 3, 6, 7 } };
-       memcpy(dqs_map_ch0, dqs_map[0], sizeof(dqs_map[0]));
-       memcpy(dqs_map_ch1, dqs_map[1], sizeof(dqs_map[1]));
+       memcpy(dqs_map_ptr, dqs_map, sizeof(dqs_map));
 }
 
 static void mainboard_fill_rcomp_res_data(void *rcomp_ptr)
@@ -70,10 +68,8 @@
        dump_spd_info(&blk);
        assert(blk.spd_array[0][0] != 0);
 
-       mainboard_fill_dq_map_data(&mem_cfg->DqByteMapCh0,
-                                  &mem_cfg->DqByteMapCh1);
-       mainboard_fill_dqs_map_data(&mem_cfg->DqsMapCpu2DramCh0,
-                                   &mem_cfg->DqsMapCpu2DramCh1);
+       mainboard_fill_dq_map_data(&mem_cfg->DqByteMapCh0);
+       mainboard_fill_dqs_map_data(&mem_cfg->DqsMapCpu2DramCh0);
        mainboard_fill_rcomp_res_data(&mem_cfg->RcompResistor);
        mainboard_fill_rcomp_strength_data(&mem_cfg->RcompTarget);
 "

While I unfortunately can't test anything for the moment because my Pi is out 
of commission, I'll reconfigure the devicetree based on values extracted from 
the OEM's BIOS and hope that this gets me a somewhat working port.
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to