diff --git a/configs/fpgas/marsellus/virtex7.sh b/configs/fpgas/marsellus/virtex7.sh new file mode 100644 index 0000000..a8e2520 --- /dev/null +++ b/configs/fpgas/marsellus/virtex7.sh @@ -0,0 +1,23 @@ +#!/bin/bash -e + +export PULPRT_TARGET=marsellus +export PULPRUN_TARGET=marsellus + +if [ -n "${ZSH_VERSION:-}" ]; then + DIR="$(readlink -f -- "${(%):-%x}")" + scriptDir="$(dirname $DIR)" +else + + scriptDir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" + +fi + +source $scriptDir/../../common.sh + +export PULPRUN_PLATFORM=fpga + +#Virtex7 uses 10MHz SoC Frequency +export PULPRT_CONFIG_CFLAGS='-DARCHI_FPGA_FREQUENCY=10000000' + +export io=uart + diff --git a/configs/fpgas/pulp/virtex7.sh b/configs/fpgas/pulp/virtex7.sh new file mode 100644 index 0000000..72242e5 --- /dev/null +++ b/configs/fpgas/pulp/virtex7.sh @@ -0,0 +1,22 @@ +#!/bin/bash -e + +export PULPRT_TARGET=pulp +export PULPRUN_TARGET=pulp + +if [ -n "${ZSH_VERSION:-}" ]; then + DIR="$(readlink -f -- "${(%):-%x}")" + scriptDir="$(dirname $DIR)" +else + + scriptDir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" + +fi + +source $scriptDir/../../common.sh + +export PULPRUN_PLATFORM=fpga + +#Virtex7 uses 10MHz SoC Frequency +export PULPRT_CONFIG_CFLAGS='-DARCHI_FPGA_FREQUENCY=10000000' + +export io=uart \ No newline at end of file diff --git a/include/archi/chips/marsellus/properties.h b/include/archi/chips/marsellus/properties.h index 248321d..735c687 100644 --- a/include/archi/chips/marsellus/properties.h +++ b/include/archi/chips/marsellus/properties.h @@ -22,8 +22,17 @@ * FPGA */ -#define ARCHI_FPGA_FREQUENCY 5000000 +#ifndef ARCHI_FPGA_FREQUENCY +#define ARCHI_FPGA_FREQUENCY 1000000 +#endif +#ifndef ARCHI_FPGA_FC_FREQUENCY +#define ARCHI_FPGA_FC_FREQUENCY 2000000 +#endif + +#ifndef ARCHI_FPGA_CL_FREQUENCY +#define ARCHI_FPGA_CL_FREQUENCY 20000000 +#endif /* * MEMORIES */ diff --git a/kernel/chips/marsellus/soc.c b/kernel/chips/marsellus/soc.c index 5c3c9a4..8626f91 100644 --- a/kernel/chips/marsellus/soc.c +++ b/kernel/chips/marsellus/soc.c @@ -18,12 +18,25 @@ void pos_soc_init() { +#if __PLATFORM__ != ARCHI_PLATFORM_FPGA + pos_fll_constructor(); pos_freq_domains[PI_FREQ_DOMAIN_FC] = pos_fll_init(POS_FLL_FC); pos_freq_domains[PI_FREQ_DOMAIN_PERIPH] = pos_fll_init(POS_FLL_PERIPH); + pos_freq_domains[PI_FREQ_DOMAIN_CL] = pos_fll_init(POS_FLL_CL); + +#else + + pos_freq_domains[PI_FREQ_DOMAIN_FC] = ARCHI_FPGA_FC_FREQUENCY; + + pos_freq_domains[PI_FREQ_DOMAIN_PERIPH] = ARCHI_FPGA_FREQUENCY; + + pos_freq_domains[PI_FREQ_DOMAIN_CL] = ARCHI_FPGA_CL_FREQUENCY; + +#endif } diff --git a/rules/pulpos/targets/marsellus.mk b/rules/pulpos/targets/marsellus.mk index 9b47b38..61e7fec 100644 --- a/rules/pulpos/targets/marsellus.mk +++ b/rules/pulpos/targets/marsellus.mk @@ -41,4 +41,9 @@ PULP_SRCS += kernel/chips/marsellus/soc.c include $(PULPRT_HOME)/rules/pulpos/configs/default.mk + +ifeq '$(platform)' 'fpga' +CONFIG_IO_UART=1 +endif + include $(PULPRT_HOME)/rules/pulpos/default_rules.mk \ No newline at end of file