Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jan 2025 06:06:48 +0900
From:      FUKAUMI Naoki <naoki@radxa.com>
To:        Mark Millard <marklmi@yahoo.com>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Radxa Orion O6
Message-ID:  <C7599FF0E0B3381D%2Be0606559-357c-435c-8534-7353a2055749@radxa.com>
In-Reply-To: <087C4A9F-288B-40EA-BE1B-ACFD32C86DF2@yahoo.com>
References:  <EDDF572D3560B2F6%2Bc4a27a6d-9a19-40df-9eef-42bbb4e9aa39@radxa.com> <087C4A9F-288B-40EA-BE1B-ACFD32C86DF2@yahoo.com>

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

On 1/21/25 02:01, Mark Millard wrote:
> On Jan 18, 2025, at 20:57, FUKAUMI Naoki <naoki@radxa.com> wrote:
> 
>> I'm trying to boot FreeBSD/arm64 on a Radxa Orion O6.
>>
>> UEFI has a "O/S Hardware Description Selection" menu where I can choose "Device Tree" or "ACPI". "ACPI" allows me to boot a mainline Linux kernel.
>>
>> With "ACPI" I can use the serial console with EFI loader, but the kernel output only shows up on the display after the kernel is loaded.
> 
> My guess is that there is something that needs to be added to
> /boot/loader.conf to get the display of the kernel output.
> But I'm not expert at such and currently do not have access
> to the FreeBSD systems that I normally do.
> 
>> ----
>> Consoles: EFI console
>>     Reading loader env vars from /efi/freebsd/loader.env
>> Setting currdev to disk1p1:
>> FreeBSD/arm64 EFI loader, Revision 3.0
>> (Thu Jan 16 06:56:52 UTC 2025 root@releng3.nyi.freebsd.org)
>>
>>    Command line arguments: loader.efi
>>    Image base: 0x47ab5a000
>>    EFI version: 2.70
>>    EFI Firmware: EDK II (rev 1.00)
>>    Console: efi (0x1000)
>>    Load Path: \EFI\BOOT\BOOTAA64.EFI
>>    Load Device: VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00801D090000000000)/U
>> SB(0x1,0x0)/HD(1,GPT,009521E2-D3EE-11EF-81EA-0CC47AD8B808,0x22,0x10418)
>>    BootCurrent: 0003
>>    BootOrder: 0000 0001 0002 0003[*]
>>    BootInfo Path: VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00801D090000000000)
>> /USB(0x1,0x0)
>> Ignoring Boot0003: Only one DP found
>> Trying ESP: VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00801D090000000000)/USB(0
>> x1,0x0)/HD(1,GPT,009521E2-D3EE-11EF-81EA-0CC47AD8B808,0x22,0x10418)
>> Setting currdev to disk1p1:
>> Trying: VenHw(0D51905B-B77E-452A-A2C0-ECA0CC8D514A,00801D090000000000)/USB(0x1,0
>> x0)/HD(2,GPT,009521EB-D3EE-11EF-81EA-0CC47AD8B808,0x1043A,0x283540)
>> Setting currdev to disk1p2:
>> Loading /boot/defaults/loader.conf
>> Loading /boot/defaults/loader.conf
>> Loading /boot/device.hints
>> Loading /boot/loader.conf
>> Loading /boot/loader.conf.d/rtw8922a.conf
>> Loading /boot/loader.conf.d/rtw8851b.conf
>> Loading /boot/loader.conf.d/rtw8852c.conf
>> Loading /boot/loader.conf.d/rtw8703b.conf
>> Loading /boot/loader.conf.d/rtw8852b.conf
>> Loading /boot/loader.conf.d/rtw8723d.conf
>> Loading /boot/loader.conf.d/rtw8822c.conf
>> Loading /boot/loader.conf.d/rtw8821c.conf
>> Loading /boot/loader.conf.d/rtw8822b.conf
>> Loading /boot/loader.conf.d/rtw8852a.conf
>> Loading /boot/loader.conf.local
>> ?c/
>> -  ______               ____   _____ _____
>>   |  ____|             |  _ \ / ____|  __ \
>>   | |___ _ __ ___  ___ | |_) | (___ | |  | |
>>   |  ___| '__/ _ \/ _ \|  _ < \___ \| |  | |
>>   | |   | | |  __/  __/| |_) |____) | |__| |
>>   | |   | | |    |    ||     |      |      |
>>   |_|   |_|  \___|\___||____/|_____/|_____/
>>
>> /-------- Welcome to FreeBSD ----------\  ```                        `
>> |                                      | s` `.....---.......--.```   -/
>> |  1. Boot Installer [Enter]           | +o   .--`         /y:`      +.
>> |  2. Boot Single user                 |  yo`:.            :o      `+-
>> |  3. Escape to loader prompt          |   y/               -/`   -o/
>> |  4. Reboot                           |  .-                  ::/sy+:.
>> |  5. Cons: Serial                     |  /                     `--  /
> 
> Does there a UART based serial console? Or is there
> a video console? Or are both possible?

As I wrote, in "ACPI" mode the video console is only visible after the 
kernel has started.

>> |                                      | `:                          :`
>> |  Kernel:                             | `:                          :`
>> |  6. kernel (1 of 1)                  |  /                          /
>> |                                      |  .-                        -.
>> |  Options:                            |   --                      -.
>> |  7. Boot Options                     |    `:`                  `:`
>> |                                      |      .--             `--.
>> \--------------------------------------/         .---.....----.
>> Loading kernel...seconds. [Space] to pause
>> /boot/kernel/kernel text=0x318 text=0x99d0f8 text=0x2c9ca0 data=0x17f8e0 data=0x
>> 0+0x371000 0x8+0x16f1b8+0x8+0x19fc8a|
>> Loading configured modules...
>> can't find '/etc/hostid'
>> can't find '/boot/entropy'
>> Loading splash ok
>> No valid device tree blob found!
>> WARNING! Trying to fire up the kernel, but no device tree blob found!
> 
> The above 2 lines are normal for a UEFI/AACPI boot.
> They do indicate that it was not an Device Tree based boot.
> 
>> EFI framebuffer information:
>> addr, size     0x84800000, 0x7e9000
>> dimensions     1920 x 1080
>> stride         1920
>> masks          0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
>> ----
>>
>> Here is a screenshot on the display:
>> https://drive.google.com/file/d/1pa0Uv3FONpsyVyt3QfU_1CzRSYW2cita/view?usp=sharing
>>
>> Using the "Device Tree" I was able to use both the serial console and the display and boot the installer. Please see dmesg below.
> 
> That later output indicates an UEFI/ACPI boot instead of Device Tree.
> For example:
> 
> . . .
> ACPI: IORT: Dropping unhandled type 6
> . . .
> acpi0: <CIXTEK SKY1EDK2>
> acpi0: Power Button (fixed)
> acpi0: Sleep Button (fixed)
> acpi0: Could not update all GPEs: AE_NOT_CONFIGURED
> . . .
> 
> and there are lots more examples of "acpi" references in the output,
> 30+ references counting the ones quoted above.

Yes, I understand that. But as I wrote, things work differently in 
"ACPI" and "Device Tree".

>> But all pcib are not configured.
> 
> Looks like it always reported:
> 
> pcib0: could not allocate memory.
> 
> A verbose boot output would likely be handy for someone that
> knows what they are doing for ACPI contexts.

Changing FreeBSD boot options causes a kernel panic on the serial 
console as shown below ("DeviceTree" mode):

Best regards,

--
FUKAUMI Naoki
Radxa Computer (Shenzhen) Co., Ltd.

  |  Boot Options:                       |  .-                  ::/sy+:.
  |  3. ACPI       :off                  |  /                     `--  /
  |  4. Safe Mode  :off                  | `:                          :`
  |  5. Single user:off                  | `:                          :`
  |  6. Verbose    :On                   |  /                          /

Loading kernel...
/boot/kernel/kernel text=0x318 text=0x99d0f8 text=0x2c9cc0 data=0x17f8e0 
data=0x
0+0x371000 0x8+0x16f158+0x8+0x19fc2d
Loading configured modules...
/boot/entropy size=0x1000
/etc/hostid size=0x25
/boot/kernel/zfs.ko text=0xe6f10 text=0x25b6b8 data=0x3bda8+0xabe84 
0x8+0x37a58+
0x8+0x30bc7
Using DTB provided by EFI at 0x47cf40018.
Loading splash ok
EFI framebuffer information:
addr, size     0x84800000, 0x7e9000
dimensions     1920 x 1080
stride         1920
masks          0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
---<<BOOT>>---
GDB: debug ports: uart
GDB: current port: uart
KDB: debugger backends: ddb gdb
KDB: current backend: ddb
                    Type     Physical      Virtual   #Pages Attr
                Reserved 000080000000 000000000000 00002500 WC WT WB
     RuntimeServicesData 000082500000 000082500000 00001f00 WC WT WB RUNTIME
        BootServicesData 000084400000 000000000000 00000200 WC WT WB
      ConventionalMemory 000085000000 000000000000 0001b000 WC WT WB
                Reserved 0000a0000000 000000000000 00008000 WC WT WB
      ConventionalMemory 0000a8000000 000000000000 00057fc0 WC WT WB
     RuntimeServicesData 0000fffc0000 0000fffc0000 00000020 WC WT WB RUNTIME
           ACPIMemoryNVS 0000fffe0000 000000000000 00000010 WC WT WB
      ConventionalMemory 0000ffff0000 000000000000 0000000e WC WT WB
                Reserved 0000ffffe000 000000000000 00000002 WC WT WB
      ConventionalMemory 000100000000 000000000000 00080000 WC WT WB
        BootServicesCode 000180000000 000000000000 00000025 WC WT WB
      ConventionalMemory 000180025000 000000000000 002f1402 WC WT WB
              LoaderCode 000471427000 000000000000 00004000 WC WT WB
              LoaderData 000475427000 000000000000 000047e9 WC WT WB
       ACPIReclaimMemory 000479c10000 000000000000 00000030 WC WT WB
      ConventionalMemory 000479c40000 000000000000 0000000b WC WT WB
              LoaderData 000479c4b000 000000000000 00000001 WC WT WB
      ConventionalMemory 000479c4c000 000000000000 00000f2f WC WT WB
              LoaderCode 00047ab7b000 000000000000 000000d1 WC WT WB
      ConventionalMemory 00047ac4c000 000000000000 00000e38 WC WT WB
        BootServicesData 00047ba84000 000000000000 00002490 WC WT WB
      ConventionalMemory 00047df14000 000000000000 00000164 WC WT WB
        BootServicesCode 00047e078000 000000000000 00000478 WC WT WB
     RuntimeServicesCode 00047e4f0000 00047e4f0000 000004b0 WC WT WB RUNTIME
     RuntimeServicesData 00047e9a0000 00047e9a0000 00000450 WC WT WB RUNTIME
      ConventionalMemory 00047edf0000 000000000000 00000005 WC WT WB
        BootServicesData 00047edf5000 000000000000 00000001 WC WT WB
        BootServicesCode 00047edf6000 000000000000 00000038 WC WT WB
        BootServicesData 00047ee2e000 000000000000 000011d2 WC WT WB
          MemoryMappedIO 000004070000 000004070000 00000001 UC RUNTIME
          MemoryMappedIO 000004120000 000004120000 00000040 UC RUNTIME
          MemoryMappedIO 000004170000 000004170000 00000010 UC RUNTIME
          MemoryMappedIO 000016004000 000016004000 00000004 UC RUNTIME
                Reserved 000084800000 000000000000 00000800
Physical memory chunk(s):
   0x82500000 - 0x845fffff,    33 MB (   8448 pages)
   0x85000000 - 0x9fffffff,   432 MB ( 110592 pages)
   0xa8000000 - 0xfffdffff,  1407 MB ( 360416 pages)
   0xffff0000 - 0xffffdfff,     0 MB (     14 pages)
   0x100000000 - 0x47fffffff, 14336 MB (3670016 pages)
Excluded memory regions:
   0x82500000 - 0x833fffff,    15 MB (   3840 pages) NoAlloc NoDump
   0x82500000 - 0x843fffff,    31 MB (   7936 pages) NoAlloc
   0x83de0000 - 0x83dfffff,     0 MB (     32 pages) NoAlloc NoDump
   0x84000000 - 0x84107fff,     1 MB (    264 pages) NoAlloc NoDump
   0x84380000 - 0x843fffff,     0 MB (    128 pages) NoAlloc NoDump
   0x84800000 - 0x867fffff,    32 MB (   8192 pages) NoAlloc NoDump
   0x84800000 - 0x84fe8fff,     7 MB (   2025 pages) NoAlloc
   0x90000000 - 0xafffffff,   512 MB ( 131072 pages) NoAlloc NoDump
   0xbde00000 - 0xcdf07fff,   257 MB (  65800 pages) NoAlloc NoDump
   0xce000000 - 0xd0dfffff,    46 MB (  11776 pages) NoAlloc NoDump
   0xfffc0000 - 0xfffdffff,     0 MB (     32 pages) NoAlloc
   0x471600000 - 0x4732e5fff,    28 MB (   7398 pages) NoAlloc
   0x479c10000 - 0x479c3ffff,     0 MB (     48 pages) NoAlloc
   0x47e4f0000 - 0x47edeffff,     9 MB (   2304 pages) NoAlloc
   0x1ca0000000 - 0x1ca007ffff,     0 MB (    128 pages) NoAlloc NoDump
Copyright (c) 1992-2025 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
         The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 15.0-CURRENT #0 main-n274861-c75d5bdf9818: Tue Jan 21 05:40:01 
JST 2025
     root@orion-o6:/usr/obj/usr/src/arm64.aarch64/sys/GENERIC arm64
FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git 
llvmorg-19.1.7-0-gcd708029e0b2)
WARNING: WITNESS option enabled, expect reduced performance.
VT(efifb): resolution 1920x1080
Preloaded elf kernel "/boot/kernel/kernel" at 0xffff000001aa1000.
Preloaded boot_entropy_cache "/boot/entropy" at 0xffff000001aaa6b8.
Preloaded hostuuid "/etc/hostid" at 0xffff000001aaa710.
Preloaded elf module "/boot/kernel/zfs.ko" at 0xffff000001aaa760.
Preloaded TSLOG data "TSLOG" at 0xffff000001aab038.
module scmi already present!
real memory  = 16996294656 (16208 MB)
Physical memory chunk(s):
0x00000084400000 - 0x000000845fffff, 2097152 bytes (512 pages)
0x00000086800000 - 0x0000008fffffff, 159383552 bytes (38912 pages)
0x000000b0000000 - 0x000000bddfffff, 232783872 bytes (56832 pages)
0x000000cdf08000 - 0x000000cdffffff, 1015808 bytes (248 pages)
0x000000d0e00000 - 0x000000fffbffff, 790364160 bytes (192960 pages)
0x000000ffff0000 - 0x000000ffffdfff, 57344 bytes (14 pages)
0x00000100000000 - 0x000004593ebfff, 14382186496 bytes (3511276 pages)
0x000004732e6000 - 0x00000479c0ffff, 110272512 bytes (26922 pages)
0x00000479c40000 - 0x0000047e4effff, 76218368 bytes (18608 pages)
0x0000047edf0000 - 0x0000047fffffff, 18939904 bytes (4624 pages)
avail memory = 15769264128 (15038 MB)
No PSCI/SMCCC call function found
FreeBSD/SMP: Multiprocessor System Detected: 1 CPUs
Enabling IDC ICache sync
Enabling LSE atomics in the kernel
Enabling BTI
random: read 4096 bytes from preloaded cache
random: no platform bootloader entropy
random: unblocking device.
VIMAGE (virtualized network stack) enabled
hostuuid: using 8ffcdd88-11db-4128-a57d-64bbe656c1ac
ULE: setup cpu 0
random: entropy device external interface
firmware: 'tegra210_xusb_fw' version 0: 132608 bytes loaded at 
0xffff000000b3d738
MAP 82500000 mode 2 pages 7936
MAP fffc0000 mode 2 pages 32
MAP 47e4f0000 mode 2 pages 1200
MAP 47e9a0000 mode 2 pages 1104
MAP 4070000 mode 4 pages 1
MAP 4120000 mode 4 pages 64
MAP 4170000 mode 4 pages 16
MAP 16004000 mode 4 pages 4
kbd0 at kbdmux0
mem: <memory>
null: <full device, null device, zero device>
openfirm: <Open Firmware control device>
sound_global_init: snd_unit=-1 snd_maxautovchans=16 latency=2 
feeder_rate_min=1 feeder_rate_max=2016000 feeder_rate_round=25
tcp_log: tcp_log device
crypto: <crypto core>
Device configuration finished.
procfs registered
panic: No usable event timer found!
cpuid = 0
time = 1
KDB: stack backtrace:
db_trace_self() at db_trace_self
db_trace_self_wrapper() at db_trace_self_wrapper+0x38
vpanic() at vpanic+0x1a0
panic() at panic+0x48
cpu_initclocks_bsp() at cpu_initclocks_bsp+0x5e0
initclocks() at initclocks+0x28
mi_startup() at mi_startup+0x1f4
virtdone() at virtdone+0x6c
KDB: enter: panic
[ thread pid 0 tid 100000 ]
Stopped at      kdb_enter+0x48: str     xzr, [x19, #2048]
db>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C7599FF0E0B3381D%2Be0606559-357c-435c-8534-7353a2055749>