On 1 August 2012 12:50, Rob Landley <[email protected]> wrote: > I can switch to a newer board, but I want to plug armv4tl, armv5l, > armv6l, and armv7l processors into it. (And eventually armv8 but nothing > supports that yet.) If it's always running armv7 then I can't _prove_ > that this userspace would actually run on armv5 and didn't leak armv7 > instructions in there. > > Last time I looked at newer boards the idea of plugging older processors > into them confused both qemu and the kernel's config stuff.
Yes, this is because it fundamentally doesn't work and won't work. ARM board models work with a limited set of CPUs (often just one CPU), if you try to -cpu something into a board model that doesn't support it you get to keep both pieces when it breaks. You can't just plug an A9 CPU into a versatile PB board in hardware, and it doesn't work in QEMU for about the same reason (the set of connections between the CPU and the board is completely different). > Looking at current qemu-git, there's no "-M vexpress", there is instead > > vexpress-a9 ARM Versatile Express for Cortex-A9 > vexpress-a15 ARM Versatile Express for Cortex-A15 > > I.E. the assumption about what processor you're plugging into this board > is baked into the board _name_, and both of those are armv7 only. This is because the A9 and A15 versatile express systems are genuinely different hardware (the memory maps are all different, for example). > Hmmm, then again it looks like > > http://www.mail-archive.com/[email protected]/msg19370.html > > Never got merged so the -cpu restrictions for armv4t and armv5l are > currently commented out anyway. I think we subsequently merged a different patch for the equivalent feature. Certainly translate.c does attempt to check for ARCH(5) or ARCH(4T) and so on. If we get specific cases wrong I can fix them. -- PMM
