summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2017-05-05 11:31:44 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2017-05-05 11:31:44 +0200
commit5485383d60cd62f1306c5ba6b781e684ba5c2ec3 (patch)
treea10523f97dbbfccb1b4a45e55a915831157394d9 /scripts
parent8e91536a000c1738e354827d6f72965fa1444985 (diff)
parent243530107ad99daa9456e8843efef25326d2a613 (diff)
downloadbarebox-5485383d60cd62f1306c5ba6b781e684ba5c2ec3.tar.gz
barebox-5485383d60cd62f1306c5ba6b781e684ba5c2ec3.tar.xz
Merge branch 'for-next/socfpga'
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/socfpga_import_preloader2
-rwxr-xr-xscripts/socfpga_xml_to_config.sh117
2 files changed, 118 insertions, 1 deletions
diff --git a/scripts/socfpga_import_preloader b/scripts/socfpga_import_preloader
index b08262cb6c..63ff30ec2a 100755
--- a/scripts/socfpga_import_preloader
+++ b/scripts/socfpga_import_preloader
@@ -46,7 +46,7 @@ copy_source() {
echo " Fixing include pathes..."
# Fix include pathes
- sed -i 's/#include <iocsr_config_cyclone5.h>/#include <mach\/scan-manager.h>/g' $tgt
+ sed -i 's/#include <iocsr_config_cyclone5.h>/#include <mach\/cyclone5-scan-manager.h>/g' $tgt
sed -i 's/#include <pinmux_config.h>/#include <common.h>/g' $tgt
sed -i 's/#include "sequencer_auto.h"//g' $tgt
sed -i 's/#include "sequencer_defines.h"//g' $tgt
diff --git a/scripts/socfpga_xml_to_config.sh b/scripts/socfpga_xml_to_config.sh
new file mode 100755
index 0000000000..7e22ebb9e8
--- /dev/null
+++ b/scripts/socfpga_xml_to_config.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+## TODO:
+## - read in mpuclk and nocclk, must be calculated by hand at the moment
+## - read in cfg_dedicated_io_*, must be calculated by hand at the moment
+
+if [ "$#" -lt "2" ]
+then
+ echo "USAGE: $0 <boarddir> <HPS.xml>"
+ exit 1
+fi
+
+dir=$1
+xml=$2
+
+pll_config() {
+ local src
+ local tgt
+ src=$1
+ tgt=$2
+
+ MAINPLL=`grep mainpll "$src" | \
+ sed -e 's/^.*mainpllgrp\.//g' | \
+ sed -e 's/\./_/g' | \
+ sed -e "s/' value/ /g" | \
+ sed -e "s/'/ /g" | \
+ sed -e "s# />#,#g" | \
+ sed -e "s/^/\t./g" |
+ sort`
+
+ # FIXME: Find solution
+ MAINPLL_FIXME=".mpuclk = FIXME,
+ .nocclk = FIXME,"
+
+ PERPLL=`grep perpll "$src" | \
+ sed -e 's/^.*perpllgrp\.//g' | \
+ sed -e 's/\./_/g' | \
+ sed -e "s/' value/ /g" | \
+ sed -e "s/'/ /g" | \
+ sed -e "s# />#,#g" | \
+ sed -e "s/^/\t./g" |
+ sort`
+
+ echo "#include <mach/arria10-clock-manager.h>" > $tgt
+ echo >> $tgt
+ echo "static struct arria10_mainpll_cfg mainpll_cfg = {" >> $tgt
+ echo "$MAINPLL" >> $tgt
+ echo "$MAINPLL_FIXME" >> $tgt
+ echo "};" >> $tgt
+ echo >> $tgt
+ echo "static struct arria10_perpll_cfg perpll_cfg = {" >> $tgt
+ echo "$PERPLL" >> $tgt
+ echo "};" >> $tgt
+
+ dos2unix $tgt
+}
+
+pinmux_config() {
+ local src
+ local tgt
+ src=$1
+ tgt=$2
+
+ SHARED=`grep pinmux_shared "$src" | \
+ sed -e 's/^.*pinmux_/[arria10_pinmux_/g' | \
+ sed -e "s/\.sel' value='/] = /g" | \
+ sed -e "s/' \/>/,/g"`
+
+ DEDICATED=`grep pinmux_dedicated "$src" | \
+ sed -e 's/^.*pinmux_/[arria10_pinmux_/g' | \
+ sed -e "s/\.sel' value='/] = /g" | \
+ sed -e "s/' \/>/,/g"`
+
+ # FIXME: Either find solution how to parse these values too or replace
+ # script with something that goes more in the direction of a programming
+ # language
+ DEDICATED_FIXME="[arria10_pincfg_dedicated_io_bank] = FIXME,
+ [arria10_pincfg_dedicated_io_1] = FIXME,
+ [arria10_pincfg_dedicated_io_2] = FIXME,
+ [arria10_pincfg_dedicated_io_3] = FIXME,
+ [arria10_pincfg_dedicated_io_4] = FIXME,
+ [arria10_pincfg_dedicated_io_5] = FIXME,
+ [arria10_pincfg_dedicated_io_6] = FIXME,
+ [arria10_pincfg_dedicated_io_7] = FIXME,
+ [arria10_pincfg_dedicated_io_8] = FIXME,
+ [arria10_pincfg_dedicated_io_9] = FIXME,
+ [arria10_pincfg_dedicated_io_10] = FIXME,
+ [arria10_pincfg_dedicated_io_11] = FIXME,
+ [arria10_pincfg_dedicated_io_12] = FIXME,
+ [arria10_pincfg_dedicated_io_13] = FIXME,
+ [arria10_pincfg_dedicated_io_14] = FIXME,
+ [arria10_pincfg_dedicated_io_15] = FIXME,
+ [arria10_pincfg_dedicated_io_16] = FIXME,
+ [arria10_pincfg_dedicated_io_17] = FIXME"
+
+ FPGA=`grep _fpga_interface_grp "$src" | \
+ grep -v -e usb -e pll_clock_out | \
+ sed -e 's/^.*pinmux_/[arria10_pinmux_/g' | \
+ sed -e "s/\.sel' value='/] = /g" | \
+ sed -e "s/' \/>/,/g"`
+
+ echo "#include <mach/arria10-pinmux.h>" > $tgt
+ echo >> $tgt
+ echo "static uint32_t pinmux[] = {" >> $tgt
+ echo "$SHARED" >> $tgt
+ echo "$DEDICATED" >> $tgt
+ echo "$DEDICATED_FIXME" >> $tgt
+ echo "$FPGA" >> $tgt
+ echo "};" >> $tgt
+ echo >> $tgt
+
+ dos2unix $tgt
+}
+
+pll_config $xml $dir/pll-config-arria10.c
+
+pinmux_config $xml $dir/pinmux-config-arria10.c