On Oct 1, 2016, at 3:24 PM, Mark Cave-Ayland wrote:
On 01/10/16 19:44, Programmingkid wrote:
On Oct 1, 2016, at 2:11 PM, Mark Cave-Ayland wrote:
On 26/09/16 18:05, Programmingkid wrote:
The copy-resolutions-property copies all the resolutions from the resolutions property of the options node to the resolutions property of the QEMU,VGA node. This is used to support specifying resolutions via the command- line.
Signed-off-by: John Arbuckle programmingkidx@gmail.com
v2: Eliminated all if conditions.
arch/ppc/qemu/qemu.fs | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/arch/ppc/qemu/qemu.fs b/arch/ppc/qemu/qemu.fs index 3d99a34..b53115a 100644 --- a/arch/ppc/qemu/qemu.fs +++ b/arch/ppc/qemu/qemu.fs @@ -138,3 +138,13 @@ variable keyboard-phandle 0 keyboard-phandle ! 3drop 0 then ;
+\ Copies the resolutions property from the /options node to QEMU,VGA node
+: copy-resolutions-property ( -- )
- " /options" find-device
- " resolutions" active-package get-package-property
- abort" copy-resolutions-property: Failed to find
resolutions property!"
- " /pci/QEMU,VGA" find-device
- " resolutions" property
+;
Some more general thoughts on the approach: I think that you're doing this the wrong way around. Rather than injecting the resolutions into the QEMU,VGA device, I think the better way is to alter QEMU,VGA.fs so that it searches for an optional "fb-modes" property under /options, parses it, and then sets its own encode-int property version.
I suppose this would only require a few changes to my patches. I just feel the word 'resolutions' is easier to remember and type than 'fb- modes'.
What is the advantage of doing things this way?
Well OpenBIOS has always been intended to be as close to real hardware implementations as possible, so if there is an existing standard we should use it.
Also you never replied if there was a way of reading the in-built resolutions from the QEMU VGA controller? If yes, let's grab the information from there. If not, then it would make sense to add the basic VGA/XGA resolutions into the QEMU,VGA device as default and then simply add any custom resolution to the end of the list.
I'm sorry I didn't answer your question. I must have missed it. Do you know what file has these built-in resolutions? Currently I do not know a way to access these resolutions.
You need to see if you can read this information somehow from the VGA contoller or via VBE.
I would think for a PCI VGA card any resolution information would be kept in either PCI configuration space or in a register. After looking at several of the VGA related files in QEMU, there does not appear to be a list of supported resolutions. I think using the fb-modes property is fine. I made the required changes to the VGA driver and was able to use all the resolutions in both Mac OS 9 and Mac OS X.
Finally for reference take a look at the Sun Framebuffer FAQ at http://www.sunhelp.org/faq/FrameBuffer.html to check the format the mode string should be in (it seems to be the format eluded to earlier by Tarl) and also the parameter should perhaps be called "fb-mode" which is the name used by Apple's OF implementation.
Is this the format: widthxheightxbitdepth ? I just think it is easier to specify only width and height. The monitors control panel in Mac OS 9 allows the user to switch the bitdepth at any resolution (within vram limits).
Do you have any documentation on the fb-mode property? I did a quick check on my Macintosh's video card node in open firmware and couldn't find this fb-mode property.
Just google, since I own no PPC Mac hardware :)
I tried that but didn't find anything relevant. I will accept your idea and use the fb-modes property in the QEMU,VGA node.