How much is too much?
An over simplified way of differentiating Agile methods from Waterfall methods is to say Agile does the least amount of preparation required to get something into production, while Waterfall does the most. Taking into account commercial realities we think an agile approach is preferred. But the question remains, for your specific project, how much of the whole project do you need to know in detail before you start coding?