Bug#706937: pu: package gcc-msp430/4.6.3~mspgcc-20120406-3+deb7u2
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: pu
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi RT,
I'd like to upload a stable +deb7u2 for gcc-msp430.
This is the fix for #706482 which was not closed with +deb7u1 due to short
timing before the release. This revision reverts the previous doc-only change
and cherry-pick the upstream fix for the IVT layout of FRAM chips.
Full diff attached, diffstat as follow:
changelog | 7 +++
control | 5 --
lts-patch/fram-fuse-blown.diff | 80
+++++++++++++++++++++++++++++++++++++++++
patchlist | 1
4 files changed, 88 insertions(+), 5 deletions(-)
Please ACK, so that I proceed with the p-u upload.
- -- System Information:
Debian Release: 7.0
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
iEYEARECAAYFAlGHjl8ACgkQRqobajv7n7P/TQCdFCPAk9hv7qfSNIGiQPWGx36V
tWIAnRLkVeJVFgd3zzrezKBUjZg8g9Ab
=dN8x
-----END PGP SIGNATURE-----
diff -Nru gcc-msp430-4.6.3~mspgcc-20120406/debian/changelog gcc-msp430-4.6.3~mspgcc-20120406/debian/changelog
--- gcc-msp430-4.6.3~mspgcc-20120406/debian/changelog 2013-05-02 14:43:37.000000000 +0200
+++ gcc-msp430-4.6.3~mspgcc-20120406/debian/changelog 2013-05-06 00:07:07.000000000 +0200
@@ -1,3 +1,10 @@
+gcc-msp430 (4.6.3~mspgcc-20120406-3+deb7u2) stable; urgency=high
+
+ * Fix generation of wrong interrupt table for MSP430FR5xxx
+ targets, resulting in security fuse blown (Closes: #706482)
+
+ -- Luca Bruno <lucab@debian.org> Sun, 05 May 2013 23:56:24 +0200
+
gcc-msp430 (4.6.3~mspgcc-20120406-3+deb7u1) testing; urgency=high
* Change package description to mention the incompatibility
diff -Nru gcc-msp430-4.6.3~mspgcc-20120406/debian/control gcc-msp430-4.6.3~mspgcc-20120406/debian/control
--- gcc-msp430-4.6.3~mspgcc-20120406/debian/control 2013-05-02 10:10:13.000000000 +0200
+++ gcc-msp430-4.6.3~mspgcc-20120406/debian/control 2013-05-06 00:05:38.000000000 +0200
@@ -20,8 +20,3 @@
This is the GNU C compiler, a fairly portable optimizing compiler for C
for TI's MSP430 architecture. This package is primarily for MSP430
developers and cross-compilers and is not needed by normal users.
- .
- BEWARE: due to a bug in the memory layout reference of FRAM-based chips,
- this package DOES NOT WORK with MSP430FR5xxx chips (eg. FraunchPad devkit).
- DO NOT use gcc-msp430 on that chip series, as you will lose access to
- JTAG and BSL, and permanently BRICK your chip!
diff -Nru gcc-msp430-4.6.3~mspgcc-20120406/debian/lts-patch/fram-fuse-blown.diff gcc-msp430-4.6.3~mspgcc-20120406/debian/lts-patch/fram-fuse-blown.diff
--- gcc-msp430-4.6.3~mspgcc-20120406/debian/lts-patch/fram-fuse-blown.diff 1970-01-01 01:00:00.000000000 +0100
+++ gcc-msp430-4.6.3~mspgcc-20120406/debian/lts-patch/fram-fuse-blown.diff 2013-05-05 23:55:35.000000000 +0200
@@ -0,0 +1,80 @@
+From 0594213396817815f584efe3257987e704b4f187 Mon Sep 17 00:00:00 2001
+From: Peter A. Bigot <pabigot@users.sourceforge.net>
+Date: Thu, 12 Jul 2012 14:32:16 -0500
+Subject: [PATCH] SF 3540953 fram applications overwrite bsl/jtag passwords
+
+No MSP430 chip has more than 25 valid interrupts, and they are assigned from
+the top down. The FRAM chips use lower words in the interrupt vector to
+hold BSL and JTAG passwords, and having real addresses in those locations
+has been shown to result in problems accessing BSL and JTAG. Leave the low
+32 words erased; this matches as-delivered MSP430FR5739 content for those
+addresses.
+---
+ gcc/config/msp430/crt0ivtbl.S | 44 ++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 42 insertions(+), 2 deletions(-)
+
+diff --git gcc-4.6.3.orig/gcc/config/msp430/crt0ivtbl.S gcc-4.6.3/gcc/config/msp430/crt0ivtbl.S
+index 46bc0c1..68dff23 100644
+--- gcc-4.6.3.orig/gcc/config/msp430/crt0ivtbl.S
++++ gcc-4.6.3/gcc/config/msp430/crt0ivtbl.S
+@@ -36,6 +36,7 @@ __br_unexpected_:
+
+ DEFINE_IVTABLE INTERRUPT_VECTOR_COUNT
+
++#if 32 >= INTERRUPT_VECTOR_COUNT
+ INITIALIZE_ISR_SLOT 0
+ INITIALIZE_ISR_SLOT 1
+ INITIALIZE_ISR_SLOT 2
+@@ -69,8 +70,47 @@ DEFINE_IVTABLE INTERRUPT_VECTOR_COUNT
+ INITIALIZE_ISR_SLOT 29
+ INITIALIZE_ISR_SLOT 30
+ #endif /* 16 < INTERRUPT_VECTOR_COUNT */
+-#if 32 < INTERRUPT_VECTOR_COUNT
+- INITIALIZE_ISR_SLOT 31
++#else /* 32 >= INTERRUPT_VECTOR_COUNT */
++/* SF 3540953 fram applications overwrite bsl/jtag passwords
++ *
++ * No MSP430 chip has more than 25 valid interrupts, and they are assigned from
++ * the top down. The FRAM chips use lower words in the interrupt vector to
++ * hold BSL and JTAG passwords, and having real addresses in those locations
++ * has been shown to result in problems accessing BSL and JTAG. Leave the low
++ * 32 words erased; this matches as-delivered MSP430FR5739 content for those
++ * addresses. */
++ .word 0xffff ; 0
++ .word 0xffff ; 1
++ .word 0xffff ; 2
++ .word 0xffff ; 3
++ .word 0xffff ; 4
++ .word 0xffff ; 5
++ .word 0xffff ; 6
++ .word 0xffff ; 7
++ .word 0xffff ; 8
++ .word 0xffff ; 9
++ .word 0xffff ; 10
++ .word 0xffff ; 11
++ .word 0xffff ; 12
++ .word 0xffff ; 13
++ .word 0xffff ; 14
++ .word 0xffff ; 15
++ .word 0xffff ; 16
++ .word 0xffff ; 17
++ .word 0xffff ; 18
++ .word 0xffff ; 19
++ .word 0xffff ; 20
++ .word 0xffff ; 21
++ .word 0xffff ; 22
++ .word 0xffff ; 23
++ .word 0xffff ; 24
++ .word 0xffff ; 25
++ .word 0xffff ; 26
++ .word 0xffff ; 27
++ .word 0xffff ; 28
++ .word 0xffff ; 29
++ .word 0xffff ; 30
++ .word 0xffff ; 31
+ INITIALIZE_ISR_SLOT 32
+ INITIALIZE_ISR_SLOT 33
+ INITIALIZE_ISR_SLOT 34
+--
+1.7.4.1
+
diff -Nru gcc-msp430-4.6.3~mspgcc-20120406/debian/patchlist gcc-msp430-4.6.3~mspgcc-20120406/debian/patchlist
--- gcc-msp430-4.6.3~mspgcc-20120406/debian/patchlist 2012-05-17 08:57:46.000000000 +0200
+++ gcc-msp430-4.6.3~mspgcc-20120406/debian/patchlist 2013-05-05 23:56:13.000000000 +0200
@@ -1 +1,2 @@
../msp430-gcc-4.6.3-20120406.patch
+./lts-patch/fram-fuse-blown.diff
Reply to: