[openfirmware] [commit] r3785 - in dev: . video video/controlr
repository service
svn at openfirmware.info
Thu Oct 22 03:08:55 CEST 2015
Author: quozl
Date: Thu Oct 22 03:08:55 2015
New Revision: 3785
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/3785
Log:
Emulator ROM build - fix VMWare VGA adapter, from Marcin Cieslak
Send command to the PCI command port to inform the device that I/O
port has been enabled.
Issue a warning during PCI resouce allocation if "reg" property has
not been provided (with diag-switch? true).
Generate "reg" property for the PCI resource allocator.
Known to work with qemu-2.4.0. Does not rewrite all changed
rectangles on qemu-2.0.0
Modified:
dev/pcibus.fth
dev/video/controlr/vmsvga.fth
dev/video/vmsvga.bth
Modified: dev/pcibus.fth
==============================================================================
--- dev/pcibus.fth Thu Oct 1 09:17:25 2015 (r3784)
+++ dev/pcibus.fth Thu Oct 22 03:08:55 2015 (r3785)
@@ -1183,7 +1183,8 @@
4 ( increment )
then ( increment )
+loop
-
+ else
+ " reg property missing!" diag-type-cr
then
r> finish-aa-property
;
Modified: dev/video/controlr/vmsvga.fth
==============================================================================
--- dev/video/controlr/vmsvga.fth Thu Oct 1 09:17:25 2015 (r3784)
+++ dev/video/controlr/vmsvga.fth Thu Oct 22 03:08:55 2015 (r3785)
@@ -39,6 +39,9 @@
: reg@ ( index -- value ) regs rl! regs 1+ rl@ ;
: reg! ( value index -- ) regs rl! regs 1+ rl! ;
+: my-w@ ( offset -- w ) my-space + " config-w@" $call-parent ;
+: my-w! ( w offset -- ) my-space + " config-w!" $call-parent ;
+
\ Here are the register numbers. Most of these registers are
\ accessed only once, so I don't define access words for many of them.
\ (W) means that it is meaningful for you to write to this register
@@ -85,6 +88,7 @@
h# 200.0000 instance value /mem
: map-regs ( -- )
0 0 my-space h# 0100.0010 + h# 10 " map-in" $call-parent to regs
+ 4 my-w@ 1 or 4 my-w!
;
: map-mem ( -- )
my-space h# 14 + " config-l@" $call-parent if
@@ -94,12 +98,16 @@
0 0 my-space h# 0200.0018 + /fb " map-in" $call-parent to frame-buffer-adr
/fb 0 my-space h# 0200.0018 + /fifo " map-in" $call-parent to fifo
then
- 3 my-space h# 04 + " config-w!" $call-parent
+ 4 my-w@ 2 or 4 my-w!
+;
+: unmap-regs ( -- )
+ regs h# 10 " map-out" $call-parent
+ 4 my-w@ 1 invert and 4 my-w!
;
-: unmap-regs ( -- ) regs h# 10 " map-out" $call-parent ;
: unmap-mem ( -- )
fifo /fifo " map-out" $call-parent
frame-buffer-adr /fb " map-out" $call-parent
+ 4 my-w@ 2 invert and 4 my-w!
;
\ Min and Max are the static limits of the FIFO area.
@@ -116,6 +124,23 @@
unmap-regs
abort \ We don't support version 0
;
+
+: int+ ( adr len n -- adr' len' ) encode-int encode+ ;
+
+: set-reg-property
+ my-address my-space encode-phys 0 int+ h# 0 int+
+ my-address my-space h# 0100.0010 + encode-phys encode+ 0 int+ h# 10 int+
+ my-address my-space h# 0200.0014 + encode-phys encode+ 0 int+ /fb int+
+ my-address my-space h# 0200.0018 + encode-phys encode+ 0 int+ /fifo int+
+ " reg" property
+;
+
+: probe ( -- )
+ map-regs
+ set-reg-property
+ unmap-regs
+;
+
: init-fb ( -- )
depth 7 reg! 7 reg@ depth <> if 7 reg@ to depth then
Modified: dev/video/vmsvga.bth
==============================================================================
--- dev/video/vmsvga.bth Thu Oct 1 09:17:25 2015 (r3784)
+++ dev/video/vmsvga.bth Thu Oct 22 03:08:55 2015 (r3785)
@@ -12,6 +12,7 @@
" display" device-name
fload ${BP}/dev/video/controlr/vmsvga.fth \ VMware-specific words
+probe
end0
More information about the openfirmware
mailing list