Pour le surplus, le recours est rejeté dans la mesure où il est recevable. 2. La demande d’assistance judiciaire est rejetée dans la mesure où elle n’est pas sans objet. 3. Les frais judiciaires, arrêtés à CHF 800.00, sont mis à la charge du recourant. 4. Le canton de Berne verse en mains du conseil du recourant une indemnité de CHF 1'500.00 à titre de dépens pour la procédure devant le Tribunal fédéral. 5. Le présent arrêt est communiqué aux parties et à la Cour suprême du canton de Berne, 2e Chambre pénale.