Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Oct 2012 00:14:16 +0400
From:      Aleksey Fedorov <aleksey.v.fedorov@gmail.com>
To:        Rafal Jaworowski <raj@semihalf.com>
Cc:        freebsd-ppc@freebsd.org
Subject:   Re: FreeBSD on e500mc 36bit physical addressing
Message-ID:  <CABCAhMGYk7_F_qtkMqDENbkk=gexafLkr06sHn7WbBMfBe02QA@mail.gmail.com>
In-Reply-To: <764EEFAD-1730-466E-85C5-791A3A72BAD4@semihalf.com>
References:  <CABCAhMFSDay5CdFYn3sJJ3H9h-hTxa7hWN-Vuc4_y6ZFFEtB=w@mail.gmail.com> <39077F2D-B518-4EE4-ACE0-E8EB804E245B@semihalf.com> <CABCAhMFuTd8KmPjDNbvPnFWooS3AWZ_YYR2sWJVezPNHT6BboA@mail.gmail.com> <764EEFAD-1730-466E-85C5-791A3A72BAD4@semihalf.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi!

2012/9/27 Rafal Jaworowski <raj@semihalf.com>:
> We are supposed to be compatible with ePAPR spec of the device tree (so i=
s Linux), so no special handling is needed.
>
> Regarding the error it might be caused by the recent import of changes fo=
r ARM which affected FDT infrastructure code (http://svn.freebsd.org/change=
set/base/239268). We had a side conversation with Marcel regarding DSI pani=
c during localbus node processing, which seems similar to what you're seein=
g. Can you try some older code base (prior to r239268) to see if it shows t=
he same/related problem?
>
> Rafal
>

This changes in fdt_common.c help me to deal with "interrupt-parent":

-       if (OF_getprop(node, "interrupt-parent", &iph, sizeof(iph)) <=3D 0)=
 {
+       if (OF_searchprop(node, "interrupt-parent", &iph, sizeof(iph)) <=3D=
 0) {

Next waypoint is to bring up SMP APs. Now I have:

Adding CPU 0, pir=3D0, awake=3D1
Waking up CPU 1 (dev=3D1)
SMP: CPU 0 didn't wake up (trace code 0).
Waking up CPU 2 (dev=3D2)
SMP: CPU 0 didn't wake up (trace code 0).
Waking up CPU 3 (dev=3D3)
SMP: CPU 0 didn't wake up (trace code 0).
Waking up CPU 4 (dev=3D4)
SMP: CPU 0 didn't wake up (trace code 0).
Waking up CPU 5 (dev=3D5)
SMP: CPU 0 didn't wake up (trace code 0).
Waking up CPU 6 (dev=3D6)
SMP: CPU 0 didn't wake up (trace code 0).
Waking up CPU 7 (dev=3D7)
SMP: CPU 0 didn't wake up (trace code 0).
SMP: 8 CPUs found; 8 CPUs usable; 1 CPUs woken

What is the right way to bring up cores in FreeBSD? Using ePAPR
spinlocks or custom reset?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CABCAhMGYk7_F_qtkMqDENbkk=gexafLkr06sHn7WbBMfBe02QA>