diff --git a/board/Seagate/dockstar/dockstar.c b/board/Seagate/dockstar/dockstar.c
index 8cbfb02b1560b766047f4cc071827bdbed1e8461..38473e580883c598315de86591f4c0471766a941 100644
--- a/board/Seagate/dockstar/dockstar.c
+++ b/board/Seagate/dockstar/dockstar.c
@@ -172,7 +172,7 @@ void show_boot_progress(int val)
 	case BOOTSTAGE_ID_RUN_OS:		/* booting Linux */
 		set_leds(BOTH_LEDS, NEITHER_LED);
 		break;
-	case 64:		/* Ethernet initialization */
+	case BOOTSTAGE_ID_NET_ETH_START:	/* Ethernet initialization */
 		set_leds(GREEN_LED, GREEN_LED);
 		break;
 	default:
diff --git a/board/matrix_vision/mvbc_p/mvbc_p.c b/board/matrix_vision/mvbc_p/mvbc_p.c
index 7e06d6c4a801fbde5531efd91b9ccf669db2f5ca..4b48a3cab830aec71d4e82d17dbf0270e9c31107 100644
--- a/board/matrix_vision/mvbc_p/mvbc_p.c
+++ b/board/matrix_vision/mvbc_p/mvbc_p.c
@@ -244,7 +244,7 @@ void show_boot_progress(int val)
 	case BOOTSTAGE_ID_START: /* FPGA ok */
 		setbits_be32(&gpio->simple_dvo, LED_G0);
 		break;
-	case 65:
+	case BOOTSTAGE_ID_NET_ETH_INIT:
 		setbits_be32(&gpio->simple_dvo, LED_G1);
 		break;
 	case BOOTSTAGE_ID_COPY_RAMDISK:
diff --git a/board/pcs440ep/pcs440ep.c b/board/pcs440ep/pcs440ep.c
index f67eeddeb7d03c7568628419b7aa6c52650f5862..746a54c5e3405d8007529f401d15e943fb1a6c59 100644
--- a/board/pcs440ep/pcs440ep.c
+++ b/board/pcs440ep/pcs440ep.c
@@ -117,19 +117,19 @@ void show_boot_progress (int val)
 		status_led_set(2, STATUS_LED_ON);
 		break;
 #if 0
-		case 64:
-			/* starting Ethernet configuration */
-			status_led_set (0, STATUS_LED_OFF);
-			status_led_set (1, STATUS_LED_OFF);
-			status_led_set (2, STATUS_LED_ON);
-			break;
+	case BOOTSTAGE_ID_NET_ETH_START:
+		/* starting Ethernet configuration */
+		status_led_set(0, STATUS_LED_OFF);
+		status_led_set(1, STATUS_LED_OFF);
+		status_led_set(2, STATUS_LED_ON);
+		break;
 #endif
-		case 80:
-			/* loading Image */
-			status_led_set (0, STATUS_LED_ON);
-			status_led_set (1, STATUS_LED_OFF);
-			status_led_set (2, STATUS_LED_ON);
-			break;
+	case BOOTSTAGE_ID_NET_START:
+		/* loading Image */
+		status_led_set(0, STATUS_LED_ON);
+		status_led_set(1, STATUS_LED_OFF);
+		status_led_set(2, STATUS_LED_ON);
+		break;
 	}
 }
 #endif
diff --git a/common/cmd_net.c b/common/cmd_net.c
index c9f2a0864ae02e67f0beffbeee7152aef5a9042a..897b6f63177f4b12c6146ad5160683fdbf226f5a 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -230,36 +230,37 @@ static int netboot_common(enum proto_t proto, cmd_tbl_t *cmdtp, int argc,
 		break;
 #endif
 	default:
-		show_boot_error(80);
+		show_boot_error(BOOTSTAGE_ID_NET_START);
 		return CMD_RET_USAGE;
 	}
+	show_boot_progress(BOOTSTAGE_ID_NET_START);
 
-	show_boot_progress(80);
 	if ((size = NetLoop(proto)) < 0) {
-		show_boot_error(81);
+		show_boot_error(BOOTSTAGE_ID_NET_NETLOOP_OK);
 		return 1;
 	}
+	show_boot_progress(BOOTSTAGE_ID_NET_NETLOOP_OK);
 
-	show_boot_progress(81);
 	/* NetLoop ok, update environment */
 	netboot_update_env();
 
 	/* done if no file was loaded (no errors though) */
 	if (size == 0) {
-		show_boot_error(82);
+		show_boot_error(BOOTSTAGE_ID_NET_LOADED);
 		return 0;
 	}
 
 	/* flush cache */
 	flush_cache(load_addr, size);
 
-	show_boot_progress(82);
+	show_boot_progress(BOOTSTAGE_ID_NET_LOADED);
+
 	rcode = bootm_maybe_autostart(cmdtp, argv[0]);
 
 	if (rcode < 0)
-		show_boot_error(83);
+		show_boot_error(BOOTSTAGE_ID_NET_DONE_ERR);
 	else
-		show_boot_progress(84);
+		show_boot_progress(BOOTSTAGE_ID_NET_DONE);
 	return rcode;
 }
 
diff --git a/common/env_common.c b/common/env_common.c
index 49b55f1eefc501823e72ecec344030cf0f51fc8b..41e2f260dbc64b3de76e642d6c4dffb51a3c0373 100644
--- a/common/env_common.c
+++ b/common/env_common.c
@@ -228,7 +228,7 @@ void env_relocate(void)
 #if defined(CONFIG_ENV_IS_NOWHERE)	/* Environment not changable */
 		set_default_env(NULL);
 #else
-		show_boot_error(60);
+		show_boot_error(BOOTSTAGE_ID_NET_CHECKSUM);
 		set_default_env("!bad CRC");
 #endif
 	} else {
diff --git a/include/bootstage.h b/include/bootstage.h
index d58c46b893e8010c8511d7f3791f25ea9bc36573..35e11b8dcc83229a1cb71704c892f009188f69a7 100644
--- a/include/bootstage.h
+++ b/include/bootstage.h
@@ -115,6 +115,17 @@ enum bootstage_id {
 	BOOTSTAGE_ID_NAND_TYPE = 57,
 	BOOTSTAGE_ID_NAND_READ,
 
+	/* Boot stages related to loading a kernel from an network device */
+	BOOTSTAGE_ID_NET_CHECKSUM = 60,
+	BOOTSTAGE_ID_NET_ETH_START = 64,
+	BOOTSTAGE_ID_NET_ETH_INIT,
+
+	BOOTSTAGE_ID_NET_START = 80,
+	BOOTSTAGE_ID_NET_NETLOOP_OK,
+	BOOTSTAGE_ID_NET_LOADED,
+	BOOTSTAGE_ID_NET_DONE_ERR,
+	BOOTSTAGE_ID_NET_DONE,
+
 	BOOTSTAGE_ID_IDE_FIT_READ = 140,
 	BOOTSTAGE_ID_IDE_FIT_READ_OK,
 
diff --git a/net/eth.c b/net/eth.c
index 5cefe4c8be04ab91249964f055358d7ceb457fb4..77045ebeac1ab4851e1217f52b355db588c0864c 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -256,7 +256,7 @@ int eth_initialize(bd_t *bis)
 	eth_devices = NULL;
 	eth_current = NULL;
 
-	show_boot_progress (64);
+	show_boot_progress(BOOTSTAGE_ID_NET_ETH_START);
 #if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)
 	miiphy_init();
 #endif
@@ -280,12 +280,12 @@ int eth_initialize(bd_t *bis)
 
 	if (!eth_devices) {
 		puts ("No ethernet found.\n");
-		show_boot_error(64);
+		show_boot_error(BOOTSTAGE_ID_NET_ETH_START);
 	} else {
 		struct eth_device *dev = eth_devices;
 		char *ethprime = getenv ("ethprime");
 
-		show_boot_progress (65);
+		show_boot_progress(BOOTSTAGE_ID_NET_ETH_INIT);
 		do {
 			if (dev->index)
 				puts (", ");