Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20680 Discussions

Arria 10 configuration through Linux fpga-arria10-passive-serial driver

MehmetFide
Novice
1,866 Views

Hello,

 

We have a products which has iMX8M-Plus processor with an Arria 10 GX FPGA. 

We want to configure FPGA each time when our embedded system boots.

To do that we have connected a SoM SPI port to FPGA's passive serial configuration port and in the linux device tree I added following lines:

 

&ecspi1 {
    status = "okay";

    altera_spi: altera_spi@0 {
            compatible = "altr,fpga-arria10-passive-serial";
            spi-max-frequency = <40000000>;
            reg = <0>;
            nconfig-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
            nstat-gpios = <&gpio4 31 GPIO_ACTIVE_LOW>;
            confd-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
            status = "okay";
        };
};

 Our linux systems (Kernel v5.4) boots fine. Under the /sys/class/fpga_manager folder, I have:

 

root@localhost:/sys/class/fpga_manager/fpga0# ll
total 0
-r--r--r-- 1 root root 4096 Sep 23 12:38 consumers
lrwxrwxrwx 1 root root    0 Sep 23 12:38 device -> ../../../spi1.0
-r--r--r-- 1 root root 4096 Sep 23 12:38 name
lrwxrwxrwx 1 root root    0 Sep 23 12:38 of_node -> ../../../../../../../../../../firmware/devicetree/base/soc@0/bus@30800000/spi@30820000/altera_spi@0
drwxr-xr-x 2 root root    0 Sep 20 10:45 power
-r--r--r-- 1 root root 4096 Sep 23 12:38 state
-r--r--r-- 1 root root 4096 Sep 23 12:38 status
lrwxrwxrwx 1 root root    0 Sep 20 10:44 subsystem -> ../../../../../../../../../../class/fpga_manager
-r--r--r-- 1 root root 4096 Sep 23 12:38 suppliers
-rw-r--r-- 1 root root 4096 Sep 20 10:44 uevent

 

Now any idea how can we send our rbf file into the FPGA? I couldn't find any documentations or help for the rest of the operation.

 

You helps are highly appreciated.

Thank you.

0 Kudos
13 Replies
EBERLAZARE_I_Intel
1,809 Views

Hi,


Do you have any further update?


0 Kudos
MehmetFide
Novice
1,793 Views

Hi,

 

Thank you for the guideline, it was really helpful.

 

But in our case we don't have fpga0 in our /dev folder to use it with dd if=soc_system.rbf of=/dev/fpga0 bs=1M command as suggested in the link you provided. 

 

Is there any particular field in the device tree file to have fpga0 in the dev folder?

 

Thank you.

0 Kudos
EBERLAZARE_I_Intel
1,716 Views

Hi,


Unfortunately, that was the old flow for reference. Because the FPGA cannot be configured from Linux. If you need to define or change the fabric behavior from Linux, you must use PR (partial reconfiguration).


But may I know the reason to configure the FPGA via Linux? For newer flow, you need to read the description here:

https://rocketboards.org/foswiki/Documentation/BuildingBootloaderCycloneVAndArria10#Appendix_45_Reducing_Arria_10_Fabric_Configuration_Time




0 Kudos
EBERLAZARE_I_Intel
1,686 Views

Hi,


Do you have any follow up questions?


0 Kudos
MehmetFide
Novice
1,674 Views

Hi,

 

Like I mentioned at the beginning that we have a product which has iMX8M-Plus processor with an Arria 10 GX FPGA. We are not using Arria 10 SX SoC. 

 

We connect Passive Serial Port of Arria 10 GX FPGA to SPI port of our iMX8M-Plus processor.

It is very possible to configure Arria 10 GX FPGA fully through its Passive Serial Configuration port which will be controlled by Linux at the end. 

 

My question was about how to use fpga-arria10-passive-serial driver available in the latest linux kernel developed by Altera. And unfortunately my initial question is still valid.

 

Thank you.

0 Kudos
EBERLAZARE_I_Intel
1,655 Views

Hi,


Can you share your boot logs file here?


0 Kudos
MehmetFide
Novice
1,643 Views

Here it is:

root@verdin-imx8mp-06976886:/# dmesg
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.4.161-rt67-0+git.ea71855f952b (oe-user@oe-host) (gcc version 9.3.0 (GCC)) #1 SMP PREEMPT_RT Mon Mar 21 19:48:25 UTC 2022
[    0.000000] Machine model: Toradex Verdin iMX8M Plus WB on GPR Array
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 960 MiB at 0x00000000c0000000
[    0.000000] earlycon: ec_imx6q0 at MMIO 0x0000000030880000 (options '')
[    0.000000] printk: bootconsole [ec_imx6q0] enabled
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000013fffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x13f8413c0-0x13f842fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000040000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000013fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x00000000557fffff]
[    0.000000]   node   0: [mem 0x0000000056000000-0x00000000923fffff]
[    0.000000]   node   0: [mem 0x00000000a4400000-0x000000013fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000013fffffff]
[    0.000000] On node 0 totalpages: 972800
[    0.000000]   DMA32 zone: 11104 pages used for memmap
[    0.000000]   DMA32 zone: 0 pages reserved
[    0.000000]   DMA32 zone: 710656 pages, LIFO batch:63
[    0.000000]   Normal zone: 4096 pages used for memmap
[    0.000000]   Normal zone: 262144 pages, LIFO batch:63
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 20 pages/cpu s44800 r8192 d28928 u81920
[    0.000000] pcpu-alloc: s44800 r8192 d28928 u81920 alloc=20*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 957600
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: root=PARTUUID=941fe322-02 ro rootwait console=ttymxc2,115200 console=tty1 consoleblank=0 earlycon
[    0.000000] Dentry cache hash table entries: 524288 (order: 11, 8388608 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0xbc000000-0xc0000000] (64MB)
[    0.000000] Memory: 2733252K/3891200K available (14012K kernel code, 1030K rwdata, 6204K rodata, 2496K init, 1051K bss, 174908K reserved, 983040K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000] rcu:     RCU priority boosting: priority 1 delay 500 ms.
[    0.000000] rcu:     RCU_SOFTIRQ processing moved to rcuc kthreads.
[    0.000000]  No expedited grace period (rcu_normal_after_boot).
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 160 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: no VLPI support, no direct LPI support
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000038880000
[    0.000000] ITS: No ITS available, not enabling LPIs
[    0.000000] random: get_random_bytes called from start_kernel+0x2bc/0x43c with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 8.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_idle_ns: 440795202120 ns
[    0.000000] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns
[    0.008886] Console: colour dummy device 80x25
[    0.013392] printk: console [tty1] enabled
[    0.017939] printk: bootconsole [ec_imx6q0] disabled
[    0.023429] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 BogoMIPS (lpj=32000)
[    0.023433] pid_max: default: 32768 minimum: 301
[    0.023511] LSM: Security Framework initializing
[    0.023580] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.023597] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.024807] ASID allocator initialised with 32768 entries
[    0.024885] rcu: Hierarchical SRCU implementation.
[    0.026294] EFI services will not be available.
[    0.026478] smp: Bringing up secondary CPUs ...
[    0.026960] Detected VIPT I-cache on CPU1
[    0.026980] GICv3: CPU1: found redistributor 1 region 0:0x00000000388a0000
[    0.027009] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.027590] Detected VIPT I-cache on CPU2
[    0.027603] GICv3: CPU2: found redistributor 2 region 0:0x00000000388c0000
[    0.027621] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.028103] Detected VIPT I-cache on CPU3
[    0.028116] GICv3: CPU3: found redistributor 3 region 0:0x00000000388e0000
[    0.028130] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.028192] smp: Brought up 1 node, 4 CPUs
[    0.028196] SMP: Total of 4 processors activated.
[    0.028199] CPU features: detected: 32-bit EL0 Support
[    0.028203] CPU features: detected: CRC32 instructions
[    0.033709] CPU: All CPU(s) started at EL2
[    0.033726] alternatives: patching kernel code
[    0.034867] devtmpfs: initialized
[    0.046484] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.046504] futex hash table entries: 1024 (order: 5, 131072 bytes, linear)
[    0.072523] pinctrl core: initialized pinctrl subsystem
[    0.073039] DMI not present or invalid.
[    0.073285] NET: Registered protocol family 16
[    0.083527] DMA: preallocated 256 KiB pool for atomic allocations
[    0.083553] audit: initializing netlink subsys (disabled)
[    0.083752] audit: type=2000 audit(0.076:1): state=initialized audit_enabled=0 res=1
[    0.084432] cpuidle: using governor menu
[    0.085109] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.086177] Serial: AMBA PL011 UART driver
[    0.086235] imx mu driver is registered.
[    0.086258] imx rpmsg driver is registered.
[    0.091790] imx8mp-pinctrl 30330000.pinctrl: initialized IMX pinctrl driver
[    0.113831] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.113839] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.113843] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.113846] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.114757] cryptd: max_cpu_qlen set to 1000
[    0.117965] ACPI: Interpreter disabled.
[    0.119868] iommu: Default domain type: Translated
[    0.120009] vgaarb: loaded
[    0.120368] SCSI subsystem initialized
[    0.120497] libata version 3.00 loaded.
[    0.120724] usbcore: registered new interface driver usbfs
[    0.120765] usbcore: registered new interface driver hub
[    0.120796] usbcore: registered new device driver usb
[    0.122430] mc: Linux media interface: v0.10
[    0.122457] videodev: Linux video capture interface: v2.00
[    0.122531] pps_core: LinuxPPS API ver. 1 registered
[    0.122534] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.122554] PTP clock support registered
[    0.122717] EDAC MC: Ver: 3.0.0
[    0.123685] No BMan portals available!
[    0.123983] QMan: Allocated lookup table at (____ptrval____), entry count 65537
[    0.124347] No QMan portals available!
[    0.124894] No USDPAA memory, no 'fsl,usdpaa-mem' in device-tree
[    0.125265] FPGA manager framework
[    0.125364] Advanced Linux Sound Architecture Driver Initialized.
[    0.126580] clocksource: Switched to clocksource arch_sys_counter
[    0.126732] VFS: Disk quotas dquot_6.6.0
[    0.126778] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.126952] pnp: PnP ACPI: disabled
[    0.133705] thermal_sys: Registered thermal governor 'step_wise'
[    0.133709] thermal_sys: Registered thermal governor 'power_allocator'
[    0.134133] NET: Registered protocol family 2
[    0.134280] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.135655] tcp_listen_portaddr_hash hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.135758] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.136014] TCP bind hash table entries: 32768 (order: 8, 1835008 bytes, linear)
[    0.137380] TCP: Hash tables configured (established 32768 bind 32768)
[    0.137524] UDP hash table entries: 2048 (order: 6, 262144 bytes, linear)
[    0.137800] UDP-Lite hash table entries: 2048 (order: 6, 262144 bytes, linear)
[    0.138212] NET: Registered protocol family 1
[    0.138668] RPC: Registered named UNIX socket transport module.
[    0.138672] RPC: Registered udp transport module.
[    0.138674] RPC: Registered tcp transport module.
[    0.138676] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.138683] PCI: CLS 0 bytes, default 64
[    0.139413] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    0.139719] kvm [1]: IPA Size Limit: 40 bits
[    0.140836] kvm [1]: GICv3: no GICV resource entry
[    0.140839] kvm [1]: disabling GICv2 emulation
[    0.140854] kvm [1]: GIC system register CPU interface enabled
[    0.140909] kvm [1]: vgic interrupt IRQ1
[    0.140990] kvm [1]: Hyp mode initialized successfully
[    0.144171] Initialise system trusted keyrings
[    0.144291] workingset: timestamp_bits=44 max_order=20 bucket_order=0
[    0.151804] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.152439] NFS: Registering the id_resolver key type
[    0.152458] Key type id_resolver registered
[    0.152461] Key type id_legacy registered
[    0.152472] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.152476] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.152496] jffs2: version 2.2. (NAND) \xc2\xa9 2001-2006 Red Hat, Inc.
[    0.166191] Key type asymmetric registered
[    0.166196] Asymmetric key parser 'x509' registered
[    0.166225] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
[    0.166229] io scheduler mq-deadline registered
[    0.166233] io scheduler kyber registered
[    0.167911] imx8-pcie-phy 32f00000.pcie-phy: failed to get imx pcie phy clock
[    0.170433] EINJ: ACPI disabled.
[    0.176641] i.MX8MP clock driver probe done
[    0.178547] mxs-dma 33000000.dma-apbh: initialized
[    0.179360] Bus freq driver module loaded
[    0.185183] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.187587] 30880000.serial: ttymxc2 at MMIO 0x30880000 (irq = 27, base_baud = 1500000) is a IMX
[    0.187631] printk: console [ttymxc2] enabled
[    0.190218] imx-drm display-subsystem: no available port
[    0.202948] brd: module loaded
[    0.210284] loop: module loaded
[    0.210731] zram: Added device: zram0
[    0.219427] libphy: Fixed MDIO Bus: probed
[    0.219733] tun: Universal TUN/TAP device driver, 1.6
[    0.220550] Freescale FM module, FMD API version 21.1.0
[    0.220803] Freescale FM Ports module
[    0.221150] imx-dwmac 30bf0000.ethernet: IRQ eth_lpi not found
[    0.221231] imx-dwmac 30bf0000.ethernet: no reset control found
[    0.221912] VFIO - User Level meta-driver version: 0.3
[    0.225918] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.225926] ehci-pci: EHCI PCI platform driver
[    0.226419] usbcore: registered new interface driver usb-storage
[    0.226494] usbcore: registered new interface driver usbserial_generic
[    0.226510] usbserial: USB Serial support registered for generic
[    0.226536] usbcore: registered new interface driver cp210x
[    0.226554] usbserial: USB Serial support registered for cp210x
[    0.226632] usbcore: registered new interface driver ftdi_sio
[    0.226650] usbserial: USB Serial support registered for FTDI USB Serial Device
[    0.226678] usbcore: registered new interface driver pl2303
[    0.226700] usbserial: USB Serial support registered for pl2303
[    0.226726] usbcore: registered new interface driver usb_serial_simple
[    0.226743] usbserial: USB Serial support registered for carelink
[    0.226762] usbserial: USB Serial support registered for zio
[    0.226780] usbserial: USB Serial support registered for funsoft
[    0.226798] usbserial: USB Serial support registered for flashloader
[    0.226819] usbserial: USB Serial support registered for google
[    0.226837] usbserial: USB Serial support registered for libtransistor
[    0.226854] usbserial: USB Serial support registered for vivopay
[    0.226874] usbserial: USB Serial support registered for moto_modem
[    0.226893] usbserial: USB Serial support registered for motorola_tetra
[    0.226911] usbserial: USB Serial support registered for novatel_gps
[    0.226928] usbserial: USB Serial support registered for hp4x
[    0.226947] usbserial: USB Serial support registered for suunto
[    0.226965] usbserial: USB Serial support registered for siemens_mpi
[    0.229407] input: 30370000.snvs:snvs-powerkey as /devices/platform/soc@0/30000000.bus/30370000.snvs/30370000.snvs:snvs-powerkey/input/input0
[    0.231235] snvs_rtc 30370000.snvs:snvs-rtc-lp: registered as rtc1
[    0.231368] i2c /dev entries driver
[    0.240302] imx2-wdt 30280000.watchdog: timeout 60 sec (nowayout=0)
[    0.240658] EDAC MC: ECC not enabled
[    0.241876] sdhci: Secure Digital Host Controller Interface driver
[    0.241881] sdhci: Copyright(c) Pierre Ossman
[    0.242104] Synopsys Designware Multimedia Card Interface Driver
[    0.242804] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.247673] caam 30900000.crypto: device ID = 0x0a16040100000100 (Era 9)
[    0.247683] caam 30900000.crypto: job rings = 3, qi = 0
[    0.255721] caam algorithms registered in /proc/crypto
[    0.256567] caam 30900000.crypto: caam pkc algorithms registered in /proc/crypto
[    0.256577] caam 30900000.crypto: registering rng-caam
[    0.256850] Device caam-keygen registered
[    0.259440] caam-snvs 30370000.caam-snvs: violation handlers armed - non-secure state
[    0.259636] hidraw: raw HID events driver (C) Jiri Kosina
[    0.259754] usbcore: registered new interface driver usbhid
[    0.259757] usbhid: USB HID core driver
[    0.261379] No fsl,qman node
[    0.261383] Freescale USDPAA process driver
[    0.261385] fsl-usdpaa: no region found
[    0.261387] Freescale USDPAA process IRQ driver
[    0.265323] hantrodec 0 : module inserted. Major = 234
[    0.265910] hantrodec 1 : module inserted. Major = 234
[    0.266723] hantroenc: HW at base <0000000038320000> with ID <0x80006200>
[    0.266950] hx280enc: module inserted. Major <511>
[    0.274380] pktgen: Packet Generator for packet performance testing. Version: 2.75
[    0.275317] NET: Registered protocol family 26
[    0.275896] NET: Registered protocol family 10
[    0.276500] Segment Routing with IPv6
[    0.276546] NET: Registered protocol family 17
[    0.276591] tsn generic netlink module v1 init...
[    0.276645] Key type dns_resolver registered
[    0.277069] registered taskstats version 1
[    0.277074] Loading compiled-in X.509 certificates
[    0.305270] GPIO line 61 (CTRL_SLEEP_MOCI#) hogged as output/high
[    0.309818] reg-fixed-voltage regulator-module-eth1phy: Failed to register regulator: -517
[    0.310683] +V3.3_SD: supplied by +V3.3_SW
[    0.312906] pca9450 0-0025: Device ID=0x30
[    0.313212] pca9450 0-0025: gpio_intr = 3
[    0.313220] pca9450 0-0025: chip_irq=59
[    0.318752] random: fast init done
[    0.333549] rtc-ds1307 0-0032: registered as rtc0
[    0.336520] at24 0-0050: 256 byte 24c02 EEPROM, writable, 16 bytes/write
[    0.336576] i2c i2c-0: IMX I2C adapter registered
[    0.337982] i2c i2c-1: IMX I2C adapter registered
[    0.339694] i2c i2c-2: IMX I2C adapter registered
[    0.341054] i2c i2c-3: IMX I2C adapter registered
[    0.341330] imx8mq-usb-phy 381f0040.usb-phy: 381f0040.usb-phy supply vbus not found, using dummy regulator
[    0.341604] imx8mq-usb-phy 382f0040.usb-phy: 382f0040.usb-phy supply vbus not found, using dummy regulator
[    0.343587] random: crng init done
[    0.343721] imx6q-pcie 33800000.pcie: PLL REF_CLK is used!.
[    0.344332] imx6q-pcie 33800000.pcie: PCIe PHY PLL clock is locked.
[    0.344662] imx-dwmac 30bf0000.ethernet: IRQ eth_lpi not found
[    0.344739] imx-dwmac 30bf0000.ethernet: no reset control found
[    0.346386] imx6q-pcie 33800000.pcie: PCIe PLL locked after 0 us.
[    0.348042] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    0.348065] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1
[    0.348415] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220fe6c hci version 0x110 quirks 0x0000002001810010
[    0.348880] xhci-hcd xhci-hcd.1.auto: irq 52, io mem 0x38200000
[    0.349944] hub 1-0:1.0: USB hub found
[    0.349971] hub 1-0:1.0: 1 port detected
[    0.350262] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[    0.350273] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2
[    0.350285] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[    0.350367] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    0.350872] hub 2-0:1.0: USB hub found
[    0.350895] hub 2-0:1.0: 1 port detected
[    0.351446] imx-cpufreq-dt imx-cpufreq-dt: cpu speed grade 7 mkt segment 2 supported-hw 0x80 0x4
[    0.391179] mmc0: SDHCI controller on 30b40000.mmc [30b40000.mmc] using ADMA
[    0.392041] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[    0.425805] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
[    0.446848] mmc0: new ultra high speed SDR104 SDIO card at address 0001
[    0.455630] mmc2: SDHCI controller on 30b60000.mmc [30b60000.mmc] using ADMA
[    0.457939] On-module +V3.3_ETH: supplied by On-module +V3.3 (buck4)
[    0.553010] mmc2: new HS400 MMC card at address 0001
[    0.553730] mmcblk2: mmc2:0001 S0J56X 14.8 GiB
[    0.553875] mmcblk2boot0: mmc2:0001 S0J56X partition 1 31.5 MiB
[    0.554013] mmcblk2boot1: mmc2:0001 S0J56X partition 2 31.5 MiB
[    0.554443] mmcblk2rpmb: mmc2:0001 S0J56X partition 3 4.00 MiB, chardev (236:0)
[    0.555650]  mmcblk2: p1 p2
[    0.558968] imx6q-pcie 33800000.pcie: host bridge /pcie@33800000 ranges:
[    0.558991] imx6q-pcie 33800000.pcie:    IO 0x1ff80000..0x1ff8ffff -> 0x00000000
[    0.559000] imx6q-pcie 33800000.pcie:   MEM 0x18000000..0x1fefffff -> 0x18000000
[    0.606900] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[    0.665544] imx-dwmac 30bf0000.ethernet: IRQ eth_lpi not found
[    0.665611] imx-dwmac 30bf0000.ethernet: no reset control found
[    0.666415] imx-dwmac 30bf0000.ethernet: User ID: 0x10, Synopsys ID: 0x51
[    0.666422] imx-dwmac 30bf0000.ethernet:     DWMAC4/5
[    0.666426] imx-dwmac 30bf0000.ethernet: DMA HW capability register supported
[    0.666429] imx-dwmac 30bf0000.ethernet: RX Checksum Offload Engine supported
[    0.666432] imx-dwmac 30bf0000.ethernet: TX Checksum insertion supported
[    0.666434] imx-dwmac 30bf0000.ethernet: Wake-Up On Lan supported
[    0.666460] imx-dwmac 30bf0000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    0.666465] imx-dwmac 30bf0000.ethernet: Enabled Flow TC (entries=8)
[    0.666473] imx-dwmac 30bf0000.ethernet: Enabling HW TC (entries=256, max_off=256)
[    0.666594] libphy: stmmac: probed
[    0.671801] input: gpio-keys as /devices/platform/gpio-keys/input/input1
[    0.672978] rtc-ds1307 0-0032: setting system clock to 2022-03-23T09:21:22 UTC (1648027282)
[    0.690299] ALSA device list:
[    0.690307]   No soundcards found.
[    0.799338] hub 1-1:1.0: USB hub found
[    0.799968] hub 1-1:1.0: 3 ports detected
[    0.883232] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd
[    0.927608] hub 2-1:1.0: USB hub found
[    0.928242] hub 2-1:1.0: 2 ports detected
[    1.563927] imx6q-pcie 33800000.pcie: Phy link never came up
[    1.563953] imx6q-pcie 33800000.pcie: failed to initialize host
[    1.563956] imx6q-pcie 33800000.pcie: unable to add pcie port.
[    1.566614] usb 1-1.3: new high-speed USB device number 3 using xhci-hcd
[    1.572334] EXT4-fs (mmcblk2p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.572397] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.574218] devtmpfs: mounted
[    1.574958] Freeing unused kernel memory: 2496K
[    1.606951] Run /sbin/init as init process
[    1.706968] systemd[1]: systemd 244.5+ running in system mode. (-PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS -ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
[    1.707419] systemd[1]: Detected architecture arm64.
[    1.829547] systemd[1]: Set hostname to <verdin-imx8mp-06976886>.
[    2.088024] systemd[1]: Created slice system-getty.slice.
[    2.217724] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    2.339452] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[    2.340605] systemd[1]: Created slice User and Session Slice.
[    2.340959] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    2.341245] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    2.341491] systemd[1]: Reached target Paths.
[    2.341623] systemd[1]: Reached target Remote File Systems.
[    2.341742] systemd[1]: Reached target Slices.
[    2.341863] systemd[1]: Reached target Swap.
[    2.342170] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    2.342763] systemd[1]: Listening on Journal Audit Socket.
[    2.343195] systemd[1]: Listening on Journal Socket (/dev/log).
[    2.416339] systemd[1]: Listening on Journal Socket.
[    2.416913] systemd[1]: Listening on Network Service Netlink Socket.
[    2.417318] systemd[1]: Listening on udev Control Socket.
[    2.417622] systemd[1]: Listening on udev Kernel Socket.
[    2.420353] systemd[1]: Mounting Huge Pages File System...
[    2.452180] systemd[1]: Mounting POSIX Message Queue File System...
[    2.456241] systemd[1]: Mounting Kernel Debug File System...
[    2.471815] systemd[1]: Mounting Temporary Directory (/tmp)...
[    2.475715] systemd[1]: Starting Create list of static device nodes for the current kernel...
[    2.493313] systemd[1]: Starting File System Check on Root Device...
[    2.498128] systemd[1]: Starting Journal Service...
[    2.511041] systemd[1]: Condition check resulted in Load Kernel Modules being skipped.
[    2.511346] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
[    2.514328] systemd[1]: Mounting Kernel Configuration File System...
[    2.517906] systemd[1]: Starting Apply Kernel Variables...
[    2.552457] systemd[1]: Starting udev Coldplug all Devices...
[    2.559365] systemd[1]: Mounted Huge Pages File System.
[    2.567613] systemd[1]: Started Journal Service.
[    2.604115] EXT4-fs (mmcblk2p2): re-mounted. Opts: (null)
[    2.627191] systemd-journald[282]: Received client request to flush runtime journal.
[    3.674882] cdc_acm 1-1.3:1.0: skipping garbage
[    3.692334] cdc_acm 1-1.3:1.1: ttyACM0: USB ACM device
[    3.705826] usbcore: registered new interface driver cdc_acm
[    3.705834] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    3.849092] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.864779] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.879797] Bluetooth: Core ver 2.22
[    3.880001] NET: Registered protocol family 31
[    3.880005] Bluetooth: HCI device and connection manager initialized
[    3.880018] Bluetooth: HCI socket layer initialized
[    3.880024] Bluetooth: L2CAP socket layer initialized
[    3.880043] Bluetooth: SCO socket layer initialized
[    3.896915] Bluetooth: vendor=0x2df, device=0x9142, class=255, fn=2
[    3.999807] imx-sdma 30bd0000.dma-controller: loaded firmware 4.5
[    4.040512] fpga_manager fpga0: altera-ps-spi spi1.0 registered
[    4.040577] spi_imx 30820000.spi: probed
[    4.057585] of-fpga-region altera_region: FPGA Region probed
[    4.388315] using random self ethernet address
[    4.388323] using random host ethernet address
[    4.463527] usb0: HOST MAC 92:59:e8:b2:18:56
[    4.463607] usb0: MAC 02:46:42:ad:88:d7
[    4.583500] imx-dwmac 30bf0000.ethernet eth0: PHY [stmmac-0:07] driver [Microchip KSZ9131 Gigabit PHY]
[    4.596578] imx-dwmac 30bf0000.ethernet eth0: No Safety Features support found
[    4.596597] imx-dwmac 30bf0000.ethernet eth0: IEEE 1588-2008 Advanced Timestamp supported
[    4.596784] imx-dwmac 30bf0000.ethernet eth0: registered PTP clock
[    4.596794] imx-dwmac 30bf0000.ethernet eth0: configuring for phy/rgmii-id link mode
[    4.913810] mwifiex_sdio mmc0:0001:1: info: FW download over, size 623240 bytes
[    5.776145] mwifiex_sdio mmc0:0001:1: WLAN FW is active
[    5.777254] btmrvl_sdio mmc0:0001:2: sdio device tree data not available
[    5.807385] mwifiex_sdio mmc0:0001:1: Unknown api_id: 3
[    5.807398] mwifiex_sdio mmc0:0001:1: Unknown api_id: 4
[    5.807402] mwifiex_sdio mmc0:0001:1: Unknown GET_HW_SPEC TLV type: 0x217
[    5.842282] mwifiex_sdio mmc0:0001:1: info: MWIFIEX VERSION: mwifiex 1.0 (16.68.1.p197)
[    5.842293] mwifiex_sdio mmc0:0001:1: driver_version = mwifiex 1.0 (16.68.1.p197)
[    5.850104] mwifiex_sdio mmc0:0001:1 wlan0: renamed from mlan0
[    6.026269] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   31.719604] AUX_USB: disabling
[   31.719616] MIPI_PHY: disabling
[   31.719619] +V1.8_SW: disabling
[   31.719622] +V3.3_SW: disabling
[   31.719625] +V3.3_SD: disabling
0 Kudos
EBERLAZARE_I_Intel
1,609 Views

Hi,


As mentioned, you need to use Partial Reconfiguration, in order to be able to configure the FPGA via Linux, as the fabric cannot be configured from Linux. If you need to define or change the fabric behavior from Linux, you must use PR (partial reconfiguration):


https://rocketboards.org/foswiki/Documentation/BuildingBootloaderCycloneVAndArria10#Appendix_45_Reducing_Arria_10_Fabric_Configuration_Time


Thus, to answer your question, please refer to below:

https://www.intel.com/content/www/us/en/docs/programmable/683034/current/partial-reconfiguration-with-the-hps.html


Section: Loading Partial Reconfiguration Designs Using Linux




0 Kudos
MehmetFide
Novice
1,598 Views

Hi,

 

Thank you for your effort but, we are not using Arria 10 HPS.

We have Arria 10 GX which doesn't have hard processor system (HPS).

And with the GX, it is possible to use an external processor with Linux and configure GX through Passive Serial Interface as shown at below link:

 

7.2.2.1. Passive Serial Single-Device Configuration Using an External Host

https://www.intel.com/content/www/us/en/docs/programmable/683461/current/passive-serial-single-device-configuration-92795.html

 

Thanks.

 

0 Kudos
EBERLAZARE_I_Intel
1,547 Views

Hi,


Thanks for the info, I have confused myself with the question, I get your inquiry now.


I need to check with our configuration expert on this issue, I will get back to you once I have the info for you, regarding configuring your A10 GX FPGA when your hosts boot up, if this is possible.


0 Kudos
EBERLAZARE_I_Intel
1,534 Views

Hi,


Unfortunately, we do not have a direct documentation for this example.

The connection need to be like in the link you have shown previously:

https://www.intel.com/content/www/us/en/docs/programmable/683461/current/passive-serial-single-device-configuration-92795.html


Since you are using you own processor to do configuration, you may need to use JAM player. Running C coding from your processor to interact with FPGA.


Regarding the JAM player, please provide me your active email so we can send to you this software.




0 Kudos
EBERLAZARE_I_Intel
1,525 Views

Hi,


Do you have any update from your side?


0 Kudos
Reply