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 <[email protected]>
Cc: Marek Vasut <[email protected]>
---
v2: encapsulate new sed calls into a helper function

 arch/arm/mach-socfpga/qts-filter.sh | 47 +++++++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 15 deletions(-)

diff --git a/arch/arm/mach-socfpga/qts-filter.sh 
b/arch/arm/mach-socfpga/qts-filter.sh
index 050d6ba..e492a11 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
 
-- 
2.7.4

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to