The following patch improves ISA IDE discovery.
On a modern system those devices will probably
be the same as under pci-ide tree of devices.
* Discover up to 4 IDE devices
* Fix "Unimplemented package interface procedure"
message during "Probe IDE"
Before patch:
show-devs
/pci/isa@1/ide-controller@i1f0/ide@1
/pci/isa@1/ide-controller@i1f0/ide@0
/pci/isa@1/ide-controller@i1f0/ide@0/<Unnamed>@0
ok select /pci/isa@1/ide-controller@i1f0/ide@0/<Unnamed>@0
Invalid ihandle
After patch:
/pci/isa@1/ide-controller@i1f0/ide@1
/pci/isa@1/ide-controller@i1f0/ide@0
/pci/isa@1/ide-controller@i1f0/ide@1/cdrom@2
/pci/isa@1/ide-controller@i1f0/ide@0/disk@1
/pci/isa@1/ide-controller@i1f0/ide@0/disk@0
Open issues:
ok select /pci/isa@1/ide-controller@i1f0/ide@1/cdrom@2
IDE data error: 0
Can't open deblocker package
ok
It does not matter whether Qemu's CDROM device is attached
or not. (For /pci/pci-ide@1,1/ide@1/cdrom@0 works
when attached).
What is file /dev/ide/node.fc binary?
Marcin
Index: dev/ide/idenode.fth
===================================================================
--- dev/ide/idenode.fth (revision 3784)
+++ dev/ide/idenode.fth (working copy)
@@ -22,6 +22,7 @@
: any-blocks? " any-blocks?" $call-parent ;
: cdrom? " cdrom?" $call-parent ;
+: node-fcode " node-fcode" $call-parent ;
: set-address ( unit -- dummy unit )
@@ -65,7 +66,7 @@
finish-device ( )
;
-: probe ( -- ) 2 0 do i probe-child loop ;
+: probe ( -- ) 3 0 do i probe-child loop ;
headers
\ LICENSE_BEGIN
Hello,
I have tried running ofw without BIOS
(as per http://www.openfirmware.info/Building_OFW_for_QEMU)
and it seems that VGA support does not work.
I am using config-virtualbox.fth as advised.
I have uncommented "console-serial" in config.fth
to be able to interact with the console and run:
qemu-system-i386 -m 32 -bios emuofw.rom -hda fat:. -serial stdio
(this qemu 2.4.0 on FreeBSD/amd64)
"show-devs" reports (this is with video.fc included)
ok show-devs
/cpus
/dropin-fs
/flash@fff80000
/pci
/dropin-fs
/mmu
/memory@0
/aliases
/options
/openprom
/chosen
/packages
/cpus/cpu@0
/pci/ethernet@3
/pci/display@2
/pci/pci8086,7113@1,3
/pci/pci-ide@1,1
/pci/host@0
/pci/isa@1
/pci/pci-ide@1,1/ide@1
/pci/pci-ide@1,1/ide@0
/pci/pci-ide@1,1/ide@1/cdrom@0
/pci/pci-ide@1,1/ide@0/disk@0
/pci/isa@1/ide-controller@i1f0
/pci/isa@1/sound@i220
/pci/isa@1/rtc@i70
/pci/isa@1/8042@i60
/pci/isa@1/fdc@i3f0
/pci/isa@1/parallel@i378
/pci/isa@1/serial@i2f8
/pci/isa@1/serial@i3f8
/pci/isa@1/timer@i40
/pci/isa@1/interrupt-controller@i20
/pci/isa@1/dma-controller@i00
/pci/isa@1/ide-controller@i1f0/ide@1
/pci/isa@1/ide-controller@i1f0/ide@0
/pci/isa@1/ide-controller@i1f0/ide@0/<Unnamed>@0
/pci/isa@1/8042@i60/mouse@aux
/pci/isa@1/8042@i60/keyboard@kbd
/pci/isa@1/fdc@i3f0/disk
/packages/http
/packages/tcp
...
I have tried uncommenting
in: ${BP}/dev/video/build/video.fc
in cpu/x86/pc/emu/emuofw.bth
as well as uncommenting
create use-vga
in cpu/x86/pc/emu/config.fth, none of which
improves the situation.
When I switch consoles in qemu the VGA screen
says "Guest has not initialized the display (yet)"
Any hints to troubleshoot this?
Additional questions:
1) Would that be possible to have a dual-console mode
(similar to what FreeBSD early bootloader has) so that
both vga and serial console are active? ofw prints
messages on the serial console even if disabled, only
input is not working.
2) Initially I thought ofw is completely dead
and I have run it under gdb, only to figure out
I am running in the Forth inner interpreter:
0xff9fc000: lods %ds:(%esi),%eax
=> 0xff9fc001: jmp *(%eax)
Is there any way to have "symbol table" to
map word addresses to the word names? (I figured
out I can tick the word to get its address).
Thank you,
Marcin