Code Monkey home page Code Monkey logo

cms-calo-layer1's Introduction

cms-calo-layer1

Xilinx Microblaze Projects for RCT Upgrade

Installation

Compilation requires installation of both the Xilinx EDK (for mb-gcc and libgen) and a Petalinux installation (for compiling the soft-ipbus server). See the next section for initializing the environment.

To check out and build the trigger packages, do the following.

# 904 certificates are not installed correctly :(
export GIT_SSL_NO_VERIFY=1
cd $HOME/trigger_code/
# check out the softipbus dependency
svn co svn+ssh://svn.cern.ch/reps/cactus/trunk/cactuscore/softipbus $HOME/trigger_code/softipbus
# check out the ctp6commander client program
git clone https://github.com/uwcms/ctp6commander
# check out the set of packages
git clone https://github.com/uwcms/cms-calo-layer1.git
cd cms-calo-layer1
# Setup your environment for Xilinx build tools
source environment.sh
# compile the Board Support Packages (BSPs)
make cleanbsps
make bsps
# Make all the projects
make all
# Or just make one of them
cd orsc_fe_spi_echo_test 
make payload

More information about which HW and BSP files need to be tracked is available at the Xilinx git info page.

Packages

In general, for each board there is a HW and BSP package. These are generated using the Xilinx SDK GUI using HW .xml file provided by Mathias. These contain information about the devices attached to the processor. The BSP contains all the driver headers and libraries for a given device. There are a number of standalone programs for each of the boards. Most of them are small tests of various device functionality (UART or SPI, etc). The production ones are:

cp6_fe_uart_ipbus

Receives IPBus packets over UART, reads and writes local memories, and returns IPBus packets back over the serial link.

orsc_fe_ipbus

Receives IPBus packets over SPI, reads and writes local memories, and returns IPBus packets back over the serial link.

orsc_be_ipbus

(TODO) Receives IPBus packets over VMEStream and forwards them along the SPI to the oRSC front end.

cp6_fe_uart_echo_test

Echoes everything it receives back along the UART. If you run this on the FE, then executing the following on the BE

# Set TTY into RAW mode
stty -F /dev/ttyUL1 raw -echo
# Send data from BE->FE
echo "Go badgers" > /dev/ttyUL1
# Print echoed data
cat /dev/ttyUL1

should return the original string "Go badgers"

orsc_(fe|be)_spi_echo_test

Untested. Should send test data back and forth between the oRSC BE and FE via the inter-FPGA SPI.

orsc_be_vmestream_echo_test

Untested. Should echo data sent from a "VME PC" via the VMEStream protocol.

Notes from August Integration

https://twiki.cern.ch/twiki/bin/view/CMS/ORSCCTP6Integration

Miscellany

Info from Jes on mapping a petalinux /dev/ttyX UART to the correct device on the standalone FPGA.

They are accessed through /dev/ttyUL# for some #.

There are four UART in linux. The two you are interested in are mapped to memory addresses 50000000 and 70000000 (for link 0 and 1 respectively).

To determine the /dev/ttyUL# for a given instance, run the following on the linux system:

$ ls /sys/bus/platform/drivers/uartlite/50000000.serial/tty

Replace 50000000 with the relevant address.

This will return something like "ttyUL1", therefore use /dev/ttyUL1 to access this device.

This /dev/ttyUL1 will remain constant unless the backend FPGA image is altered in certain ways. The above method will remain reliable unless the exact address of these specific devices changes.

cms-calo-layer1's People

Contributors

ekfriis avatar dabelknap avatar tsarangi avatar nwoods avatar mcepeda avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.