Skip to content

Commit b56b791

Browse files
Merge pull request #124 from the-snowwhite/2022.2
2022.2
2 parents c2c7eeb + ba1c8ec commit b56b791

File tree

11 files changed

+3133
-7
lines changed

11 files changed

+3133
-7
lines changed

HW/VivadoProjects/make_bitfile.sh

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,12 @@ if [ -d "$PRJ_DIR"/dts ]; then
6969
outname=`basename "$temp"`
7070
outfpath="$PRJ_DIR_CREATED"/${outname%_ol.dts.in}_"$FPGA_DEV_SHORT"_ol.dts
7171
echo $outfpath
72-
sed "s|%BIT_FILE%|$BIT_FILE.bin|" \
72+
sed "s|%BIT_FILE%|$BIT_FILE|" \
7373
"$temp" > "$outfpath"
74+
# Create .dtbo file for overlay
75+
outfpath2="$PRJ_DIR_CREATED"/${outname%_ol.dts.in}_"$FPGA_DEV_SHORT"_ol.dtbo
76+
echo $outfpath2
77+
dtc -I dts -O dtb -o "$outfpath2" "$outfpath"
7478
done
7579
fi
7680

@@ -81,10 +85,16 @@ python genfwid.py "$FWID_NAME" > "$PRJ_DIR_CREATED/firmware_id.mif"
8185
cd ../VivadoProjects
8286

8387
# Run the tcl script to build the project and generate the bitfile
84-
/tools/Xilinx/Vivado/2019.1/bin/vivado -mode batch -source "$PRJ_FILE"
88+
if [[ "$1" == *"kr260"* ]]; then
89+
/tools/Xilinx/Vivado/2022.2/bin/vivado -mode batch -source "$PRJ_FILE"
90+
else
91+
/tools/Xilinx/Vivado/2019.1/bin/vivado -mode batch -source "$PRJ_FILE"
92+
fi
93+
8594

8695
# bootgen: skip mpsoc projects
87-
if test "${1#*"ultra96"}" = "$1" && test "${1#*"fz3"}" = "$1" && test "${1#*"ultramyir"}" = "$1"; then
96+
#if test "${1#*"ultra96"}" = "$1" && test "${1#*"fz3"}" = "$1" && test "${1#*"ultramyir"}" = "$1" && test "${1#*"kr260"}" = "$1"; then
97+
if [[ "$1" == *"microzed"* ]] || [[ "$1" == *"zturn"* ]]; then
8898

8999
# Update the bif file for bootgen
90100
# component file1 needs the pin file path

HW/VivadoProjects/make_mpsoc_boot.sh

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,25 @@ case $1 in
2121
*"ultra96"*)
2222
cd /work/HW/VivadoProjects/avnet/ultra96
2323
BOARD_PART="xczu3eg"
24+
rev="2019.1"
2425
;;
2526

2627
*"fz3"*)
2728
cd /work/HW/VivadoProjects/myirtech/fz3
2829
BOARD_PART="xczu3eg"
30+
rev="2019.1"
2931
;;
3032

3133
*"ultramyir"*)
3234
cd /work/HW/VivadoProjects/myirtech/ultramyir
3335
BOARD_PART="xczu3eg"
36+
rev="2019.1"
37+
;;
38+
39+
*"kr260"*)
40+
cd /work/HW/VivadoProjects/xilinx/kr260
41+
BOARD_PART="xck26"
42+
rev="2022.2"
3443
;;
3544

3645
*)
@@ -39,12 +48,14 @@ case $1 in
3948
;;
4049
esac
4150

51+
52+
4253
# Delete any old project artifacts folder
43-
PRJ_DIR_CREATED=./"$1"-mk-2019.1
54+
PRJ_DIR_CREATED=./"$1"-mk-"$rev"
4455
[ -d "$PRJ_DIR_CREATED" ] && rm -rf "$PRJ_DIR_CREATED"
4556

46-
petalinux-create -t project -s "$1"-mk-2019.1.bsp
47-
cd "$1"-mk-2019.1
57+
petalinux-create -t project -s "$1"-mk-"$rev".bsp
58+
cd "$1"-mk-"$rev"
4859
time petalinux-config --get-hw-description=../"$1"_"$BOARD_PART"_created/"$1"_"$BOARD_PART".sdk --silentconfig
4960
time petalinux-build
5061
petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --u-boot=images/linux/u-boot.elf --pmufw --atf --fpga images/linux/system.bit --force
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
## Running machinekit-hal on the Kria KR260 board
2+
3+
First Iteration of the KR260 port runs on the Xilinx Ubuntu Desktop 22.04 LTS from Canonical:
4+
https://ubuntu.com/download/amd-xilinx
5+
6+
## Docker based build image for building custom bitfiles:
7+
8+
docker pull thesnowwhite/bionic-vivado-sdk:2022.2
9+
sudo mkdir /tftpboot
10+
/usr/bin/docker run --rm --privileged --memory 48g --shm-size 1g --device /dev/snd -itv $(pwd):/work -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --net=host -e TZ=Europe/Copenhagen -v $HOME/.Xauthority:/home/vivado/.Xauthority -v $HOME/.Xresources:/home/vivado/.Xresources -v $HOME/.Xilinx:/home/vivado/.Xilinx -v /tftpboot:/tftpboot --name xilinx-sdk bionic-vivado-sdk:2022.2 /bin/bash
11+
12+
## To enable running hostmot2 based machinekit-hal the mksocfpga fpga firmware can be auto loaded
13+
14+
15+
wget
16+
17+
sudo mkdir -p /lib/firmware/xilinx/machinekit
18+
sudo cp kr260_xck26.bit kria_kr260_xck26_ol.dtbo /lib/firmware/xilinx/machinekit
19+
20+
sudo sh -c 'cat <<EOF > "/lib/firmware/xilinx/machinekit/shell.json"
21+
{
22+
"shell_type" : "XRT_FLAT",
23+
"num_slots": "1"
24+
}
25+
EOF'
26+
27+
sudo sh -c 'cat <<EOF > "/etc/dfx-mgrd/default_firmware"
28+
machinekit
29+
EOF'
30+
31+
## Until the machinekit-hal cloudsmith Jammy packages get online the debs are provided here:
32+
33+
wget
34+
35+
Then install the following packages:
36+
37+
sudo apt install ./machinekit-hal_0.5.21099-1.git2c2ff0e51~jammy_arm64.deb \
38+
./libmachinekit-hal_0.5.21099-1.git2c2ff0e51~jammy_arm64.deb \
39+
40+
41+
42+
43+
## Hal is then invoked with:
44+
45+
halrun -I
46+
47+
loadrt hostmot2
48+
newinst hm2_soc_ol hm2-socfpga0 already_programmed=1 -- config="num_pwmgens=3 num_stepgens=6"
49+
50+
exit
51+
52+
## To check what happened in the log:
53+
54+
cat /var/log/syslog | grep 'rtapi\|msgd'
55+
56+
57+
## The syslog can be cleared with:
58+
59+
sudo sh -c 'echo "" > /var/log/syslog'
Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
library IEEE;
2+
use IEEE.std_logic_1164.all; -- defines std_logic types
3+
use IEEE.STD_LOGIC_ARITH.ALL;
4+
use IEEE.STD_LOGIC_UNSIGNED.ALL;
5+
6+
-- Copyright (C) 2007, Peter C. Wallace, Mesa Electronics
7+
-- http://www.mesanet.com
8+
--
9+
-- Ported to MYIR ZTURN IO Carrier board:
10+
-- Copyright (C) 2016, Devin Hughes, JD Squared
11+
-- http://www.jd2.com
12+
--
13+
-- This program is is licensed under a disjunctive dual license giving you
14+
-- the choice of one of the two following sets of free software/open source
15+
-- licensing terms:
16+
--
17+
-- * GNU General Public License (GPL), version 2.0 or later
18+
-- * 3-clause BSD License
19+
--
20+
--
21+
-- The GNU GPL License:
22+
--
23+
-- This program is free software; you can redistribute it and/or modify
24+
-- it under the terms of the GNU General Public License as published by
25+
-- the Free Software Foundation; either version 2 of the License, or
26+
-- (at your option) any later version.
27+
--
28+
-- This program is distributed in the hope that it will be useful,
29+
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
30+
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31+
-- GNU General Public License for more details.
32+
--
33+
-- You should have received a copy of the GNU General Public License
34+
-- along with this program; if not, write to the Free Software
35+
-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
36+
--
37+
--
38+
-- The 3-clause BSD License:
39+
--
40+
-- Redistribution and use in source and binary forms, with or without
41+
-- modification, are permitted provided that the following conditions
42+
-- are met:
43+
--
44+
-- * Redistributions of source code must retain the above copyright
45+
-- notice, this list of conditions and the following disclaimer.
46+
--
47+
-- * Redistributions in binary form must reproduce the above
48+
-- copyright notice, this list of conditions and the following
49+
-- disclaimer in the documentation and/or other materials
50+
-- provided with the distribution.
51+
--
52+
-- * Neither the name of Mesa Electronics nor the names of its
53+
-- contributors may be used to endorse or promote products
54+
-- derived from this software without specific prior written
55+
-- permission.
56+
--
57+
--
58+
-- Disclaimer:
59+
--
60+
-- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
61+
-- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
62+
-- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
63+
-- FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
64+
-- COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
65+
-- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
66+
-- BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
67+
-- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
68+
-- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
69+
-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
70+
-- ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
71+
-- POSSIBILITY OF SUCH DAMAGE.
72+
--
73+
74+
use work.IDROMConst.all;
75+
76+
package PIN_KR260_36 is
77+
constant ModuleID : ModuleIDType :=(
78+
(HM2DPLLTag, x"00", ClockLowTag, x"04", HM2DPLLBaseRateAddr&PadT, HM2DPLLNumRegs, x"00", HM2DPLLMPBitMask),
79+
(IOPortTag, x"00", ClockLowTag, x"02", PortAddr&PadT, IOPortNumRegs, x"00", IOPortMPBitMask),
80+
(QcountTag, x"02", ClockLowTag, x"02", QcounterAddr&PadT, QCounterNumRegs, x"00", QCounterMPBitMask),
81+
(StepGenTag, x"02", ClockLowTag, x"08", StepGenRateAddr&PadT, StepGenNumRegs, x"00", StepGenMPBitMask),
82+
(FWIDTag, x"00", ClockLowTag, x"01", FWIDAddr&PadT, FWIDNumRegs, x"00", FWIDMPBitMask),
83+
(PWMTag, x"00", ClockHighTag, x"03", PWMValAddr&PadT, PWMNumRegs, x"00", PWMMPBitMask),
84+
(LEDTag, x"00", ClockLowTag, x"01", LEDAddr&PadT, LEDNumRegs, x"00", LEDMPBitMask),
85+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
86+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
87+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
88+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
89+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
90+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
91+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
92+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
93+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
94+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
95+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
96+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
97+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
98+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
99+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
100+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
101+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
102+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
103+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
104+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
105+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
106+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
107+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
108+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000"),
109+
(NullTag, x"00", NullTag, x"00", NullAddr&PadT, x"00", x"00", x"00000000")
110+
);
111+
112+
113+
constant PinDesc : PinDescType :=(
114+
-- Base func sec unit sec func sec pin -- hostmot2 Header Pin Func HD = 3V3, SD = 1V8
115+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 00 HD_GPIO0_0 J15_11 GPIO
116+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 01 HD_GPIO0_1 J15_12 GPIO
117+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 02 HD_GPIO0_2 J15_13 GPIO
118+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 03 HD_GPIO0_3 J15_14 GPIO
119+
IOPortTag & x"00" & StepGenTag & StepGenDirPin, -- I/O 04 HD_GPIO0_4 J15_15 A Dir
120+
IOPortTag & x"00" & StepGenTag & StepGenStepPin, -- I/O 05 HD_GPIO0_5 J15_16 A Step
121+
IOPortTag & x"01" & StepGenTag & StepGenDirPin, -- I/O 06 HD_GPIO0_6 J15_17 B Dir
122+
IOPortTag & x"01" & StepGenTag & StepGenStepPin, -- I/O 07 HD_GPIO0_7 J15_18 B Step
123+
IOPortTag & x"02" & StepGenTag & StepGenDirPin, -- I/O 08 HD_GPIO0_8 J16_21 C Dir
124+
IOPortTag & x"02" & StepGenTag & StepGenStepPin, -- I/O 09 HD_GPIO0_9 J16_22 C Step
125+
IOPortTag & x"03" & StepGenTag & StepGenDirPin, -- I/O 10 HD_GPIO0_10 J16_23 D Dir
126+
IOPortTag & x"03" & StepGenTag & StepGenStepPin, -- I/O 11 HD_GPIO0_11 J16_24 D Step
127+
IOPortTag & x"00" & HM2DPLLTag & HM2DPLLRefOutPin, -- I/O 12 HD_GPIO0_12 J16_25 DPLL Ref Output
128+
IOPortTag & x"00" & QCountTag & QCountQAPin, -- I/O 13 HD_GPIO0_14 J16_26 Input 1 (Quad A)
129+
IOPortTag & x"00" & QCountTag & QCountQBPin, -- I/O 14 HD_GPIO0_14 J16_27 Input 2 (Quad B)
130+
IOPortTag & x"00" & QCountTag & QCountIdxPin, -- I/O 15 HD_GPIO0_15 J16_28 Input 3 (Quad Idx)
131+
132+
-- Base func sec unit sec func sec pin -- hostmot2 Header Pin Func
133+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 16 HD_GPIO0_16 J16_31 GPIO
134+
IOPortTag & x"00" & PWMTag & PWMAOutPin, -- I/O 17 HD_GPIO0_17 J16_32 PWM
135+
IOPortTag & x"01" & PWMTag & PWMAOutPin, -- I/O 18 HD_GPIO0_18 J16_33 PWM
136+
IOPortTag & x"02" & PWMTag & PWMAOutPin, -- I/O 19 HD_GPIO0_19 J16_34 PWM
137+
IOPortTag & x"04" & StepGenTag & StepGenDirPin, -- I/O 20 HD_GPIO0_20 J16_35 E Dir
138+
IOPortTag & x"04" & StepGenTag & StepGenStepPin, -- I/O 21 HD_GPIO0_21 J16_36 E Step
139+
IOPortTag & x"05" & StepGenTag & StepGenDirPin, -- I/O 22 HD_GPIO0_22 J16_37 F Dir
140+
IOPortTag & x"05" & StepGenTag & StepGenStepPin, -- I/O 23 HD_GPIO0_23 J16_38 F Step
141+
IOPortTag & x"06" & StepGenTag & StepGenDirPin, -- I/O 24 SD_GPIO0_24 J15_21 G Dir
142+
IOPortTag & x"06" & StepGenTag & StepGenStepPin, -- I/O 25 SD_GPIO0_25 J15_22 G Step
143+
IOPortTag & x"07" & StepGenTag & StepGenDirPin, -- I/O 26 SD_GPIO0_26 J15_23 H Dir
144+
IOPortTag & x"07" & StepGenTag & StepGenStepPin, -- I/O 27 SD_GPIO0_27 J15_24 H Step
145+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 28 SD_GPIO0_28 J15_25 GPIO
146+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 29 SD_GPIO0_29 J15_26 GPIO
147+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 30 SD_GPIO0_30 J15_27 GPIO
148+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 31 SD_GPIO0_31 J15_28 GPIO
149+
IOPortTag & x"00" & NullTag & NullPin, -- I/O 32 SD_GPIO0_32 J15_31 GPIO
150+
IOPortTag & x"01" & QCountTag & QCountQAPin, -- I/O 33 SD_GPIO0_33 J15_32 Input 1 (Quad A)
151+
IOPortTag & x"01" & QCountTag & QCountQBPin, -- I/O 34 SD_GPIO0_34 J15_33 Input 2 (Quad B)
152+
IOPortTag & x"01" & QCountTag & QCountIdxPin, -- I/O 35 SD_GPIO0_35 J15_34 Input 3 (Quad Idx)
153+
154+
-- Fill remaining 144 pins
155+
emptypin,emptypin,emptypin,emptypin,
156+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
157+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
158+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
159+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
160+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
161+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
162+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
163+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
164+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
165+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
166+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
167+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,
168+
emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin,emptypin);
169+
170+
end package PIN_KR260_36;

0 commit comments

Comments
 (0)