Writing to CPLD mapped to EBC Port of AMCC440EP

Josh Boyer jwboyer at linux.vnet.ibm.com
Wed Jul 30 10:02:25 EST 2008

On Mon, 28 Jul 2008 16:40:35 -0700
"Henry Bausley" <hbausley at deltatau.com> wrote:

> I am attempting to write to a CPLD mapped to the EBC port of a AMCC 440EP.  When I attempt to write using an unsigned variable
> ie. unsigned *pbase = (unsigned char *)ioremap64(0x8F000000,0x1000000);
> I get a kernel access of bad area, sig: 11 fault.  However, if I change to an unsigned char ie. unsigned char *pbase = (unsigned char *)ioremap64(0x8F000000,
> 0x1000000); The system doesn't crash.  I need to write using an unsigned.  Does any one have any ideas what I am doing wrong?

The documentation I have for the Bamboo board says the EPLD is at
address 0x80002000 and is only 8 bytes in size.  Similarly, the
Yosemite board CPLD is at 0x80002000 and is only 16 bytes in size.  Why
you are ioremapping 16MiB at 0x8F000000 I have no idea.

Also, the individual registers of the EPLD/CPLD on both boards are only
8 bits, so an unsigned char seems appropriate.  If you have a custom
board that does something totally different from how the eval boards
are set up, then I'm not sure many people will be able to help you
without documentation for that board.


More information about the Linuxppc-embedded mailing list