Re: Writing to CPLD mapped to EBC Port of AMCC440EP
From: Henry Bausley <hidden>
Date: 2008-07-30 18:38:10
Our board is based upon the Yosemite. But we have modified the CPLD and made our own custom hardware, thats why the parameters for ioremap are different. The system is based on the 2.6.14-rtl that has worked absolutely perfect for a couple of years which we got from FSM Labs. I am porting to the 2.6.24 kernel Denx with xenomai and had the problem. It turns out the default value if the EBC0_CFG register was 0x84400000 in the system and we needed to change it to 0xBC400000 to increase the Ready Timeout. We were getting a machine check error. Thank's a lot for your input!!! ----- Original Message ----- From: "Josh Boyer" <redacted> To: "Henry Bausley" <redacted> Cc: <redacted> Sent: Tuesday, July 29, 2008 5:02 PM Subject: Re: Writing to CPLD mapped to EBC Port of AMCC440EP
On Mon, 28 Jul 2008 16:40:35 -0700 "Henry Bausley" [off-list ref] wrote:quoted
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. josh