dev-i440fx.c contains functions related to the 440FX and PIIX. Those for the PIIX should also apply to the ICH (e.g. piix_ide_init). Should they be moved to dev-piix_ich.c?
Sebastian
On Sun, Nov 21, 2010 at 06:10:50PM +0100, Sebastian Herbszt wrote:
dev-i440fx.c contains functions related to the 440FX and PIIX. Those for the PIIX should also apply to the ICH (e.g. piix_ide_init). Should they be moved to dev-piix_ich.c?
In theory, yes. I just chosen not to split it out. Are you planning to add ich support?
Isaku Yamahata wrote:
On Sun, Nov 21, 2010 at 06:10:50PM +0100, Sebastian Herbszt wrote:
dev-i440fx.c contains functions related to the 440FX and PIIX. Those for the PIIX should also apply to the ICH (e.g. piix_ide_init). Should they be moved to dev-piix_ich.c?
In theory, yes. I just chosen not to split it out. Are you planning to add ich support? -- yamahata
I think the following two functions are already good enough to support ICH: piix_isa_bridge_init() - LPC piix_ide_init() - IDE/SATA
Of those 7 functions inside dev-i440fx.c only 2-3 are really 440FX dependant. My idea was to split the rest to dev-piix_ich.c and rename those two from above to piix_ich_isa_bridge_init() and piix_ich_ide_init(). I played with QEMUs PIIX3/4 IDE emulation and "upgraded" it to ICH6 by just changing the PCI device id. Linux detected it correctly but requested that IDE decode is enabled by BIOS. Adding an entry to pci_class_tbl[] and calling piix_ide_init() fixed that problem.
Sebastian
On Sun, Nov 28, 2010 at 03:27:01PM +0100, Sebastian Herbszt wrote:
Isaku Yamahata wrote:
On Sun, Nov 21, 2010 at 06:10:50PM +0100, Sebastian Herbszt wrote:
dev-i440fx.c contains functions related to the 440FX and PIIX. Those for the PIIX should also apply to the ICH (e.g. piix_ide_init). Should they be moved to dev-piix_ich.c?
In theory, yes. I just chosen not to split it out. Are you planning to add ich support? -- yamahata
I think the following two functions are already good enough to support ICH: piix_isa_bridge_init() - LPC piix_ide_init() - IDE/SATA
Of those 7 functions inside dev-i440fx.c only 2-3 are really 440FX dependant. My idea was to split the rest to dev-piix_ich.c and rename those two from above to piix_ich_isa_bridge_init() and piix_ich_ide_init(). I played with QEMUs PIIX3/4 IDE emulation and "upgraded" it to ICH6 by just changing the PCI device id. Linux detected it correctly but requested that IDE decode is enabled by BIOS. Adding an entry to pci_class_tbl[] and calling piix_ide_init() fixed that problem.
I think I'd prefer to see the functions in dev-i440fx.c moved into shadow.c, pciinit.c, acpi.c, and smm.c. That is, move the functions closer to their callers.
-Kevin