On Sat, Apr 30, 2022 at 3:32 PM Arnd Bergmann arnd@arndb.de wrote:
On Sat, Apr 30, 2022 at 2:41 PM Guenter Roeck linux@roeck-us.net wrote:
On 4/30/22 01:04, Arnd Bergmann wrote:
and concluded that it must have done this for a long time. In my own qemu instance, I see a crash from iWMMXt, but that works fine on your machine. OTOH, your failed instances all look like they either time out or failed to find a rootfs. I tried passing an MMC device as root, and that works here.
Booting from mmc works for me as well. Booting from pcmcia worked before, so I assume that there must be some regression.
Ok, got it, and managed to reproduce the hang now. My "ARM: pxa/sa1100: move I/O space to PCI_IOBASE" patch managed to get it to the point of detecting the pcmcia device instead of crashing, so I assumed it was enough when it clearly was not. Before that patch, it still works, afterwards it hangs with "pata_pcmcia: probe of 0.0 failed with error -12" as mentioned above. I'll have another look.
Got it: as the PCMCIA bus on this machine is the only thing with an I/O space, I assigned it port number range 0-0x1000, with an io_offset of 0, but this was apparently unexpected and triggered this sanity check:
static int static_find_io(struct pcmcia_socket *s, unsigned int attr, unsigned int *base, unsigned int num, unsigned int align, struct resource **parent) { if (!s->io_offset) return -EINVAL; ... return 0; }
I moved the devices around now, giving zeus/viper I/O space an offset of zero, and moving PCMCIA to offset 0x10000 and 0x11000 for the two slots, which now works because the io_offset is nonzero. I've regenerated the branches again, and confirmed the for-next branch still boots from pcmcia.
Arnd