Skip to content
This repository has been archived by the owner on Oct 16, 2023. It is now read-only.

Commit

Permalink
Merge pull request #15 from apollo-lhc/release/v2.1.0
Browse files Browse the repository at this point in the history
Release/v2.1.0
  • Loading branch information
dgastler authored Dec 6, 2022
2 parents 706146d + 912cf4b commit cce1815
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 38 deletions.
2 changes: 1 addition & 1 deletion BUTool
42 changes: 6 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,18 @@
# Apollo Tool
B65;6602;1c# Apollo Tool

This repo is to simplify building the BUTool & friends software for the Apollo SM Petalinux system via cross compiling.
This repo is to simplify building the BUTool & friends software for the Apollo SM

Currently this adds the BUTool-IPBus-helpers, ApolloSM_plugin, and genericIPBus_plugin.

### Common pre-req's
* petalinux 2018.2
* boost-devel
* readline-devel
* ld
* uHAL (with plugin support)
* uHAL
* UIOuHAL plugin

### Zynq build via SM_ZYNQ_FW CentOS makefile
* cd SM_ZYNQ_FW/os/centos
* make (builds full centos image for zynq including this repo)

### "local" x86 (for syntax checking)
* make local
### building on an apollo blade


### How-to old with cross-compile
* Build the petalinux image for the Apollo SM via https://github.com/apollo-lhc/SM_ZYNQ_FW
* Mount the ext4 image generated from that in /mnt
* Build the feature-UIOuHAL branch from https://github.com/dgastler/ipbus-software
* Set IPBUS_PATH CACTUS_ROOT to point to whhere you checked out the ipbus-software repo
* make
* cd BUTool; ZYNQ_IP=1.2.3.4 ./make/copyZynq.sh
* Yay! you are done!

### StatusDisplay name parser for BUTool

Currently, there are two versions of name parsers (for row and column names in status tables) used in `BUTool::StatusDisplay` class:

**Older version:** Will treat a single underscore character (`'_'`) in the beginning as a spcecial character. As an example, if we had a register with name `A.B.C.D` and parameter `Row=_3`, the row name for this register would be `C`.

**Newer version:** Will treat double and triple underscore characters as special. Double underscore replaces the single underscore functionality in the older version, while triple underscore implies a reverse count. Using the same example from before, if we had a register with name `A.B.C.D`, the following is true:

- If this register specifies `Row=__3`, the row name would be `C`.
- If this register specifies `Row=___3`, the row name would be `B`.

By default, when the `BUTool::StatusDisplay` class parses the XML address table, it will use the older version of the name parser. This behavior can be updated by using a compile-time flag however, called `BUTOOL_SD_USE_NEW_PARSER`. To use the new name parser, the user can simply add `BUTOOL_SD_USE_NEW_PARSER=true` to the `make` command while building `ApolloTool`.

### TODO
* Simplify the petalinux image use by downloading tagged releases of the system images.
* Add option to automatically checkout and build ipbus or use an existing installation
* Add IPMI plugin to build system
CACTUS_ROOT=/opt/cactus LINTER=: make local UHAL_VER_MAJOR=2 UHAL_VER_MINOR=8 -j4 RUNTIME_LDPATH=/opt/BUTool COMPILETIME_ROOT=--sysroot=/
CACTUS_ROOT=/opt/cactus LINTER=: make install UHAL_VER_MAJOR=2 UHAL_VER_MINOR=8 RUNTIME_LDPATH=/opt/BUTool COMPILETIME_ROOT=--sysroot=/ INSTALL_PATH=/opt/BUTool
2 changes: 1 addition & 1 deletion plugins/ApolloSM_plugin

0 comments on commit cce1815

Please sign in to comment.