{from my partner on this project..}
The BIOS configuration to disable the SCC devices is no longer needed once one has a
kernel with the scc device included. You can re-enable the three BIOS options, and the
SD card will appear. I was able to read a card, but I have not tested exhaustively.
To add the scc driver, add the following to your kernel config file, and recompile:
device scc # Serial Communications Controllers (SCC) devices
To enable the kernel to recognize the HSUART based serial ports, add the following to
/usr/src/sys/dev/uart/uart_bus_pci.c, at about line 168, and recompile. I have put in a
FreeBSD PR (number 253494) so perhaps this will be more permanently addressed soon.
{ 0x8086, 0x5abc, 0xffff, 0, "Celeron N3350/Pentium N4200/Atom E3900 Series HSUART#0", 0x10,
24 * DEFAULT_RCLK, 2 },
{ 0x8086, 0x5abe, 0xffff, 0, "Celeron N3350/Pentium N4200/Atom E3900 Series HSUART#1", 0x10,
24 * DEFAULT_RCLK, 2 },
{ 0x8086, 0x5ac0, 0xffff, 0, "Celeron N3350/Pentium N4200/Atom E3900 Series HSUART#2", 0x10,
24 * DEFAULT_RCLK, 2 },
{ 0x8086, 0x5aee, 0xffff, 0, "Celeron N3350/Pentium N4200/Atom E3900 Series HSUART#3", 0x10,
24 * DEFAULT_RCLK, 2 },
FreeBSD 12.2: ssc & HSUART ports
Moderator: Andrey.Mazlin
Re: FreeBSD 12.2: ssc & HSUART ports
I have replied in the PR. But essentially, you could use the serial console on FreeBSD by setting in /boot/loader.conf:
This will configure the memory-mapped serial console.
The base address is obtained by issuing:
From uart_subr.c:
Code: Select all
hw.uart.console="mm:0xfea10000,rs:2"
The base address is obtained by issuing:
Code: Select all
# pciconf -l -b pci0:24:2
uart2@pci0:0:24:2: class=0x118000 rev=0x0b hdr=0x00 vendor=0x8086 device=0x5ac0 subvendor=0x8086 subdevice=0x7270
bar [10] = type Memory, range 64, base 0xfea10000, size 4096, enabled
bar [18] = type Memory, range 64, base 0, size 4096, enabled
Code: Select all
The specification is a list of attributes
separated by commas. Each attribute is a tag-value pair with the tag and
value separated by a colon. Supported tags are:
bd = Busy Detect
br = Baudrate
ch = Channel
db = Data bits
dt = Device type
io = I/O port address
mm = Memory mapped I/O address
pa = Parity
rs = Register shift
sb = Stopbits
xo = Device clock (xtal oscillator)
The io and mm tags are mutually exclusive.