Solved Boot hangs on cherrytrail uefi system (installer + preinstalled stick), no dmesg written

Edit: Solved, I had to disable the uarts in /boot/device.hints

After disabling ACPI and APIC via /boot/loader.conf.local I saw the entropy harvester tried to harvest nonexistent uarts... :)

In /boot/device.hints I had to replace the UART hints there with "disabled" settings:
Code:
hint.uart.0.disabled="1"
hint.uart.1.disabled="1"
/Edit

I need an idea on how to debug a hanging FreeBSD (10.3 and 11rc1) boot process.

I want to make a home server with firewall/router function out of a Cherry Trail z5-8300 mini PC (Beelink z83 / bt3, 64bit UEFI installed). Ubuntu 16.04 and OpenBSD 5.9 install fine into eMMC, but my preferred OS FreeBSD (more packages, same great PF) hangs on boot, always on or after a "ppc0: cannot reserve I/O port range" Message, see cam screenshot:

26532118nc.jpg


This happens if I boot a working install stick and if I boot from a tested working preinstalled Sandisk stick.

Nothing is written in /var/run/dmesg.boot.

How can I make the boot process more verbose in order to identify what exactly happens? Seems there is a -v option for the kernel boot stage, but where and how may I set it?

https://www.freebsd.org/doc/handbook/boot-introduction.html#boot-kernel

Edit: Managed to boot -v :)

But this didn't give me a lot more info. Seems the Kernel hangs while testing legacy hardware. Stuck at or after non existing com port.

Do I have to build a legacy free kernel or is there some other trick?

26532577uc.jpg
 
Last edited by a moderator:
Update:

There seems to exist a patch for Cherry Trail uarts

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207910

diff --git a/sys/dev/uart/uart_bus_pci.c b/sys/dev/uart/uart_bus_pci.c
index 4166222..13dd919 100644
--- a/sys/dev/uart/uart_bus_pci.c
+++ b/sys/dev/uart/uart_bus_pci.c
@@ -128,6 +128,10 @@ static const struct pci_id pci_ns8250_ids[] = {
{ 0x8086, 0x1c3d, 0xffff, 0, "Intel AMT - KT Controller", 0x10 },
{ 0x8086, 0x1d3d, 0xffff, 0, "Intel C600/X79 Series Chipset KT Controller", 0x10 },
{ 0x8086, 0x1e3d, 0xffff, 0, "Intel Panther Point KT Controller", 0x10 },
+{ 0x8086, 0x228a, 0xffff, 0, "Intel Cherryview SIO HSUART#1", 0x10,
+ 24 * DEFAULT_RCLK, 2 },
+{ 0x8086, 0x228c, 0xffff, 0, "Intel Cherryview SIO HSUART#2", 0x10,
+ 24 * DEFAULT_RCLK, 2 },
{ 0x8086, 0x2a07, 0xffff, 0, "Intel AMT - PM965/GM965 KT Controller", 0x10 },
{ 0x8086, 0x2a47, 0xffff, 0, "Mobile 4 Series Chipset KT Controller", 0x10 },
{ 0x8086, 0x2e17, 0xffff, 0, "4 Series Chipset Serial KT Controller", 0x10 },
 
Hi All,

Appreciate this thread happened long ago but it's one of the highest ranking results for this issue and so would like to potentially help others facing the same issue.

I was attempting to install pfsense on a machine affected by this issue earlier today. I wrote the installer to a key, booted it and was getting the same error message.

To allow the installation to continue, press space on boot to pause the boot menu, press 3 to go into the loader.

You can then override the UART settings and boot normally:

Code:
set hint.uart.0.disabled="1"
set hint.uart.1.disabled="1"
boot

After installation you'll need to edit the /boot/device.hints file with the edits as mentioned by OP.

Quick edit: seems creating /boot/loader.conf.local and adding the two lines there is more suitable for pfsense, as device.hints gets replaced on a firmware update!

Many Thanks

Adrian
 

Attachments

  • IMG_20190107_142845.jpg
    IMG_20190107_142845.jpg
    245.1 KB · Views: 1,157
Last edited:
Just faced a very similar situation with the Atomic Pi board running FreeBSD 12.0.

In my case setting the uart to disabled didn't work. Instead I managed to boot by issuing
Code:
unset hint.uart.1.at
boot

Once the install finished I just commented the relevant entry in /boot/device.hints

Hope this is as helpful to others as the previous posts on this issue were to me.
 
Hi All,

Appreciate this thread happened long ago but it's one of the highest ranking results for this issue and so would like to potentially help others facing the same issue.

I was attempting to install pfsense on a machine affected by this issue earlier today. I wrote the installer to a key, booted it and was getting the same error message.

To allow the installation to continue, press space on boot to pause the boot menu, press 3 to go into the loader.

You can then override the UART settings and boot normally:

Code:
set hint.uart.0.disabled="1"
set hint.uart.1.disabled="1"
boot

After installation you'll need to edit the /boot/device.hints file with the edits as mentioned by OP.

Quick edit: seems creating /boot/loader.conf.local and adding the two lines there is more suitable for pfsense, as device.hints gets replaced on a firmware update!

Many Thanks

Adrian
Hi Sir,
How to create or edit file name: /boot/loader.conf.local

what you pressed keyboard or code...Pls help me step by step because of not working at IT.
Tks,
 
… How to create or edit file name: /boot/loader.conf.local …

Welcome to The FreeBSD Forums.

In a nutshell:
  1. enter what's required at the so-called loader prompt (a one-off, allow the computer to boot/start from the installation disk)
  2. install FreeBSD
  3. attempt to boot the installation of FreeBSD
  4. again, enter what's required at the loader prompt (another one-off, for what was installed to actually boot/start for the first time)
  5. login as root
  6. at a normal command prompt, run the command below (to edit a file).
ee /boot/loader.conf

For an ordinary user, /boot/loader.conf (instead of /boot/loader.conf.local) is OK.

Working at the loader prompt can be mind-bending, even with guidance, so ask again if you get stuck.
 
Back
Top