Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - QNX4 and Advantech PCE-5126QG2-00A1E MB: (16 Items)
   
QNX4 and Advantech PCE-5126QG2-00A1E MB  
I can´t install QNX4 because program crashes on EIDE autodetect. If i take autodetect off and try manually start the 
driver with correct address the driver wont find anything. With same MB in QNX6 theres no problem with the harddrive.

Anyone have any ideas? :)
Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Is your BIOS set to AHCI or to IDE or to "compatibility mode"?

Regards, PKY
Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
BIOS is in compatible mode. 
Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Hi Pekka,

There is a possibility that your boards PCI BIOS implementation is not
compatible with the Intel 386 protected mode.

http://community.qnx.com/sf/wiki/do/viewPage/projects.qnx4/wiki/InstallationNotesForProc32

To check this possibility, run Fsys.atapi driver from the shell in the
installation program (you can start shell form the QNX launch menu).
If Fsys.atapi crashes by SIGSEGV then you've faced this problem.

Regards,
Pavel


> I can´t install QNX4 because program crashes on EIDE autodetect. If i take autodetect off and try manually start the 
driver with correct address the driver wont find anything. With same MB in QNX6 theres no problem with the harddrive.
>
> Anyone have any ideas? :)
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post92396

Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Hi

thanks for the help. Now I can boot the qnx4 but I still have problem with the IntelHD graphics card. I downloaded Pg.
intelhd driver and crttrap.list and changed deviceId in crttrap.list to match my hardware but It wont work. I attach my 
show_pci txt file here if it helps you.

> Hi Pekka,
> 
> There is a possibility that your boards PCI BIOS implementation is not
> compatible with the Intel 386 protected mode.
> 
> http://community.qnx.com/sf/wiki/do/viewPage/projects.qnx4/wiki/
> InstallationNotesForProc32
> 
> To check this possibility, run Fsys.atapi driver from the shell in the
> installation program (you can start shell form the QNX launch menu).
> If Fsys.atapi crashes by SIGSEGV then you've faced this problem.
> 
> Regards,
> Pavel
> 
> 
> > I can´t install QNX4 because program crashes on EIDE autodetect. If i take 
> autodetect off and try manually start the driver with correct address the 
> driver wont find anything. With same MB in QNX6 theres no problem with the 
> harddrive.
> >
> > Anyone have any ideas? :)
> >
> >
> >
> > _______________________________________________
> >
> > General
> > http://community.qnx.com/sf/go/post92396
> 


Attachment: Text pci.txt 25.13 KB
Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
The Pg.intelhd driver supports only controllers listed in the
crttrap.list file.
Your controller belongs to the next generation of Intel HD which is not
supported.

I think it should work with VESA driver (Pg.flat). Have you tried it?

Regards,
Pavel

> Hi
>
> thanks for the help. Now I can boot the qnx4 but I still have problem with the IntelHD graphics card. I downloaded Pg.
intelhd driver and crttrap.list and changed deviceId in crttrap.list to match my hardware but It wont work. I attach my 
show_pci txt file here if it helps you.
>
>> Hi Pekka,
>>
>> There is a possibility that your boards PCI BIOS implementation is not
>> compatible with the Intel 386 protected mode.
>>
>> http://community.qnx.com/sf/wiki/do/viewPage/projects.qnx4/wiki/
>> InstallationNotesForProc32
>>
>> To check this possibility, run Fsys.atapi driver from the shell in the
>> installation program (you can start shell form the QNX launch menu).
>> If Fsys.atapi crashes by SIGSEGV then you've faced this problem.
>>
>> Regards,
>> Pavel
>>
>>
>>> I can´t install QNX4 because program crashes on EIDE autodetect. If i take 
>> autodetect off and try manually start the driver with correct address the 
>> driver wont find anything. With same MB in QNX6 theres no problem with the 
>> harddrive.
>>> Anyone have any ideas? :)
>>>
>>>
>>>
>>> _______________________________________________
>>>
>>> General
>>> http://community.qnx.com/sf/go/post92396
>
>
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post92400

Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Thanks for the help. Now everything works including network card.
Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
I have yet another problem with this motherboard. Im trying to use two PCI-card which is exatcly same kind of cards. 
This code  returns that PCI_BUFFER_TOO_SMALL error only with this motherboard. Something to do with BIOS? Do you guys 
have any idea or solution how to proceed??

        struct _pci_route_buffer cmd;
	unsigned irq;
	struct _pci_irq_routing	*route, *r;
	int	i;


	memset(&cmd, 0x00, sizeof cmd);
	if(_CA_PCI_Get_Routing_Options(&cmd, 0) != PCI_BUFFER_TOO_SMALL)
	{
		return(FALSE);
	}
	if(!(route = (struct _pci_irq_routing*) _nmalloc(cmd.BufferSize)))
	{
		return(FALSE);
	}

Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
What happens if you preset cmd.BufferSize to 2K?




On 2012-08-31 7:15 AM, "Pekka Tuusjärvi" <community-noreply@qnx.com> wrote:

>I have yet another problem with this motherboard. Im trying to use two
>PCI-card which is exatcly same kind of cards. This code  returns that
>PCI_BUFFER_TOO_SMALL error only with this motherboard. Something to do
>with BIOS? Do you guys have any idea or solution how to proceed??
>
>        struct _pci_route_buffer cmd;
>	unsigned irq;
>	struct _pci_irq_routing	*route, *r;
>	int	i;
>
>
>	memset(&cmd, 0x00, sizeof cmd);
>	if(_CA_PCI_Get_Routing_Options(&cmd, 0) != PCI_BUFFER_TOO_SMALL)
>	{
>		return(FALSE);
>	}
>	if(!(route = (struct _pci_irq_routing*) _nmalloc(cmd.BufferSize)))
>	{
>		return(FALSE);
>	}
>
>
>
>
>
>_______________________________________________
>
>General
>http://community.qnx.com/sf/go/post95305
>To cancel your subscription to this discussion, please e-mail
>general-qnx4-unsubscribe@community.qnx.com

Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
No effect on that cmd.BufferSize preset. 

> What happens if you preset cmd.BufferSize to 2K?
> 
> 
> 
> 
> On 2012-08-31 7:15 AM, "Pekka Tuusjärvi" <community-noreply@qnx.com> wrote:
> 
> >I have yet another problem with this motherboard. Im trying to use two
> >PCI-card which is exatcly same kind of cards. This code  returns that
> >PCI_BUFFER_TOO_SMALL error only with this motherboard. Something to do
> >with BIOS? Do you guys have any idea or solution how to proceed??
> >
> >        struct _pci_route_buffer cmd;
> >	unsigned irq;
> >	struct _pci_irq_routing	*route, *r;
> >	int	i;
> >
> >
> >	memset(&cmd, 0x00, sizeof cmd);
> >	if(_CA_PCI_Get_Routing_Options(&cmd, 0) != PCI_BUFFER_TOO_SMALL)
> >	{
> >		return(FALSE);
> >	}
> >	if(!(route = (struct _pci_irq_routing*) _nmalloc(cmd.BufferSize)))
> >	{
> >		return(FALSE);
> >	}
> >
> >
> >
> >
> >
> >_______________________________________________
> >
> >General
> >http://community.qnx.com/sf/go/post95305
> >To cancel your subscription to this discussion, please e-mail
> >general-qnx4-unsubscribe@community.qnx.com
> 


Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Hi Pekka,

If you use the Proc32 with -E0 option the reason can be in the Proc32
module. With -E0 option Proc32 doesn't use PCI BIOS functions, instead
it uses software implementation of most PCI BIOS functionality.
GET IRQ ROUTING INFORMATION and SET PCI IRQ requests are not implemented
in the current version and corresponding  QNX functions will return an
error.
Is it critical for you to use irq routing?

Regards,
Pavel

> No effect on that cmd.BufferSize preset. 
>
>> What happens if you preset cmd.BufferSize to 2K?
>>
>>
>>
>>
>> On 2012-08-31 7:15 AM, "Pekka Tuusjärvi" <community-noreply@qnx.com> wrote:
>>
>>> I have yet another problem with this motherboard. Im trying to use two
>>> PCI-card which is exatcly same kind of cards. This code  returns that
>>> PCI_BUFFER_TOO_SMALL error only with this motherboard. Something to do
>>> with BIOS? Do you guys have any idea or solution how to proceed??
>>>
>>>        struct _pci_route_buffer cmd;
>>> 	unsigned irq;
>>> 	struct _pci_irq_routing	*route, *r;
>>> 	int	i;
>>>
>>>
>>> 	memset(&cmd, 0x00, sizeof cmd);
>>> 	if(_CA_PCI_Get_Routing_Options(&cmd, 0) != PCI_BUFFER_TOO_SMALL)
>>> 	{
>>> 		return(FALSE);
>>> 	}
>>> 	if(!(route = (struct _pci_irq_routing*) _nmalloc(cmd.BufferSize)))
>>> 	{
>>> 		return(FALSE);
>>> 	}
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>>
>>> General
>>> http://community.qnx.com/sf/go/post95305
>>> To cancel your subscription to this discussion, please e-mail
>>> general-qnx4-unsubscribe@community.qnx.com
>
>
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post95326
> To cancel your subscription to this discussion, please e-mail general-qnx4-unsubscribe@community.qnx.com
Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Yes im using it with -E0 option. It is critical because now my code doesn´t work with this new board. And I have to 
find another way to find those identical  pci-cards. And this takes time and money. But if I dont have a choice...  

> Hi Pekka,
> 
> If you use the Proc32 with -E0 option the reason can be in the Proc32
> module. With -E0 option Proc32 doesn't use PCI BIOS functions, instead
> it uses software implementation of most PCI BIOS functionality.
> GET IRQ ROUTING INFORMATION and SET PCI IRQ requests are not implemented
> in the current version and corresponding  QNX functions will return an
> error.
> Is it critical for you to use irq routing?
> 
> Regards,
> Pavel
> 
> > No effect on that cmd.BufferSize preset. 
> >
> >> What happens if you preset cmd.BufferSize to 2K?
> >>
> >>
> >>
> >>
> >> On 2012-08-31 7:15 AM, "Pekka Tuusjärvi" <community-noreply@qnx.com> wrote:
> >>
> >>> I have yet another problem with this motherboard. Im trying to use two
> >>> PCI-card which is exatcly same kind of cards. This code  returns that
> >>> PCI_BUFFER_TOO_SMALL error only with this motherboard. Something to do
> >>> with BIOS? Do you guys have any idea or solution how to proceed??
> >>>
> >>>        struct _pci_route_buffer cmd;
> >>> 	unsigned irq;
> >>> 	struct _pci_irq_routing	*route, *r;
> >>> 	int	i;
> >>>
> >>>
> >>> 	memset(&cmd, 0x00, sizeof cmd);
> >>> 	if(_CA_PCI_Get_Routing_Options(&cmd, 0) != PCI_BUFFER_TOO_SMALL)
> >>> 	{
> >>> 		return(FALSE);
> >>> 	}
> >>> 	if(!(route = (struct _pci_irq_routing*) _nmalloc(cmd.BufferSize)))
> >>> 	{
> >>> 		return(FALSE);
> >>> 	}
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>>
> >>> General
> >>> http://community.qnx.com/sf/go/post95305
> >>> To cancel your subscription to this discussion, please e-mail
> >>> general-qnx4-unsubscribe@community.qnx.com
> >
> >
> >
> >
> >
> > _______________________________________________
> >
> > General
> > http://community.qnx.com/sf/go/post95326
> > To cancel your subscription to this discussion, please e-mail general-qnx4-
> unsubscribe@community.qnx.com


Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Pekka,

The -E0 option was implemented as a workaround for BIOS issue which
cause crash with SIGSEGV on PCI BIOS functions calls.  You can try
different BIOS versions (if they are available) to see if you can use
Proc32 without -E0 option.
For which purpose you are using route table information?


Regards,
Pavel

> Yes im using it with -E0 option. It is critical because now my code doesn´t work with this new board. And I have to 
find another way to find those identical  pci-cards. And this takes time and money. But if I dont have a choice...  
>
>> Hi Pekka,
>>
>> If you use the Proc32 with -E0 option the reason can be in the Proc32
>> module. With -E0 option Proc32 doesn't use PCI BIOS functions, instead
>> it uses software implementation of most PCI BIOS functionality.
>> GET IRQ ROUTING INFORMATION and SET PCI IRQ requests are not implemented
>> in the current version and corresponding  QNX functions will return an
>> error.
>> Is it critical for you to use irq routing?
>>
>> Regards,
>> Pavel
>>
>>> No effect on that cmd.BufferSize preset. 
>>>
>>>> What happens if you preset cmd.BufferSize to 2K?
>>>>
>>>>
>>>>
>>>>
>>>> On 2012-08-31 7:15 AM, "Pekka Tuusjärvi" <community-noreply@qnx.com> wrote:
>>>>
>>>>> I have yet another problem with this motherboard. Im trying to use two
>>>>> PCI-card which is exatcly same kind of cards. This code  returns that
>>>>> PCI_BUFFER_TOO_SMALL error only with this motherboard. Something to do
>>>>> with BIOS? Do you guys have any idea or solution how to proceed??
>>>>>
>>>>>        struct _pci_route_buffer cmd;
>>>>> 	unsigned irq;
>>>>> 	struct _pci_irq_routing	*route, *r;
>>>>> 	int	i;
>>>>>
>>>>>
>>>>> 	memset(&cmd, 0x00, sizeof cmd);
>>>>> 	if(_CA_PCI_Get_Routing_Options(&cmd, 0) != PCI_BUFFER_TOO_SMALL)
>>>>> 	{
>>>>> 		return(FALSE);
>>>>> 	}
>>>>> 	if(!(route = (struct _pci_irq_routing*) _nmalloc(cmd.BufferSize)))
>>>>> 	{
>>>>> 		return(FALSE);
>>>>> 	}
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>>
>>>>> General
>>>>> http://community.qnx.com/sf/go/post95305
>>>>> To cancel your subscription to this discussion, please e-mail
>>>>> general-qnx4-unsubscribe@community.qnx.com
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>>
>>> General
>>> http://community.qnx.com/sf/go/post95326
>>> To cancel your subscription to this discussion, please e-mail general-qnx4-
>> unsubscribe@community.qnx.com
>
>
>
>
>
> _______________________________________________
>
> General
> http://community.qnx.com/sf/go/post95331
> To cancel your subscription to this discussion, please e-mail general-qnx4-unsubscribe@community.qnx.com


Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Hi, we are using route table information for looking the right slot where our card is defined. We have to find the right
 PCI-card because example we could have I/O on first card and frequency converters on second card. Is there other way to
 approach slot issue? 

> Pekka,
> 
> The -E0 option was implemented as a workaround for BIOS issue which
> cause crash with SIGSEGV on PCI BIOS functions calls.  You can try
> different BIOS versions (if they are available) to see if you can use
> Proc32 without -E0 option.
> For which purpose you are using route table information?
> 
> 
> Regards,
> Pavel
> 
> > Yes im using it with -E0 option. It is critical because now my code doesn´t
>  work with this new board. And I have to find another way to find those 
> identical  pci-cards. And this takes time and money. But if I dont have a 
> choice...  
> >
> >> Hi Pekka,
> >>
> >> If you use the Proc32 with -E0 option the reason can be in the Proc32
> >> module. With -E0 option Proc32 doesn't use PCI BIOS functions, instead
> >> it uses software implementation of most PCI BIOS functionality.
> >> GET IRQ ROUTING INFORMATION and SET PCI IRQ requests are not implemented
> >> in the current version and corresponding  QNX functions will return an
> >> error.
> >> Is it critical for you to use irq routing?
> >>
> >> Regards,
> >> Pavel
> >>
> >>> No effect on that cmd.BufferSize preset. 
> >>>
> >>>> What happens if you preset cmd.BufferSize to 2K?
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On 2012-08-31 7:15 AM, "Pekka Tuusjärvi" <community-noreply@qnx.com> wrote:
> >>>>
> >>>>> I have yet another problem with this motherboard. Im trying to use two
> >>>>> PCI-card which is exatcly same kind of cards. This code  returns that
> >>>>> PCI_BUFFER_TOO_SMALL error only with this motherboard. Something to do
> >>>>> with BIOS? Do you guys have any idea or solution how to proceed??
> >>>>>
> >>>>>        struct _pci_route_buffer cmd;
> >>>>> 	unsigned irq;
> >>>>> 	struct _pci_irq_routing	*route, *r;
> >>>>> 	int	i;
> >>>>>
> >>>>>
> >>>>> 	memset(&cmd, 0x00, sizeof cmd);
> >>>>> 	if(_CA_PCI_Get_Routing_Options(&cmd, 0) != PCI_BUFFER_TOO_SMALL)
> >>>>> 	{
> >>>>> 		return(FALSE);
> >>>>> 	}
> >>>>> 	if(!(route = (struct _pci_irq_routing*) _nmalloc(cmd.BufferSize)))
> >>>>> 	{
> >>>>> 		return(FALSE);
> >>>>> 	}
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>>
> >>>>> General
> >>>>> http://community.qnx.com/sf/go/post95305
> >>>>> To cancel your subscription to this discussion, please e-mail
> >>>>> general-qnx4-unsubscribe@community.qnx.com
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>>
> >>> General
> >>> http://community.qnx.com/sf/go/post95326
> >>> To cancel your subscription to this discussion, please e-mail general-qnx4
> -
> >> unsubscribe@community.qnx.com
> >
> >
> >
> >
>...
Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Hi Pekka,

In general in QNX4 for identical PCI devices logical number PCI index
and _CA_PCI_Find_Device(), _CA_PCI_Find_Class() functions  are used.

You can use _CA_PCI_Find_Device() with index 0 to discover first device
and with index 1 to discover second device. The first device would be a
device that is placed higher in PCI topology.

In most cases hardware pci slot is linked with PCI device number (device
in particular slot has fixed device number). For example PCI-to-PCI
Bridge Architecture Specification describe the Device Number to Slot
Number assignment rules.

Regards,
Pavel

> Hi, we are using route table information for looking the right slot where our card is defined. We have to find the 
right PCI-card because example we could have I/O on first card and frequency converters on second card. Is there other 
way to approach slot issue? 
>
>> Pekka,
>>
>> The -E0 option was implemented as a workaround for BIOS issue which
>> cause crash with SIGSEGV on PCI BIOS functions calls.  You can try
>> different BIOS versions (if they are available) to see if you can use
>> Proc32 without -E0 option.
>> For which purpose you are using route table information?
>>
>>
>> Regards,
>> Pavel
>>
>>> Yes im using it with -E0 option. It is critical because now my code doesn´t
>>  work with this new board. And I have to find another way to find those 
>> identical  pci-cards. And this takes time and money. But if I dont have a 
>> choice...  
>>>> Hi Pekka,
>>>>
>>>> If you use the Proc32 with -E0 option the reason can be in the Proc32
>>>> module. With -E0 option Proc32 doesn't use PCI BIOS functions, instead
>>>> it uses software implementation of most PCI BIOS functionality.
>>>> GET IRQ ROUTING INFORMATION and SET PCI IRQ requests are not implemented
>>>> in the current version and corresponding  QNX functions will return an
>>>> error.
>>>> Is it critical for you to use irq routing?
>>>>
>>>> Regards,
>>>> Pavel
>>>>
>>>>> No effect on that cmd.BufferSize preset. 
>>>>>
>>>>>> What happens if you preset cmd.BufferSize to 2K?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 2012-08-31 7:15 AM, "Pekka Tuusjärvi" <community-noreply@qnx.com> wrote:
>>>>>>
>>>>>>> I have yet another problem with this motherboard. Im trying to use two
>>>>>>> PCI-card which is exatcly same kind of cards. This code  returns that
>>>>>>> PCI_BUFFER_TOO_SMALL error only with this motherboard. Something to do
>>>>>>> with BIOS? Do you guys have any idea or solution how to proceed??
>>>>>>>
>>>>>>>        struct _pci_route_buffer cmd;
>>>>>>> 	unsigned irq;
>>>>>>> 	struct _pci_irq_routing	*route, *r;
>>>>>>> 	int	i;
>>>>>>>
>>>>>>>
>>>>>>> 	memset(&cmd, 0x00, sizeof cmd);
>>>>>>> 	if(_CA_PCI_Get_Routing_Options(&cmd, 0) != PCI_BUFFER_TOO_SMALL)
>>>>>>> 	{
>>>>>>> 		return(FALSE);
>>>>>>> 	}
>>>>>>> 	if(!(route = (struct _pci_irq_routing*) _nmalloc(cmd.BufferSize)))
>>>>>>> 	{
>>>>>>> 		return(FALSE);
>>>>>>>...
View Full Message
Attachment: HTML sf-attachment-mime4673 7.35 KB
Re: QNX4 and Advantech PCE-5126QG2-00A1E MB  
Thanks Pavel for simple solution. My first touch with PCI functions! 
This community support is A+ grade in my opinion.