Radxa Cubie A5E

found out that the pcie ip is actually designware. So it may work with the existing driver + some init stuff like clocks, resets, regulators, power domains and whatever
 
pcib1@pci0:0:0:0: class=0x060400 rev=0x01 hdr=0x01 vendor=0x16c3 device=0xabcd subvendor=0x0000 subdevice=0x0000
vendor = 'Synopsys, Inc.'
device = 'DWC_usb3 / PCIe bridge'
class = bridge
subclass = PCI-PCI
 
Code:
[root@cubie ~]# pciconf -lv
pcib1@pci0:0:0:0:    class=0x060400 rev=0x01 hdr=0x01 vendor=0x16c3 device=0xabcd subvendor=0x0000 subdevice=0x0000
    vendor     = 'Synopsys, Inc.'
    device     = 'DWC_usb3 / PCIe bridge'
    class      = bridge
    subclass   = PCI-PCI
nvme0@pci0:1:0:0:    class=0x010802 rev=0x01 hdr=0x00 vendor=0x1987 device=0x5021 subvendor=0x1987 subdevice=0x5021
    vendor     = 'Phison Electronics Corporation'
    device     = 'PS5021-E21 PCIe4 NVMe Controller (DRAM-less)'
    class      = mass storage
    subclass   = NVM
[root@cubie ~]# dd if=/dev/nda0
nda0    nda0p1  nda0p2
[root@cubie ~]# dd if=/dev/nda0 of=/dev/null bs=1m status=progress
^C5313134592 bytes (5313 MB, 5067 MiB) transferred 16.061s, 331 MB/s
5271+0 records in
5271+0 records out
5527044096 bytes transferred in 16.644092 secs (332072435 bytes/sec)
 
the official linux/bsp image has the same throughput
i think in has an 100mhz internal clock, it uses just the main 24Mhz oscilator from the board
the bsp version also uses the nsi controller which seems to be some pm bus management crap but it doubt it changes much
so what the actual fsck is a nsi controller ? (it's not in the soc manual)

Code:
nvme0@pci0:1:0:0:    class=0x010802 rev=0x01 hdr=0x00 vendor=0x1987 device=0x5021 subvendor=0x1987 subdevice=0x5021
    vendor     = 'Phison Electronics Corporation'
    device     = 'PS5021-E21 PCIe4 NVMe Controller (DRAM-less)'
    class      = mass storage
    subclass   = NVM
    bar   [10] = type Memory, range 64, base 0x22000000, size 16384, enabled
    cap 10[80] = PCI-Express 2 endpoint max data 128(512) FLR RO NS
                 max read 512
                 link x1(x4) speed 5.0(16.0) ASPM disabled(L1)
    cap 11[d0] = MSI-X supports 9 messages
                 Table in map 0x10[0x2000], PBA in map 0x10[0x3000]
    cap 05[e0] = MSI supports 8 messages, 64 bit, vector masks enabled with 2 messages
    cap 01[f8] = powerspec 3  supports D0 D3  current D0
    ecap 0018[100] = LTR 1
    ecap 001e[110] = L1 PM Substates 1
    ecap 000e[128] = ARI 1
    ecap 0025[1e0] = Data Link Feature 1
    ecap 0001[200] = AER 2 0 fatal 0 non-fatal 0 corrected
    ecap 0019[300] = PCIe Sec 1 lane errors 0
    ecap 0026[340] = Physical Layer 16.0 GT/s 1
    ecap 0027[378] = Lane Margining at Receiver 1

nsi-controller@2020000 {

compatible = "allwinner,sun55i-nsi";
interrupts = <0x0 0x2b 0x4>;
reg = <0x0 0x2020000 0x0 0x10000 0x0 0x2071000 0x0 0x400>;
clocks = <0x1a 0x0 0x1a 0x31>;
clock-names = "pll", "bus";
resets = <0x1a 0x0>;
clock-frequency = <0x1b898f80>;
#nsi-cells = <0x1>;
phandle = <0x1aa>;
npu {

id = <0x5>;
mode = <0x0>;
pri = <0x0>;
select = <0x1>;
};
gmac0 {

id = <0x12>;
mode = <0x0>;
pri = <0x1>;
select = <0x1>;
};
gmac1 {

id = <0x13>;
mode = <0x0>;
pri = <0x1>;
select = <0x1>;
};
smhc0 {

id = <0x14>;
mode = <0x0>;
pri = <0x1>;
select = <0x1>;
};
smhc1 {

id = <0x15>;
mode = <0x0>;
pri = <0x1>;
select = <0x1>;
};
smhc2 {

id = <0x16>;
mode = <0x0>;
pri = <0x1>;
select = <0x1>;
};
usb0 {

id = <0x17>;
mode = <0x0>;
pri = <0x1>;
select = <0x1>;
};
usb1 {

id = <0x18>;
mode = <0x0>;
pri = <0x1>;
select = <0x1>;
};
usb2 {

id = <0x19>;
mode = <0x0>;
pri = <0x1>;
select = <0x1>;
};
isp {

id = <0x6>;
mode = <0x0>;
pri = <0x2>;
select = <0x1>;
};
iommu {

id = <0xa>;
mode = <0x0>;
pri = <0x3>;
select = <0x1>;
};
ve_r {

id = <0xb>;
mode = <0x0>;
pri = <0x2>;
select = <0x1>;
};
ve_rw {

id = <0xc>;
mode = <0x0>;
pri = <0x2>;
select = <0x1>;
};
de {

id = <0xd>;
mode = <0x0>;
pri = <0x2>;
select = <0x1>;
};
csi {

id = <0xe>;
mode = <0x0>;
pri = <0x2>;
select = <0x1>;
};
};
 
files modified vs 14.3 here
it contains all the allwinner and rk356x stuff i have changed

vs official tree
cubie has both ethernets, pcie, cpu freq, usb2, thermal, i2c, gpio, serial flash controller, sd card
rk3566 has drm video + panfrost + analog sound + ahci, serial flash controller, hardware rng
h616 clocks/gpio/sd/mmc/analog sound/pwm ng/dma/pmics not tested after importing from 13.x
 
Back
Top