This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: add disk device to PowerPC sim
> I make this commit needed by the FreeBSD/powerpc porting effort.
>
> 2002-03-24 David O'Brien <obrien@FreeBSD.org>
> * ppc/hw_disk.c: Export a disk device property.
>
> Index: hw_disk.c
> ===================================================================
> RCS file: /cvs/src/src/sim/ppc/hw_disk.c,v
> retrieving revision 1.1
> retrieving revision 1.2
> diff -u -r1.1 -r1.2
> --- hw_disk.c 1999/04/16 01:35:09 1.1
> +++ hw_disk.c 2002/03/25 04:39:20 1.2
> @@ -232,6 +232,9 @@
> space, address, 0/*size*/, access_read_write_exec,
> me);
>
> + /* Tell the world we are a disk. */
> + device_add_string_property(me, "device_type", "disk");
> +
> /* get the name of the file specifying the disk image */
> disk->name_index = 0;
> disk->nr_names = device_find_string_array_property(me, "file",
>
> I'm going to need to dig up my 1275 manual to check this one out.
David,
A disk drive has a "device_type" of "block" not "disk". See 1276
section 3.7 (Standard device types) and 3.7.2 ("block" devices). Could
you please fix this, trunk and branch (given it has already been checked
into the branch :-( ).
At present none of other hw_*.c files are doing like the above. Instead
they use a device tree (see attached) so your two line patch introduces
a very fundamental change in the simulator's behavour. However, yes,
the current need to specify all the properties in a file is a pain and
the code to start doing this is long overdue.
Looking at the actual change, ..._init_address() appears to get the job
done. However, if you trace the code, the second and further init calls
try to re-add the property to the tree (see how permenant_object is
used) - fortunatly these are ignored. Can you please create a
bug-report documenting this problem.
enjoy,
Andrew
/#address-cells 1
/openprom/options
./os-emul "chrp
./oea-memory-size 0x400000
./use-stdio? false
/openprom/trace
# ./events 1
# ./interrupts 1
/aliases
./ofdisk0 "/phb/ide/cdrom@0
/phb@0x80000000
./device_type "pci
./name "pci
./#address-cells 3
./#size-cells 2
./ranges ni0,0,0,0 0xc0000000 0x10000
/phb/ide@1
./device_type "ide
./name "ide
./assigned-addresses \
ni0,0,10,1f0 8 \
ni0,0,14,3f0 8 \
ni0,0,18,170 8 \
ni0,0,1c,370 8 \
ni0,0,20,200 8
./reg \
1 0 \
i0,0,10,0 8 \
i0,0,18,0 8 \
i0,0,14,6 1 \
i0,0,1c,6 1 \
i0,0,20,0 8
./ready-delay 1000
/phb/ide@1/cdrom@0
./device_type "block
./name "cdrom
./file "/dev/wd0a"
/phb/com@2
./device_type "serial"
./name "com"
./assigned-addresses \
ni0,0,10,3f8 8
./reg \
2 0 \
i0,0,10,0 8
# TMP for NetBSD
/cpus
./device_type "cpus
./name "cpus
./timebase-frequency 1000000
/cpus/cpu@0
./device_type "cpu
./name "cpu
./timebase-frequency 1000000
#/options/real-mode? true
#/chosen/netbsd-args "/phb/ide/cdrom@0/netbsd
/chosen/netbsd-args "ofdisk0/netbsd -sd
/chosen/bootpath "ofdisk0:\boot.ppc"
/chosen/bootargs "-s"
/chosen/stdin */phb/com
/chosen/stdout !/chosen/stdin