Date: Tue, 15 Oct 2019 14:55:08 +0200 From: =?utf-8?Q?S=C3=B8ren_Schmidt?= <soren.schmidt@gmail.com> To: Emmanuel Vadot <manu@bidouilliste.com> Cc: freebsd-arm <freebsd-arm@freebsd.org> Subject: Re: Trouble starting AP cpu's on all winner R40/V40 chip, help needed? Message-ID: <07E4329F-3DFD-49FB-A3BC-A63790DCC798@gmail.com> In-Reply-To: <C3E6AB41-30DA-4BB7-A6E8-533D536413E2@gmail.com> References: <0AE907CC-0CBC-4A8A-A2D3-71EF37330503@gmail.com> <20191015140210.82d406d7a7b86720e4771206@bidouilliste.com> <C3E6AB41-30DA-4BB7-A6E8-533D536413E2@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> On 15 Oct 2019, at 14.27, S=C3=B8ren Schmidt <soren.schmidt@gmail.com> = wrote: >=20 > Hi Manu >=20 >>=20 >>> Hi all >>>=20 >>> I found some time to wrestle the allwinner R40/v40 I?ve sitting = around, but I?m bashing my head against getting the AP?s booted = properly. >>>=20 >>> I don?t seem to be able to get the CPU to run at all, or (more = likely) I don?t have a way to get them startet at ?mpentry? to get them = going correctly. >>>=20 >>> I?m not sure I understand how those AP?s gets their starting = address, the only reference to ?mpentry? is aw_mp.c: >>>=20 >>>=20 >>> bus_space_write_4(fdtbus_bs_tag, cpucfg, CPUCFG_P_REG0, >>> pmap_kextract((vm_offset_t)mpentry)); >>>=20 >>> This is used on all all winner cpu?s (more or less) but according = til the R40/v40 docs that register doesn?t exist which would explain the = failure? >=20 >>=20 >> R40 seems to use different registers for cpu bringup, so you will = need >> to define a new platform for it in aw_machdep.c and defines some new >> function for ap bringup in aw_mp.c >> The User Manual section 3.2 of the R40 have all the needed info. >>=20 >=20 > Yeps, already did that, and I can reset the cores etc, that seems to = work (register bits flips), but there are no mention of regs to put the = starting address into. >=20 > Chap 3.2 doesn=E2=80=99t mention anything in that regard (at least in = the docs I=E2=80=99ve found online) its moved to chap 4.2 in the latest = R40/V40/T3 docs I=E2=80=99ve found bu still no mention of starting = address. >=20 > I looks somewhat like the A20 ie it has control for 2 cpu=E2=80=99s = the last two are missing from the register ref, which suggests to me = that the docs might be inaccurate at best. >=20 > I looked into =E2=80=9CTina-linux=E2=80=9D that they made for it, but = I havn=E2=80=99t found out how they start it there either.. >=20 > I might also just have stared me blind at it :) Found that the start adresse is somewhere else: CPU software entry register offset 00bc in sysctl instead of cpuctl=E2=80=A6= I=E2=80=99ll try that when I get home later today,,, -S=C3=B8ren=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?07E4329F-3DFD-49FB-A3BC-A63790DCC798>