dtc: .quad asm directive generation

Mark A. Greer mgreer at mvista.com
Tue Mar 14 08:21:05 EST 2006


Hi David,

I'm playing around with moving some 32-bit embedded platforms (that don't
have OF or dev-tree-aware uboot) to the powerpc tree.  Basically, I make an
initial .dts file for that platform then dtc-compile it using:

dtc -I dts -O asm -o <platform>.S -V 16 <platform>.dts

Then I build the <platform>.S file with the normal bootwrapper/kernel build.

The problem I'm having is that dtc generates some .quad directives that
is causing my 32-bit assembler to choke (.quad not supported).  Do we need
a 32-bit switch for dtc or should I be giving some sort of switch to
gcc(version 3.4.3)/gas(version 2.15.94) to make it work?

Thanks,

Mark
---

dts:
----

/ {
	linux,phandle = <100>;
	model = "Sandpoint";
	compatible = "MPC10x";
	#address-cells = <1>;
	#size-cells = <1>;

	cpus {
		linux,phandle = <200>;
		#cpus = <1>;
		#address-cells = <1>;
		#size-cells = <0>;

		PowerPC,7447A {
			linux,phandle = <201>;
			linux,boot-cpu;
			device_type = "cpu";
			reg = <0>;
			clock-frequency = <ee6b280>;	/* 250 MHz on 82xx */
			timebase-frequency = <3b9aca0>;	/* 250/4 MHz */
			i-cache-line-size = <20>;
			d-cache-line-size = <20>;
			i-cache-size = <4000>;		/* 16MB L1 on 8245 */
			d-cache-size = <4000>;		/* 16MB L1 on 8245 */
		};
	};

	memory {
		linux,phandle = <300>;
		device_type = "memory";
		reg = <00000000 02000000>;	/* 32 MB */
	};

	chosen {
		linux,phandle = <400>;
		linux,platform = <1>;
		bootargs = "";
		linux,stdout-path = "/dev/ttyS0";
/*		interrupt-controller = <XXXX>; */
	};
};

dtc asm output:
---------------

/* autogenerated by dtc, do not edit */

<snip>

dt_reserve_map:
_dt_reserve_map:
	.quad	0, _dt_blob_start
	.quad	0, _dt_blob_end - _dt_blob_start
/* Memory reserve map from source file */
	.quad	0
	.quad	0

<snip>



More information about the Linuxppc-dev mailing list