Hi,
for the IBM SLOF OpenFirmware used in the YDL PowerStation, i developed a BIOS emulation Layer based on x86emu. It is successfully initialising several VGA cards in the PowerStation.
Since the SLOF version for the PowerStation is released under a BSD license, i tried to integrate it into coreboot-v3 and succeeded today.
It initializes the cirrus card of an unpatched qemu 0.9.1-5ubuntu3. (much slower than vm86 but i couldnt get it to initialize with the current x86emu)
Using coreinfo as payload, i verified, that the console is working.
I would like to know, wether you guys are interested in this code, i think it could basically be a replacement for the current x86emu code.
Since x86emu is BSD licensed as well, i think integrating the biosemu code into coreboot should not be a problem?
While working for IBM i also tried to initialize a UltraIDE card and almost got it to do some UDMA reads from a disk... and a ethernet card which started to execute the PXE stack. That code however is not released but based on the biosemu code.
I am not sure where to go from here... i need to wait for the latest SLOF release to appear on the developerworks website http://www.ibm.com/developerworks/power/pa-slof/ which has some fixes. After that i could create a patch series or git repository for review??
Coming from a PPC background i thought about trying to get coreboot-v3 and the biosemu to run in qemu-ppc... Has anybody tried that before? Would trying this make sense at all?
I dont currently have any hardware running coreboot, otherwise i could maybe try to recreate the code to get other PCI cards to initialize...
Any thoughts?
Cheers, Pattrick
Hi Pattrick,
thanks for offering your code. We are definitely interested.
On 27.11.2008 16:10, Pattrick Hueper wrote:
Hi,
for the IBM SLOF OpenFirmware used in the YDL PowerStation, i developed a BIOS emulation Layer based on x86emu. It is successfully initialising several VGA cards in the PowerStation.
Since the SLOF version for the PowerStation is released under a BSD license, i tried to integrate it into coreboot-v3 and succeeded today.
It initializes the cirrus card of an unpatched qemu 0.9.1-5ubuntu3. (much slower than vm86 but i couldnt get it to initialize with the current x86emu)
Using coreinfo as payload, i verified, that the console is working.
Great!
I would like to know, wether you guys are interested in this code, i think it could basically be a replacement for the current x86emu code.
AFAIK current x86emu in coreboot has been optimized for size and may differ substantially from other x86emu implementations.
Since x86emu is BSD licensed as well, i think integrating the biosemu code into coreboot should not be a problem?
As long as YABEL is BSD or LGPL or GPL, I don't see any license problems.
While working for IBM i also tried to initialize a UltraIDE card and almost got it to do some UDMA reads from a disk... and a ethernet card which started to execute the PXE stack. That code however is not released but based on the biosemu code.
I am not sure where to go from here... i need to wait for the latest SLOF release to appear on the developerworks website http://www.ibm.com/developerworks/power/pa-slof/ which has some fixes. After that i could create a patch series or git repository for review?
A patch series would be cool for me, but I don't know what everybody else wants.
Coming from a PPC background i thought about trying to get coreboot-v3 and the biosemu to run in qemu-ppc... Has anybody tried that before? Would trying this make sense at all?
coreboot v3 currently has no PPC code. However, the architecture should be clean enough to accommodate PPC easily. We have some PPC code in coreboot v2. If you are interested in working on PPC for v3, please go ahead. It would certainly make a great addition.
I dont currently have any hardware running coreboot, otherwise i could maybe try to recreate the code to get other PCI cards to initialize...
IIRC the Asus P2B-F and P3B-F are supported by coreboot and available for ~5 EUR on ebay.
Regards, Carl-Daniel
On Thu, 27 Nov 2008 16:10:54 +0100, "Pattrick Hueper" phueper@hueper.net wrote:
Hi,
for the IBM SLOF OpenFirmware used in the YDL PowerStation, i developed a BIOS emulation Layer based on x86emu. It is successfully initialising several VGA cards in the PowerStation.
Since the SLOF version for the PowerStation is released under a BSD license, i tried to integrate it into coreboot-v3 and succeeded today.
It initializes the cirrus card of an unpatched qemu 0.9.1-5ubuntu3. (much slower than vm86 but i couldnt get it to initialize with the current x86emu)
Using coreinfo as payload, i verified, that the console is working.
I would like to know, wether you guys are interested in this code, i think it could basically be a replacement for the current x86emu code.
Since x86emu is BSD licensed as well, i think integrating the biosemu code into coreboot should not be a problem?
While working for IBM i also tried to initialize a UltraIDE card and almost got it to do some UDMA reads from a disk... and a ethernet card which started to execute the PXE stack. That code however is not released but based on the biosemu code.
I am not sure where to go from here... i need to wait for the latest SLOF release to appear on the developerworks website http://www.ibm.com/developerworks/power/pa-slof/ which has some fixes. After that i could create a patch series or git repository for review??
Coming from a PPC background i thought about trying to get coreboot-v3 and the biosemu to run in qemu-ppc... Has anybody tried that before? Would trying this make sense at all?
I dont currently have any hardware running coreboot, otherwise i could maybe try to recreate the code to get other PCI cards to initialize...
Any thoughts?
Very very cool Patrick. If it has a BSD license it should be no problem for coreboot. I say the more payloads the better :-)
Any thoughts?
Very very cool Patrick. If it has a BSD license it should be no problem for coreboot. I say the more payloads the better :-)
Incorrect Joseph - most legal opinions are that BSD and GPL are incompatible, so it is a problem for coreboot. Not a problem for libpayload though - so we can borrow what we need.
Jordan
Jordan Crouse wrote:
Any thoughts?
Very very cool Patrick. If it has a BSD license it should be no problem for coreboot. I say the more payloads the better :-)
Incorrect Joseph - most legal opinions are that BSD and GPL are incompatible, so it is a problem for coreboot. Not a problem for libpayload though - so we can borrow what we need.
Well, obviously as long as we carry around a copy of x86emu (which is BSD, not GPL), we can accept BSD licensed patches to that code.
I'm a bit surprised about "most legal opinions". Whose opinions are they? Any pointers? Nobody ever complained about me linking libpayload into FILO, for example, so it's not that incompatible). Do I have to drop libpayload again?
Stefan
Stefan Reinauer wrote:
Jordan Crouse wrote:
Any thoughts?
Very very cool Patrick. If it has a BSD license it should be no problem for coreboot. I say the more payloads the better :-)
Incorrect Joseph - most legal opinions are that BSD and GPL are incompatible, so it is a problem for coreboot. Not a problem for libpayload though - so we can borrow what we need.
Well, obviously as long as we carry around a copy of x86emu (which is BSD, not GPL), we can accept BSD licensed patches to that code.
I'm a bit surprised about "most legal opinions". Whose opinions are they? Any pointers? Nobody ever complained about me linking libpayload into FILO, for example, so it's not that incompatible). Do I have to drop libpayload again?
I'll clarify - the GPL is incompatible with the original BSD license with the advertising clause [1]. I'm not sure if YABEL falls into that area, but I generally dislike mixing BSD and GPL to avoid any such arguments. I didn't know that x86emu was BSD, but just another great reason to get rid of it all together.
Linking is something completely different - the reason why the libpayload code is BSD is so you can apply whatever license you want to the final product. You aren't violating the rights of either the copyright holders of libpayload or the copyright holders of FILO if you link a BSDed library in a GPLed program, or in a proprietary binary for that matter. You only get into trouble when you copy the BSD code into your product and don't retain the copyright notices. Are you doing that?
Jordan
Hi,
this is the copyright header:
/****************************************************************************** * Copyright (c) 2004, 2008 IBM Corporation * All rights reserved. * This program and the accompanying materials * are made available under the terms of the BSD License * which accompanies this distribution, and is available at * http://www.opensource.org/licenses/bsd-license.php * * Contributors: * IBM Corporation - initial implementation *****************************************************************************/
and this the license file:
Copyright (c) 2004, 2008 IBM Corporation All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of IBM nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORYOF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
I'm afraid, that this is the licence with the advertising clause? (Redistribution in binary form...)?
Cheers, Pattrick
On Thu, Nov 27, 2008 at 7:04 PM, Jordan Crouse jordan@cosmicpenguin.net wrote:
Stefan Reinauer wrote:
Jordan Crouse wrote:
Any thoughts?
Very very cool Patrick. If it has a BSD license it should be no problem for coreboot. I say the more payloads the better :-)
Incorrect Joseph - most legal opinions are that BSD and GPL are incompatible, so it is a problem for coreboot. Not a problem for libpayload though - so we can borrow what we need.
Well, obviously as long as we carry around a copy of x86emu (which is BSD, not GPL), we can accept BSD licensed patches to that code.
I'm a bit surprised about "most legal opinions". Whose opinions are they? Any pointers? Nobody ever complained about me linking libpayload into FILO, for example, so it's not that incompatible). Do I have to drop libpayload again?
I'll clarify - the GPL is incompatible with the original BSD license with the advertising clause [1]. I'm not sure if YABEL falls into that area, but I generally dislike mixing BSD and GPL to avoid any such arguments. I didn't know that x86emu was BSD, but just another great reason to get rid of it all together.
Linking is something completely different - the reason why the libpayload code is BSD is so you can apply whatever license you want to the final product. You aren't violating the rights of either the copyright holders of libpayload or the copyright holders of FILO if you link a BSDed library in a GPLed program, or in a proprietary binary for that matter. You only get into trouble when you copy the BSD code into your product and don't retain the copyright notices. Are you doing that?
Jordan
[1] http://www.gnu.org/licenses/gpl-faq.html#OrigBSD
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
On 27.11.2008 20:34, Pattrick Hueper wrote:
Hi,
this is the copyright header:
/******************************************************************************
- Copyright (c) 2004, 2008 IBM Corporation
- All rights reserved.
- This program and the accompanying materials
- are made available under the terms of the BSD License
- which accompanies this distribution, and is available at
- http://www.opensource.org/licenses/bsd-license.php
- Contributors:
IBM Corporation - initial implementation
*****************************************************************************/
and this the license file:
Copyright (c) 2004, 2008 IBM Corporation All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of IBM nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORYOF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
I'm afraid, that this is the licence with the advertising clause? (Redistribution in binary form...)?
Fortunately, that license does not have an advertising clause. http://en.wikipedia.org/wiki/BSD_license has a bit more info on that. The "Redistribution in binary form" clause is often mistaken for the advertising clause. I'm guilty of mixing this up in the past.
Regards, Carl-Daniel
On Thu, Nov 27, 2008 at 8:43 PM, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
Fortunately, that license does not have an advertising clause. http://en.wikipedia.org/wiki/BSD_license has a bit more info on that. The "Redistribution in binary form" clause is often mistaken for the advertising clause. I'm guilty of mixing this up in the past.
phew... well then... i will wait for the release and then publish a patch series..
The code as it is now is integrated into -v3 (basically i replaced the biosemu.c of the current "x86emu" BIOS emulation code, with the code from SLOF) If i should make it a payload, can i still use the coreboot features like pci access functions and "struct device"?
Cheers, Pattrick
On 27.11.2008 20:50, Pattrick Hueper wrote:
On Thu, Nov 27, 2008 at 8:43 PM, Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net wrote:
Fortunately, that license does not have an advertising clause. http://en.wikipedia.org/wiki/BSD_license has a bit more info on that. The "Redistribution in binary form" clause is often mistaken for the advertising clause. I'm guilty of mixing this up in the past.
phew... well then... i will wait for the release and then publish a patch series..
The code as it is now is integrated into -v3 (basically i replaced the biosemu.c of the current "x86emu" BIOS emulation code, with the code from SLOF) If i should make it a payload, can i still use the coreboot features like pci access functions and "struct device"?
Coreboot v3 assumes a payload will not return. That means you can't rely on any functions provided by coreboot. However, you could introduce another stage (stage3) with access to the shared functions. Almost everything with "struct device" lives in stage2 and is not shared, so that might be a problem as well.
I'd suggest to post your current state (once the code has been released) before you do any further work. Design decisions are easier once the code is out there.
Regards, Carl-Daniel
On Thu, Nov 27, 2008 at 06:44:21PM +0100, Stefan Reinauer wrote:
Jordan Crouse wrote:
Any thoughts?
Very very cool Patrick. If it has a BSD license it should be no problem for coreboot. I say the more payloads the better :-)
Incorrect Joseph - most legal opinions are that BSD and GPL are incompatible, so it is a problem for coreboot. Not a problem for libpayload though - so we can borrow what we need.
Well, obviously as long as we carry around a copy of x86emu (which is BSD, not GPL), we can accept BSD licensed patches to that code.
I'm a bit surprised about "most legal opinions". Whose opinions are they? Any pointers? Nobody ever complained about me linking libpayload into FILO, for example, so it's not that incompatible). Do I have to drop libpayload again?
It's incompatible one way: from GPL to BSD. Not the other way, afaik. So it's fine to merge BSD'd code into a GPL'd codebase and placing it under GPL, but not the other way around. Then again, that's just my understanding, and IANAL.
Thanks, Ward.
On Thu, Nov 27, 2008 at 06:19:48PM -0500, Ward Vandewege wrote:
On Thu, Nov 27, 2008 at 06:44:21PM +0100, Stefan Reinauer wrote:
Jordan Crouse wrote:
Any thoughts?
Very very cool Patrick. If it has a BSD license it should be no problem for coreboot. I say the more payloads the better :-)
Incorrect Joseph - most legal opinions are that BSD and GPL are incompatible, so it is a problem for coreboot. Not a problem for libpayload though - so we can borrow what we need.
Well, obviously as long as we carry around a copy of x86emu (which is BSD, not GPL), we can accept BSD licensed patches to that code.
I'm a bit surprised about "most legal opinions". Whose opinions are they? Any pointers? Nobody ever complained about me linking libpayload into FILO, for example, so it's not that incompatible). Do I have to drop libpayload again?
It's incompatible one way: from GPL to BSD. Not the other way, afaik. So it's fine to merge BSD'd code into a GPL'd codebase and placing it under GPL, but not the other way around. Then again, that's just my understanding, and IANAL.
And I was talking about the BSD license without advertising clause of course (being far more common these days than the one with advertising clause, thankfully). What Jordan said in the rest of this thread seems accurate to me.
Thanks, Ward.