On 27 January 2012 00:33, Rusty Russell <ru...@rustcorp.com.au> wrote: > Peter Maydell wrote: >> Anyway, if we would otherwise die horribly later on we should >> catch these cases, but it would be good to have at least a comment >> saying that these are implementation limitations rather than >> architectural ones. > > Good point. If we add an "supported" bit to each irq, we could do weird > things, but presumably ->num_irq would still correspond to > ITLinesNumber. > > I don't want to put too much of an essay in there. How's this: > > /* ITLinesNumber is represented as (N - 32) / 1. See > gic_dist_readb. */ > if (s->num_irq < 32 || (s->num_irq % 32)) { > hw_error("%u interrupt lines unsupported: not divisible by > 32\n", > num_irq);
I think that's a notch too terse for my taste. How about: /* ITLinesNumber is represented as (N - 32) / 1 (see * gic_dist_readb) so this is an implementation imposed * restriction, not an architectural one: */ thanks -- PMM