Report: FreeBSD on Rpi4 8 GB model

Mark Millard marklmi at yahoo.com
Sat Jun 6 19:55:17 UTC 2020



> On 2020-Jun-6, at 12:44, Robert Crowston via freebsd-arm <freebsd-arm at freebsd.org> wrote:
> 
>> No, SPIN_PAGES=2 is fine
> 
> I confirm that CONFIG_RPI_EFI_NR_SPIN_PAGES 2 is sufficient.
> 
>> Even without this setting, it should still largely boot;
>> you'll just only have half the memory you wanted.

"this setting" for that quote was referencing CONFIG_NR_DRAM_BANKS,
 not SPIN_PAGES . (See the later note.) So the following misses
the point for the above quote.

> Without raising the spin pages limit, the kernel panics while trying to start the secondary CPUs. I don't have a working JTAG so I can't diagnose exactly why, but the spin table thing seemed like an obvious thing to check.
> 
> Starting CPU 1 (1)
> panic: Failed to start CPU 1 (1), error 16
> 
> cpuid = 0
> time = 1
> KDB: stack backtrace:
> db_trace_self() at db_trace_self_wrapper+0x28
>         pc = 0xffff00000075cd0c  lr = 0xffff00000010a0ac
>         sp = 0xffff000000010590  fp = 0xffff000000010790
> 
> db_trace_self_wrapper() at vpanic+0x194
>         pc = 0xffff00000010a0ac  lr = 0xffff0000004185c0
>         sp = 0xffff0000000107a0  fp = 0xffff0000000107f0
> 
> vpanic() at panic+0x44
>         pc = 0xffff0000004185c0  lr = 0xffff000000418368
>         sp = 0xffff000000010800  fp = 0xffff0000000108b0
> 
> panic() at start_cpu+0x224
>         pc = 0xffff000000418368  lr = 0xffff00000076bd94
>         sp = 0xffff0000000108c0  fp = 0xffff0000000108c0
> 
> start_cpu() at cpu_init_fdt+0x34
>         pc = 0xffff00000076bd94  lr = 0xffff00000076b094
>         sp = 0xffff0000000108d0  fp = 0xffff000000010930
> 
> cpu_init_fdt() at ofw_cpu_early_foreach+0x180
>         pc = 0xffff00000076b094  lr = 0xffff00000020e0cc
>         sp = 0xffff000000010940  fp = 0xffff000000010990
> 
> ofw_cpu_early_foreach() at mp_start+0x8c
>         pc = 0xffff00000020e0cc  lr = 0xffff000000472e98
>         sp = 0xffff0000000109a0  fp = 0xffff0000000109f0
> 
> mp_start() at mi_startup+0x12c
>         pc = 0xffff000000472e98  lr = 0xffff0000003abfcc
>         sp = 0xffff000000010a00  fp = 0xffff000000010a20
> 
> mi_startup() at virtdone+0x5c
>         pc = 0xffff0000003abfcc  lr = 0xffff00000000108c
>         sp = 0xffff000000010a30  fp = 0x0000000000000000
> 
> KDB: enter: panic
> 
> 
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Saturday, 6 June 2020 20:29, Klaus Küchemann via freebsd-arm <freebsd-arm at freebsd.org> wrote:
> 
>> 
>> 
>>> Am 06.06.2020 um 21:19 schrieb Kyle Evans kevans at freebsd.org:
>>> On Sat, Jun 6, 2020 at 2:13 PM Klaus Küchemann via freebsd-arm
>>> freebsd-arm at freebsd.org wrote:
>>> 
>>>>> Am 06.06.2020 um 20:15 schrieb Robert Crowston via freebsd-arm freebsd-arm at freebsd.org:
>>>>> …...
>>>>> Edit board/raspberrypi/rpi/Kconfig, set RPI_EFI_NR_SPIN_PAGES to a larger number (I picked 10, probably too big, but it was easier than doing the arithmetic).
>>>>> ……
>>>> 
>>>> You mean that https://reviews.freebsd.org/D24085 rpi4_fragment has to set SPIN_PAGES from 2 to 10 ?
>>>> This could be done in sysutils/u-boot-rpi4 , perhaps with something like an #ifdef RPI4/8GB“ for the first try .
>>> 
>>> No, SPIN_PAGES=2 is fine; the default in upstream is 1 because they
>>> don't need any more, so he would've needed to manually bump it to 2.

The relevant "this setting" related text, separated to make it clearer:

>>> You should be able to just add CONFIG_NR_DRAM_BANKS=8 to
>>> sysutils/u-boot-rpi4's rpi4_fragment and it 'just work' -- this was
>>> tested on IRC a couple days ago, and should be safe for all variants
>>> as far as I'm aware (but needed to test on my 4GB variant). Even
>>> without this setting, it should still largely boot; you'll just only
>>> have half the memory you wanted.

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)



More information about the freebsd-arm mailing list