diff options
author | Bill Randle <bill.randle@gmail.com> | 2016-11-18 20:23:33 -0800 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2016-12-06 01:45:57 +0100 |
commit | 27211b605b45a2315d37b0d6b5e7ffaa6897caec (patch) | |
tree | 7a877dbe53b3ad42d48a3a95878c900f573379d2 /arch | |
parent | beee6a3083ebf08438aaf79eaeec23d0b5f9fec3 (diff) |
qts-filter.sh: strip DOS line endings and handle continuation lines
Some Altera Quartus generated files have long lines that are split with a '\' at
the end of the line. It also wOn Windows, rites files in DOS format, which can
confuse some of the processing scripts in this file. This patch solves both issues.
Signed-off-by: Bill Randle <bill.randle@gmail.com>
Cc: Marek Vasut <marex@denx.de>
Diffstat (limited to 'arch')
-rwxr-xr-x | arch/arm/mach-socfpga/qts-filter.sh | 47 |
1 files changed, 32 insertions, 15 deletions
diff --git a/arch/arm/mach-socfpga/qts-filter.sh b/arch/arm/mach-socfpga/qts-filter.sh index 1148a71311..785a0d5ea2 100755 --- a/arch/arm/mach-socfpga/qts-filter.sh +++ b/arch/arm/mach-socfpga/qts-filter.sh @@ -1,6 +1,14 @@ #!/bin/sh # +# helper function to convert from DOS to Unix, if necessary, and handle +# lines ending in '\'. +# +fix_newlines_in_macros() { + sed -n ':next;s/\r$//;/[^\\]\\$/ {N;s/\\\n//;b next};p' $1 +} + +# # Process iocsr_config_*.[ch] # $1: SoC type # $2: Input handoff directory @@ -27,14 +35,16 @@ process_iocsr_config() { EOF # Retrieve the scan chain lengths - grep 'CONFIG_HPS_IOCSR_SCANCHAIN[0-9]\+_LENGTH' \ - ${in_bsp_dir}/generated/iocsr_config_${soc}.h | tr -d "()" + fix_newlines_in_macros \ + ${in_bsp_dir}/generated/iocsr_config_${soc}.h | + grep 'CONFIG_HPS_IOCSR_SCANCHAIN[0-9]\+_LENGTH' | tr -d "()" echo "" # Retrieve the scan chain config and zap the ad-hoc length encoding - sed -n '/^const/ !b; :next {/^const/ s/(.*)//;p;n;b next}' \ - ${in_bsp_dir}/generated/iocsr_config_${soc}.c + fix_newlines_in_macros \ + ${in_bsp_dir}/generated/iocsr_config_${soc}.c | + sed -n '/^const/ !b; :next {/^const/ s/(.*)//;p;n;b next}' cat << EOF @@ -69,8 +79,9 @@ process_pinmux_config() { EOF # Retrieve the pinmux config and zap the ad-hoc length encoding - sed -n '/^unsigned/ !b; :next {/^unsigned/ {s/\[.*\]/[]/;s/unsigned long/const u8/};p;n;b next}' \ - ${in_bsp_dir}/generated/pinmux_config_${soc}.c + fix_newlines_in_macros \ + ${in_bsp_dir}/generated/pinmux_config_${soc}.c | + sed -n '/^unsigned/ !b; :next {/^unsigned/ {s/\[.*\]/[]/;s/unsigned long/const u8/};p;n;b next}' cat << EOF @@ -105,8 +116,9 @@ process_pll_config() { EOF # Retrieve the pll config and zap parenthesis - sed -n '/CONFIG_HPS/ !b; :next {/CONFIG_HPS/ s/[()]//g;/endif/ b;p;n;b next}' \ - ${in_bsp_dir}/generated/pll_config.h + fix_newlines_in_macros \ + ${in_bsp_dir}/generated/pll_config.h | + sed -n '/CONFIG_HPS/ !b; :next {/CONFIG_HPS/ s/[()]//g;/endif/ b;p;n;b next}' cat << EOF @@ -149,32 +161,37 @@ EOF echo "/* SDRAM configuration */" # Retrieve the sdram config, zap broken lines and zap parenthesis - sed -n "/\\\\$/ {N;s/ \\\\\n/\t/};p" \ + fix_newlines_in_macros \ ${in_bsp_dir}/generated/sdram/sdram_config.h | + sed -n "/\\\\$/ {N;s/ \\\\\n/\t/};p" | sed -n '/CONFIG_HPS/ !b; :next {/CONFIG_HPS/ s/[()]//g;/endif/ b;p;n;b next}' | sort -u | grep_sdram_config echo "" echo "/* Sequencer auto configuration */" - sed -n "/__RW_MGR/ {s/__//;s/ \+\([^ ]\+\)$/\t\1/p}" \ + fix_newlines_in_macros \ ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto.h | + sed -n "/__RW_MGR/ {s/__//;s/ \+\([^ ]\+\)$/\t\1/p}" | sort -u | grep_sdram_config echo "" echo "/* Sequencer defines configuration */" - sed -n "/^#define [^_]/ {s/__//;s/ \+\([^ ]\+\)$/\t\1/p}" \ + fix_newlines_in_macros \ ${in_qts_dir}/hps_isw_handoff/*/sequencer_defines.h | + sed -n "/^#define [^_]/ {s/__//;s/ \+\([^ ]\+\)$/\t\1/p}" | sort -u | grep_sdram_config echo "" echo "/* Sequencer ac_rom_init configuration */" - sed -n '/^const.*\[/ !b; :next {/^const.*\[/ {N;s/\n//;s/alt_u32/u32/;s/\[.*\]/[]/};/endif/ b;p;n;b next}'\ - ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto_ac_init.c + fix_newlines_in_macros \ + ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto_ac_init.c | + sed -n '/^const.*\[/ !b; :next {/^const.*\[/ {N;s/\n//;s/alt_u32/u32/;s/\[.*\]/[]/};/endif/ b;p;n;b next}' echo "" echo "/* Sequencer inst_rom_init configuration */" - sed -n '/^const.*\[/ !b; :next {/^const.*\[/ {N;s/\n//;s/alt_u32/u32/;s/\[.*\]/[]/};/endif/ b;p;n;b next}'\ - ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto_inst_init.c + fix_newlines_in_macros \ + ${in_qts_dir}/hps_isw_handoff/*/sequencer_auto_inst_init.c | + sed -n '/^const.*\[/ !b; :next {/^const.*\[/ {N;s/\n//;s/alt_u32/u32/;s/\[.*\]/[]/};/endif/ b;p;n;b next}' cat << EOF |