[OpenBIOS] PCI Enumeration and driver Implementation

Vishu at soc-soft.com Vishu at soc-soft.com
Fri Oct 1 10:42:19 CEST 2004


Hi Viswa,

>> I need to write PCI Bus Driver for MIPS Embedded Processor.  In my
>> case PCI is a built-in device, need to know the details about writing

>> PCI Enumeration -- i.e configuring and enumerating PCI Devices.

>Have a look at the sources ;-) The PCI driver is already there in
OpenBIOS. See openbios-devel/drivers/pci.* To get it >working for a new
platform, you basically need to adapt
openbios-devel/include/<arch>/pci.h

>Note: The driver does not do much at the moment. IE ROM probing does
not work correctly. See the issue tracker for >more details:

               https://www.openbios.org/roundup/openbios/

>Do you have OpenBIOS running on MIPS hardware?

YES I have OpenBIOS running on MIPS Hardware... Running on RAM.
I had taken lot older Kernel I believe the director structure doesn't
have
Drivers directory. openbios-latest.tar been using this tar also removed
lot of unwanted
Directories like Tokenizer detok fcc but right now after the changes my
directory contents
Looks like this.

openbios:
kernel
Makefile
obj-mips
README

openbios/kernel:
arch
Documentation
forth
include
kernel
Makefile
plugins
README
Rules.make
util

openbios/kernel/arch:
amd64
mips
ppc
unix
x86

openbios/kernel/arch/amd64:
boot.S
builtin.c
console.c
include
Kconfig
Makefile
mboot.S
multiboot.c
plainboot.c

openbios/kernel/arch/amd64/include:
io.h
multiboot.h

openbios/kernel/arch/mips:
boot.S
builtin.c
console.c
include
Makefile
proto.h
txsio.h

openbios/kernel/arch/mips/include:
io.h
kxmips.h
multiboot.h
mipsreg.h
mipreg.h

openbios/kernel/arch/ppc:
Kconfig
Makefile

openbios/kernel/arch/unix:
Kconfig
Makefile
plugins.c
unix.c

openbios/kernel/arch/x86:
boot.S
builtin.c
console.c
include
Kconfig
Makefile
mboot.S
multiboot.c
plainboot.c

openbios/kernel/arch/x86/include:
io.h
multiboot.h

openbios/kernel/Documentation:
AUTHORS
Changelog.stepan
COPYING
dictformat.txt
glossary.txt
initializers.txt
TODO

openbios/kernel/forth:
administration
apic.fs
bootstrap.fs
builtin.fs
debugging
device
fract.fs
hayes.fs
interpreter.fs
lib
Makefile
memory.fs
packages
pci.fs
start.fs
system
test.fs
testsuite
util
vocabulary.fs

openbios/kernel/forth/administration:
banner.fs
callback.fs
devices.fs
help.fs
iocontrol.fs
Makefile
nvram.fs
README
reset.fs
script.fs
security.fs
selftest.fs
userboot.fs

openbios/kernel/forth/debugging:
client.fs
fcode.fs
firmware.fs
Makefile
see.fs

openbios/kernel/forth/device:
builtin.fs
device.fs
display.fs
extra.fs
fcode.fs
feval.fs
font.fs
logo.fs
Makefile
missing
other.fs
package.fs
pathres.fs
preof.fs
property.fs
README.device
structures.fs
table.fs
terminal.fs
tree.fs

openbios/kernel/forth/lib:
cbindings.fs
lists.fs
Makefile
split.fs
string.fs

openbios/kernel/forth/packages:
deblocker.fs
disklabel.fs
Kconfig
Makefile
obp-tftp.fs
packages.fs
README
terminal-emulator.fs

openbios/kernel/forth/system:
ciface.fs
dummy.fs
main.fs
Makefile

openbios/kernel/forth/testsuite:
framebuffer-test.fs
Makefile
memory-testsuite.fs
README
splitfunc-testsuite.fs

openbios/kernel/forth/util:
Makefile
pci.fs
util.fs

openbios/kernel/include:
config.h
dict.h
plugins.h
stack.h
sysinclude.h

openbios/kernel/kernel:
bootstrap.c
dict.c
forth.c
internal.c
Kconfig
lib.c
Makefile
openbios.c
primitives.c
stack.c

openbios/kernel/obj-mips:
dict.o
lib.o
openbios.o
primitives.o
Rules.arch
stack.o
types.h

openbios/kernel/plugins:
Kconfig
loader.c
Makefile
plugin_pci
plugin_qt

openbios/kernel/plugins/plugin_pci:
Makefile
plugin_pci.c
plugin_pci.h

openbios/kernel/plugins/plugin_qt:
fcode.h
logo.xpm
Makefile
pciconfig.h
plugin_qt.cpp
plugin_qt.h
plugin_qt.pro
qt_main.cpp
qt_rom.fs

openbios/kernel/util:
bin2hex.c
types.sh

openbios/obj-mips:
kernel

openbios/obj-mips/kernel:
bin2hex
boot.o
bootstrap
bootstrap.dict
bootstrap.log
builtin.o
console.o
dictionary.h
dict.o
ld.script
lib.o
loader
loader.nostrip
loader.o
openbios.full
openbios.full.nostrip
openbios.o
openfirmware.dict
openfirmware.fs
openfirmware.log
primitives.o
Rules.arch
stack.o
temp
types.h
unix
unix.nostrip

> >Should there be any base enumeration to be written in C program if so

> >where is the hook Point in Openbios kernel and then rest in Forth or
> >everything (configuring, enumerating, Reading and writing) needs to
be
>> implemented in Forth using PCI Bus Binding according to Open
Firmware.

>See the existing driver.

Anyway I keep on adding hooks to the same kernel instead of once again
making
Changes for cross compilation in the new kernel. If u can give me the
links and
Changes needs to be applied I'll do it myself....

Regards
Viswa



--
OpenBIOS                 http://openbios.org/
Mailinglist:       http://lists.openbios.org/
Free your System - May the Forth be with you

The information contained in this e-mail message and in any annexure is
confidential to the  recipient and may contain privileged information. If you are not
the intended recipient, please notify the sender and delete the message along with
any annexure. You should not disclose, copy or otherwise use the information contained
in the message or any annexure. Any views expressed in this e-mail are those of the
individual sender except where the sender specifically states them to be the views of
SoCrates Software India Pvt Ltd., Bangalore.



More information about the OpenBIOS mailing list