* SystemACE driver problem
@ 2007-10-19 9:03 aauer1
2007-10-19 14:04 ` Grant Likely
0 siblings, 1 reply; 7+ messages in thread
From: aauer1 @ 2007-10-19 9:03 UTC (permalink / raw)
To: linuxppc-embedded
Hello
I'm trying to boot a Linux Kernel 2.6.23-rc2 from Grant Likely (thanks for
the great work) on a Xilinx ML403 board. I want to use the second partition
of the Compact Flash Card as root filesystem. But the boot process hangs at
the initialization of the SystemACE module. A strange effect is that the
DONE LED (configuration of the FPGA is done) turns off. So, this means that
the FPGA loses his configuration.
Has anybody recognized a similar problem with the SystemACE module??
The boot log:
========
[ 0.000000] Linux version 2.6.23-rc2 (bbauer@soclin) (gcc version 4.0.0
(DEN7
[ 0.000000] Xilinx ML403 Reference System (Virtex-4 FX)
[ 0.000000] Zone PFN ranges:
[ 0.000000] DMA 0 -> 16384
[ 0.000000] Normal 16384 -> 16384
[ 0.000000] Movable zone start PFN for each node
[ 0.000000] early_node_map[1] active PFN ranges
[ 0.000000] 0: 0 -> 16384
[ 0.000000] Built 1 zonelists in Zone order. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyUL0 root=/dev/xsa2 rw
[ 0.000000] Xilinx INTC #0 at 0x41200000 mapped to 0xFDFFF000
[ 0.000000] PID hash table entries: 256 (order: 8, 1024 bytes)
[ 0.000328] Console: colour dummy device 80x25
[ 0.001390] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.002934] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.029759] Memory: 63244k available (1176k kernel code, 388k data, 84k
init)
[ 0.120774] Mount-cache hash table entries: 512
[ 0.171986] io scheduler noop registered
[ 0.172248] io scheduler anticipatory registered (default)
[ 0.172300] io scheduler deadline registered
[ 0.172508] io scheduler cfq registered
[ 0.268807] uartlite.0: ttyUL0 at MMIO 0x40600000 (irq = 2) is a uartlite
[ 0.270399] console [ttyUL0] enabled
[ 1.762725] RAMDISK driver initialized: 8 RAM disks of 8192K size 1024
blocke
[ 1.852062] Registering Xilinx SystemACE driver, major=254
[ 1.919734] xsysace xsysace.0: ace_probe(c01638e0)
Thanks,
Andreas
--
View this message in context: http://www.nabble.com/SystemACE-driver-problem-tf4651846.html#a13290652
Sent from the linuxppc-embedded mailing list archive at Nabble.com.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SystemACE driver problem
2007-10-19 9:03 SystemACE driver problem aauer1
@ 2007-10-19 14:04 ` Grant Likely
2007-10-19 18:13 ` aauer1
0 siblings, 1 reply; 7+ messages in thread
From: Grant Likely @ 2007-10-19 14:04 UTC (permalink / raw)
To: aauer1; +Cc: linuxppc-embedded
On 10/19/07, aauer1 <aauer1@gmx.at> wrote:
>
> Hello
>
> I'm trying to boot a Linux Kernel 2.6.23-rc2 from Grant Likely (thanks for
> the great work) on a Xilinx ML403 board. I want to use the second partition
> of the Compact Flash Card as root filesystem. But the boot process hangs at
> the initialization of the SystemACE module. A strange effect is that the
> DONE LED (configuration of the FPGA is done) turns off. So, this means that
> the FPGA loses his configuration.
> Has anybody recognized a similar problem with the SystemACE module??
>
> The boot log:
> ========
> [ 0.000000] Linux version 2.6.23-rc2 (bbauer@soclin) (gcc version 4.0.0
> (DEN7
> [ 0.000000] Xilinx ML403 Reference System (Virtex-4 FX)
> [ 0.000000] Zone PFN ranges:
> [ 0.000000] DMA 0 -> 16384
> [ 0.000000] Normal 16384 -> 16384
> [ 0.000000] Movable zone start PFN for each node
> [ 0.000000] early_node_map[1] active PFN ranges
> [ 0.000000] 0: 0 -> 16384
> [ 0.000000] Built 1 zonelists in Zone order. Total pages: 16256
> [ 0.000000] Kernel command line: console=ttyUL0 root=/dev/xsa2 rw
> [ 0.000000] Xilinx INTC #0 at 0x41200000 mapped to 0xFDFFF000
> [ 0.000000] PID hash table entries: 256 (order: 8, 1024 bytes)
> [ 0.000328] Console: colour dummy device 80x25
> [ 0.001390] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
> [ 0.002934] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
> [ 0.029759] Memory: 63244k available (1176k kernel code, 388k data, 84k
> init)
> [ 0.120774] Mount-cache hash table entries: 512
> [ 0.171986] io scheduler noop registered
> [ 0.172248] io scheduler anticipatory registered (default)
> [ 0.172300] io scheduler deadline registered
> [ 0.172508] io scheduler cfq registered
> [ 0.268807] uartlite.0: ttyUL0 at MMIO 0x40600000 (irq = 2) is a uartlite
> [ 0.270399] console [ttyUL0] enabled
> [ 1.762725] RAMDISK driver initialized: 8 RAM disks of 8192K size 1024
> blocke
> [ 1.852062] Registering Xilinx SystemACE driver, major=254
> [ 1.919734] xsysace xsysace.0: ace_probe(c01638e0)
Yes, I've seen that. It means something went wrong with the setup and
caused the sysace to reload the FPGA. Is the systemace base address
and bus width set correctly?
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SystemACE driver problem
2007-10-19 14:04 ` Grant Likely
@ 2007-10-19 18:13 ` aauer1
2007-10-19 18:20 ` Grant Likely
0 siblings, 1 reply; 7+ messages in thread
From: aauer1 @ 2007-10-19 18:13 UTC (permalink / raw)
To: linuxppc-embedded
Grant Likely-2 wrote:
>
> On 10/19/07, aauer1 <aauer1@gmx.at> wrote:
>>
>> Hello
>>
>> I'm trying to boot a Linux Kernel 2.6.23-rc2 from Grant Likely (thanks
>> for
>> the great work) on a Xilinx ML403 board. I want to use the second
>> partition
>> of the Compact Flash Card as root filesystem. But the boot process hangs
>> at
>> the initialization of the SystemACE module. A strange effect is that the
>> DONE LED (configuration of the FPGA is done) turns off. So, this means
>> that
>> the FPGA loses his configuration.
>> Has anybody recognized a similar problem with the SystemACE module??
>>
>> The boot log:
>> ========
> [snipped]
>> [ 0.268807] uartlite.0: ttyUL0 at MMIO 0x40600000 (irq = 2) is a
>> uartlite
>> [ 0.270399] console [ttyUL0] enabled
>> [ 1.762725] RAMDISK driver initialized: 8 RAM disks of 8192K size 1024
>> blocke
>> [ 1.852062] Registering Xilinx SystemACE driver, major=254
>> [ 1.919734] xsysace xsysace.0: ace_probe(c01638e0)
>
> Yes, I've seen that. It means something went wrong with the setup and
> caused the sysace to reload the FPGA. Is the systemace base address
> and bus width set correctly?
>
>
The base address is the same as in the system.mhs file of my hardware
design. So, I think it should be correct. The bus width is set to 16 bits
(hardware design). So far as I can see, the sysace driver defines a 16 bit
data bus (hard coded), too.
A paper of BlueCat Linux says that there is a problem with the System ACE
hardware module:
"Due to a known problem of the opb_sysace IP Core programmed into the FPGA
(incorrect operation in the interrupt mode) the SystemACE Compact Flash
device is supported in the polling mode."
Does anyone know something about the bug in the SystemACE IP core??
Thanks,
Andreas
--
View this message in context: http://www.nabble.com/SystemACE-driver-problem-tf4651846.html#a13300089
Sent from the linuxppc-embedded mailing list archive at Nabble.com.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SystemACE driver problem
2007-10-19 18:13 ` aauer1
@ 2007-10-19 18:20 ` Grant Likely
2007-10-22 2:52 ` John Hahn
2007-10-22 13:50 ` aauer1
0 siblings, 2 replies; 7+ messages in thread
From: Grant Likely @ 2007-10-19 18:20 UTC (permalink / raw)
To: aauer1; +Cc: linuxppc-embedded
On 10/19/07, aauer1 <aauer1@gmx.at> wrote:
>
>
>
> Grant Likely-2 wrote:
> >
> > On 10/19/07, aauer1 <aauer1@gmx.at> wrote:
> >>
> >> Hello
> >>
> >> I'm trying to boot a Linux Kernel 2.6.23-rc2 from Grant Likely (thanks
> >> for
> >> the great work) on a Xilinx ML403 board. I want to use the second
> >> partition
> >> of the Compact Flash Card as root filesystem. But the boot process hangs
> >> at
> >> the initialization of the SystemACE module. A strange effect is that the
> >> DONE LED (configuration of the FPGA is done) turns off. So, this means
> >> that
> >> the FPGA loses his configuration.
> >> Has anybody recognized a similar problem with the SystemACE module??
> >>
> >> The boot log:
> >> ========
> > [snipped]
> >> [ 0.268807] uartlite.0: ttyUL0 at MMIO 0x40600000 (irq = 2) is a
> >> uartlite
> >> [ 0.270399] console [ttyUL0] enabled
> >> [ 1.762725] RAMDISK driver initialized: 8 RAM disks of 8192K size 1024
> >> blocke
> >> [ 1.852062] Registering Xilinx SystemACE driver, major=254
> >> [ 1.919734] xsysace xsysace.0: ace_probe(c01638e0)
> >
> > Yes, I've seen that. It means something went wrong with the setup and
> > caused the sysace to reload the FPGA. Is the systemace base address
> > and bus width set correctly?
> >
> >
>
> The base address is the same as in the system.mhs file of my hardware
> design. So, I think it should be correct. The bus width is set to 16 bits
> (hardware design). So far as I can see, the sysace driver defines a 16 bit
> data bus (hard coded), too.
Hmmm; that's all very odd. I don't know what could be causing that.
> A paper of BlueCat Linux says that there is a problem with the System ACE
> hardware module:
> "Due to a known problem of the opb_sysace IP Core programmed into the FPGA
> (incorrect operation in the interrupt mode) the SystemACE Compact Flash
> device is supported in the polling mode."
>
> Does anyone know something about the bug in the SystemACE IP core??
I don't know about the old xilinx supplied sysace driver, but the new
xsysace.c driver is robust enough to work around missed interrupts. I
don't know of any other problems with the opb_sysace IP core.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: SystemACE driver problem
2007-10-19 18:20 ` Grant Likely
@ 2007-10-22 2:52 ` John Hahn
2007-10-22 3:24 ` Grant Likely
2007-10-22 13:50 ` aauer1
1 sibling, 1 reply; 7+ messages in thread
From: John Hahn @ 2007-10-22 2:52 UTC (permalink / raw)
To: linuxppc-embedded
Grant
Regarding your comment about the new xsysace.c driver vs. the old Xilinx
one, is that chosen at the kernel config time ?
i.e.
cp arch/ppc/configs/ml403_defconfig
make ARCH=ppc CROSS_COMPILE=/opt/eldk4.1/usr/bin/ppc_4xx- oldconfig
...
Xilinx SystemACE support (XILINX_SYSACE) [N/m/y/?] (NEW) y
Xilinx SystemACE support (old driver) (XILINX_SYSACE_OLD) [N/m/y/?] (NEW) N
I am also about build and test with the 2.6.23-rc2 same source. Just wanted
to be sure I am choosing the right driver for the ml403 reference design
bits from Xilinx.
Thanks
John Hahn
BCF Semiconductor
---
P.S. Sorry for taking the thread off on a slight tangent ...
> From: Grant Likely
> Sent: Friday, October 19, 2007 11:21 AM
>
... <snip>
>
> I don't know about the old xilinx supplied sysace driver, but the new
> xsysace.c driver is robust enough to work around missed interrupts. I
> don't know of any other problems with the opb_sysace IP core.
>
> Cheers,
> g.
>
> --
> Grant Likely, B.Sc., P.Eng.
> Secret Lab Technologies Ltd.
> grant.likely@secretlab.ca
> (403) 399-0195
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SystemACE driver problem
2007-10-22 2:52 ` John Hahn
@ 2007-10-22 3:24 ` Grant Likely
0 siblings, 0 replies; 7+ messages in thread
From: Grant Likely @ 2007-10-22 3:24 UTC (permalink / raw)
To: John Hahn; +Cc: linuxppc-embedded
On 10/21/07, John Hahn <jhahn@bcfsemi.com> wrote:
> Grant
>
> Regarding your comment about the new xsysace.c driver vs. the old Xilinx
> one, is that chosen at the kernel config time ?
>
> i.e.
> cp arch/ppc/configs/ml403_defconfig
> make ARCH=ppc CROSS_COMPILE=/opt/eldk4.1/usr/bin/ppc_4xx- oldconfig
>
> ...
> Xilinx SystemACE support (XILINX_SYSACE) [N/m/y/?] (NEW) y
> Xilinx SystemACE support (old driver) (XILINX_SYSACE_OLD) [N/m/y/?] (NEW) N
>
> I am also about build and test with the 2.6.23-rc2 same source. Just wanted
> to be sure I am choosing the right driver for the ml403 reference design
> bits from Xilinx.
Both drivers work. The new driver is faster, but the old driver is
more featurefull. If one isn't working for you, try the other and
report your experiences with both here to the list.
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely@secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SystemACE driver problem
2007-10-19 18:20 ` Grant Likely
2007-10-22 2:52 ` John Hahn
@ 2007-10-22 13:50 ` aauer1
1 sibling, 0 replies; 7+ messages in thread
From: aauer1 @ 2007-10-22 13:50 UTC (permalink / raw)
To: linuxppc-embedded
Hello,
I have partly solved my problem with the System ACE controller. And I think
it may be interesting for. I don't know the real cause of the problem,
because it is very difficult to reproduce it. But I think the problem is
anywhere in the initialization of the System ACE controller.
So, I started a new design with the Xilinx platform studio and wrote my own
code to read the first sector of the CF card. This code is not very
beautiful, but it works. So, I configured the FPGA and downloaded my
program. And wow... I get the first sector of the card.
Afterwards, I reseted the System ACE controller and downloaded the
zImage.elf from my kernel. Now, the kernel can initialize the CF card and
mount the root filesystem. Wonderful!
If the problem occurs again, I will have a closer look.
For the sake of completeness, my init code:
================================
XStatus status;
XSysAce SysAce;
int i=0;
volatile short *ptr = (short *)0x41800000; // BASE Address of SYSACE
volatile char *cptr = (char *) 0x41800000; // BASE Address of SYSACE
print("\r\nTesting SysAce for SysACE_CompactFlash...\r\n");
status = XSysAce_Initialize(&SysAce, XPAR_SYSACE_COMPACTFLASH_DEVICE_ID);
if(status != XST_SUCCESS)
{
print("Init... FAILED\r\n");
}
else
{
print("Init... PASSED\r\n");
printf("Base Address: %x\r\n",SysAce.BaseAddress);
printf("Is Ready: %x\r\n",SysAce.IsReady);
printf("sizeof(short): %d\r\n", sizeof(short));
printf("Status0 value: %x\r\n",ptr[2]);
printf("Status1 value: %x\r\n",ptr[3]);
printf("Error0 value: %x\r\n",ptr[4]);
printf("Error1 value: %x\r\n",ptr[5]);
printf("Version value: %x\r\n",ptr[0xb]);
printf("Ctrl0 value: %x\r\n",cptr[0x18]);
printf("Ctrl0 value: %x\r\n",cptr[0x18]);
ptr[0xc] = 0x0300;
printf("Status0 value: %x\r\n",ptr[2]);
while(!(ptr[2] & 0x0200));
print("Lock granted\r\n");
while(!(ptr[2] & 0x0001));
print("Ready for command\r\n");
ptr[8] = 0x0000; // LBA
ptr[9] = 0x0000; // LBA
ptr[10] = 0x0103;
ptr[0xc] = 0x8000;
while(!(ptr[3] & 0x0200));
print("Busy cleared\r\n");
printf("Status0 value: %x\r\n",ptr[2]);
while(!(ptr[2] & 0x2000));
print("Data Buffer is ready\r\n");
for(i=0;i<256;i++)
{
printf("0x%04x\r\n", ptr[0x20]&0xffff);
}
ptr[0xc] = 0x0100;
printf("Status0 value: %x\r\n",ptr[2]);
printf("Ctrl0 value: %x\r\n",ptr[0xc]);
printf("Ctrl1 value: %x\r\n",ptr[0xd]);
Cheers,
Andreas
Grant Likely-2 wrote:
>
> On 10/19/07, aauer1 <aauer1@gmx.at> wrote:
>>
>>
>>
>> Grant Likely-2 wrote:
>> >
>> > On 10/19/07, aauer1 <aauer1@gmx.at> wrote:
>> >>
>> >> Hello
>> >>
>> >> I'm trying to boot a Linux Kernel 2.6.23-rc2 from Grant Likely (thanks
>> >> for
>> >> the great work) on a Xilinx ML403 board. I want to use the second
>> >> partition
>> >> of the Compact Flash Card as root filesystem. But the boot process
>> hangs
>> >> at
>> >> the initialization of the SystemACE module. A strange effect is that
>> the
>> >> DONE LED (configuration of the FPGA is done) turns off. So, this means
>> >> that
>> >> the FPGA loses his configuration.
>> >> Has anybody recognized a similar problem with the SystemACE module??
>> >>
>> >> The boot log:
>> >> ========
>> > [snipped]
>> >> [ 0.268807] uartlite.0: ttyUL0 at MMIO 0x40600000 (irq = 2) is a
>> >> uartlite
>> >> [ 0.270399] console [ttyUL0] enabled
>> >> [ 1.762725] RAMDISK driver initialized: 8 RAM disks of 8192K size
>> 1024
>> >> blocke
>> >> [ 1.852062] Registering Xilinx SystemACE driver, major=254
>> >> [ 1.919734] xsysace xsysace.0: ace_probe(c01638e0)
>> >
>> > Yes, I've seen that. It means something went wrong with the setup and
>> > caused the sysace to reload the FPGA. Is the systemace base address
>> > and bus width set correctly?
>> >
>> >
>>
>> The base address is the same as in the system.mhs file of my hardware
>> design. So, I think it should be correct. The bus width is set to 16 bits
>> (hardware design). So far as I can see, the sysace driver defines a 16
>> bit
>> data bus (hard coded), too.
>
> Hmmm; that's all very odd. I don't know what could be causing that.
>
>> A paper of BlueCat Linux says that there is a problem with the System ACE
>> hardware module:
>> "Due to a known problem of the opb_sysace IP Core programmed into the
>> FPGA
>> (incorrect operation in the interrupt mode) the SystemACE Compact Flash
>> device is supported in the polling mode."
>>
>> Does anyone know something about the bug in the SystemACE IP core??
>
> I don't know about the old xilinx supplied sysace driver, but the new
> xsysace.c driver is robust enough to work around missed interrupts. I
> don't know of any other problems with the opb_sysace IP core.
>
> Cheers,
> g.
>
> --
> Grant Likely, B.Sc., P.Eng.
> Secret Lab Technologies Ltd.
> grant.likely@secretlab.ca
> (403) 399-0195
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>
>
--
View this message in context: http://www.nabble.com/SystemACE-driver-problem-tf4651846.html#a13342284
Sent from the linuxppc-embedded mailing list archive at Nabble.com.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-10-22 13:50 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-19 9:03 SystemACE driver problem aauer1
2007-10-19 14:04 ` Grant Likely
2007-10-19 18:13 ` aauer1
2007-10-19 18:20 ` Grant Likely
2007-10-22 2:52 ` John Hahn
2007-10-22 3:24 ` Grant Likely
2007-10-22 13:50 ` aauer1
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).