I think I've just got to the bottom of the reason why bootldr sometimes, unpredictably, got wedged before booting. The culprit was the code which resets the audio codec to stop it making so much noise. I was all ready to blame the udelay() function but it turns out there was some bogus code in there which had its register addresses and values mixed up. Mea culpa. It behaves properly now. The modified bootldr/balloon.c is checked in to trunk. Chris -- Chris Jones - chris@martin-jones.com Martin-Jones Technology Ltd, makers of Solidlights 148 Catharine Street, Cambridge, CB1 3AR, UK Phone +44 (0) 1223 655611 Fax +44 (0) 870 112 3908 http://www.solidlights.co.uk/