On 21.12.2010, at 00:00, Andreas Färber wrote:

> Am 20.12.2010 um 10:04 schrieb Alexander Graf:
> 
>> On 19.12.2010, at 20:12, Andreas Färber wrote:
>> 
>>> Am 19.12.2010 um 16:34 schrieb Alexander Graf:
>>> 
>>>> On 19.12.2010, at 16:04, Andreas Färber wrote:
>>>> 
>>>>> Am 19.12.2010 um 10:54 schrieb Alexander Graf:
>>>>> 
>>>>>> On 14.12.2010, at 01:49, Andreas Färber wrote:
>>>>>> 
>>>>>>> Hello,
>>>>>>> 
>>>>>>> Based on an earlier attempt of mine to make OpenBIOS work with -M prep,
>>>>>>> with kind support from Hervé Poussineau here's an initial stab at
>>>>>>> fixing the long-broken PReP emulation and preparing migration from
>>>>>>> abandoned OpenHack'Ware to OpenBIOS as default FOSS firmware.
>>>>>>> 
>>>>>>> In particular a number of hw_error()s are resolved, so that the BIOS
>>>>>>> can be entered at all. It is not yet working in terms of serial and
>>>>>>> VGA support etc.
>>>>>>> 
>>>>>>> This series is also available from:
>>>>>>> 
>>>>>>> git://repo.or.cz/qemu/afaerber.git prep-queue
>>>>>>> 
>>>>>>> Some more work-in-progress for the curious is on my prep branch [2].
>>>>>>> The corresponding work-in-progress OpenBIOS changes are at [3].
>>>>>>> 
>>>>>>> Unfortunately the prep machine is lacking documentation what exactly it
>>>>>>> tries to emulate. The plan thus is to merge emulation of a second, real
>>>>>>> IBM 40p machine based on Hervé's work at [1], for use with original
>>>>>>> binary firmware.
>>>>>>> 
>>>>>>> Also upcoming are new ppc_chrp machines, forked from ppc_newworld,
>>>>>>> emulating the 970-based IBM JS20 (using Apple U3) [4] and possibly the
>>>>>>> POWER5-based IntelliStation 285. These depend on the ongoing ppc64 port
>>>>>>> of OpenBIOS to be completed though. This relates to PReP in that the
>>>>>>> machine IDs will need to be coordinated.
>>>>>> 
>>>>>> Does this series actually make anything work, or is it just a first step 
>>>>>> set to get your development rolling? IOW, would users benefit from 
>>>>>> having the patches upstream yet?
>>>>> 
>>>>> As indicated above, it lets you enter a BIOS, which is a user-visible 
>>>>> improvement. User-supplied binary firmware works with 1 + 3-4, ELF 
>>>>> firmware with 1-4. Patch 3 depends on review comments. Patch 4 was just 
>>>>> an FYI for testing the preceding patches and still needs investigation.
>>>>> 
>>>>> For OpenBIOS to work, we need fw_cfg in ppc_prep.c and, independently, 
>>>>> patches to OpenBIOS. Unless of course we want to use another firmware 
>>>>> like OFW from the start. The main interest in PReP nowadays will be 
>>>>> proprietary firmware anyway. I thought Rob (cc'ed) had PReP Linux kernel 
>>>>> patches for QEMU at some point but I couldn't locate them in the 
>>>>> Aboriginal Linux tree.
>>>> 
>>>> I'm not sure on the copyright problems we might run into when delivering 
>>>> binary firmware.
>>> 
>>> No one suggested shipping proprietary firmware.
>>> 
>>> I was advocating enabling users to use the available firmware rather than 
>>> holding fixes back just because there is no fully-working FOSS alternative 
>>> firmware yet.
>> 
>> Hrm, I only partially agree. If you ship a target in qemu that people can't 
>> test out of the box, it won't receive testing from contributers. I doubt 
>> that RH people will go in and download proprietary firmware just to check 
>> that prep didn't break. I do hope however, that they test targets that "just 
>> work".
>> 
>> I have this very issue with s390. The only host to run (and compile) this on 
>> is an s390. And few people have those. So it breaks from time to time.
>> 
>> Since prep would at least get built for everyone, there's less of an issue, 
>> yes.
>> 
>>> 
>>>> So we certainly do need some open source firmware solution for prep to at 
>>>> least have Linux running. For other guests, I don't see a reason why users 
>>>> shouldn't try to fetch a real firmware blob separately :).
>>> 
>>> We're not shipping any firmware for ppcemb either, so that argument seems 
>>> moot. OpenBIOS, SeaBIOS and ZIPL are the only ones currently. Feel free to 
>>> supply additional blobs for U-Boot etc.
>> 
>> IIUC you don't need u-boot for the embedded targets. You just pass in a 
>> kernel and the rest is magic.
>> 
>>> Recent vanilla Linux kernels wouldn't run on PReP. So what Linux do you 
>>> want to run using open source firmware?
>>> I certainly do not intend to write firmware for the upcoming 40p machine. 
>>> If Linux runs on real 40p hardware then it should run with real firmware 
>>> under emulation, too. QEMU is an emulation project, not a Linux testing 
>>> framework.
>> 
>> I completely agree. Linux is usually easy because it's fully open source and 
>> supports a lot of targets. If you feel like running NetBSD or Haiku instead, 
>> feel free to do so.
>> 
>> I'd even be willing to say that running any OS with a proprietary firmware 
>> blob is enough to pull stuff in. And really, I mean _any_ OS. I just really 
>> want to see some value for users, so in case the whole system just doesn't 
>> work at all, we can rather apply a big bunch of removal commits instead of 
>> fixes that won't end up in anything working either.
>> 
>> Having said that, I have faith in your skills to get this working. So I 
>> assume you'll have something that meets the "something runs" criteria in at 
>> most a couple of weeks. Shouldn't be too bad, no? :)
> 
> Listen, I won't spend a couple of weeks on a firmware that I don't need just 
> because you want me to.
> I can't work on QEMU all day nor am I getting paid for it, so I'd rather 
> spend my time on getting ppc/ppc64 Mac emulation working for my needs! :)

Yup. I thought you were the incredible Hulk and would manage to get everything 
working nevertheless :). No, seriously - is it really too much work left to do? 
The target did work at one point in time already, right?

> 
> My interest in PReP is of historical nature only - it would be 'cool' to see 
> BeOS/ppc emulated (and - if feasible - extend Haiku/ppc to run on it, too).

I fully agree!

> 
> The three QEMU PReP projects we're talking about here - 'prep', '40p' and 
> BeBox share a common core like some memory-mapped registers but use different 
> devices and different firmware. The IBM 40p works with a binary firmware - 
> got it to show some graphics on OpenSolaris/amd64 host yesterday (hinting 
> towards endianness issues on Darwin/ppc64 host). The BeBox BootROM however 
> uses a custom format with Be-specific headers and some PE stuff as it seems 
> [1]. Writing firmware for the 'prep' machine buys us nothing there... Fixing 
> it is not even strictly needed, but it seems a good deed while we're at it.

I see. Well, don't do it then. Just get something proprietary running and be 
good. I merely wanted to save you from the troubles I go through with S/390 
where people simply don't test that target since they can't run it...


Alex


Reply via email to