C5 SoC Quickstart
This guide provides quick instructions on how to setup the DC2677A on:
Cyclone V SoC Development Kit via HSMC connector
Cyclone V SoCKit Jumper Configuration
Clock Selection
Jumper |
Configuration |
|---|---|
J15 (CLOCKSEL0) |
Position 2-3 |
J16 (CLOCKSEL1) |
Position 2-3 |
Boot Selection
Jumper |
Configuration |
|---|---|
J17 (BOOTSEL0) |
Position 1-2 |
J19 (BOOTSEL1) |
Position 2-3 |
J18 (BOOTSEL2) |
Position 1-2 |
Power Jumper
Jumper |
Setting |
|---|---|
JP2 |
3.3V |
Mode Selection Switches (SW6)
Configure the C5SoC board SW6[4:0] switches to OFF, ON, ON, OFF, ON (10010, where 1 = OFF, 0 = ON) to select the default ASx4 configuration mode.
All the products described on this page include ESD (electrostatic discharge) sensitive devices. Electrostatic charges as high as 4000V readily accumulate on the human body or test equipment and can discharge without detection. Although the boards feature ESD protection circuitry, permanent damage may occur on devices subjected to high-energy electrostatic discharges. Therefore, proper ESD precautions are recommended to avoid performance degradation or loss of functionality. This includes removing static charge on external equipment, cables, or antennas before connecting to the device.
Using Linux as software
Necessary files
They can either be taken from the SD card – already generated by us, or you can build them manually.
In the following sections, we explain how to take them from the SD card.
The following files are needed for the system to boot:
FPGA bitstream + U-Boot SPL:
u-boot-with-spl.sfpLinux Kernel image:
zImageLinux device tree:
socfpga_cyclone5_sockit_dc2677a_ltc235x_cmos.dtbextlinux.confin the extlinux folder from SD cardWrite
u-boot-with-spl.sfpfrom the socfpga_cyclone5_sockit_dc2677a folder on the third SD card partition:~$
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 14.9G 0 disk ├─sda1 8:1 1 1G 0 part /media/user/BOOT ├─sda2 8:2 1 7.6G 0 part /media/user/rootfs └─sda3 8:3 1 4M 0 part
~$
dd if="./u-boot-with-spl.sfp" of="/dev/sda3" bs=512
2048+0 records in 2048+0 records out 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.25035 s, 4.2 MB/s
Instructions on how to manually build the boot files from source can be found here:
Building the Intel SoC-FPGA kernel and devicetrees from source
DC2677A HDL project build documentation. More HDL build details at Build an HDL project.
Required software
microSD card (16 GB minimum) imaged with Kuiper (check out that guide on how to do it, then come back to this section)
A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1)
Required hardware
Cyclone V SoC Development Kit FPGA board and its power supply (12V)
DC2677A board
Power supply: +16V/+18V and -16V/-18V for the DC2677A
microSD card with at least 16 GB of memory
USB cable (Male Mini-B to Male-A) for UART
LAN cable (Ethernet)
More details as to why you need these, can be found at Prerequisites.
Cyclone V SoCKit Jumper Configuration
Configure the following jumpers and switches on the Cyclone V SoCKit before powering on:
Clock Selection (J15, J16)
Jumper |
Function |
Setting |
Description |
|---|---|---|---|
J15 |
CLOCKSEL0 |
Position 2-3 |
Clock selection bit 0; selects on-board oscillator |
J16 |
CLOCKSEL1 |
Position 2-3 |
Clock selection bit 1; selects on-board oscillator |
Boot Selection (J17, J18, J19)
Jumper |
Function |
Setting |
Description |
|---|---|---|---|
J17 |
BOOTSEL0 |
Position 1-2 |
Boot mode selection bit 0; SD/MMC boot |
J19 |
BOOTSEL1 |
Position 2-3 |
Boot mode selection bit 1; SD/MMC boot |
J18 |
BOOTSEL2 |
Position 1-2 |
Boot mode selection bit 2; SD/MMC boot |
HSMC I/O Voltage (JP2)
Jumper |
Function |
Setting |
Description |
|---|---|---|---|
JP2 |
HSMC I/O voltage |
3.3V |
Sets HSMC connector I/O voltage to 3.3V for DC2677A compatibility |
Mode Selection Switches (SW6)
Switch |
Function |
Position |
|---|---|---|
SW 6.1 |
MSEL0 |
0 |
SW 6.2 |
MSEL1 |
1 |
SW 6.3 |
MSEL2 |
x (any) |
SW 6.4 |
MSEL3 |
0 |
SW 6.5 |
MSEL4 |
0 |
Setting up the hardware
Follow the steps in this order, to avoid damaging the components:
Caution
This project was tested with VADJ = 2.5 V - LVDS; VADJ = 3.3V - CMOS
Configure the jumpers and switches on the Cyclone V SoCKit as described above
Connect the DC2677A board to the Cyclone V SoCKit HSMC connector
Insert the microSD card into the card socket on the FPGA board
Plug in an Ethernet cable from your router/switch to the Ethernet port on the FPGA board
Connect the USB Mini-B cable from the FPGA board UART port to your host PC
Connect the +16V/+18V and -16V/-18V power supplies to the DC2677A
Connect the 12V power supply to the Cyclone V SoCKit
Turn on the power switch on the FPGA board
Boot messages
The following is what is printed in the serial console after connecting to the proper ttyUSB or COM port (baud rate 115200).
Configuring the FPGA from the SD card will take a few seconds before the boot process continues.
U-Boot 2021.10-17979-ge7beb4cb47-dirty (Oct 25 2024 - 02:04:00 +0100), Build: jenkins-hdl_2023_r2-builds-hdl_2023_r2_latest_commit-projects-dc2677a.c5soc-1
CPU: Altera SoCFPGA Platform
FPGA: Altera Cyclone V, SE/A6 or SX/C6 or ST/D6, version 0x0
BOOT: SD/MMC Internal Transceiver (3.0V)
Watchdog enabled
DRAM: 1 GiB
MMC: dwmmc0@ff704000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Model: Altera SOCFPGA Cyclone V SoC Development Kit
Net:
Warning: ethernet@ff702000 (eth0) using random MAC address - 52:ca:45:b3:5f:b9
eth0: ethernet@ff702000
Hit any key to stop autoboot: 0
150 bytes read in 6 ms (24.4 KiB/s)
## Executing script at 02100000
2531340 bytes read in 132 ms (18.3 MiB/s)
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
142 bytes read in 8 ms (16.6 KiB/s)
1: Linux Default
Retrieving file: /extlinux/../zImage
9543072 bytes read in 480 ms (19 MiB/s)
append: root=/dev/mmcblk0p2 rw rootwait earlyprintk console=ttyS0,115200n8
Retrieving file: /extlinux/../socfpga.dtb
28557 bytes read in 11 ms (2.5 MiB/s)
Kernel image @ 0x1000000 [ 0x000000 - 0x919da0 ]
## Flattened Device Tree blob at 02000000
Booting using the fdt blob at 0x2000000
Loading Device Tree to 09ff6000, end 09ffff8c ... OK
Starting kernel ...
Deasserting all peripheral resets
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 6.1.70-284114-g2e8908932dfd (jenkins@romlxbuild1) (arm-linux-gnueabi-gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #1063 SMP Tue Mar 18 17:12:50 EET 2025
[ 0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Terasic SoCkit
[ 0.000000] printk: bootconsole [earlycon0] enabled
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] cma: Reserved 128 MiB at 0x38000000
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000000000000-0x000000002fffffff]
[ 0.000000] HighMem [mem 0x0000000030000000-0x000000003fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000000000000-0x000000003fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003fffffff]
[ 0.000000] percpu: Embedded 15 pages/cpu s30036 r8192 d23212 u61440
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 260608
[ 0.000000] Kernel command line: root=/dev/mmcblk0p2 rw rootwait earlyprintk console=ttyS0,115200n8
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 879772K/1048576K available (14336K kernel code, 1367K rwdata, 10896K rodata, 1024K init, 498K bss, 37732K reserved, 131072K cma-reserved, 131072K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] ftrace: allocating 46749 entries in 138 pages
[ 0.000000] ftrace: allocated 137 pages with 3 groups
[ 0.000000] trace event string verifier disabled
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 0.000000] Rude variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] L2C-310 erratum 769419 enabled
[ 0.000000] L2C-310 enabling early BRESP for Cortex-A9
[ 0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[ 0.000000] L2C-310 ID prefetch enabled, offset 8 lines
[ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[ 0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
[ 0.000000] L2C-310: CACHE_ID 0x410030c9, AUX_CTRL 0x76460001
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns
[ 0.000001] sched_clock: 32 bits at 100MHz, resolution 10ns, wraps every 21474836475ns
[ 0.007891] Switching to timer-based delay loop, resolution 10ns
[ 0.014265] Console: colour dummy device 80x30
[ 0.018727] Calibrating delay loop (skipped), value calculated using timer frequency.. 200.00 BogoMIPS (lpj=1000000)
[ 0.029220] CPU: Testing write buffer coherency: ok
[ 0.034119] CPU0: Spectre v2: using BPIALL workaround
[ 0.039152] pid_max: default: 32768 minimum: 301
[ 0.043923] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.051223] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.059823] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.066447] cblist_init_generic: Setting adjustable number of callback queues.
[ 0.073674] cblist_init_generic: Setting shift to 1 and lim to 1.
[ 0.079882] Setting up static identity map for 0x100000 - 0x100060
[ 0.086215] rcu: Hierarchical SRCU implementation.
[ 0.091007] rcu: Max phase no-delay instances is 1000.
[ 0.096680] smp: Bringing up secondary CPUs ...
[ 0.102018] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.102038] CPU1: Spectre v2: using BPIALL workaround
[ 0.112815] smp: Brought up 1 node, 2 CPUs
[ 0.116902] SMP: Total of 2 processors activated (400.00 BogoMIPS).
[ 0.123168] CPU: All CPU(s) started in SVC mode.
[ 0.128440] devtmpfs: initialized
[ 0.136531] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[ 0.144396] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.154224] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[ 0.167677] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.175638] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.183566] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[ 0.191563] hw-breakpoint: maximum watchpoint size is 4 bytes.
[ 0.224031] SCSI subsystem initialized
[ 0.227986] usbcore: registered new interface driver usbfs
[ 0.233539] usbcore: registered new interface driver hub
[ 0.238867] usbcore: registered new device driver usb
[ 0.244066] usb_phy_generic soc:usbphy: supply vcc not found, using dummy regulator
[ 0.251831] usb_phy_generic soc:usbphy: dummy supplies not allowed for exclusive requests
[ 0.260373] mc: Linux media interface: v0.10
[ 0.264706] videodev: Linux video capture interface: v2.00
[ 0.270251] pps_core: LinuxPPS API ver. 1 registered
[ 0.275209] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.284332] PTP clock support registered
[ 0.288520] jesd204: found 0 devices and 0 topologies
[ 0.293607] FPGA manager framework
[ 0.297080] Advanced Linux Sound Architecture Driver Initialized.
[ 0.304076] vgaarb: loaded
[ 0.309974] clocksource: Switched to clocksource timer1
[ 0.326063] NET: Registered PF_INET protocol family
[ 0.331200] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.340410] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.348751] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.356490] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.364284] TCP bind hash table entries: 8192 (order: 5, 131072 bytes, linear)
[ 0.371719] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.378167] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.384819] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.392050] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.400328] RPC: Registered named UNIX socket transport module.
[ 0.406233] RPC: Registered udp transport module.
[ 0.410939] RPC: Registered tcp transport module.
[ 0.415623] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.422057] PCI: CLS 0 bytes, default 64
[ 0.435569] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[ 0.444909] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[ 0.456956] NFS: Registering the id_resolver key type
[ 0.462136] Key type id_resolver registered
[ 0.466306] Key type id_legacy registered
[ 0.471125] ntfs: driver 2.1.32 [Flags: R/W].
[ 0.475641] jffs2: version 2.2. (NAND) � 2001-2006 Red Hat, Inc.
[ 0.482194] fuse: init (API version 7.37)
[ 0.486741] bounce: pool size: 64 pages
[ 0.490684] io scheduler mq-deadline registered
[ 0.495200] io scheduler kyber registered
[ 0.505162] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[ 0.512619] printk: console [ttyS0] disabled
[ 0.516940] ffc02000.serial0: ttyS0 at MMIO 0xffc02000 (irq = 31, base_baud = 6250000) is a 16550A
[ 0.525941] printk: console [ttyS0] enabled
[ 0.525941] printk: console [ttyS0] enabled
[ 0.534289] printk: bootconsole [earlycon0] disabled
[ 0.534289] printk: bootconsole [earlycon0] disabled
[ 0.544977] ffc03000.serial1: ttyS1 at MMIO 0xffc03000 (irq = 32, base_baud = 6250000) is a 16550A
[ 0.564051] brd: module loaded
[ 0.567652] SPI driver spidev has no spi_device_id for adi,swspi
[ 0.576507] CAN device driver interface
[ 0.580717] socfpga-dwmac ff702000.ethernet: IRQ eth_wake_irq not found
[ 0.587315] socfpga-dwmac ff702000.ethernet: IRQ eth_lpi not found
[ 0.593649] socfpga-dwmac ff702000.ethernet: PTP uses main clock
[ 0.599652] socfpga-dwmac ff702000.ethernet: No sysmgr-syscon node found
[ 0.606343] socfpga-dwmac ff702000.ethernet: Unable to parse OF data
[ 0.612688] socfpga-dwmac: probe of ff702000.ethernet failed with error -524
[ 0.620152] stmmaceth ff702000.ethernet: IRQ eth_wake_irq not found
[ 0.626405] stmmaceth ff702000.ethernet: IRQ eth_lpi not found
[ 0.632347] stmmaceth ff702000.ethernet: PTP uses main clock
[ 0.638184] stmmaceth ff702000.ethernet: Version ID not available
[ 0.644297] stmmaceth ff702000.ethernet: DWMAC1000
[ 0.649162] stmmaceth ff702000.ethernet: DMA HW capability register supported
[ 0.656298] stmmaceth ff702000.ethernet: RX Checksum Offload Engine supported
[ 0.663418] stmmaceth ff702000.ethernet: COE Type 2
[ 0.668279] stmmaceth ff702000.ethernet: TX Checksum insertion supported
[ 0.674968] stmmaceth ff702000.ethernet: Enhanced/Alternate descriptors
[ 0.681567] stmmaceth ff702000.ethernet: Extended descriptors not supported
[ 0.688502] stmmaceth ff702000.ethernet: Ring mode enabled
[ 0.693997] stmmaceth ff702000.ethernet: device MAC address 02:f4:6f:64:a6:51
[ 0.709932] Micrel KSZ9021 Gigabit PHY stmmac-0:01: attached PHY driver (mii_bus:phy_addr=stmmac-0:01, irq=POLL)
[ 0.721334] usbcore: registered new interface driver asix
[ 0.726764] usbcore: registered new interface driver ax88179_178a
[ 0.732891] usbcore: registered new interface driver cdc_ether
[ 0.738734] usbcore: registered new interface driver net1080
[ 0.744427] usbcore: registered new interface driver cdc_subset
[ 0.750365] usbcore: registered new interface driver zaurus
[ 0.755986] usbcore: registered new interface driver cdc_ncm
[ 0.761671] usbcore: registered new interface driver r8153_ecm
[ 0.768153] dwc2 ffb40000.usb: supply vusb_d not found, using dummy regulator
[ 0.775448] dwc2 ffb40000.usb: supply vusb_a not found, using dummy regulator
[ 0.787100] dwc2 ffb40000.usb: DWC OTG Controller
[ 0.791847] dwc2 ffb40000.usb: new USB bus registered, assigned bus number 1
[ 0.798899] dwc2 ffb40000.usb: irq 35, io mem 0xffb40000
[ 0.804420] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
[ 0.812683] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.819879] usb usb1: Product: DWC OTG Controller
[ 0.824579] usb usb1: Manufacturer: Linux 6.1.70-284114-g2e8908932dfd dwc2_hsotg
[ 0.831965] usb usb1: SerialNumber: ffb40000.usb
[ 0.837147] hub 1-0:1.0: USB hub found
[ 0.840957] hub 1-0:1.0: 1 port detected
[ 0.845944] usbcore: registered new interface driver uas
[ 0.851355] usbcore: registered new interface driver usb-storage
[ 0.857426] usbcore: registered new interface driver usbserial_generic
[ 0.863989] usbserial: USB Serial support registered for generic
[ 0.870020] usbcore: registered new interface driver ftdi_sio
[ 0.875764] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 0.883135] usbcore: registered new interface driver upd78f0730
[ 0.889054] usbserial: USB Serial support registered for upd78f0730
[ 0.896425] SPI driver ads7846 has no spi_device_id for ti,tsc2046
[ 0.902608] SPI driver ads7846 has no spi_device_id for ti,ads7843
[ 0.908766] SPI driver ads7846 has no spi_device_id for ti,ads7845
[ 0.914931] SPI driver ads7846 has no spi_device_id for ti,ads7873
[ 0.921296] i2c_dev: i2c /dev entries driver
[ 0.926034] usbcore: registered new interface driver uvcvideo
[ 0.933920] Synopsys Designware Multimedia Card Interface Driver
[ 0.940688] dw_mmc ff704000.dwmmc0: IDMAC supports 32-bit address mode.
[ 0.947379] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.953555] usbcore: registered new interface driver usbhid
[ 0.959112] usbhid: USB HID core driver
[ 0.963234] SPI driver fb_seps525 has no spi_device_id for syncoam,seps525
[ 0.976119] SPI driver adis16475 has no spi_device_id for adi,adis16470
[ 0.982820] SPI driver adis16475 has no spi_device_id for adi,adis16475-1
[ 0.989604] SPI driver adis16475 has no spi_device_id for adi,adis16475-2
[ 0.996424] SPI driver adis16475 has no spi_device_id for adi,adis16475-3
[ 1.003240] SPI driver adis16475 has no spi_device_id for adi,adis16477-1
[ 1.010026] SPI driver adis16475 has no spi_device_id for adi,adis16477-2
[ 1.016791] SPI driver adis16475 has no spi_device_id for adi,adis16477-3
[ 1.023561] SPI driver adis16475 has no spi_device_id for adi,adis16465-1
[ 1.030330] SPI driver adis16475 has no spi_device_id for adi,adis16465-2
[ 1.037090] SPI driver adis16475 has no spi_device_id for adi,adis16465-3
[ 1.043866] SPI driver adis16475 has no spi_device_id for adi,adis16467-1
[ 1.050636] SPI driver adis16475 has no spi_device_id for adi,adis16467-2
[ 1.057397] SPI driver adis16475 has no spi_device_id for adi,adis16467-3
[ 1.064165] SPI driver adis16475 has no spi_device_id for adi,adis16500
[ 1.070761] SPI driver adis16475 has no spi_device_id for adi,adis16501
[ 1.077348] SPI driver adis16475 has no spi_device_id for adi,adis16505-1
[ 1.084114] SPI driver adis16475 has no spi_device_id for adi,adis16505-2
[ 1.090881] SPI driver adis16475 has no spi_device_id for adi,adis16505-3
[ 1.097642] SPI driver adis16475 has no spi_device_id for adi,adis16507-1
[ 1.104415] SPI driver adis16475 has no spi_device_id for adi,adis16507-2
[ 1.111190] SPI driver adis16475 has no spi_device_id for adi,adis16507-3
[ 1.117950] SPI driver adis16475 has no spi_device_id for adi,adis16575-2
[ 1.124718] SPI driver adis16475 has no spi_device_id for adi,adis16575-3
[ 1.131496] SPI driver adis16475 has no spi_device_id for adi,adis16576-2
[ 1.138257] SPI driver adis16475 has no spi_device_id for adi,adis16576-3
[ 1.145025] SPI driver adis16475 has no spi_device_id for adi,adis16577-2
[ 1.151793] SPI driver adis16475 has no spi_device_id for adi,adis16577-3
[ 1.160497] dw_mmc ff704000.dwmmc0: Using internal DMA controller.
[ 1.166673] dw_mmc ff704000.dwmmc0: Version ID is 240a
[ 1.171852] dw_mmc ff704000.dwmmc0: DW MMC controller at irq 37,32 bit host data width,1024 deep fifo
[ 1.181234] mmc_host mmc0: card is polling.
[ 1.185645] fpga_manager fpga0: Altera SOCFPGA FPGA Manager registered
[ 1.193025] usbcore: registered new interface driver snd-usb-audio
[ 1.200008] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[ 1.201522] NET: Registered PF_INET6 protocol family
[ 1.215672] Segment Routing with IPv6
[ 1.219387] In-situ OAM (IOAM) with IPv6
[ 1.223432] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 1.229986] NET: Registered PF_PACKET protocol family
[ 1.235038] NET: Registered PF_KEY protocol family
[ 1.240093] can: controller area network core
[ 1.244496] NET: Registered PF_CAN protocol family
[ 1.249274] can: raw protocol
[ 1.252255] can: broadcast manager protocol
[ 1.255974] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[ 1.256433] can: netlink gateway - max_hops=1
[ 1.266183] mmc0: new high speed SDHC card at address 0001
[ 1.270542] 8021q: 802.1Q VLAN Support v1.8
[ 1.280202] NET: Registered PF_IEEE802154 protocol family
[ 1.285644] Key type dns_resolver registered
[ 1.290029] ThumbEE CPU extension supported.
[ 1.290459] mmcblk0: mmc0:0001 00000 29.1 GiB
[ 1.294317] Registering SWP/SWPB emulation handler
[ 1.305830] mmcblk0: p1 p2 p3
[ 1.312170] dma-pl330 ffe01000.pdma: Loaded driver for PL330 DMAC-341330
[ 1.318865] dma-pl330 ffe01000.pdma: DBUFF-512x8bytes Num_Chans-8 Num_Peri-32 Num_Events-8
[ 1.348455] cf_axi_adc ff320000.axi-ltc235x: ADI AIM (10.03.) at 0xFF320000 mapped to 0x(ptrval) probed ADC ltc2358-18 as MASTER
[ 1.360366] of_cfs_init
[ 1.362837] of_cfs_init: OK
[ 1.365942] ALSA device list:
[ 1.368905] No soundcards found.
[ 1.372532] dw-apb-uart ffc02000.serial0: forbid DMA for kernel console
[ 1.933040] EXT4-fs (mmcblk0p2): recovery complete
[ 1.940621] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: disabled.
[ 1.949521] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 1.956563] devtmpfs: mounted
[ 1.964404] Freeing unused kernel image (initmem) memory: 1024K
[ 1.970974] Run /sbin/init as init process
[ 2.490626] systemd[1]: System time before build time, advancing clock.
[ 2.557124] systemd[1]: systemd 247.3-7+rpi1+deb11u6 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
[ 2.581032] systemd[1]: Detected architecture arm.
Welcome to Kuiper GNU/Linux 11.2 (bullseye)!
[ 2.621191] systemd[1]: Set hostname to <analog>.
[ 4.434736] systemd[1]: /lib/systemd/system/plymouth-start.service:16: Unit configured to use KillMode=none. This is unsafe, as it disables systemd's process lifecycle management for the service. Please update your service to use a safer KillMode=, such as 'mixed' or 'control-group'. Support for KillMode=none is deprecated and will eventually be removed.
[ 4.744349] systemd[1]: Queued start job for default target Graphical Interface.
[ 6.779971] random: crng init done
[ 6.783767] systemd[1]: system-getty.slice: unit configures an IP firewall, but the local system does not support BPF/cgroup firewalling.
[ 6.796129] systemd[1]: (This warning is only shown for the first unit using IP firewalling.)
[ 6.806042] systemd[1]: Created slice system-getty.slice.
[ OK ] Created slice system-getty.slice.
[ 6.841104] systemd[1]: Created slice system-modprobe.slice.
[ OK ] Created slice system-modprobe.slice.
[ 6.881118] systemd[1]: Created slice system-serial\x2dgetty.slice.
[ OK ] Created slice system-serial\x2dgetty.slice.
[ 6.921092] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[ OK ] Created slice system-systemd\x2dfsck.slice.
[ 6.960756] systemd[1]: Created slice User and Session Slice.
[ OK ] Created slice User and Session Slice.
[ 7.000544] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ OK ] Started Forward Password R&uests to Wall Directory Watch.
[ 7.040578] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped.
[ 7.053409] systemd[1]: Reached target Slices.
[ OK ] Reached target Slices.
[ 7.090296] systemd[1]: Reached target Swap.
[ OK ] Reached target Swap.
[ 7.129660] systemd[1]: Listening on Syslog Socket.
[ OK ] Listening on Syslog Socket.
[ 7.170821] systemd[1]: Listening on fsck to fsckd communication Socket.
[ OK ] Listening on fsck to fsckd communication Socket.
[ 7.210541] systemd[1]: Listening on initctl Compatibility Named Pipe.
[ OK ] Listening on initctl Compatibility Named Pipe.
[ 7.281476] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
[ 7.292508] systemd[1]: Listening on Journal Socket (/dev/log).
[ OK ] Listening on Journal Socket (/dev/log).
[ 7.331057] systemd[1]: Listening on Journal Socket.
[ OK ] Listening on Journal Socket.
[ 7.476904] systemd[1]: Listening on udev Control Socket.
[ OK ] Listening on udev Control Socket.
[ 7.510892] systemd[1]: Listening on udev Kernel Socket.
[ OK ] Listening on udev Kernel Socket.
[ 7.551053] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[ 7.559801] systemd[1]: Condition check resulted in POSIX Message Queue File System being skipped.
[ 7.610620] systemd[1]: Mounting RPC Pipe File System...
Mounting RPC Pipe File System...
[ 7.653794] systemd[1]: Mounting Kernel Debug File System...
Mounting Kernel Debug File System...
[ 7.693862] systemd[1]: Mounting Kernel Trace File System...
Mounting Kernel Trace File System...
[ 7.730511] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped.
[ 7.745653] systemd[1]: Starting Restore / save the current clock...
Starting Restore / save the current clock...
[ 7.784737] systemd[1]: Starting Set the console keyboard layout...
Starting Set the console keyboard layout...
[ 7.820442] systemd[1]: Condition check resulted in Create list of static device nodes for the current kernel being skipped.
[ 7.836796] systemd[1]: Starting Load Kernel Module configfs...
Starting Load Kernel Module configfs...
[ 7.874391] systemd[1]: Starting Load Kernel Module drm...
Starting Load Kernel Module drm...
[ 7.894865] systemd[1]: Starting Load Kernel Module fuse...
Starting Load Kernel Module fuse...
[ 7.933817] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[ 7.944323] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[ 7.957655] systemd[1]: Starting Journal Service...
Starting Journal Service...
[ 8.006715] systemd[1]: Starting Load Kernel Modules...
Starting Load Kernel Modules...
[ 8.054092] systemd[1]: Starting Remount Root and Kernel File Systems...
Starting Remount Root and Kernel File Systems...
[ 8.104588] systemd[1]: Starting Coldplug All udev Devices...
Starting Coldplug All udev Devices...
[ 8.191485] systemd[1]: Mounted RPC Pipe File System.
[ OK ] Mounted RPC Pipe File System.
[ 8.223757] systemd[1]: Mounted Kernel Debug File System.
[ OK ] Mounted Kernel Debug File System.
[ 8.251367] systemd[1]: Mounted Kernel Trace File System.
[ OK ] Mounted Kernel Trace File System.
[ 8.281586] systemd[1]: Finished Restore / save the current clock.
[ OK ] Finished Restore / save the current clock.
[ 8.333232] systemd[1]: Started Journal Service.
[ OK ] Started Journal Service.
[ OK ] Finished Load Kernel Module configfs.
[ 8.404252] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: disabled.
[ OK ] Finished Set the console keyboard layout.
[ OK ] Finished Load Kernel Module drm.
[ OK ] Finished Load Kernel Module fuse.
[FAILED] Failed to start Load Kernel Modules.
See 'systemctl status systemd-modules-load.service' for details.
[ OK ] Finished Remount Root and Kernel File Systems.
Mounting FUSE Control File System...
Mounting Kernel Configuration File System...
Starting Flush Journal to Persistent Storage...
Starting Load/Save Random Seed...
Starting Apply Kernel Variables...
[ 8.817830] systemd-journald[102]: Received client request to flush runtime journal.
Starting Create System Users...
[ OK ] Mounted FUSE Control File System.[ 8.872124] systemd-journald[102]: File /var/log/journal/13d628306dec4514ba55ac0361c8d824/system.journal corrupted or uncleanly shut down, renaming and replacing.
[ OK ] Finished Coldplug All udev Devices.
[ OK ] Mounted Kernel Configuration File System.
[ OK ] Finished Load/Save Random Seed.
[ OK ] Finished Apply Kernel Variables.
[ OK ] Finished Create System Users.
Starting Helper to synchronize boot up for ifupdown...
Starting Create Static Device Nodes in /dev...
Starting Wait for udev To &plete Device Initialization...
[ OK ] Finished Flush Journal to Persistent Storage.
[ OK ] Finished Helper to synchronize boot up for ifupdown.
[ OK ] Finished Create Static Device Nodes in /dev.
[ OK ] Reached target Local File Systems (Pre).
Starting Rule-based Manage&for Device Events and Files...
[ OK ] Started Rule-based Manager for Device Events and Files.
Starting Show Plymouth Boot Screen...
[ OK ] Started Show Plymouth Boot Screen.
[ OK ] Started Forward Password R&s to Plymouth Directory Watch.
[ OK ] Reached target Local Encrypted Volumes.
[ OK ] Found device /dev/ttyS0.
[ OK ] Found device /dev/disk/by-partuuid/a22286d2-01.
[ OK ] Finished Wait for udev To Complete Device Initialization.
Starting File System Check&isk/by-partuuid/a22286d2-01...
[ OK ] Started File System Check Daemon to report status.
[ OK ] Finished File System Check&/disk/by-partuuid/a22286d2-01.
Mounting /boot...
[ OK ] Mounted /boot.
[ OK ] Reached target Local File Systems.
Starting Set console font and keymap...
Starting Raise network interfaces...
Starting Preprocess NFS configuration...
Starting Tell Plymouth To Write Out Runtime Data...
Starting Create Volatile Files and Directories...
[ OK ] Finished Set console font and keymap.
[ OK ] Finished Tell Plymouth To Write Out Runtime Data.
[ OK ] Finished Preprocess NFS configuration.
[ OK ] Reached target NFS client services.
[ OK ] Reached target Remote File Systems (Pre).
[ OK ] Reached target Remote File Systems.
[ OK ] Finished Create Volatile Files and Directories.
Starting Network Time Synchronization...
Starting Update UTMP about System Boot/Shutdown...
[ OK ] Finished Update UTMP about System Boot/Shutdown.
Starting Load Kernel Modules...
[ OK ] Started Network Time Synchronization.
[ OK ] Finished Raise network interfaces.
[ OK ] Reached target System Time Set.
[ OK ] Reached target System Time Synchronized.
[FAILED] Failed to start Load Kernel Modules.
See 'systemctl status systemd-modules-load.service' for details.
[ OK ] Reached target System Initialization.
[ OK ] Started CUPS Scheduler.
[ OK ] Started Daily apt download activities.
[ OK ] Started Daily apt upgrade and clean activities.
[ OK ] Started Periodic ext4 Onli&ata Check for All Filesystems.
[ OK ] Started Discard unused blocks once a week.
[ OK ] Started Daily rotation of log files.
[ OK ] Started Daily man-db regeneration.
[ OK ] Started Daily Cleanup of Temporary Directories.
[ OK ] Reached target Paths.
[ OK ] Reached target Timers.
[ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[ OK ] Listening on CUPS Scheduler.
[ OK ] Listening on D-Bus System Message Bus Socket.
[ OK ] Listening on Erlang Port Mapper Daemon Activation Socket.
[ OK ] Listening on GPS (Global P&ioning System) Daemon Sockets.
[ OK ] Listening on triggerhappy.socket.
[ OK ] Reached target Sockets.
[ OK ] Reached target Basic System.
Starting Analog Devices power up/down sequence...
Starting Avahi mDNS/DNS-SD Stack...
[ OK ] Started Regular background program processing daemon.
[ OK ] Started D-Bus System Message Bus.
Starting dphys-swapfile - &unt, and delete a swap file...
Starting Remove Stale Onli&t4 Metadata Check Snapshots...
[ OK ] Started fan-control.
Starting Fix DP audio and X11 for Jupiter...
Starting Creating IIOD Context Attributes......
Starting Authorization Manager...
Starting DHCP Client Daemon...
Starting LSB: Switch to on&nless shift key is pressed)...
Starting LSB: rng-tools (Debian variant)...
Starting System Logging Service...
Starting User Login Management...
Starting triggerhappy global hotkey daemon...
Starting Disk Manager...
Starting WPA supplicant...
[ OK ] Started triggerhappy global hotkey daemon.
[ OK ] Started System Logging Service.
[ OK ] Finished Fix DP audio and X11 for Jupiter.
[ OK ] Started DHCP Client Daemon.
[ OK ] Started Avahi mDNS/DNS-SD Stack.
[ OK ] Started WPA supplicant.
[ OK ] Reached target Network.
[ OK ] Reached target Network is Online.
Starting CUPS Scheduler...
[ OK ] Started Erlang Port Mapper Daemon.
Starting HTTP based time synchronization tool...
Starting Internet superserver...
Starting /etc/rc.local Compatibility...
Starting OpenBSD Secure Shell server...
Starting Permit User Sessions...
[ OK ] Started LSB: Switch to ond&(unless shift key is pressed).
[ OK ] Started LSB: rng-tools (Debian variant).
[ OK ] Finished dphys-swapfile - &mount, and delete a swap file.
[ OK ] Started /etc/rc.local Compatibility.
[ OK ] Started Authorization Manager.
[ OK ] Started User Login Management.
[ OK ] Started Internet superserver.
Starting Modem Manager...
[ OK ] Started Unattended Upgrades Shutdown.
[ OK ] Started HTTP based time synchronization tool.
[ OK ] Finished Permit User Sessions.
Starting Light Display Manager...
Starting Hold until boot process finishes up...
[ OK ] Started OpenBSD Secure Shell server.
Starting Manage, Install and Generate Color Profiles...
[ OK ] Finished Analog Devices power up/down sequence.
[FAILED] Failed to start VNC Server for X11.
Raspbian GNU/Linux 11 analog ttyS0
analog login: root (automatic login)
Linux analog 6.1.70-284114-g2e8908932dfd #1063 SMP Tue Mar 18 17:12:50 EET 2025 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Mar 18 19:17:15 GMT 2025 on ttyS0
root@analog:~#
Useful commands for the serial terminal
The below commands are to be run in the serial terminal connected to the FPGA.
To find out the IP address of the FPGA board, run:
~$
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255
If connected to a network with a DHCP server, the assigned IP address appears on
the LCD display on the board. To manually assign an IP address, run ifconfig
eth0 <IP_ADDR>.
To see the IIO devices detected, run:
~$
iio_info | grep iio:device
iio:device0: axi-ltc235x (buffer capable)
root@analog:~# iio_info
iio_info version: 0.26 (git tag:5e1e9cb5)
Libiio version: 0.26 (git tag: 5e1e9cb) backends: local xml ip usb serial
IIO context created with local backend.
Backend version: 0.26 (git tag: 5e1e9cb)
Backend description string: Linux analog 6.1.70-284114-g2e8908932dfd #1063 SMP Tue Mar 18 17:12:50 EET 2025 armv7l
IIO context has 3 attributes:
hw_carrier: Terasic SoCkit
local,kernel: 6.1.70-284114-g2e8908932dfd
uri: local:
IIO context has 2 devices:
iio:device0: axi-ltc235x (buffer capable)
8 channels found:
voltage0: (input, index: 0, format: le:u24/32>>0)
2 channel-specific attributes found:
attr 0: raw value: 0
attr 1: scale value: 0.015625000
voltage1: (input, index: 1, format: le:u24/32>>0)
2 channel-specific attributes found:
attr 0: raw value: 0
attr 1: scale value: 0.015625000
voltage2: (input, index: 2, format: le:u24/32>>0)
2 channel-specific attributes found:
attr 0: raw value: 0
attr 1: scale value: 0.015625000
voltage3: (input, index: 3, format: le:u24/32>>0)
2 channel-specific attributes found:
attr 0: raw value: 0
attr 1: scale value: 0.015625000
voltage4: (input, index: 4, format: le:u24/32>>0)
2 channel-specific attributes found:
attr 0: raw value: 0
attr 1: scale value: 0.015625000
voltage5: (input, index: 5, format: le:u24/32>>0)
2 channel-specific attributes found:
attr 0: raw value: 0
attr 1: scale value: 0.015625000
voltage6: (input, index: 6, format: le:u24/32>>0)
2 channel-specific attributes found:
attr 0: raw value: 0
attr 1: scale value: 0.015625000
voltage7: (input, index: 7, format: le:u24/32>>0)
2 channel-specific attributes found:
attr 0: raw value: 0
attr 1: scale value: 0.015625000
4 device-specific attributes found:
attr 0: sampling_frequency value: 100000
attr 1: sync_start_enable value: arm
attr 2: sync_start_enable_available value: arm
attr 3: waiting_for_supplier value: 0
3 buffer-specific attributes found:
attr 0: data_available value: 0
attr 1: direction value: in
attr 2: length_align_bytes value: 8
2 debug attributes found:
debug attr 0: pseudorandom_err_check value: CH0 : PN9 : In Sync : OK
CH1 : PN9 : In Sync : OK
CH2 : PN9 : In Sync : OK
CH3 : PN9 : In Sync : OK
CH4 : PN9 : In Sync : OK
CH5 : PN9 : In Sync : OK
CH6 : PN9 : In Sync : OK
CH7 : PN9 : In Sync : OK
debug attr 1: direct_reg_access value: 0xA0300
No trigger on this device
iio_sysfs_trigger:
0 channels found:
2 device-specific attributes found:
attr 0: add_trigger ERROR: Permission denied (13)
attr 1: remove_trigger ERROR: Permission denied (13)
No trigger on this device
To read ADC samples using iio_readdev, run:
~$
iio_readdev -s 4 iio:device0 voltage0 voltage1 voltage2 voltage3 voltage4
voltage5 voltage6 voltage7
To power off the system, run the following command and wait for the final message before switching off the power:
~$
poweroff
To reboot the system, run:
~$
reboot
Important
Even though this is Linux, this uses a persistent file system. Care should be
taken not to corrupt the file system – please shut down properly, do not
just turn off the power switch. You can power off from the terminal with
sudo shutdown -h now or the above-mentioned poweroff command.