Skip to content

Commit d9b2c4b

Browse files
authored
Agilex5E ED GHRD 25.1 Release
Release Information: Quartus Version: Release 25.1 PRO build 129 Tag: QPDS25.1_REL_GSRD_PR Repository Migration: For previous releases, all GHRD designs are hosted in altera-opensource/ghrd-socfpga Starting from 25.1, the Agilex 5 E-series FPGA GHRD designs will be hosted in this repo. Repository Restructure: For previous releases, users need to generate the GHRD designs manually. From 25.1 all design files for supported Agilex 5 GHRD are checked in. Designs are grouped according to the Development Kit and Daughter Cards in individual folders. After cloning the repository, users can navigate to the desired folder and open the design directly with Quartus. Refer to README.md for the supported designs and details. Added Feature: Timing violation and pin assignment warnings are promoted to error to ensure that the design sof file can be generated successfully. Re-factored Makefile to build the designs for the new repository structure. Refer to README.md for the detailed instructions. Prebuild binaries and design files as release assets in altera-fpga. They can be downloaded directly with Quartus. Refer accessing-downloaded-design-examples for details. Co-authored-by: Kalen Brunham [email protected] Co-authored-by: Wong, Felix Siew An [email protected] Co-authored-by: Wong, Hao Feng [email protected] Co-authored-by: Tan, Jessica Yen Lyn [email protected] Co-authored-by: Lam, Siew Leong [email protected] Signed-off-by: Goh Shun Jing [email protected]
1 parent c72b0d0 commit d9b2c4b

File tree

284 files changed

+500429
-2
lines changed

Some content is hidden

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

284 files changed

+500429
-2
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/.vscode/
2+
/venv/
3+
/work/
4+
/install/

LICENSE

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
Copyright 2024-2025 Altera Corporation
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy of
4+
this software and associated documentation files (the “Software”), to deal in
5+
the Software without restriction, except as set forth below, including without
6+
limitation the rights to use, copy, modify, merge, publish, distribute,
7+
sublicense, and/or sell copies of the Software, and to permit persons to whom
8+
the Software is furnished to do so, subject to the following conditions:
9+
10+
The above copyright notice and this permission notice shall be included in all
11+
copies or substantial portions of the Software;
12+
13+
If a file contained in this Software includes separate license text or a header
14+
file with license terms, those terms will supersede this agreement for purposes
15+
of that file only, all files without a separate agreement are subject to this
16+
agreement;
17+
18+
The Software must be used solely for design and implementation on an Altera
19+
product;
20+
21+
You must not use the Software or devices you configure using this Software to
22+
violate any internationally recognized human right; and
23+
24+
The Software may be subject to export controls under applicable government laws
25+
and regulations, including those of the U.S. You must: a) comply with
26+
applicable laws and regulations and obtain any necessary authorizations; b) not
27+
export, import, or transfer the materials to any prohibited or sanctioned
28+
country, person, or entity; or c) use the materials for the development,
29+
design, manufacture, or production of nuclear, missile, chemical, or biological
30+
weapons.
31+
32+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
34+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
35+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
36+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
37+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
38+
SOFTWARE.
39+
40+
Governing Law and Jurisdiction. If you are in the Americas, U.S. and Delaware
41+
law governs all disputes arising out of or relating to this agreement without
42+
regard to conflict-of-laws principles. The state and federal courts in
43+
Wilmington, Delaware will have exclusive jurisdiction over any dispute arising
44+
out of or relating to this agreement. If you are in Europe or Africa, the laws
45+
of England and Wales govern all matters arising out of or relating to this
46+
agreement without regard to conflict-of-laws principles. The courts in England
47+
will have exclusive jurisdiction over any dispute arising out of or relating to
48+
this agreement. If you are in Asia or Australia, Singapore law governs all
49+
disputes arising out of or relating to this agreement without regard to
50+
conflict-of-laws principles. The courts in Singapore will have exclusive
51+
jurisdiction over any dispute arising out of or relating to this agreement. You
52+
and Intel consent to personal jurisdiction and venue in the courts designated
53+
for your location. If you are in China, Hong Kong law governs all disputes
54+
arising out of or relating to this agreement without regard to conflict-of-laws
55+
principles. Any dispute arising out of or relating to this agreement will be
56+
subject to arbitration by the Hong Kong International Arbitration Centre, this
57+
arbitration agreement will be governed by Hong Kong law, and the seat and
58+
location of proceedings will be Hong Kong. The current rules of the HKIAC will
59+
apply, except that the arbitration will be referred to a sole arbitrator and
60+
the proceedings will be conducted in English. The Arbitral Tribunal may only
61+
award monetary damages and may not award injunctive relief or any remedy that
62+
requires a party to license any intellectual property rights. Regardless of the
63+
above or your location, claims for misappropriation of trade secrets and breach
64+
of confidentiality obligations may also be brought in any court that has
65+
jurisdiction over the parties if the relief sought is limited to injunctive or
66+
other nonmonetary relief. The parties exclude the application of the United
67+
Nations Convention on Contracts for the International Sale of Goods (1980).

Makefile

Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
THIS_MK_ABSPATH := $(abspath $(lastword $(MAKEFILE_LIST)))
2+
THIS_MK_DIR := $(dir $(THIS_MK_ABSPATH))
3+
4+
# Enable pipefail for all commands
5+
SHELL=/bin/bash -o pipefail
6+
7+
# Enable second expansion
8+
.SECONDEXPANSION:
9+
10+
# Clear all built in suffixes
11+
.SUFFIXES:
12+
13+
NOOP :=
14+
SPACE := $(NOOP) $(NOOP)
15+
COMMA := ,
16+
HOSTNAME := $(shell hostname)
17+
18+
##############################################################################
19+
# Environment check
20+
##############################################################################
21+
22+
23+
##############################################################################
24+
# Configuration
25+
##############################################################################
26+
WORK_ROOT := $(abspath $(THIS_MK_DIR)/work)
27+
INSTALL_RELATIVE_ROOT ?= install
28+
INSTALL_ROOT ?= $(abspath $(THIS_MK_DIR)/$(INSTALL_RELATIVE_ROOT))
29+
30+
PYTHON3 ?= python3
31+
VENV_DIR := venv
32+
VENV_PY := $(VENV_DIR)/bin/python
33+
VENV_PIP := $(VENV_DIR)/bin/pip
34+
ifneq ($(https_proxy),)
35+
PIP_PROXY := --proxy $(https_proxy)
36+
else
37+
PIP_PROXY :=
38+
endif
39+
VENV_PIP_INSTALL := $(VENV_PIP) install $(PIP_PROXY) --timeout 90 --trusted-host pypi.org --trusted-host files.pythonhosted.org
40+
41+
##############################################################################
42+
# Set default goal before any targets. The default goal here is "test"
43+
##############################################################################
44+
DEFAULT_TARGET := all
45+
46+
.DEFAULT_GOAL := default
47+
.PHONY: default
48+
default: $(DEFAULT_TARGET)
49+
50+
51+
##############################################################################
52+
# Makefile starts here
53+
##############################################################################
54+
55+
56+
###############################################################################
57+
# Design Targets
58+
###############################################################################
59+
60+
# Initialize variables
61+
ALL_TARGET_STEM_NAMES =
62+
ALL_PRE_PREP_TARGETS =
63+
ALL_PREP_TARGETS =
64+
ALL_IP_UPGRADE_TARGETS =
65+
ALL_GENERATE_DESIGN_TARGETS =
66+
ALL_PACKAGE_DESIGN_TARGETS =
67+
ALL_BUILD_TARGETS =
68+
ALL_SW_BUILD_TARGETS =
69+
ALL_TEST_TARGETS =
70+
ALL_INSTALL_SOF_TARGETS =
71+
ALL_TARGET_ALL_NAMES =
72+
73+
# Define function to create targets
74+
define create_targets_on_subdir
75+
ALL_TARGET_STEM_NAMES += $(addprefix $(strip $(1))-,$(strip $(2)))
76+
ALL_PRE_PREP_TARGETS += $(addsuffix -pre-prep,$(addprefix $(strip $(1))-,$(strip $(2))))
77+
ALL_PREP_TARGETS += $(addsuffix -prep,$(addprefix $(strip $(1))-,$(strip $(2))))
78+
ALL_IP_UPGRADE_TARGETS += $(addsuffix -ip-upgrade,$(addprefix $(strip $(1))-,$(strip $(2))))
79+
ALL_GENERATE_DESIGN_TARGETS += $(addsuffix -generate-design,$(addprefix $(strip $(1))-,$(strip $(2))))
80+
ALL_PACKAGE_DESIGN_TARGETS += $(addsuffix -package-design,$(addprefix $(strip $(1))-,$(strip $(2))))
81+
ALL_BUILD_TARGETS += $(addsuffix -build,$(addprefix $(strip $(1))-,$(strip $(2))))
82+
ALL_SW_BUILD_TARGETS += $(addsuffix -sw-build,$(addprefix $(strip $(1))-,$(strip $(2))))
83+
ALL_TEST_TARGETS += $(addsuffix -test,$(addprefix $(strip $(1))-,$(strip $(2))))
84+
ALL_INSTALL_SOF_TARGETS += $(addsuffix -install-sof,$(addprefix $(strip $(1))-,$(strip $(2))))
85+
ALL_TARGET_ALL_NAMES += $(addsuffix -all,$(addprefix $(strip $(1))-,$(strip $(2))))
86+
87+
88+
$(strip $(1))-%-pre-prep : venv
89+
$(MAKE) --no-print-directory -C $(strip $(1)) $$*-pre-prep
90+
91+
$(strip $(1))-%-prep : venv
92+
$(MAKE) --no-print-directory -C $(strip $(1)) $$*-prep
93+
94+
$(strip $(1))-%-ip-upgrade : venv
95+
$(MAKE) --no-print-directory -C $(strip $(1)) $$*-ip-upgrade
96+
97+
$(strip $(1))-%-generate-design : venv
98+
$(MAKE) --no-print-directory -C $(strip $(1)) $$*-generate-design
99+
100+
$(strip $(1))-%-package-design :
101+
$(MAKE) --no-print-directory -C $(strip $(1)) $$*-package-design INSTALL_ROOT=$(INSTALL_ROOT)/$(strip $(3))
102+
103+
$(strip $(1))-%-build :
104+
$(MAKE) --no-print-directory -C $(strip $(1)) $$*-build
105+
106+
$(strip $(1))-%-sw-build :
107+
$(MAKE) --no-print-directory -C $(strip $(1)) $$*-sw-build
108+
109+
$(strip $(1))-%-test :
110+
$(MAKE) --no-print-directory -C $(strip $(1)) $$*-test
111+
112+
$(strip $(1))-%-install-sof :
113+
$(MAKE) --no-print-directory -C $(strip $(1)) $$*-install-sof INSTALL_ROOT=$(INSTALL_ROOT)/$(strip $(3))
114+
115+
.PHONY: $(addsuffix -all,$(addprefix $(strip $(1))-,$(strip $(2))))
116+
$(addsuffix -all,$(addprefix $(strip $(1))-,$(strip $(2)))): venv
117+
$(MAKE) $(addsuffix -pre-prep,$(addprefix $(strip $(1))-,$(strip $(2))))
118+
$(MAKE) $(addsuffix -generate-design,$(addprefix $(strip $(1))-,$(strip $(2))))
119+
$(MAKE) $(addsuffix -package-design,$(addprefix $(strip $(1))-,$(strip $(2))))
120+
$(MAKE) $(addsuffix -prep,$(addprefix $(strip $(1))-,$(strip $(2))))
121+
$(MAKE) $(addsuffix -build,$(addprefix $(strip $(1))-,$(strip $(2))))
122+
$(MAKE) $(addsuffix -sw-build,$(addprefix $(strip $(1))-,$(strip $(2))))
123+
$(MAKE) $(addsuffix -test,$(addprefix $(strip $(1))-,$(strip $(2))))
124+
$(MAKE) $(addsuffix -install-sof,$(addprefix $(strip $(1))-,$(strip $(2))))
125+
126+
endef
127+
128+
# Create rules for subdirs
129+
TARGET_SUBDIR := \
130+
a5ed065es-premium-devkit-oobe \
131+
a5ed065es-premium-devkit-nand \
132+
a5ed065es-premium-devkit-emmc \
133+
a5ed065es-premium-devkit-debug2 \
134+
a5ed065es-modular-devkit-som
135+
136+
# Create the subdir recipes by recurinsively calling the create_targets_on_subdir on each TARGET_SUBDIR
137+
define create_subdir_targets
138+
$(foreach target, $(shell make --no-print-directory -q -C $(1) print-targets), $(eval $(call create_targets_on_subdir, $(1), $(target), designs)))
139+
endef
140+
$(foreach subdir,$(TARGET_SUBDIR),$(eval $(call create_subdir_targets,$(subdir))))
141+
142+
###############################################################################
143+
# UTILITY TARGETS
144+
###############################################################################
145+
# Deep clean using git
146+
.PHONY: dev-clean
147+
dev-clean :
148+
rm -rf $(INSTALL_ROOT) $(WORK_ROOT)
149+
git clean -dfx --exclude=/.vscode --exclude=.lfsconfig
150+
151+
# Using git
152+
.PHONY: dev-update
153+
dev-update :
154+
git pull
155+
git submodule update --init --recursive
156+
157+
.PHONY: clean
158+
clean:
159+
rm -rf $(INSTALL_ROOT) $(WORK_ROOT)
160+
git clean -dfx --exclude=/.vscode --exclude=.lfsconfig --exclude=$(VENV_DIR)
161+
162+
# Prep workspace
163+
venv:
164+
$(PYTHON3) -m venv $(VENV_DIR)
165+
$(VENV_PIP_INSTALL) --upgrade pip
166+
$(VENV_PIP_INSTALL) -r requirements.txt
167+
168+
169+
.PHONY: venv-freeze
170+
venv-freeze:
171+
$(VENV_PIP) freeze > requirements.txt
172+
sed -i -e 's/==/~=/g' requirements.txt
173+
174+
.PHONY: prepare-tools
175+
prepare-tools : venv
176+
177+
# Include not_shipped Makefile if present
178+
-include not_shipped/Makefile.mk
179+
180+
###############################################################################
181+
# Toplevel Targets
182+
###############################################################################
183+
.PHONY: pre-prep
184+
pre-prep: $(ALL_PRE_PREP_TARGETS)
185+
186+
.PHONY: prep
187+
prep: $(ALL_PREP_TARGETS)
188+
189+
.PHONY: ip-upgrade
190+
ip-upgrade: $(ALL_IP_UPGRADE_TARGETS)
191+
192+
.PHONY: generate-designs
193+
generate-designs: $(ALL_GENERATE_DESIGN_TARGETS)
194+
195+
.PHONY: package-designs
196+
package-designs: $(ALL_PACKAGE_DESIGN_TARGETS)
197+
198+
# Build options
199+
.PHONY: build
200+
build: $(ALL_BUILD_TARGETS)
201+
202+
# SW-Build options
203+
.PHONY: sw-build
204+
sw-build: $(ALL_SW_BUILD_TARGETS)
205+
206+
# Run all tests
207+
.PHONY: test
208+
test : build
209+
210+
.PHONY: install-sof
211+
install-sof: $(ALL_INSTALL_SOF_TARGETS)
212+
213+
.PHONY: all
214+
all: $(ALL_TARGET_ALL_NAMES)
215+
216+
###############################################################################
217+
# HELP
218+
###############################################################################
219+
.PHONY: help
220+
help:
221+
$(info GHRD Build)
222+
$(info ----------------)
223+
$(info All Targets : $(ALL_TARGET_ALL_NAMES))
224+
$(info Stem names : $(ALL_TARGET_STEM_NAMES))
225+
$(info Pre-Prep Targets : $(ALL_PRE_PREP_TARGETS))
226+
$(info Prep Targets : $(ALL_PREP_TARGETS))
227+
$(info Build Targets : $(ALL_BUILD_TARGETS))
228+
$(info Test Targets : $(ALL_TEST_TARGETS))
229+
$(info Package Targets : $(ALL_PACKAGE_DESIGN_TARGETS))
230+

0 commit comments

Comments
 (0)