This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]