Page 711 - and I misremembered, it's 64MB total in 1×32MB + 32×1MB blocks. For comparison, my 6 year old server has 64GB PCI aperture space on each of its 2 sockets, my Laptop has 16GB. (Obviously both >32bit address spaces... which the RK3399 really should be too, but isn't.)
MSI is blacklisted in the Linux kernel somewhere if I remember correctly; it just randomly loses interrupts.
P.S.: Address space doesn't need to make a 32->64bit jump, my laptop CPU has 39bit, my server has 46bit; even 36bit (like old Intel 32bit PAE) would've been sufficient on the RK3399. But 32bit isn't.
P.P.S.: the PCI aperture size is the most obviously a problem when you try to plug in a GPU. E.g.:
0c:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 550 640SP / RX 560/560X] [1002:67ff] (rev cf) (prog-if 00 [VGA controller])
...
Region 0: Memory at 900000000 (64-bit, prefetchable) [size=4G]
Region 2: Memory at 880000000 (64-bit, prefetchable) [size=2M]
Region 4: I/O ports at f000 [size=256]
Region 5: Memory at f7e00000 (32-bit, non-prefetchable) [size=256K]
...
Capabilities: [200 v1] Physical Resizable BAR
BAR 0: current size: 4GB, supported: 256MB 512MB 1GB 2GB 4GB
This GPU actually allows you to reduce the size it needs, but the absolute minimum you can set it to is 256MB...
The real problem is that PCI address space is not normally a scarce resource, and some RAID controllers & network cards (particularly high-performance/server ones) use a random bunch of it (>= 128MB) , and that's not even starting on SR-IOV. And these requirements aren't well documented because PCI memory space is not normally a problem. If you're lucky you can google "<card name> lspci", if not you only notice after you bought the card...
RK3399s make great bang-for-the-buck boards, but the idle power consumption is pretty high. I’ve been kicking around one of the Khadas VIM3s which has a newer Amlogic SoC on it and like what I’ve seen so far. It’s a significantly more expensive board, though
There are plenty of things that an RK3399 (or the new Rockchip being used in the OP) can handle just fine.
I was definitely interested to see that this new chip supports up to 8GB of RAM. I think there are a lot of interesting applications for RAM-rich, Gig-E bearing nodes that can run off a battery. (Examples: Redis at the edge, “Field” PostgreSQL replicated to the cloud when possible, nested VMs protecting trusted “firmware” from remotely-loaded containers and machine images, etc.)