Hello Mark,
The recent changes in openbios and qemu really improved the support of 10.4.11. I can now logon on the raw disk I have and the system looks pretty good and stable. All these issues are gone :
https://www.coreboot.org/pipermail/openbios/2016-June/009436.html
I still need :
-prom-env boot-device=hd:3,\System\Library\CoreServices\BootX
to boot, but I suppose this is due to the state of the disk which also has a macosx 9 on it.
However, the network is not detected. This is curious as the command 'ioreg' does list a rtl8139 with this patchset, see below, and I suppose the driver is correct :
28 1 0x55c000 0x1f000 0x1e000 com.apple.iokit.IONetworkingFamily (1.5.0) <6 5 4 3 2> 29 0 0x57b000 0x5000 0x4000 com.apple.driver.AppleRTL8139Ethernet (1.1.0) <28 16 5 4 3 2>
Is there anything I could do to learn a bit more why the adapter is not showing in the system ? I did not find anything in the osx logs.
Thanks, C.
+-o Root <class IORegistryEntry, retain count 6> +-o PowerMac3,1 <class IOPlatformExpertDevice, registered, matched, active, busy 1, retain count 20> +-o Core99PE <class Core99PE, !registered, !matched, active, busy 1, retain count 14> | +-o IOPMrootDomain <class IOPMrootDomain, registered, matched, active, busy 0, retain count 29> | | +-o IORootParent <class IORootParent, !registered, !matched, active, busy 0, retain count 8> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o RootDomainUserClient <class RootDomainUserClient, !registered, !matched, active, busy 0, retain count 5> | +-o IOPMUSB99 <class IOPMUSB99, !registered, !matched, active, busy 0, retain count 8> | +-o IOPMSlots99 <class IOPMSlots99, !registered, !matched, active, busy 0, retain count 7> | +-o options <class IODTNVRAM, registered, matched, active, busy 0, retain count 6> | +-o PowerPC,G4@0 <class IOPlatformDevice, registered, matched, active, busy 0, retain count 8> | | +-o Core99CPU <class Core99CPU, registered, matched, active, busy 0, retain count 7> | | +-o IOCPUInterruptController <class IOCPUInterruptController, registered, matched, active, busy 0, retain count 6> | +-o builtin <class IOPlatformDevice, registered, matched, active, busy 0, retain count 7> | +-o cpus <class IOPlatformDevice, registered, matched, active, busy 0, retain count 8> | +-o pci@f2000000 <class IOPlatformDevice, registered, matched, active, busy 1, retain count 11> | | +-o AppleMacRiscPCI <class AppleMacRiscPCI, !registered, !matched, active, busy 2, retain count 14> | | +-o mac-io@C <class IOPCIDevice, registered, matched, active, busy 0, retain count 16> | | | +-o AppleKeyLargo <class AppleKeyLargo, registered, matched, active, busy 0, retain count 23> | | | +-o via-cuda@16000 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 9> | | | | +-o AppleVIA <class AppleVIA, !registered, !matched, active, busy 0, retain count 5> | | | | +-o cuda <class AppleVIADevice, registered, matched, active, busy 0, retain count 6> | | | | +-o AppleCuda <class AppleCuda, registered, matched, active, busy 0, retain count 8> | | | | +-o IOCudaADBController <class IOCudaADBController, !registered, !matched, active, busy 0, retain count 8> | | | | +-o 2-00@2 <class IOADBDevice, registered, matched, active, busy 0, retain count 6> | | | | | +-o AppleADBKeyboard <class AppleADBKeyboard, registered, matched, active, busy 0, retain count 8> | | | | | +-o IOHIDSystem <class IOHIDSystem, registered, matched, active, busy 0, retain count 10> | | | | | | +-o IOHIDUserClient <class IOHIDUserClient, !registered, !matched, active, busy 0, retain count 5> | | | | | | +-o IOHIDParamUserClient <class IOHIDParamUserClient, !registered, !matched, active, busy 0, retain count 5> | | | | | +-o IOBSDConsole <class IOBSDConsole, !registered, !matched, active, busy 0, retain count 5> | | | | | +-o IOHIDKeyboardDevice <class IOHIDKeyboardDevice, registered, matched, active, busy 0, retain count 6> | | | | | +-o IOHIDInterface <class IOHIDInterface, registered, matched, active, busy 0, retain count 5> | | | | +-o 3-00@3 <class IOADBDevice, registered, matched, active, busy 0, retain count 6> | | | | +-o AppleADBMouseType2 <class AppleADBMouseType2, registered, matched, active, busy 0, retain count 7> | | | | +-o IOHIDPointingDevice <class IOHIDPointingDevice, registered, matched, active, busy 0, retain count 6> | | | | | +-o IOHIDInterface <class IOHIDInterface, registered, matched, active, busy 0, retain count 5> | | | | +-o IOHIDSystem <class IOHIDSystem, registered, matched, active, busy 0, retain count 10> | | | | +-o IOHIDUserClient <class IOHIDUserClient, !registered, !matched, active, busy 0, retain count 5> | | | | +-o IOHIDParamUserClient <class IOHIDParamUserClient, !registered, !matched, active, busy 0, retain count 5> | | | +-o adb <class AppleMacIODevice, registered, matched, active, busy 0, retain count 8> | | | +-o keyboard@8 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 6> | | | +-o power-mgt <class AppleMacIODevice, registered, matched, active, busy 0, retain count 7> | | | +-o escc@13000 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 8> | | | +-o ch-a@13020 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 6> | | | +-o ch-b@13000 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 6> | | | +-o escc-legacy@12000 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 8> | | | +-o ch-a@12004 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 6> | | | +-o ch-b@12000 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 6> | | | +-o ata-3@20000 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 13> | | | | +-o KeyLargoATA <class KeyLargoATA, registered, matched, active, busy 0, retain count 6> | | | | +-o ATADeviceNub@0 <class ATADeviceNub, registered, matched, active, busy 0, retain count 6> | | | | | +-o IOATABlockStorageDriver <class IOATABlockStorageDriver, registered, matched, active, busy 0, retain count 7> | | | | | +-o IOATABlockStorageDevice <class IOATABlockStorageDevice, registered, matched, active, busy 0, retain count 5> | | | | | +-o IOBlockStorageDriver <class IOBlockStorageDriver, registered, matched, active, busy 0, retain count 7> | | | | | +-o QEMU HARDDISK Media <class IOMedia, registered, matched, active, busy 0, retain count 10> | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, registered, matched, active, busy 0, retain count 5> | | | | | +-o IOApplePartitionScheme <class IOApplePartitionScheme, !registered, !matched, active, busy 0, retain count 7> | | | | | +-o Apple@1 <class IOMedia, registered, matched, active, busy 0, retain count 8> | | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, registered, matched, active, busy 0, retain count 5> | | | | | +-o Apple_HFS_Untitled_1@3 <class IOMedia, registered, matched, active, busy 0, retain count 10> | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, registered, matched, active, busy 0, retain count 6> | | | | +-o ATADeviceNub@1 <class ATADeviceNub, registered, matched, active, busy 0, retain count 6> | | | | +-o IOATABlockStorageDriver <class IOATABlockStorageDriver, registered, matched, active, busy 0, retain count 7> | | | | +-o IOATABlockStorageDevice <class IOATABlockStorageDevice, registered, matched, active, busy 0, retain count 5> | | | | +-o IOBlockStorageDriver <class IOBlockStorageDriver, registered, matched, active, busy 0, retain count 7> | | | | +-o QEMU HARDDISK Media <class IOMedia, registered, matched, active, busy 0, retain count 10> | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, registered, matched, active, busy 0, retain count 5> | | | | +-o IOApplePartitionScheme <class IOApplePartitionScheme, !registered, !matched, active, busy 0, retain count 7> | | | | +-o Apple@1 <class IOMedia, registered, matched, active, busy 0, retain count 8> | | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, registered, matched, active, busy 0, retain count 5> | | | | +-o Apple_HFS_Untitled_1@3 <class IOMedia, registered, matched, active, busy 0, retain count 9> | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, registered, matched, active, busy 0, retain count 6> | | | +-o ata-3@21000 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 8> | | | | +-o KeyLargoATA <class KeyLargoATA, registered, matched, active, busy 0, retain count 5> | | | | +-o ATADeviceNub@0 <class ATADeviceNub, registered, matched, active, busy 0, retain count 6> | | | | +-o IOATAPIProtocolTransport <class IOATAPIProtocolTransport, registered, matched, active, busy 0, retain count 8> | | | | +-o IOSCSIPeripheralDeviceNub <class IOSCSIPeripheralDeviceNub, registered, matched, active, busy 0, retain count 5> | | | | +-o IOSCSIPeripheralDeviceType05 <class IOSCSIPeripheralDeviceType05, !registered, !matched, active, busy 0, retain count 7> | | | | +-o IODVDServices <class IODVDServices, registered, matched, active, busy 0, retain count 5> | | | | +-o IODVDBlockStorageDriver <class IODVDBlockStorageDriver, registered, matched, active, busy 0, retain count 7> | | | | +-o QEMU QEMU DVD-ROM Media <class IOCDMedia, registered, matched, active, busy 0, retain count 10> | | | | +-o IOCDMediaBSDClient <class IOCDMediaBSDClient, registered, matched, active, busy 0, retain count 5> | | | | +-o IOCDPartitionScheme <class IOCDPartitionScheme, !registered, !matched, active, busy 0, retain count 6> | | | | +-o Untitled 0@0 <class IOMedia, registered, matched, active, busy 0, retain count 8> | | | | +-o IOMediaBSDClient <class IOMediaBSDClient, registered, matched, active, busy 0, retain count 6> | | | +-o cdrom@0 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 5> | | | +-o interrupt-controller@40000 <class AppleMacIODevice, registered, matched, active, busy 0, retain count 7> | | | +-o AppleMPICInterruptController <class AppleMPICInterruptController, registered, matched, active, busy 0, retain count 5> | | +-o usb@D <class IOPCIDevice, !registered, matched, active, busy 1, retain count 11> | | | +-o AppleUSBOHCI <class AppleUSBOHCI, !registered, !matched, active, busy 0, retain count 6> | | +-o QEMU,VGA@E <class IOPCIDevice, registered, matched, active, busy 0, retain count 10> | | | +-o .Display_boot <class IONDRVFramebuffer, registered, matched, active, busy 0, retain count 10> | | | +-o display0 <class IODisplayConnect, registered, matched, active, busy 0, retain count 5> | | | | +-o AppleDisplay <class AppleDisplay, registered, matched, active, busy 0, retain count 7> | | | +-o IOFramebufferUserClient <class IOFramebufferUserClient, !registered, !matched, active, busy 0, retain count 5> | | +-o rtl8139@F <class IOPCIDevice, !registered, matched, active, busy 1, retain count 12> | | | { | | | "removable" = <"network"> | | | "IODeviceMemory" = ({"offset"=0x400,"parent"=({"address"=0xfffffffff2000000,"length"=0x10000}),"length"=0x100},({"address"=0xffffffff82020000,"length"=0x100})) | | | "interrupts" = <00000001> | | | "device-id" = <00008139> | | | "name" = <"rtl8139"> | | | "cache-line-size" = <00000000> | | | "category" = <"net"> | | | "device_type" = <"network"> | | | "vendor-id" = <000010ec> | | | "revision-id" = <00000020> | | | "max-latency" = <00000000> | | | "subsystem-vendor-id" = <00001af4> | | | "devsel-speed" = <00000000> | | | "model" = <"RTL8139 PCI"> | | | "network-type" = <"ethernet"> | | | "IOInterruptControllers" = ("IOInterruptControllerFFF55788") | | | "min-grant" = <00000000> | | | "Power Management protected data" = "{ theNumberOfPowerStates = 3, version 1, power state 0 = { capabilityFlags 00000000, outputPowerCharacter 00000000, inputPowerRequirement 00000000, staticP$ | | | "AAPL,address" = <f200040082020000> | | | "Power Management private data" = "{ this object = 01998100, interested driver = 01998100, driverDesire = 0, deviceDesire = 2, ourDesiredPowerState = 2, previousRequest = 2 }" | | | "class-code" = <00020000> | | | "compatible" = <"pci10ec,8139"> | | | "AAPL,phandle" = <fff567f0> | | | "subsystem-id" = <00001100> | | | "assigned-addresses" = <01007810000000000000040000000000000001000200781400000000820200000000000000000100> | | | "reg" = <000078000000000000000000000000000000000001007810000000000000000000000000000001000200781400000000000000000000000000000100> | | | "IOInterruptSpecifiers" = (<0000001b00000003>) | | | } | | | | | +-o com_apple_driver_RTL8139 <class com_apple_driver_RTL8139, !registered, !matched, active, busy 0, retain count 6> | +-o nvram@fff04000 <class IOPlatformDevice, registered, matched, active, busy 0, retain count 7> | | +-o Core99NVRAM <class Core99NVRAM, !registered, !matched, active, busy 0, retain count 4> | +-o uni-n@f8000000 <class IOPlatformDevice, registered, matched, active, busy 0, retain count 7> +-o IOResources <class IOResources, registered, matched, active, busy 0, retain count 14> +-o IOHIDSystem <class IOHIDSystem, registered, matched, active, busy 0, retain count 10> | +-o IOHIDUserClient <class IOHIDUserClient, !registered, !matched, active, busy 0, retain count 5> | +-o IOHIDParamUserClient <class IOHIDParamUserClient, !registered, !matched, active, busy 0, retain count 5> +-o com_apple_BootCache <class com_apple_BootCache, !registered, !matched, active, busy 0, retain count 4> +-o IOBSDConsole <class IOBSDConsole, !registered, !matched, active, busy 0, retain count 5> +-o IONetworkStack <class IONetworkStack, registered, matched, active, busy 0, retain count 5> | +-o IONetworkStackUserClient <class IONetworkStackUserClient, !registered, !matched, active, busy 0, retain count 5> +-o com_apple_driver_AudioIPCDevice <class com_apple_driver_AudioIPCDevice, registered, matched, active, busy 0, retain count 7> | +-o com_apple_driver_AudioIPCEngine <class com_apple_driver_AudioIPCEngine, registered, matched, active, busy 0, retain count 8> | +-o IOAudioEngineUserClient <class IOAudioEngineUserClient, !registered, !matched, active, busy 0, retain count 6> | +-o IOAudioEngineUserClient <class IOAudioEngineUserClient, !registered, !matched, active, busy 0, retain count 6> | +-o IOAudioEngineUserClient <class IOAudioEngineUserClient, !registered, !matched, active, busy 0, retain count 6> +-o DigiIO <class DigiIO, registered, matched, active, busy 0, retain count 4> +-o IODisplayWrangler <class IODisplayWrangler, registered, matched, active, busy 0, retain count 6> +-o AppleSCSISubsystemGlobals <class AppleSCSISubsystemGlobals, registered, matched, active, busy 0, retain count 5>
On 08/05/2016 06:35 PM, Mark Cave-Ayland wrote:
This patchset is loosely based on earlier work by BALATON Zoltan balaton@eik.bme.hu and provides basic infrastructure to allow OpenBIOS to enable PCI device bus mastering.
Following on from discussions on the QEMU mailing list, it seems that Apple's OF enables bus mastering for some PCI devices by default, and as a result some buggy drivers forget to explicitly enable it and hence these devices fail under QEMU's emulation.
The first 2 patches add the basic support routines while the last patch enables bus mastering for the rtl8139 card on Apple PPC machines which is required for some OS 9, OS X and MorphOS drivers.
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@ilande.co.uk
Mark Cave-Ayland (3): pci: introduce ob_pci_enable_bus_master() function pci: add PCI database entry for rtl8139 network card pci: add rtl8139_config_cb() to configure rtl8139 network cards
drivers/pci.c | 27 +++++++++++++++++++++++++++ drivers/pci_database.c | 6 ++++++ drivers/pci_database.h | 3 +++ include/drivers/pci.h | 1 + 4 files changed, 37 insertions(+)