The Windows USB driver provided with your receiver emulates two virtual serial ports, which can be used as standard COM ports to access the receiver. Most terminal emulation programs will make no distinction between virtual and native COM ports. Note that the port settings (baud rate, etc) for virtual serial ports are not relevant, and can be left in their default configuration in the terminal emulation program.
When connecting to a Windows computer through USB, a new drive appears in the file manager. This drive contains an installer for the USB driver. Running this installer is not needed if you have already installed the RxTools suite.
When connecting to a linux computer no USB drivers need to be installed manually. The standard CDC-ACM is suitable.
When an USB cable is connected, the receiver supports Ethernet-over-USB. The IP address allocated to the Ethernet-over-USB interface is 192.168.3.1. That address cannot be changed, so that this feature is only to be used when a single receiver is connected to your computer.
cd ~
git clone https://github.com/opencomputeproject/Time-Appliance-Project
sudo dnf -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
dnf --enablerepo=elrepo-kernel install kernel-ml
reboot
yum install -y ncurses-devel make gcc bc bison flex elfutils-libelf-devel openssl-devel grub2 i2c-tools git
cd /usr/src/kernels
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.4.tar.xz
tar -xvf linux-5.17.4.tar.xz
rm linux-5.17.4.tar.xz
mv linux-5.17.4/ 5.17.4/
cd 5.17.4/
cp -v /boot/config-5.17.4-1.el8.elrepo.x86_64 .config
vim .config
You will need to edit .config
and specify the newly installed kernel.
CONFIG_I2C_XILINX=m
CONFIG_MTD=m
CONFIG_MTD_SPI_NOR=m
CONFIG_SPI=y
CONFIG_SPI_ALTERA=m
CONFIG_SPI_BITBANG=m
CONFIG_SPI_MASTER=y
CONFIG_SPI_MEM=y
CONFIG_SPI_XILINX=m
CONFIG_I2C=y
CONFIG_I2C_OCORES=m
CONFIG_IKCONFIG=y
CONFIG_EEPROM_AT24=m
Then do make oldconfig
to add CONFIG_IKCONFIG_PROC=y
. Answer y
or n
to all questions.
make oldconfig
NOTE: SKIP FOR 5.17.4 Temporary debug step as of 3-17-2022, patch the kernel with these two patches to fix issues related to FPGA SPI Flash update.
patch -p1 < ~/Time-Appliance-Project/Time-Card/DRV/0001-spi-xilinx-Inhibit-transmitter-while-filling-TX-FIFO.patch
patch -p1 < ~/Time-Appliance-Project/Time-Card/DRV/0001-spi-nor-Send-soft-reset-before-probing-flash.patch
make bzImage -j4; make modules -j4; make -j4; make INSTALL_MOD_STRIP=1 modules_install; make install;
reboot
grubby --update-kernel=ALL --args=8250.nr_uarts=8
reboot
Confirm enumeration of all enabled UART peripherals on next reboot,
cat /proc/cmdline
[root@localhost Binaries]# cat /proc/cmdline
BOOT_IMAGE=(hd1,gpt2)/vmlinuz-5.16.0 root=/dev/mapper/cs-root ro crashkernel=auto resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap rhgb quiet 8250.nr_uarts=8
cd ~/Time-Appliance-Project/Time-Card/DRV/
./remake
modprobe ptp_ocp
View the output of dmesg
to confirm that the Time Card device has been installed and the kernel driver has sucessefully enumerated the device.
Example output confirming the ptp_ocp
kernel driver enumering the Time Card device.
[ 1491.440223] 0000:02:00.0: ttyS5 at MMIO 0x70161000 (irq = 180, base_baud = 3125000) is a 16550A
[ 1491.440278] 0000:02:00.0: ttyS6 at MMIO 0x70171000 (irq = 181, base_baud = 3125000) is a 16550A
[ 1491.440322] 0000:02:00.0: ttyS7 at MMIO 0x70181000 (irq = 182, base_baud = 3125000) is a 16550A
[ 1491.440362] 0000:02:00.0: ttyS0 at MMIO 0x70191000 (irq = 187, base_baud = 3125000) is a 16550A
[ 1491.441702] xilinx_spi xilinx_spi.1024: at [mem 0x70310000-0x7031ffff], irq=186
[ 1491.442678] spi-nor spi1024.0: n25q128a13 (16384 Kbytes)
[ 1491.447310] pps pps1: new PPS source ptp2
[ 1491.449374] ptp_ocp 0000:02:00.0: Version 1.2.0, clock PPS, device ptp2
[ 1491.449388] ptp_ocp 0000:02:00.0: Time: 1647548640.775286647, in-sync
[ 1491.449390] ptp_ocp 0000:02:00.0: version 8005
[ 1491.449392] ptp_ocp 0000:02:00.0: regular image, version 32773
[ 1491.449393] ptp_ocp 0000:02:00.0: GNSS: /dev/ttyS5 @ 115200
[ 1491.449394] ptp_ocp 0000:02:00.0: GNSS2: /dev/ttyS6 @ 115200
[ 1491.449396] ptp_ocp 0000:02:00.0: MAC: /dev/ttyS7 @ 57600
[ 1491.449399] ptp_ocp 0000:02:00.0: NMEA: /dev/ttyS0 @ 115200