blob: 48c7bca949fbdb2321de84e74165560f8eaa6aa8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
SUMMARY = "Generates boot.mcs using vivado"
DESCRIPTION = "Manages task dependencies and creation of boot.mcs for microblaze"
LICENSE = "BSD"
PROVIDES = "virtual/boot-bin"
DEPENDS = "bitstream-microblaze"
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_MACHINE ?= "^$"
COMPATIBLE_MACHINE:microblaze = ".*"
inherit deploy image-artifact-names
do_fetch[noexec] = "1"
do_unpack[noexec] = "1"
do_patch[noexec] = "1"
PROC ??= "kc705_i/microblaze_0"
FLASH_SIZE ??= "0x80"
FLASH_INTERFACE ??= "BPIx16"
MB_OUT_FORMAT ??= "mcs"
BOOT_EXT = "${@d.getVar('MB_OUT_FORMAT').lower()}"
BITSTREAM_FILE ?= "${RECIPE_SYSROOT}/boot/bitstream/download.bit"
B = "${WORKDIR}/build"
WR_CFGMEM_MISC ?= "-loadbit \" up 0 ${BITSTREAM_FILE}\""
do_check_for_vivado() {
bbnote "Checking Vivado install path"
which "vivado" 2>/dev/null || {
bbfatal "Vivado not found! Please add \"INHERIT += \"vivado\"\" to your local.conf"
}
}
addtask do_check_for_vivado before do_configure
do_configure() {
echo " write_cfgmem -force -format ${MB_OUT_FORMAT} -size ${FLASH_SIZE} -interface ${FLASH_INTERFACE} ${WR_CFGMEM_MISC} ${B}/BOOT.${BOOT_EXT} " > ${B}/write_cfgmem_boot_mcs.tcl
if [ ! -e ${B}/write_cfgmem_boot_mcs.tcl ]; then
bbfatal "write_cfgmem_boot_mcs.tcl creation failed. See log for details"
fi
}
do_compile() {
vivado -log "${B}/cfgmem_mcs.log" -jou "${B}/cfgmem_mcs.jou" -mode batch -s ${B}/write_cfgmem_boot_mcs.tcl
if [ ! -e ${B}/BOOT.${BOOT_EXT} ]; then
bbfatal "BOOT.${BOOT_EXT} failed. See log"
fi
}
do_install() {
:
}
BOOT_BASE_NAME ?= "BOOT-${MACHINE}${IMAGE_VERSION_SUFFIX}"
do_deploy() {
#install BOOT.mcs
if [ -e ${B}/BOOT.${BOOT_EXT} ]; then
install -Dm 0644 ${B}/BOOT.${BOOT_EXT} ${DEPLOYDIR}/${BOOT_BASE_NAME}.${BOOT_EXT}
ln -sf ${BOOT_BASE_NAME}.${BOOT_EXT} ${DEPLOYDIR}/BOOT-${MACHINE}.${BOOT_EXT}
fi
}
addtask do_deploy before do_build after do_compile
|