On Sun, Jul 29, 2007 at 03:46:37AM +0200, andrzej zaborowski wrote: > Hi, Hi, > > On 29/07/07, Juergen Lock <[EMAIL PROTECTED]> wrote:
> > Anyway, boot now fails with: > > qemu: fatal: pxa2xx_gpio_read: Bad offset 0x1c > > i.e. it is apparently expecting something there that is not yet > > Oh, it's Sharp's poor code :) the GPSR (0x1c) and GPCR registers are > write-only. I think it's safe to assume that the real hardware returns > the last written value in these addresses when reading, but in the > documentation they are write-only. Yeah it was crashing in static int force_8bit_access_check_and_set in linux/drivers/pcmcia/cistpl.c, apparently while doing an GPSR(GPIO54_nPCE_2) = GPSR(GPIO54_nPCE_2); Patched that (patch-pxa-gpsr, attached), and now the boot seems to be hanging somewhere in userland... > > > emulated. And when i boot with init=/bin/sh I can't do much because > > the keymap seems to be wrong or the fn key otherwise gets lost. > > (similar effect with the poky image btw, I wonder is this a qemu > > problem or is just noone using the terminal there? :) > > The problem here is the 2.6 kernel's default keymap and the zaurusd > daemon used in poky and openzaurus. They use this strange keymap and > qemu tries to account for that. I had first set a keymap in qemu that > matched the console keymap but later when I started using X it was > unusable and other users also didn't like that so I remapped all the > keys, but the remapping is not perfect even now, because the real > Zaurus keymap is too far from a normal pc keyboard (and I don't have a > physical one). Yeah it has an fn key that is used to generate most special characters... But even shift didn't work on the 2.4 kernel's console (and as I said fn apparently got lost too), and with the poky rxvt it seemed like anything that uses fn caused an error (cursor flashes quickly) instead of sending the corresponding character. > > Thanks for the patches, I will have a look tomorrow (hopefully). Thanx for committing, :) Juergen
Index: qemu/hw/pxa2xx_gpio.c @@ -152,6 +152,9 @@ case GPDR: /* GPIO Pin-Direction registers */ return s->dir[bank]; + case GPSR: /* GPIO Pin-Output Set registers */ + return s->olevel[bank]; + case GRER: /* GPIO Rising-Edge Detect Enable registers */ return s->rising[bank];