Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Jun 2014 12:44:58 +0800
From:      Jia-Shiun Li <jiashiun@gmail.com>
To:        Michael Tuexen <tuexen@freebsd.org>, markm@freebsd.org, Ian Lepore <ian@freebsd.org>
Cc:        "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org>, Andreas Schwarz <freebsd.asc@strcmp.org>
Subject:   Re: FreeBSD doesn't boot anymore on RPi
Message-ID:  <CAHNYxxM9Yy0w0H9m3vMJ1ToeNkaW91%2B1unHVWqR1MG%2Bn1RsC3g@mail.gmail.com>
In-Reply-To: <A4EE9C49-DF7E-458F-9A69-C1B75FFA47CA@freebsd.org>
References:  <D8D9CAB0-A33C-45C5-AD17-E7C23F5309C8@fh-muenster.de> <44921fa0c7.323fafd0@mail.schwarzes.net> <A4EE9C49-DF7E-458F-9A69-C1B75FFA47CA@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 16, 2014 at 1:53 PM, Michael Tuexen <tuexen@freebsd.org> wrote:
> On 16 Jun 2014, at 03:04, Andreas Schwarz <freebsd.asc@strcmp.org> wrote:
>> On 21.05.14, Michael Tuexen wrote:
>>
>> Hi all,
>>
>>> I just built r266500 and when booting that on a Raspberry Pi the booting stalls
>>> after displaying Kernel args: (null).
>>
>> I run still in this problem, the last kernel which was working for me is r265403. Is this
>> a know problem?
> Yes, it is known. There were two problems, one is fixed now. The other problem
> is currently been worked on. Right now, you need to revert r266083 and should
> get a working kernel. If not, please let us know.
>

adding ian@ and markm@.


Hi,

looks ARM1176, aka RPi, has different register location for
performance counters.

r266083 uses PMC registers defined at c9:c12~c14 of CP15. The location
is true for Cortex-A8[1] onward. For ARM11 which predated A8, however,
these registers are located at c15:c12[2]. c9:c12~c14 are undefined on
ARM1176.

According to ARMARM, pre-ARM11 cores do not have PMC. So they must
have decided the debut location of PMC was not suitable anymore , and
moved to c9 afterward.

For RPi I think it is simpler to exclude ARM11 in original code for
now. After making sure PMC registers on ARM11, despite different
location, are still suitable for the purpose, it can have dedicated
handling different from other cores.

Other cores like pj4b and Krait may need additional check.

[1] Ch.3.2.1 of Cortex-A8 TRM r3p2,
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344k/ch03s02s01.html
[2] Ch.3.2.1 of ARM1176jz-s TRM r0p7,
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0333h/ch03s02s01.html

-Jia-Shiun.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHNYxxM9Yy0w0H9m3vMJ1ToeNkaW91%2B1unHVWqR1MG%2Bn1RsC3g>