Answering my own question here... Travis B. Sawyer wrote:
>Greetings: > >We've been using a 2.4.30 kernel (with numerous patches) on a AMCC 440gx >custom built board for quite some time now. > >We're building some new hardware that forces us to go to a 2.6 kernel. >So, I've downloaded 2.6.16.16 from kernel.org and am porting everything >forward from our 2.4.30 kernel. > >The problem lies in mapping the GPIO regs of the 440 to user space using >/dev/mem: > > gpio_fd = open("/dev/mem", O_RDWR | O_SYNC); > > if (0 > gpio_fd) { > perror("mbGpioGet(): Unable to open gpio"); > return(-1); > } > > addr = (ppc440_gpio_regs_t *)mmap(0, getpagesize() * 2, > PROT_READ | PROT_WRITE, > MAP_SHARED, gpio_fd, > (off_t)(0x40000000)); > > > The above mmap call worked for 2.4.30, but for 2.6.16 I needed to change the offset to be a multiple of page size, so: (off_t)(0x40000000/getpagesize()); -travis