Make MAC address configurable using hw files.
authorlottaviano <lottaviano@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 24 May 2011 13:41:11 +0000 (13:41 +0000)
committerlottaviano <lottaviano@38d2e660-2303-0410-9eaa-f027e97ec537>
Tue, 24 May 2011 13:41:11 +0000 (13:41 +0000)
Users can now modify the hw_eth.c file to change MAC address. Adjust the
drivers accordingly.

git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4920 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/cpu/arm/drv/eth_at91.c
bertos/cpu/cortex-m3/drv/eth_sam3.c
bertos/drv/eth.h
bertos/hw/hw_eth.c [new file with mode: 0644]
bertos/hw/hw_eth.h [new file with mode: 0644]

index 529d7af4e5473b51045ef1ec435e108abc9edc7a..4f19fca14c05f7f67b2e5b0561f99c54ed1f8530 100644 (file)
 #define EMAC_RX_INTS   (BV(EMAC_RCOMP) | BV(EMAC_ROVR) | BV(EMAC_RXUBR))
 #define EMAC_TX_INTS   (BV(EMAC_TCOMP) | BV(EMAC_TXUBR) | BV(EMAC_RLEX))
 
-/*
- * MAC address configuration (please change this in your project!).
- *
- * TODO: make this paramater user-configurable from the Wizard.
- */
-const uint8_t mac_addr[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55 };
-
 /* Silent Doxygen bug... */
 #ifndef __doxygen__
 /*
index 0247f6181e26fe1c2065e16a3d81dd5051014a99..f83dba7227d71d4ffe551045eb23d82fd2ab6462 100644 (file)
 #define EMAC_RX_INTS   (BV(EMAC_RCOMP) | BV(EMAC_ROVR) | BV(EMAC_RXUBR))
 #define EMAC_TX_INTS   (BV(EMAC_TCOMP) | BV(EMAC_TXUBR) | BV(EMAC_RLEX))
 
-/*
- * MAC address configuration (please change this in your project!).
- *
- * TODO: make this paramater user-configurable from the Wizard.
- */
-const uint8_t mac_addr[] = { 0x00, 0x45, 0x56, 0x78, 0x9a, 0xbc };
-
 /* Silent Doxygen bug... */
 #ifndef __doxygen__
 /*
index 57ce35f41e819ee344b32b5965e1a7f9a58f54e0..786e7979c2ee303293ac5f72f1a91ca239c92b2c 100644 (file)
  * $WIZ$ module_name = "eth"
  * $WIZ$ module_configuration = "bertos/cfg/cfg_eth.h"
  * $WIZ$ module_supports = "at91sam7x or sam3x"
- * $WIZ$ module_depends = "timer"
+ * $WIZ$ module_hw = "bertos/hw/hw_eth.h", "bertos/hw/hw_eth.c"
  */
 
 #ifndef DRV_ETH_H
 #define DRV_ETH_H
 
+#include "hw/hw_eth.h"
 #include <cpu/types.h>
 
 #define ETH_ADDR_LEN   6
@@ -131,6 +132,4 @@ ssize_t eth_recv(uint8_t *buf, size_t len);
 
 int eth_init(void);
 
-extern const uint8_t mac_addr[ETH_ADDR_LEN];
-
 #endif /* DRV_ETH_H */
diff --git a/bertos/hw/hw_eth.c b/bertos/hw/hw_eth.c
new file mode 100644 (file)
index 0000000..c24cbfb
--- /dev/null
@@ -0,0 +1,40 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2011 Develer S.r.l. (http://www.develer.com/)
+ *
+ * -->
+ *
+ * \brief MAC address definition
+ *
+ * \author Luca Ottaviano <lottaviano@develer.com>
+ */
+
+#include "hw/hw_eth.h"
+
+uint8_t mac_addr[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55 };
diff --git a/bertos/hw/hw_eth.h b/bertos/hw/hw_eth.h
new file mode 100644 (file)
index 0000000..71c2ac8
--- /dev/null
@@ -0,0 +1,44 @@
+/**
+ * \file
+ * <!--
+ * This file is part of BeRTOS.
+ *
+ * Bertos is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * As a special exception, you may use this file as part of a free software
+ * library without restriction.  Specifically, if other files instantiate
+ * templates or use macros or inline functions from this file, or you compile
+ * this file and link it with other files to produce an executable, this
+ * file does not by itself cause the resulting executable to be covered by
+ * the GNU General Public License.  This exception does not however
+ * invalidate any other reasons why the executable file might be covered by
+ * the GNU General Public License.
+ *
+ * Copyright 2011 Develer S.r.l. (http://www.develer.com/)
+ *
+ * -->
+ *
+ * \brief MAC address definition
+ *
+ * \author Luca Ottaviano <lottaviano@develer.com>
+ */
+#ifndef HW_ETH_H
+#define HW_ETH_H
+
+#include <cfg/compiler.h>
+
+extern uint8_t mac_addr[6];
+
+#endif // HW_ETH_H