andrzej zaborowski wrote: > Hi, > > On 13/04/2008, Jan Kiszka wrote: >> This is the board emulation for Freecom's MusicPal, featuring >> - rudimentary PIT and PIC >> - up to 2 UARTs >> - 88W8xx8 Ethernet controller >> - 88W8618 audio controller >> - Wolfson WM8750 mixer chip (volume control and mute only) > > Are you sure that hw/wm8750.c is not reusable? It's probably better > to extend it with volume control, and audio data transmission through > i2c, instead of having two implementations in QEMU. Will check again, but I don't think it is helpful, at least at this point. The thing is that the MusicPal uses the on-chip DAC, not the one of the Wolfson. The latter seems to be responsible for analogous mixing only. > > Regarding volume control, since there are only 0x7f possible values > it's nicer to use a const table than pull in math.h. Actually I > wouldn't worry about that at all because the layout of volume levels > on the host is not guaranteed to be linear (I think?), it may very > well be already exponential. For example the Linux WM8750 driver > doesn't do the reverse transformation which would mean that on a host > whose ALSA output device is a WM8750, the Qemu vm would have a wrong > volume scale. [ Ignoring the above as advised in the follow-up, but will think about avoiding or reducing the usage of pow(). ] > >> - 128×64 display with brightness control >> - all input buttons >> >> Using up to 32 MB flash, I hit a limit /wrt phys_ram_size. I worked >> around this for now by extending MAX_BIOS_SIZE to 32 MB, surely not a >> nice solution. > > You can use -m 150 or similar. > > Please also format the code similarly to rest of Qemu. That would just increase ram_size, thus won't help as I need memory beyond it (here for the pflash in R/W mode). Jan