diff --git a/arch/arm/include/asm/arch-am33xx/cpu.h b/arch/arm/include/asm/arch-am33xx/cpu.h
index 819fd2f..bcd2fb0 100644
--- a/arch/arm/include/asm/arch-am33xx/cpu.h
+++ b/arch/arm/include/asm/arch-am33xx/cpu.h
@@ -53,6 +53,7 @@
 /* Reset control */
 #ifdef CONFIG_AM33XX
 #define PRM_RSTCTRL			0x44E00F00
+#define PRM_RSTTIME			0x44E00F04
 #define PRM_RSTST			0x44E00F08
 #endif
 #define PRM_RSTCTRL_RESET		0x01
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
index b56a801..7c23a6e 100644
--- a/board/ti/am335x/board.c
+++ b/board/ti/am335x/board.c
@@ -304,6 +304,14 @@ void s_init(void)
 	else
 		config_ddr(266, MT47H128M16RT25E_IOCTRL_VALUE, &ddr2_data,
 			   &ddr2_cmd_ctrl_data, &ddr2_emif_reg_data);
+
+	if (board_is_bone())
+		/*
+		 * For BeagleBone, extend PRM_RSTTIME1 to ensure SMSC PHY
+		 * strapping resistors are properly read on warm software reset
+		 * to reduce the chance of Ethernet LEDs being inverted.
+		 */
+		writeb(0x80, PRM_RSTTIME);
 #endif
 }
 
