Skip to content

Commit db51a68

Browse files
committed
initial commit
0 parents  commit db51a68

File tree

98 files changed

+170415
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+170415
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.Xil

Makefile

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
BUILD_PATH = /mnt/cephfs/build
2+
OUTPUT_PATH = $(BUILD_PATH)/output
3+
MOTULE_PATH = $(BUILD_PATH)/module
4+
5+
BOARD_NAME = zynq-stanlazy-ckv3
6+
PRJ_PATH = /mnt/cephfs/repo/ckv3b/vivado
7+
UBOOT_PATH = /mnt/cephfs/repo/u-boot-xlnx
8+
LINUX_PATH = /mnt/cephfs/repo/linux-xlnx
9+
10+
XILINX_PATH = /mnt/cephfs/opt
11+
XILINX_VER = 2023.1
12+
VITIS_EXEC = $(XILINX_PATH)/Vitis/$(XILINX_VER)/bin/xsct
13+
BOOTGEN_EXEC = $(XILINX_PATH)/Vitis/$(XILINX_VER)/bin/bootgen
14+
VIVADO_EXEC = $(XILINX_PATH)/Vivado/$(XILINX_VER)/bin/vivado
15+
16+
ZYNQ_IP = 192.168.13.200
17+
18+
ARMMAKEFLAGS = ARCH=arm CROSS_COMPILE=arm-none-eabi- CFLAGS='-mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard'
19+
20+
MAKEFLAGS := --no-print-directory
21+
22+
BITSTREAM = $(wildcard $(PRJ_PATH)/*.runs/impl*/*.bit)
23+
XPR = $(shell echo $(wildcard $(PRJ_PATH)/*.xpr))
24+
DEFCONF_NAME = $(shell echo $(BOARD_NAME) | sed 's/-/_/g')_defconfig
25+
26+
autojobs:
27+
@$(MAKE) --jobs=$(shell echo $(shell nproc)-2 | bc) all
28+
29+
all: $(OUTPUT_PATH)/BOOT.bin $(OUTPUT_PATH)/zImage $(OUTPUT_PATH)/dt.dtb
30+
#$(MAKE) rsync_boot
31+
#$(MAKE) rebootzynq
32+
33+
$(OUTPUT_PATH)/zImage: $(BUILD_PATH)/linux/.config
34+
mkdir -p $(OUTPUT_PATH)
35+
rm -rf $(MOTULE_PATH)
36+
mkdir -p $(MOTULE_PATH)
37+
cd $(LINUX_PATH); \
38+
$(MAKE) O=$(BUILD_PATH)/linux $(ARMMAKEFLAGS) zImage modules
39+
cp $(BUILD_PATH)/linux/arch/arm/boot/zImage $(OUTPUT_PATH)/zImage
40+
cd $(LINUX_PATH); \
41+
$(MAKE) O=$(BUILD_PATH)/linux $(ARMMAKEFLAGS) INSTALL_MOD_PATH=$(MOTULE_PATH) modules_install
42+
rm -f $(MOTULE_PATH)/lib/modules/*/build $(MOTULE_PATH)/lib/modules/*/source
43+
44+
$(OUTPUT_PATH)/dt.dtb: $(OUTPUT_PATH)/zImage $(LINUX_PATH)/arch/arm/boot/dts/$(BOARD_NAME).dts
45+
cd $(LINUX_PATH); \
46+
$(MAKE) O=$(BUILD_PATH)/linux $(ARMMAKEFLAGS) dtbs
47+
cp $(BUILD_PATH)/linux/arch/arm/boot/dts/$(BOARD_NAME).dtb $(OUTPUT_PATH)/dt.dtb
48+
49+
$(BUILD_PATH)/uboot/u-boot.elf: $(BUILD_PATH)/uboot/.config $(UBOOT_PATH)/arch/arm/dts/$(BOARD_NAME).dts
50+
mkdir -p $(BUILD_PATH)/uboot
51+
cd $(UBOOT_PATH); \
52+
$(MAKE) O=$(BUILD_PATH)/uboot $(ARMMAKEFLAGS) all
53+
54+
$(BUILD_PATH)/hardware.xsa: $(BITSTREAM)
55+
mkdir -p $(BUILD_PATH)/tcl
56+
@echo open_project $(XPR) > $(BUILD_PATH)/tcl/vivado.tcl
57+
@echo write_hw_platform -fixed -include_bit -force -file $(BUILD_PATH)/hardware.xsa >> $(BUILD_PATH)/tcl/vivado.tcl
58+
$(VIVADO_EXEC) -nojournal -nolog -mode batch -source $(BUILD_PATH)/tcl/vivado.tcl
59+
60+
$(BUILD_PATH)/platform/zynq_fsbl/fsbl.elf: $(BUILD_PATH)/hardware.xsa
61+
mkdir -p $(BUILD_PATH)/tcl
62+
@echo platform create -name platform -hw $(BUILD_PATH)/hardware.xsa -out $(BUILD_PATH) > $(BUILD_PATH)/tcl/vitis.tcl
63+
rm -rf $(BUILD_PATH)/platform
64+
$(VITIS_EXEC) $(BUILD_PATH)/tcl/vitis.tcl
65+
sed -i 's/@echo "R/#echo "R/g' $(BUILD_PATH)/platform/zynq_fsbl/zynq_fsbl_bsp/Makefile
66+
sed -i 's/-O2/-Os/g' $(BUILD_PATH)/platform/zynq_fsbl/zynq_fsbl_bsp/Makefile
67+
sed -i 's/-O2/-Os/g' $(BUILD_PATH)/platform/zynq_fsbl/Makefile
68+
perl -0777 -i.original -pe 's/FsblHookBeforeHandoff\(void\)\n\{/FsblHookBeforeHandoff(void)\n{\n\t*((int*)0xE0000000) |= 1;\n\t*((int*)0xE0001000) |= 1;/igs' $(BUILD_PATH)/platform/zynq_fsbl/fsbl_hooks.c
69+
sed -i 's/while(1);/SlcrUnlock();\n\tXil_Out32(PS_RST_CTRL_REG, PS_RST_MASK);/g' $(BUILD_PATH)/platform/zynq_fsbl/fsbl_hooks.c
70+
cd $(BUILD_PATH)/platform/zynq_fsbl; \
71+
$(MAKE) -s -j1
72+
73+
$(OUTPUT_PATH)/BOOT.bin: $(BUILD_PATH)/platform/zynq_fsbl/fsbl.elf $(BUILD_PATH)/uboot/u-boot.elf
74+
mkdir -p $(BUILD_PATH)/tcl
75+
mkdir -p $(OUTPUT_PATH)
76+
@echo 'the_ROM_image:' > $(BUILD_PATH)/tcl/image.bif
77+
@echo '{' >> $(BUILD_PATH)/tcl/image.bif
78+
@echo ' [bootloader]$(BUILD_PATH)/platform/zynq_fsbl/fsbl.elf' >> $(BUILD_PATH)/tcl/image.bif
79+
@echo ' $(BUILD_PATH)/platform/hw/hardware.bit' >> $(BUILD_PATH)/tcl/image.bif
80+
@echo ' $(BUILD_PATH)/uboot/u-boot.elf' >> $(BUILD_PATH)/tcl/image.bif
81+
@echo '}' >> $(BUILD_PATH)/tcl/image.bif
82+
$(BOOTGEN_EXEC) -image $(BUILD_PATH)/tcl/image.bif -arch zynq -o $(OUTPUT_PATH)/BOOT.bin -w on
83+
84+
savedefconf_linux:
85+
cp $(BUILD_PATH)/linux/.config $(LINUX_PATH)/arch/arm/configs/$(DEFCONF_NAME)
86+
87+
loaddefconf_linux:
88+
cd $(LINUX_PATH); \
89+
$(MAKE) O=$(BUILD_PATH)/linux $(ARMMAKEFLAGS) $(DEFCONF_NAME)
90+
91+
savedefconf_uboot:
92+
cp $(BUILD_PATH)/uboot/.config $(UBOOT_PATH)/configs/$(DEFCONF_NAME)
93+
94+
loaddefconf_uboot:
95+
cd $(UBOOT_PATH); \
96+
$(MAKE) O=$(BUILD_PATH)/uboot $(ARMMAKEFLAGS) $(DEFCONF_NAME)
97+
98+
$(BUILD_PATH)/linux/.config:
99+
mkdir -p $(BUILD_PATH)/linux
100+
$(MAKE) loaddefconf_linux
101+
102+
$(BUILD_PATH)/uboot/.config:
103+
mkdir -p $(BUILD_PATH)/uboot
104+
$(MAKE) loaddefconf_uboot
105+
106+
savedefconf: savedefconf_uboot savedefconf_linux
107+
108+
109+
loaddefconf: loaddefconf_uboot loaddefconf_linux
110+
111+
112+
ubootconfig: $(BUILD_PATH)/uboot/.config
113+
mkdir -p $(BUILD_PATH)/uboot
114+
cd $(UBOOT_PATH); \
115+
$(MAKE) O=$(BUILD_PATH)/uboot $(ARMMAKEFLAGS) menuconfig
116+
117+
linuxconfig: $(BUILD_PATH)/linux/.config
118+
mkdir -p $(BUILD_PATH)/linux
119+
cd $(LINUX_PATH); \
120+
$(MAKE) O=$(BUILD_PATH)/linux $(ARMMAKEFLAGS) menuconfig
121+
122+
dts:
123+
$(EDITOR) $(LINUX_PATH)/arch/arm/boot/dts/$(BOARD_NAME).dts
124+
125+
mkdts:
126+
touch $(LINUX_PATH)/arch/arm/boot/dts/$(BOARD_NAME).dts
127+
$(MAKE) adddts lndts
128+
129+
lndts:
130+
ln -f $(LINUX_PATH)/arch/arm/boot/dts/$(BOARD_NAME).dts $(UBOOT_PATH)/arch/arm/dts/$(BOARD_NAME).dts
131+
132+
adddts:
133+
sed -i 's/dtb-$$(CONFIG_ARCH_ZYNQ) += \\/dtb-$$(CONFIG_ARCH_ZYNQ) += \\\n\t$(BOARD_NAME).dtb \\/g' $(UBOOT_PATH)/arch/arm/dts/Makefile
134+
sed -i 's/dtb-$$(CONFIG_ARCH_ZYNQ) += \\/dtb-$$(CONFIG_ARCH_ZYNQ) += \\\n\t$(BOARD_NAME).dtb \\/g' $(LINUX_PATH)/arch/arm/boot/dts/Makefile
135+
136+
mkdefconf: mkdefconf_linux mkdefconf_uboot
137+
$(MAKE) loaddefconf
138+
$(MAKE) savedefconf
139+
140+
mkdefconf_linux:
141+
cp $(LINUX_PATH)/arch/arm/configs/xilinx_zynq_defconfig $(LINUX_PATH)/arch/arm/configs/$(DEFCONF_NAME)
142+
143+
mkdefconf_uboot:
144+
cp $(UBOOT_PATH)/configs/xilinx_zynq_virt_defconfig $(UBOOT_PATH)/configs/$(DEFCONF_NAME)
145+
sed -i 's/CONFIG_DEFAULT_DEVICE_TREE=".*"/CONFIG_DEFAULT_DEVICE_TREE="$(BOARD_NAME)"/g' $(UBOOT_PATH)/configs/$(DEFCONF_NAME)
146+
sed -i 's/CONFIG_OF_LIST=".*"/CONFIG_OF_LIST=""/g' $(UBOOT_PATH)/configs/$(DEFCONF_NAME)
147+
148+
clean_output:
149+
rm -rf $(OUTPUT_PATH)
150+
151+
clean_module:
152+
rm -rf $(MOTULE_PATH)
153+
154+
clean_xsa:
155+
rm -f $(BUILD_PATH)/hardware.xsa
156+
157+
clean_build:
158+
rm -rf $(BUILD_PATH)/uboot $(BUILD_PATH)/linux
159+
160+
clean_script:
161+
rm -rf $(BUILD_PATH)/vivado.tcl $(BUILD_PATH)/vitis.tcl $(BUILD_PATH)/image.bif
162+
163+
clean: clean_output clean_script clean_xsa clean_module
164+
165+
166+
distclean: clean clean_build
167+
rm -rf $(BUILD_PATH)/
168+
169+
rsync_boot:
170+
rsync $(OUTPUT_PATH)/* root@$(ZYNQ_IP):/boot/
171+
172+
rsync_module:
173+
ssh root@$(ZYNQ_IP) rm -rf /lib/modules/*
174+
rsync -ar $(MOTULE_PATH)/lib/modules/* root@$(ZYNQ_IP):/lib/modules/
175+
176+
poweroffzynq:
177+
ssh root@$(ZYNQ_IP) poweroff
178+
179+
rebootzynq:
180+
ssh root@$(ZYNQ_IP) reboot

misc/BCM43430A1.hcd

32.6 KB
Binary file not shown.

misc/uboot.env

4 KB
Binary file not shown.

vivado/.gitignore

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
*.jou
2+
*.log
3+
*.debug
4+
*.str
5+
*.zip
6+
*.tmp
7+
*.rst
8+
*.os
9+
*.js
10+
*.pb
11+
*.dcp
12+
*.hwdef
13+
*.vds
14+
*.veo
15+
*.wdf
16+
*.vdi
17+
*.dmp
18+
*.rpx
19+
*.rpt
20+
*_stub.v
21+
*_stub.vhdl
22+
*_funcsim.v
23+
*_funcsim.vhdl
24+
.project
25+
26+
*.cache
27+
.metadata
28+
*.data
29+
*.ipdefs
30+
.Xil
31+
*.sdk
32+
*.hw
33+
*.ip_user_files
34+
*.runs
35+
36+
*_synth_*
37+
38+
.jobs
39+
40+
*.c
41+
*.h
42+
*.vho
43+
*.html
44+
hw_handoff
45+
ipshared

0 commit comments

Comments
 (0)