
On Mon, 29 Aug 2011 15:42:09 +0800, Wolfgang Denk wd@denx.de wrote:
Dear Chunhe Lan,
In message 1314602152-9114-1-git-send-email-Chunhe.Lan@freescale.com you wrote:
In the p1023rds, accessing exclusively nor flash or nand flash device by BR0/OR0.
...
When booting from nor flash, the status of nor node is null that means it is enabled and the status of nand node is disabled in the default dts file, so do not do anything.
It would be more intuitive to the reader, when the enabled node would use an explicit
status = "enabled";
+#ifdef CONFIG_NAND_U_BOOT
- do_fixup_by_path_string(fdt, "nor_flash", "status", "disabled");
- do_fixup_by_path_string(fdt, "nand_flash", "status", "okay");
+#endif
What does ""okay" mean? This is not documented anywhere. Is this supposed to mean "enabled"? Then please write "enabled" - for certain configurations it is definitely OK to disable the device.
In the kernel, whether the status of node is enabled or not, it is determined by of_device_is_available( ).
The following content of of_device_is_available( ):
245 /** 246 * of_device_is_available - check if a device is available for use 247 * 248 * @device: Node to check for availability 249 * 250 * Returns 1 if the status property is absent or set to "okay" or "ok", 251 * 0 otherwise 252 */ 253 int of_device_is_available(const struct device_node *device) 254 { 255 const char *status; 256 int statlen; 257 258 status = of_get_property(device, "status", &statlen); 259 if (status == NULL) 260 return 1; 261 262 if (statlen > 0) { 263 if (!strcmp(status, "okay") || !strcmp(status, "ok")) 264 return 1; 265 } 266 267 return 0; 268 }
" return 1" is enabled. " return 0" is disabled. So, we do NOT use "enabled" to set status.
Thanks.
-Jack Lan
Best regards,
Wolfgang Denk