AHCI SATA controller not detected

SleepWalker I am back for 5 days to the location where I can physically test and re-do an installation and make some tests, I would love to see if you have any advises or suggestion

Many thanks in advance
 
Hi SleepWalker it has been a long time, but wanted to test on 15.0 I am wondering if by chance you have a u-boot and dtb working on 15.0 ?
I was unable to make it work so I check here by chance if you have something I would be very happy to test as I am for a week landing tomorrow where I have my Helios64
Many thanks
 
SleepWalker has not been seen in quite a while. Hopefully he is alive and well.

Regarding your problem the rockpro64 has a u-boot port and it works well.

You might find some PCIe devices will not work on the board. I did. But I also had M.2 NVMe working on a adapter card.

There is a FreeBSD Image for 15.0-RELEASE and ROCKPRO64. Have you tried it? It should work out of box.

You may need to enable an overlay for PCIe bus speed.
 
thanks Phishfry
I tried to write a SDCard with 15.0-RELEASE for ROCKPRO64 and it is working fine for the OS part it is booting and all good BUT..I am missing the most important thing for Helios.. the drives. The controler is not recognized (I don't hear the drives) so it definitely missing something during the boot, would you guide me on how to add the overlay for the PCIe bus ? It is like I am very close to make it work..

dmesg
pcib1: <PCI-PCI bridge> at device 0.0 on pci0
pcib1: failed to allocate initial memory window: 0-0xfffff
pci1: <PCI bus> on pcib1
ahci0: <JMicron JMB58x AHCI SATA controller> at device 0.0 on pci1

Many thanks in advance
 
I doubt the overlay would make anything work for you in this case.. You would need to look at pciconf -lvbce to determine PCIe bus speed. If GEN1 apply this overlay:

 
I doubt the overlay would make anything work. You would need to look at pciconf -lvbce to determine PCIe bus speed. If GEN1 apply this overlay:

here is how it looks like in my system :


pciconf -lvbce
pcib1@pci0:0:0:0: class=0x060400 rev=0x00 hdr=0x01 vendor=0x1d87 device=0x0100 subvendor=0x0000 subdevice=0x0000
vendor = 'Rockchip Electronics Co., Ltd'
device = 'RK3399 PCI Express Root Port'
class = bridge
subclass = PCI-PCI
cap 01[80] = powerspec 3 supports D0 D1 D3 current D0
cap 05[90] = MSI supports 1 message, 64 bit, vector masks
cap 11[b0] = MSI-X supports 1 message
Table in map 0x10[0x0], PBA in map 0x10[0x8]
cap 10[c0] = PCI-Express 2 root port max data 128(256) RO NS ARI disabled
max read 128
link x2(x4) speed 2.5(2.5) ASPM disabled(L0s/L1)
slot 0 power limit 0 mW
ecap 0001[100] = AER 2 0 fatal 0 non-fatal 0 corrected
ecap 0017[274] = TPH Requester 1
ahci0@pci0:1:0:0: class=0x010601 rev=0x00 hdr=0x00 vendor=0x197b device=0x0585 subvendor=0x197b subdevice=0x0000
vendor = 'JMicron Technology Corp.'
device = 'JMB58x AHCI SATA controller'
class = mass storage
subclass = SATA
bar [10] = type I/O Port, range 32, base 0, size 128, disabled
bar [14] = type I/O Port, range 32, base 0, size 128, disabled
bar [18] = type I/O Port, range 32, base 0, size 128, disabled
bar [1c] = type I/O Port, range 32, base 0, size 128, disabled
bar [20] = type I/O Port, range 32, base 0, size 128, disabled
bar [24] = type Memory, range 32, base 0xfa000000, size 8192, enabled
cap 01[80] = powerspec 3 supports D0 D3 current D0
cap 05[90] = MSI supports 8 messages, 64 bit, vector masks enabled with 8 messages
cap 10[c0] = PCI-Express 2 legacy endpoint max data 128(512) FLR RO NS
max read 512
link x2(x2) speed 2.5(8.0)
ecap 0001[100] = AER 2 0 fatal 0 non-fatal 0 corrected
ecap 0003[150] = Serial 1 0000000000000000
ecap 0004[160] = Power Budgeting 1
ecap 0018[1b8] = LTR 1
ecap 0019[300] = PCIe Sec 1 lane errors 0
ecap 001e[900] = L1 PM Substates 1


I haven't touched dtb or u-boot like I did in the past as I wanted to try with stock 15.0 first
 
built from u-boot src top with
cpp -nostdinc -x assembler-with-cpp -I dts/upstream/include/ ./dts/upstream/src/arm64/rockchip/rk3399-kobol-helios64.dts |dtc -I dts >rk3399-kobol-helios64.dtb
its from u-boot-2025.10
copy it somewhere on the file system and add this to loader.conf

mydtb_name="/c.dtb"
mydtb_load="YES"
mydtb_type="dtb"

replace /c.dtb with the actual full path of the file
 

Attachments

built from u-boot src top with
cpp -nostdinc -x assembler-with-cpp -I dts/upstream/include/ ./dts/upstream/src/arm64/rockchip/rk3399-kobol-helios64.dts |dtc -I dts >rk3399-kobol-helios64.dtb
its from u-boot-2025.10
copy it somewhere on the file system and add this to loader.conf

mydtb_name="/c.dtb"
mydtb_load="YES"
mydtb_type="dtb"

replace /c.dtb with the actual full path of the file
thanks for the explanation.
I just tried but during the boot I see :

don't know how to load module '/rk3399-kobol-helios64.dtb'
I tried to move into another location just to proof and the error message was file not found, so it seems that it can find it but doesn't know how to load

(I changed my loader.conf like yours only changing the filename)
 
it has to load it if the loader.conf is ok
alternatively stop loader with escape
at the loader prompt
unload all
load kernel
load -t dtb /path/to/file.dtb
boot
 
it has to load it if the loader.conf is ok
alternatively stop loader with escape
at the loader prompt
unload all
load kernel
load -t dtb /path/to/file.dtb
boot
victory ! manually loading it is working ! I can see the drives ... will check if they are functional.
Many many thanks you make my night !
 
Back
Top