I agree that all onboard device should use the same subsystem id as MB's.
Regards
YH
-----Original Message----- From: ebiederman@lnxi.com [mailto:ebiederman@lnxi.com] Sent: Thursday, October 21, 2004 10:46 AM To: YhLu; Li-Ta Lo Cc: LinuxBIOS Subject: Re: Freebios2 recovery progress...
Li-Ta Lo ollie@lanl.gov writes:
How did you do that ? Where do you put those IDs ?
YhLu YhLu@tyan.com writes:
You changes all mb config for AMD/Iwill/IBM....that took some time.
If there is on board scsi, I want to set subsystem id, I need to put that
in
Config.lb?
Or more likely src/mainboarod/???/???/Options.lb
src/devices/pci_device.c:pci_dev_enable_resources() calls dev->ops->pci_ops->set_subsystem() when the device dev->on_mainboard is true. In turn config.g sets that in static.c for all devices in the static tree.
I believe those are the correct semantics. That the subsystem is essentially an identifier for the board the chips are sitting on.
The values are come from: Look at MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID and MAINBOARD_SUBSYSTEM_DEVICE_ID.
So for the onboard scsi case you likely need to have a driver for the onboard scsi device that implements the set_subsystem method because there is not a generic way of doing that.
Eric
On Thu, 2004-10-21 at 12:14, YhLu wrote:
I agree that all onboard device should use the same subsystem id as MB's.
One interesting thing. In PCI Spec 2.2, section 6.2.4 it says that:
Values in these registers must be loaded and valid prioir to the system BIOS or any system software accessing the PCI Coniguration Space. blah,blah, blah. These values must not be loaded using expansion ROM software becuase expansion ROM software is not guaranteed to be run during POST in all systems.
Are we doing something out of spec ?
BTW, why I can't download PCI spec form PCI-SIG anymore ? Even for the 'useless' PCI conventional stuff.
Ollie
* Li-Ta Lo ollie@lanl.gov [041021 20:40]:
One interesting thing. In PCI Spec 2.2, section 6.2.4 it says that:
Values in these registers must be loaded and valid prioir to the system BIOS or any system software accessing the PCI Coniguration Space.
Haha.. who should set them then, if they are not set in hardware?
These values must not be loaded using expansion ROM software becuase expansion ROM software is not guaranteed to be run during POST in all systems.
Are we doing something out of spec ?
Don't think so, since we're usually not executing any expansion rom software (option roms) at all. And especially we're not _writing_ option roms
BTW, why I can't download PCI spec form PCI-SIG anymore ? Even for the 'useless' PCI conventional stuff.
I assume they want $$
Stefan
On Thu, 2004-10-21 at 13:03, Stefan Reinauer wrote:
- Li-Ta Lo ollie@lanl.gov [041021 20:40]:
One interesting thing. In PCI Spec 2.2, section 6.2.4 it says that:
Values in these registers must be loaded and valid prioir to the system BIOS or any system software accessing the PCI Coniguration Space.
Haha.. who should set them then, if they are not set in hardware?
That is the blah, blah, blah part. It is:
How these values are loaded is NOT SPECIFIED but could be done during the manufactureing process or loaded form external logic (e.g., strapping options, serial ROMs, etc.)
BTW, why I can't download PCI spec form PCI-SIG anymore ? Even for the 'useless' PCI conventional stuff.
I assume they want $$
I jsut read that on LWN, the InfiniBand TA also closed their used-to-be free downloadable specification.
Why those people hate us so much ?
Ollie
On Thu, 21 Oct 2004, Li-Ta Lo wrote:
Why those people hate us so much ?
because you're a customer.
ron
On Thu, 21 Oct 2004, Li-Ta Lo wrote:
BTW, why I can't download PCI spec form PCI-SIG anymore ? Even for the 'useless' PCI conventional stuff.
cause they want your money.
ron
Li-Ta Lo ollie@lanl.gov writes:
On Thu, 2004-10-21 at 12:14, YhLu wrote:
I agree that all onboard device should use the same subsystem id as MB's.
One interesting thing. In PCI Spec 2.2, section 6.2.4 it says that:
Values in these registers must be loaded and valid prioir to the system BIOS or any system software accessing the PCI Coniguration Space. blah,blah, blah. These values must not be loaded using expansion ROM software becuase expansion ROM software is not guaranteed to be run during POST in all systems.
Are we doing something out of spec ?
I think it is more a matter of the spec no governing for onboard devices. For any devices that is implemented on a plug-in card I believe that governs.
BTW, why I can't download PCI spec form PCI-SIG anymore ? Even for the 'useless' PCI conventional stuff.
I have never been able to download it so it is news to me that was possible.
I think they use the money for operating money for the SIG but I really don't know.
Eric
On Thu, 2004-10-21 at 20:55, Eric W. Biederman wrote:
Li-Ta Lo ollie@lanl.gov writes:
On Thu, 2004-10-21 at 12:14, YhLu wrote:
I agree that all onboard device should use the same subsystem id as MB's.
One interesting thing. In PCI Spec 2.2, section 6.2.4 it says that:
Values in these registers must be loaded and valid prioir to the system BIOS or any system software accessing the PCI Coniguration Space. blah,blah, blah. These values must not be loaded using expansion ROM software becuase expansion ROM software is not guaranteed to be run during POST in all systems.
Are we doing something out of spec ?
I think it is more a matter of the spec no governing for onboard devices. For any devices that is implemented on a plug-in card I believe that governs.
BTW, why I can't download PCI spec form PCI-SIG anymore ? Even for the 'useless' PCI conventional stuff.
I have never been able to download it so it is news to me that was possible.
How did you implement PCI stuff ?
Ollie
Li-Ta Lo ollie@lanl.gov writes:
How did you implement PCI stuff ?
There are also several books you can buy that go into detail, usually those are more understandable than the spec. Although the spec is more precise.
In addition Linux Networx has copies of some of the PCI specs that I have referred to.
However the hardest part of the work has been the resource allocator which simply requires understanding how a BAR register works. And creativity in how to figure out how to assign the BAR values.
So for most things looking at pci_def.h and pci_ids.h is generally about as much reference as is needed.
Eric