The BeagleBoard beagle.c file contains: 242 /* Configure GPIOs to output */ 243 writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); 244 writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | 245 GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); 246 247 /* Set GPIOs */ 248 writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, 249 &gpio6_base->setdataout); 250 writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | 251 GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout);
It first sets some pins as outputs and then initializes their values. This can cause narrow glitches on the output pins. To prevent the glitches the order should be reversed. First Set the GPIOs, then Configure them as outputs. Also, I have observed the discussion regarding moving Pin Mux control to the kernel. This is fine except for pins that need to be configured ASAP after power-on. (The system could sit at the u-boot command prompt indefinitely, so the kernel pin mux configuration can be significantly delayed.). Please leave the hook so that u-boot customizers can configure their critical pins muxes. Regards, Bob Feretich _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot