Has anyone tried Plan 9 on the new Pi 3B+? I've
run into something that confuses me a bit. First,
it seems you need the new version of start_cd.elf
to bring up the 3B+. However, with that, the kernel
throws a lock loop error. In tracking down the loop,
it happens in startcpus() in archbcm2.c. The code
here looks like:
for(i = 0; i < ncpu; i++)
lock(&startlock[i]);
cachedwbse(startlock, sizeof startlock);
for(i = 1; i < ncpu; i++) {
if(startcpu(i) < 0)
return i;
lock(&startlock[i]);
unlock(&startlock[i]);
}
So we grab a lock on all the CPUs, then drop into
a second loop where we start CPUs 1 to n. But
in that loop we grab the lock again and then
immediately unlock it. This is where the lock
loop happens. Everything seems to continue
to be happy on both a 2 and a 3B+ if I comment
out the lock in the second loop. But what is the
rationale for the lock in the second loop? Was
there a reason for putting it there, or was it an
oversight that wasn't exposed until the new boot
code?
Thanks,
BLS