Question on of_address_to_resource() with offset != 0

Stefan Roese stefan.roese at gmail.com
Wed Sep 15 00:29:06 EST 2010


Hi,

I'm stumbling upon a problem noticed on the Ebony (440GP) eval board.
Here the first chip-select is connected to 512KiB of SRAM and 512KiB
NOR flash. The dts part look this way:

				small-flash at 0,80000 {
					compatible = "jedec-flash";
					bank-width = <1>;
					reg = <0x00000000 0x00080000 0x00080000>;
					#address-cells = <1>;
					#size-cells = <1>;
					partition at 0 {
						label = "OpenBIOS";
						reg = <0x00000000 0x00080000>;
						read-only;
					};
				};

Chip-select 0 has this setup:
base-addr = 0xfff00000, size = 0x100000 (phys addr 0x1fff00000 .. 0x1ffffffff)

The problem/crash happens in the physmap_of driver, when the the driver
calls do_map_probe() with the following range:
base-addr = 0xfff80000, size = 0x100000 (phys addr 0x1fff80000 .. 0x20007ffff)

My question now is, should of_address_to_resource() subtract the
offset (here 0x80000) from the size? Is this is bug here? Or should
the physmap_of driver take care of this issue somehow?

Cheers,
Stefan


More information about the devicetree-discuss mailing list