
Dear Christian Riesch,
In message 6cc4810c-1e2e-4ebf-912a-96936f035c0e@mary.at.omicron.at you wrote:
Signed-off-by: Christian Riesch christian.riesch@omicron.at
board/omicron/calimain/calimain.c | 31 ++++++++++++++++++++++++++++++- include/configs/calimain.h | 2 ++ 2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/board/omicron/calimain/calimain.c b/board/omicron/calimain/calimain.c index 1060a1f..80e3893 100644 --- a/board/omicron/calimain/calimain.c +++ b/board/omicron/calimain/calimain.c @@ -1,5 +1,5 @@ /*
- Copyright (C) 2011 OMICRON electronics GmbH
- Copyright (C) 2011-2013 OMICRON electronics GmbH
- Based on da850evm.c. Original Copyrights follow:
@@ -136,6 +136,35 @@ int board_init(void) return 0; }
+/* seed random number generator with uninitialized SRAM content */ +static void srand_sram(void) +{
- int *p;
- int seed = 0;
- for (p = (int *) 0x80000000; p < (int *) 0x8001ffff; p++)
seed ^= *p;
- srand(seed);
+}
Note that your "uninitialized" SRAM content is probably not so much random at all - I guess, it is much less random than the originally used timer value.
What exactly is your justification for such a change? Please elucidate...
+int board_late_init(void) +{
- uchar enetaddr[6];
- if (!eth_getenv_enetaddr("ethaddr", enetaddr)) {
srand_sram();
eth_random_enetaddr(enetaddr);
if (eth_setenv_enetaddr("ethaddr", enetaddr)) {
printf("Failed to set random ethernet address\n");
} else {
printf("Setting random ethernet address %pM.\n",
enetaddr);
}
- }
- return 0;
+}
NAK! You are but duplicating the code already present in net/eth.c
This makes no sense.
Best regards,
Wolfgang Denk