diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2017-05-05 11:31:44 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2017-05-05 11:31:44 +0200 |
commit | 5485383d60cd62f1306c5ba6b781e684ba5c2ec3 (patch) | |
tree | a10523f97dbbfccb1b4a45e55a915831157394d9 /scripts | |
parent | 8e91536a000c1738e354827d6f72965fa1444985 (diff) | |
parent | 243530107ad99daa9456e8843efef25326d2a613 (diff) | |
download | barebox-5485383d60cd62f1306c5ba6b781e684ba5c2ec3.tar.gz barebox-5485383d60cd62f1306c5ba6b781e684ba5c2ec3.tar.xz |
Merge branch 'for-next/socfpga'
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/socfpga_import_preloader | 2 | ||||
-rwxr-xr-x | scripts/socfpga_xml_to_config.sh | 117 |
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 |