Skip to main content
Home Forums Taking another shot at onboard audio on a Mac Mini G4? — #10 Taking another shot at onboard audio on a Mac Mini G4? — #10
Post #10 by dtekle
Post
It would be nice to document all the efforts so far taken on the Mac Mini G4 onboard audio problem, so there is no need to redo investigations and findings, especially if the work stops and has to be restarted by another person.

I have collected some information on the problem which I would like to share with the people currently working on this to help their effort to tackle the problem.
  • Problem situation:
    • Mac OS 9.2.2 (v9 iso image):
      • Sound Manager (v3.6.7 / QuickTime 5.0.2)
      • Headphone Port:
        • shows up in Sound Panel
        • plays sound, but at a very low volume level
        • Volume level not adjustable
      • Internal Speaker:
        • does not show up in Sound Panel
        • no sound at all
    • Mac OS 7.6.1 CHRP (v0.2 iso image): [1.1]
      • Headphone Port:
        • shows up in Sound Panel
        • plays some sound (System Sounds are played, but no beep sounds in poping up alert windows)
        • Volume level adjustable(?) in Control Strip and Sound Control Panel
        • probably made work by setting a valid NVRAM by accident
      • Internal Speaker:
        • does not show up in Sound Panel
        • no sound at all
  • Hardware information (Mac Mini G4):
    • Chipset: Toonie
    • DAC only, no hardware functions (mixing, amplification, ...) so everything must be done in driver software [3,4,5]
    • devices: Line Out (Headphone Port), Internal Speaker [2]
  • Existing driver sourcecode for the Toonie chip
    • Linux driver AOA (Apple Onboard Audio) [3,4]
    • Darwin driver AppleOnboardAudio [5]
    Both drivers show that the Toonie chip is just a plain DAC with no hardware support functions, so everything must be handled by the driver software. The driver sourcecode has also some tables with hardware ports, GPIO and I2C assignments.
    A Mac OS 9 driver must be created by porting the existing driver sourcecodes. The Darwin driver might be very helpful since it must handle the (Carbon) Sound Manager, too.
  • Developer Documentation for creating a Mac OS 9 sound driver:
    • Grokipedia [6]:
      Overview article over the historical developments of the Sound Manager
    • Inside Macintosh [8]:
      • A sound driver must be written as a Sound Component for the Sound Manager.
        If extra functions are needed (e.g. separate volume settings for stereo L/R-channels) a Audio Component is needed, too.
      • The components must be loaded by the Component Manager at OS startup.
      • An example how to create a Sound Component for the Sound Manager is given in the develop article [12.2].
      • The Sound Manager 3.3 (= Mac OS 9.2???) has some new functions which are not covered in Inside Macintosh. There is a ADC article [9].
  • Open questions:
    • How to enable the Internal Speaker? We can only send audio to the Headphone port so far.
    • What is the device tree, interrupts and memory addresses of the audio hardware? We need a complete list before we can start creating a driver (Maybe the Darwin driver sourcecode can help here?).
    • Should we build the Darwin driver from sourcecode and experiment there to figure out the answers first? (existing driver = easier to use for debugging)


Ressources:
mp.ls