1/1
PCI Target and Windows XP
by thunter0512 on Mar 1, 2010 |
thunter0512
Posts: 2 Joined: Aug 20, 2009 Last seen: Jul 26, 2011 |
||
I have successfully used the OpenCores PCI Target (pci32tlite) on a Raggedstone1 board (made by Enterpoint) running under Linux on a x86 PC.
The same PC fails to boot under Windows XP SP3. I have tried several different Windows PCs - some work perfectly, but most will not boot Windows with the PCI Target implementation. Does anybody have suggestions on how best to identify the cause or debug this problem? I have also tried the Opencores PCI Bridge and it works perfectly on BOTH Linux and Windows XP (using the same PC), but is too slow for my application. Thanks for any help Tom |
RE: PCI Target and Windows XP
by thunter0512 on Mar 17, 2010 |
thunter0512
Posts: 2 Joined: Aug 20, 2009 Last seen: Jul 26, 2011 |
||
Has anyone used the OpenCores PCI Target (pci32tlite) with Windows XP?
|
RE: PCI Target and Windows XP
by jwagnerhki on Mar 26, 2010 |
jwagnerhki
Posts: 1 Joined: Jan 24, 2009 Last seen: Mar 10, 2020 |
||
Used it in bar0 io mode in Win7. It does not work very reliably. But in linux it works fine.
However to be able to boot at all I had to modify pciregs.vhd and reduce bar0 io size from 1024B to 512B. Probably for tidiness the other files need editing, too, where there are bar0 references with "32 downto 9" and "15 downto 9". If you have booting probs and are using "1BARIO" (not "1BARMEM") then maybe the below helps...? bario_g: if (BARS="1BARIO") generate BAR0b(31 downto 16) '0'); BAR0b(7 downto 1) '0'); -- was: 8 downto 1 BAR0b(0) end generate; --+---------------------------------------------------------+ --| BAR0 512Bytes IO address space (bits 15-9) | --+---------------------------------------------------------+ rbario_g: if (BARS="1BARIO") generate RBAR0IOWR: process( clk_i, rst_i, we3BAR0, dat_i ) begin if( rst_i = '1' ) then BAR0b(15 downto 8) '0'); -- was 15 downto 9 elsif( rising_edge( clk_i ) ) then -- Byte 3 if( we3BAR0 = '1' ) then BAR0b(15 downto 8) end if; end if; end process RBAR0IOWR; end generate; |
RE: PCI Target and Windows XP
by peio on Mar 29, 2010 |
peio
Posts: 19 Joined: Nov 25, 2004 Last seen: Dec 20, 2023 |
||
It seems to be a PCI Specification not compliance. PCI devices may not consume more than 256 bytes per I/O Base Address Register(pg 197 PCI 2.1 Spec). And actually the core consumes 512B.
Tom, can you confirm if the core works Ok on Windows changing from 512B I/O space to 256B?. Regards, Peio |
1/1