On 5 September 2013 19:55, Andreas Färber <afaer...@suse.de> wrote: > Am 05.09.2013 18:43, schrieb Peter Maydell: >> /* Indexed by pl110_version */ >> static const unsigned char *idregs[] = { >> pl110_id, >> - pl110_versatile_id, >> + /* The ARM documentation (DDI0224C) says the CLCDC on the Versatile >> board >> + * has a different ID (0x93, 0x10, 0x04, 0x00, ...). However the >> hardware >> + * itself has the same ID values as a stock PL110, and guests (in >> + * particular Linux) rely on this. We emulate what the hardware does, >> + * rather than what the docs claim it ought to do. >> + */ >> + pl110_id, >> pl111_id >> }; >> > > I vaguely remember us having a conversation that we might store these in > the class, but me not wanting to refactor that in my 1.6 candidate > patchset, right?
I don't feel very strongly about it one way or the other for this sort of "these two things are almost exactly the same but not quite" device; we could do it the way we do now, or with something in the class, I guess. The pl11x is not something I'm likely to do any new work on and the current code's not unacceptably ugly so unless you have a strong opinion I'd just leave it the way it is. (Possibly I leant the other way last time the issue came up: if so, that's a measure of my lack-of-strong-opinion :-)) -- PMM