diff options
author | John Crispin <john@openwrt.org> | 2014-04-12 21:21:14 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2014-04-12 21:21:14 +0000 |
commit | 1246dce0b31d3b950e04ab3a6fd466f289510c7c (patch) | |
tree | 5a8031c749e5208b4e979aad0f54ebb7841670b3 /package/boot/uboot-lantiq/patches/0029-tools-add-some-helper-tools-for-Lantiq-SoCs.patch | |
parent | 22916814e3621dd807b0d89485ba3c60cfdf7c10 (diff) | |
download | upstream-1246dce0b31d3b950e04ab3a6fd466f289510c7c.tar.gz upstream-1246dce0b31d3b950e04ab3a6fd466f289510c7c.tar.bz2 upstream-1246dce0b31d3b950e04ab3a6fd466f289510c7c.zip |
uboot-lantiq: update to v2013.10
Patches created from tree:
git@github.com:danielschwierzeck/u-boot-lantiq.git
v2013.10..u-boot-lantiq-v2013.10-openwrt4
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
SVN-Revision: 40482
Diffstat (limited to 'package/boot/uboot-lantiq/patches/0029-tools-add-some-helper-tools-for-Lantiq-SoCs.patch')
-rw-r--r-- | package/boot/uboot-lantiq/patches/0029-tools-add-some-helper-tools-for-Lantiq-SoCs.patch | 361 |
1 files changed, 0 insertions, 361 deletions
diff --git a/package/boot/uboot-lantiq/patches/0029-tools-add-some-helper-tools-for-Lantiq-SoCs.patch b/package/boot/uboot-lantiq/patches/0029-tools-add-some-helper-tools-for-Lantiq-SoCs.patch deleted file mode 100644 index 77d48d1ad3..0000000000 --- a/package/boot/uboot-lantiq/patches/0029-tools-add-some-helper-tools-for-Lantiq-SoCs.patch +++ /dev/null @@ -1,361 +0,0 @@ -From 1b77d4249b5addbf3b0848db6992a445019a1865 Mon Sep 17 00:00:00 2001 -From: Luka Perkov <luka@openwrt.org> -Date: Wed, 29 Aug 2012 22:08:42 +0200 -Subject: tools: add some helper tools for Lantiq SoCs - -Signed-off-by: Luka Perkov Luka Perkov <luka@openwrt.org> -Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> - ---- /dev/null -+++ b/tools/gct.pl -@@ -0,0 +1,155 @@ -+#!/usr/bin/perl -+ -+#use strict; -+#use Cwd; -+#use Env; -+ -+my $aline; -+my $lineid; -+my $length; -+my $address; -+my @bytes; -+my $addstr; -+my $chsum=0; -+my $count=0; -+my $firstime=1; -+my $i; -+my $currentaddr; -+my $tmp; -+my $holder=""; -+my $loadaddr; -+ -+if(@ARGV < 2){ -+ die("\n Syntax: perl gct.pl uart_ddr_settings.conf u-boot.srec u-boot.asc\n"); -+} -+ -+open(IN_UART_DDR_SETTINGS, "<$ARGV[0]") || die("failed to open uart_ddr_settings.conf\n"); -+open(IN_UART_SREC, "<$ARGV[1]") || die("failed to open u-boot.srec\n"); -+open(OUT_UBOOT_ASC, ">$ARGV[2]") || die("failed to open u-boot.asc\n"); -+ -+$i=0; -+while ($line = <IN_UART_DDR_SETTINGS>){ -+ if($line=~/\w/){ -+ if($line!~/[;#\*]/){ -+ if($i eq 0){ -+ printf OUT_UBOOT_ASC ("33333333"); -+ } -+ chomp($line); -+ $line=~s/\t//; -+ @array=split(/ +/,$line); -+ $j=0; -+ while(@array[$j]!~/\w/){ -+ $j=$j+1; -+ } -+ $addr=@array[$j]; -+ $regval=@array[$j+1]; -+ $addr=~s/0x//; -+ $regval=~s/0x//; -+ printf OUT_UBOOT_ASC ("%08x%08x",hex($addr),hex($regval)); -+ $i=$i+1; -+ if($i eq 8){ -+ $i=0; -+ printf OUT_UBOOT_ASC ("\n"); -+ } -+ } -+ } -+} -+ -+while($i lt 8 && $i gt 0){ -+ printf OUT_UBOOT_ASC "00"x8; -+ $i=$i+1; -+} -+ -+if($i eq 8){ -+ printf OUT_UBOOT_ASC ("\n"); -+} -+ -+while($aline=<IN_UART_SREC>){ -+ $aline=uc($aline); -+ chomp($aline); -+ next if(($aline=~/^S0/) || ($aline=~/^S7/)); -+ ($lineid, $length, $address, @bytes) = unpack"A2A2A8"."A2"x300, $aline; -+ $length = hex($length); -+ $address = hex($address); -+ $length -=5; -+ $i=0; -+ -+ while($length>0){ -+ if($firstime==1){ -+ $addstr = sprintf("%x", $address); -+ $addstr = "0"x(8-length($addstr)).$addstr; -+ print OUT_UBOOT_ASC $addstr; -+ addchsum($addstr); -+ $firstime=0; -+ $currentaddr=$address; -+ $loadaddr = $addstr; -+ } -+ else{ -+ if($count==64){ -+ $addstr = sprintf("%x", $currentaddr); -+ $addstr = "0"x(8-length($addstr)).$addstr; -+ print OUT_UBOOT_ASC $addstr; -+ addchsum($addstr); -+ $count=0; -+ } -+#printf("*** %x != %x\n", $address, $currentaddr) if $address != $currentaddr; -+ } -+ if($currentaddr < $address) { -+ print OUT_UBOOT_ASC "00"; -+ addchsum("00"); -+ $count++; -+ $currentaddr++; -+ } -+ else { -+ while($count<64){ -+ $bytes[$i]=~tr/ABCDEF/abcdef/; -+ print OUT_UBOOT_ASC "$bytes[$i]"; -+ addchsum($bytes[$i]); -+ $i++; -+ $count++; -+ $currentaddr++; -+ $length--; -+ last if($length==0); -+ } -+ } -+ if($count==64){ -+ print OUT_UBOOT_ASC "\n"; -+ } -+ } -+} -+if($count != 64){ -+ $tmp = "00"; -+ for($i=0;$i<(64-$count);$i++){ -+ print OUT_UBOOT_ASC "00"; -+ addchsum($tmp); -+ } -+ print OUT_UBOOT_ASC "\n"; -+} -+ -+ -+print OUT_UBOOT_ASC "11"x4; -+use integer; -+$chsum=$chsum & 0xffffffff; -+$chsum = sprintf("%X", $chsum); -+$chsum = "0"x(8-length($chsum)).$chsum; -+$chsum =~tr/ABCDEF/abcdef/; -+print OUT_UBOOT_ASC $chsum; -+print OUT_UBOOT_ASC "00"x60; -+print OUT_UBOOT_ASC "\n"; -+ -+print OUT_UBOOT_ASC "99"x4; -+print OUT_UBOOT_ASC $loadaddr; -+print OUT_UBOOT_ASC "00"x60; -+print OUT_UBOOT_ASC "\n"; -+ -+close OUT_UBOOT_ASC; -+ -+sub addchsum{ -+ my $cc=$_[0]; -+ $holder=$holder.$cc; -+ if(length($holder)==8){ -+ $holder = hex($holder); -+ $chsum+=$holder; -+ $holder=""; -+ } -+} ---- /dev/null -+++ b/tools/lantiq_extract_openwrt_patches.sh -@@ -0,0 +1,15 @@ -+#!/bin/bash -+ -+set -e -+set -x -+ -+test $# -eq 1 -+ -+openwrt_root=$(readlink -f $1) -+test -d $openwrt_root -+ -+uboot_lantiq_dir=$openwrt_root/package/boot/uboot-lantiq/patches -+test -d $uboot_lantiq_dir -+ -+rm -vf $uboot_lantiq_dir/* -+git format-patch -k -p --no-renames --text --full-index -o $uboot_lantiq_dir v2012.10..openwrt/v2013.01 ---- /dev/null -+++ b/tools/lantiq_ram_extract_magic.awk -@@ -0,0 +1,70 @@ -+# -+# This file is released under the terms of GPL v2 and any later version. -+# See the file COPYING in the root directory of the source tree for details. -+# -+# Copyright (C) 2011 Luka Perkov <luka@openwrt.org> -+# -+# usage: mips-openwrt-linux-objdump -EB -b binary -m mips:isa32r2 -D YOUR_IMAGE_DUMP | awk -f lantiq_ram_extract_magic.awk -+# -+ -+BEGIN { -+ print "/* " -+ print " * This file is released under the terms of GPL v2 and any later version. " -+ print " * See the file COPYING in the root directory of the source tree for details. " -+ print " * " -+ print " * generated with lantiq_ram_extract_magic.awk " -+ print " * " -+ print " * Copyright (C) 2011 Luka Perkov <luka@openwrt.org> " -+ print " */ " -+ print "" -+ -+ mc_dc_value=0 -+ mc_dc_number=0 -+ right_section=0 -+ mc_dc_value_print=0 -+ mc_dc_number_print=0 -+} -+ -+/t2,[0-9]+$/ { -+ if (right_section) { -+ split($4, tmp, ",") -+ mc_dc_value=sprintf("%X", tmp[2]) -+ mc_dc_value_print=1 -+ } -+} -+ -+/t2,0x[0-9a-f]+$/ { -+ if (right_section) { -+ split($4, tmp, ",0x") -+ mc_dc_value=sprintf("%s", tmp[2]) -+ mc_dc_value=toupper(mc_dc_value) -+ mc_dc_value_print=1 -+ } -+} -+ -+/t2,[0-9]+\(t1\)$/ { -+ if (right_section) { -+ split($4, tmp, ",") -+ split(tmp[2], tmp, "(") -+ mc_dc_number=tmp[1]/16 -+ mc_dc_number_print=1 -+ } -+} -+ -+{ -+ if (right_section && mc_dc_number_print && mc_dc_value_print) { -+ if (mc_dc_number < 10) -+ print "#define MC_DC0" mc_dc_number "_VALUE\t0x" mc_dc_value -+ else -+ print "#define MC_DC" mc_dc_number "_VALUE\t0x" mc_dc_value -+ mc_dc_value_print=0 -+ mc_dc_number_print=0 -+ } -+ -+ if ($4 == "t1,t1,0x1000") -+ right_section=1 -+ -+ -+ if ($4 == "t2,736(t1)") -+ right_section=0 -+} ---- /dev/null -+++ b/tools/lantiq_ram_init_uart.awk -@@ -0,0 +1,101 @@ -+#!/usr/bin/awk -f -+# -+# This file is released under the terms of GPL v2 and any later version. -+# See the file COPYING in the root directory of the source tree for details. -+# -+# Copyright (C) 2011-2012 Luka Perkov <luka@openwrt.org> -+# Copyright (C) 2012 Daniel Schwierzeck <daniel.schwierzeck@gmail.com> -+# -+# usage: awk -f lantiq_ram_init_uart.awk -v soc=<danube|ar9|vr9> PATH_TO_BOARD/ddr_settings.h -+# -+ -+function print_header() -+{ -+ print "; " -+ print "; This file is released under the terms of GPL v2 and any later version. " -+ print "; See the file COPYING in the root directory of the source tree for details. " -+ print "; " -+ print "; generated with lantiq_ram_init_uart.awk " -+ print "; " -+ print "; Copyright (C) 2011-2012 Luka Perkov <luka@openwrt.org> " -+ print "; Copyright (C) 2012 Daniel Schwierzeck <daniel.schwierzeck@gmail.com> " -+ print "; " -+ print "" -+} -+ -+function mc_ddr1_prologue() -+{ -+ /* Clear access error log registers */ -+ print "0xbf800010", "0x0" -+ print "0xbf800020", "0x0" -+ -+ /* Enable DDR and SRAM module in memory controller */ -+ print "0xbf800060", "0x5" -+ -+ /* Clear start bit of DDR memory controller */ -+ print "0xbf801030", "0x0" -+} -+ -+function mc_ddr1_epilogue() -+{ -+ /* Set start bit of DDR memory controller */ -+ print "0xbf801030", "0x100" -+} -+ -+function mc_ddr2_prologue() -+{ -+ /* Put memory controller in inactive mode */ -+ print "0xbf401070", "0x0" -+} -+ -+function mc_ddr2_epilogue(mc_ccr07_value) -+{ -+ /* Put memory controller in active mode */ -+ mc_ccr07_value = or(mc_ccr07_value, 0x100) -+ printf("0xbf401070 0x%x\n", mc_ccr07_value) -+} -+ -+BEGIN { -+ switch (soc) { -+ case "danube": -+ case "ar9": -+ reg_base = 0xbf801000 -+ print_header() -+ mc_ddr1_prologue() -+ break -+ case "vr9": -+ reg_base = 0xbf401000 -+ print_header() -+ mc_ddr2_prologue() -+ break -+ default: -+ print "Invalid or no value for soc specified!" -+ exit 1 -+ } -+ -+ mc_ccr07_value = 0 -+} -+ -+/^#define/ { -+ printf("0x%x %s\n", reg_base, tolower($3)) -+ reg_base += 0x10 -+} -+ -+/^#define(.*)MC_CCR07_VALUE/ { -+ printf("0x%x %s\n", reg_base, tolower($3)) -+ reg_base += 0x10 -+ mc_ccr07_value = strtonum($3) -+} -+ -+END { -+ switch (soc) { -+ case "danube": -+ case "ar9": -+ mc_ddr1_epilogue() -+ break -+ case "vr9": -+ mc_ddr2_epilogue(mc_ccr07_value) -+ break -+ default: -+ } -+} |