Skip to content

Latest commit

 

History

History
170 lines (130 loc) · 5.31 KB

Configuration.md

File metadata and controls

170 lines (130 loc) · 5.31 KB

Configuration


How to connect to the Mosaic

Using USB

Windows

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.

Linux

When connecting to a linux computer no USB drivers need to be installed manually. The standard CDC-ACM is suitable.

Using Ethernet over USB

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.

How to install the Time Card kernel

Clone TAP GitHub repository

cd ~
git clone https://github.com/opencomputeproject/Time-Appliance-Project

Install the latest kernel keys

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

Install prerequisite packages

yum install -y ncurses-devel make gcc bc bison flex elfutils-libelf-devel openssl-devel grub2 i2c-tools git

Acquire the full kernel source from online.

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/

Copy existing kernel config to kernel source

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.

Change kernel build parameters in .config

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

Build and install this kernel

make bzImage -j4; make modules -j4; make -j4;  make INSTALL_MOD_STRIP=1 modules_install; make install;

Reboot

reboot

Enable all UART peripherals

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

Install drivers from Time Appliance Project repository

cd ~/Time-Appliance-Project/Time-Card/DRV/
./remake
modprobe ptp_ocp

Confirming installation

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