Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Feb 2019 22:40:58 +0100
From:      kraileth@elderlinux.org
To:        freebsd-arm@freebsd.org
Subject:   ThunderX support broken since r336520
Message-ID:  <20190213224058.52402wm0s4ube0ve@webmail.omc.net>

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

Recently I got my hands on a Cavium ThunderX server for some tests  
before it is deployed for production. I wanted to install FreeBSD on  
it so I grabbed a 12.0 image and was surprised that it didn't work at  
all. The beastie menu is displayed, the kernel loaded - and then it  
just stops.

As pointed out by Marcel Flores in December  
(https://lists.freebsd.org/pipermail/freebsd-arm/2018-December/019130.html),  
11.2 does boot to the installer however. Upgrading the system to  
11-STABLE worked fine, too. Building 12-STABLE or -CURRENT resulted in  
a kernel that wouldn't boot.

I decided to find the point where ThunderX support broke in head. It's  
roughly 40,000 commits from the first 12-CURRENT to today. After a few  
nights of checking out various old revisions of HEAD and building  
kernels over and over again, I found out that in r336520 Emmanuel  
Vadot added vt_efifb to the GENERIC kernel config on arm64. According  
to his commit message this was tested on PINE64 hardware - but  
unfortunately it obviously does not work on ThunderX.

To unbreak HEAD I see basically 3 options:

1) Make the EFI FB work properly on ThunderX. This would certainly be  
the best solution but I have no idea whatsoever how to do it.
2) Revert. Probably not a good idea since having vt_efifb included  
makes sense on devices where it works. Also reverting a commit from  
half a year ago doesn't feel right.
3) Add a THUNDERX config that builds a working kernel and live with  
the fact that GENERIC does not support ThunderX for the moment.

I went with the following simple config for all my further tests:

/usr/src/sys/arm64/conf/THUNDERX:
---------------------------------
include GENERIC
ident THUNDERX

nodevice        vt_efifb

This makes -CURRENT work again. It does _not_ make 12 (-RELEASE and  
-STABLE) work! There's another issue with these that was fixed in HEAD  
after 12 was branched off. I chased the problem down, too, but:  
Another issue, another mail.

ThunderX is a pretty interesting platform and any help in making  
FreeBSD run on it again is very much appreciated.

Any thoughts on this?

Regards,
Michael



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190213224058.52402wm0s4ube0ve>