pci-bios problem on embedded x86 board

I am developing the software for a new embedded board, which uses the
AMD SC520 x86 processor. I am using the Aspen Customer Development board
for the prototype, the final bored being based on a ‘reduced’ version of
this.
The system is to be deeply embedded, without a BIOS. I have sucessfully
got QNX6 booting directly from flash, using IPL and startup code based on
the
samples for the SC400 board.
The problem I am facing is accessing the PCI bus to use an AMD79C973 PCNET
ethernet controller. I cannot start any kind of PCI server, which is
necessary
to run the devn-pcnet driver.

pci-bios, even with -v, just returns immediately without any output

Is it that I am missing somthing in the startup code. There is a line
add_string("/cfg/bus/pci=bios");
in main() in the nto/startup/boards/ directories, but I’m not sure
of it’s significance.
Is it possible to somehow ‘hard-code’ the info into the drivers and the
PCI controller, since I know exactly what hardware will appear where
on the final board?

I have seen mention on this group of embedded x86 systems without BIOSes
having problems with PCI interfaces. Is this a common issue, and
are there any ways around it? I would have thought that an embedded X86
booting directly from flash without a BIOS would be a (relatively) common
situation for choosing QNX. Has anybody else experienced this problem?

Thanks in advance,
Jamie Bannister

Jamie Bannister <Controlstar@btinternet.com> wrote:
: I am developing the software for a new embedded board, which uses the
: AMD SC520 x86 processor. I am using the Aspen Customer Development board
: for the prototype, the final bored being based on a ‘reduced’ version of
: this.
: The system is to be deeply embedded, without a BIOS. I have sucessfully
: got QNX6 booting directly from flash, using IPL and startup code based on
: the
: samples for the SC400 board.
: The problem I am facing is accessing the PCI bus to use an AMD79C973 PCNET
: ethernet controller. I cannot start any kind of PCI server, which is
: necessary
: to run the devn-pcnet driver.

: pci-bios, even with -v, just returns immediately without any output


The pci-bios server expects and requires a PCI BIOS on the system.
It uses the BIOS to gather information about the PCI I/O, MEM, etc …
It also assume that the BIOS has configured the PCI host/bridges. Having
said that, we have many pci-XXXX drivers for non-X86 systems. They
read/write configuration space directly, map out resources (MEM/IO/IRQ,
etc …) and they perform whatever bridge setup is required.

We have an embedded kit for x86 which includes the source to
the pci-bios. You’ll need this kit in order to perform the
necessary mods to the pci-server in order to work with the biosless
SC520. You should contact your sales rep for information on the
Embedded kit for X86.


John

Thanks for the info. If I do use the Embedding kit, do you have an idea of
how much work doing a custom version will involve? Not having seen the code
interface, I don’t know yet know how much it relies on the BIOS. The two
main PCI devices it needs to support will be a PCNET 79C973 ethernet
controller, and TI PCI1410 pc card controller.

“John Wall” <jwall@qnx.com> wrote in message
news:a413tn$fpi$1@nntp.qnx.com

Jamie Bannister <> Controlstar@btinternet.com> > wrote:
: I am developing the software for a new embedded board, which uses the
: AMD SC520 x86 processor. I am using the Aspen Customer Development
board
: for the prototype, the final bored being based on a ‘reduced’ version of
: this.
: The system is to be deeply embedded, without a BIOS. I have sucessfully
: got QNX6 booting directly from flash, using IPL and startup code based
on
: the
: samples for the SC400 board.
: The problem I am facing is accessing the PCI bus to use an AMD79C973
PCNET
: ethernet controller. I cannot start any kind of PCI server, which is
: necessary
: to run the devn-pcnet driver.

: pci-bios, even with -v, just returns immediately without any output


The pci-bios server expects and requires a PCI BIOS on the system.
It uses the BIOS to gather information about the PCI I/O, MEM, etc …
It also assume that the BIOS has configured the PCI host/bridges. Having
said that, we have many pci-XXXX drivers for non-X86 systems. They
read/write configuration space directly, map out resources (MEM/IO/IRQ,
etc …) and they perform whatever bridge setup is required.

We have an embedded kit for x86 which includes the source to
the pci-bios. You’ll need this kit in order to perform the
necessary mods to the pci-server in order to work with the biosless
SC520. You should contact your sales rep for information on the
Embedded kit for X86.


John
\

Jamie Bannister <Controlstar@btinternet.com> wrote:
: Thanks for the info. If I do use the Embedding kit, do you have an idea of
: how much work doing a custom version will involve? Not having seen the code
: interface, I don’t know yet know how much it relies on the BIOS. The two
: main PCI devices it needs to support will be a PCNET 79C973 ethernet
: controller, and TI PCI1410 pc card controller.


I don’t think it’s alot of work … but I’ve made many pci-xxxx for
various platforms. Generally speaking, the main thing you need to
know is the mappings of PCI IO/MEM and irq routing. The PCNET driver does
not assume any setup by the BIOS.


John



\

John Wall
QSSL
Custom Engineering Group (R&D)

I don’t think it’s alot of work … but I’ve made many pci-xxxx for
various platforms. Generally speaking, the main thing you need to
know is the mappings of PCI IO/MEM and irq routing. The PCNET driver does
not assume any setup by the BIOS.

Did you do any pci-xxx for STPC processor? It’s x86 compatible.

Pavol Kycina

Hi Pavol,

You shouldn’t need a specific pci-xxx for the STPC processor, if it is
x86 compatible, then the standard pci-bios should do what you will need
of it.

Erick.


Pavol Kycina <kycina@microstep-hdo.sk> wrote:

I don’t think it’s alot of work … but I’ve made many pci-xxxx for
various platforms. Generally speaking, the main thing you need to
know is the mappings of PCI IO/MEM and irq routing. The PCNET driver does
not assume any setup by the BIOS.


Did you do any pci-xxx for STPC processor? It’s x86 compatible.

Pavol Kycina

“Hardware Support Account” <hw@qnx.com> wrote in message
news:a538kj$1ol$1@nntp.qnx.com

Hi Pavol,

You shouldn’t need a specific pci-xxx for the STPC processor, if it is
x86 compatible, then the standard pci-bios should do what you will need
of it.

[snip]

Did you do any pci-xxx for STPC processor? It’s x86 compatible.

Pavol Kycina

It’s x86 compatible, but it has wrong ‘pci host bridge’ class code.
See
http://www.st.com/stonline/products/support/stpc/support/wguide/bwg.htm#Toc3
, in Note section.
There was also discussion in qdn.public.qnxrtp.installation, called
“pci-bios on Advantech SBC”, started on 7th Nov 2001.

Thanks, Pavol Kycina

If the class code for the Host/PCI bridge is incorrect, then we have no
way of identifying it.

Previously, Pavol Kycina wrote in qdn.public.qnxrtp.os:

“Hardware Support Account” <> hw@qnx.com> > wrote in message
news:a538kj$1ol$> 1@nntp.qnx.com> …
Hi Pavol,

You shouldn’t need a specific pci-xxx for the STPC processor, if it is
x86 compatible, then the standard pci-bios should do what you will need
of it.


[snip]


Did you do any pci-xxx for STPC processor? It’s x86 compatible.

Pavol Kycina


It’s x86 compatible, but it has wrong ‘pci host bridge’ class code.
See
http://www.st.com/stonline/products/support/stpc/support/wguide/bwg.htm#Toc3
, in Note section.
There was also discussion in qdn.public.qnxrtp.installation, called
“pci-bios on Advantech SBC”, started on 7th Nov 2001.

Thanks, Pavol Kycina

\

“Hugh Brown” <hsbrown@qnx.com> wrote in message
news:Voyager.020222082347.7483A@node90.ott.qnx.com

If the class code for the Host/PCI bridge is incorrect, then we have no
way of identifying it.

Thanks, I am aware of the problem and possible solution (custom engineering
or buying Embedding SDK), but I wanted to learn how much work would it
require. John Wall mentioned in this thread he had done several pci-xxxx
servers, so I wanted first-hand knowledge.

Thank you very much.

Pavol Kycina

Previously, Pavol Kycina wrote in qdn.public.qnxrtp.os:
“Hardware Support Account” <> hw@qnx.com> > wrote in message
news:a538kj$1ol$> 1@nntp.qnx.com> …
Hi Pavol,

You shouldn’t need a specific pci-xxx for the STPC processor, if it is
x86 compatible, then the standard pci-bios should do what you will
need
of it.


[snip]


Did you do any pci-xxx for STPC processor? It’s x86 compatible.

Pavol Kycina


It’s x86 compatible, but it has wrong ‘pci host bridge’ class code.
See

http://www.st.com/stonline/products/support/stpc/support/wguide/bwg.htm#Toc3
, in Note section.
There was also discussion in qdn.public.qnxrtp.installation, called
“pci-bios on Advantech SBC”, started on 7th Nov 2001.

Thanks, Pavol Kycina


\