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]