aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/ARM7-AT91SAM7X-GCC/Makefile2
-rw-r--r--demos/ARM7-AT91SAM7X-GCC/main.c5
-rw-r--r--ports/ARM7-AT91SAM7X/sam7x_emac.c4
3 files changed, 7 insertions, 4 deletions
diff --git a/demos/ARM7-AT91SAM7X-GCC/Makefile b/demos/ARM7-AT91SAM7X-GCC/Makefile
index 8ac2a69af..c799658c8 100644
--- a/demos/ARM7-AT91SAM7X-GCC/Makefile
+++ b/demos/ARM7-AT91SAM7X-GCC/Makefile
@@ -102,7 +102,7 @@ TOPT = -mthumb -D THUMB
# chconf.h.
# NOTE: -falign-functions=16 may improve the performance, not always, but
# increases the code size.
-OPT = -O2 -ggdb -fomit-frame-pointer -mabi=apcs-gnu
+OPT = -ggdb -fomit-frame-pointer -mabi=apcs-gnu
#OPT += -ffixed-r7
#OPT += -falign-functions=16
diff --git a/demos/ARM7-AT91SAM7X-GCC/main.c b/demos/ARM7-AT91SAM7X-GCC/main.c
index 27fc20a3d..2ac2f7e08 100644
--- a/demos/ARM7-AT91SAM7X-GCC/main.c
+++ b/demos/ARM7-AT91SAM7X-GCC/main.c
@@ -21,7 +21,8 @@
#include <test.h>
#include "board.h"
-#include "sam7x_serial.h"
+#include <sam7x_serial.h>
+#include <sam7x_emac.h>
static WorkingArea(waThread1, 64);
static msg_t Thread1(void *arg) {
@@ -40,6 +41,8 @@ static msg_t Thread1(void *arg) {
*/
int main(int argc, char **argv) {
+ InitEMAC(AT91C_AIC_PRIOR_HIGHEST - 3);
+
/*
* The main() function becomes a thread here then the interrupts are
* enabled and ChibiOS/RT goes live.
diff --git a/ports/ARM7-AT91SAM7X/sam7x_emac.c b/ports/ARM7-AT91SAM7X/sam7x_emac.c
index 5f2ca9380..9e10aaa08 100644
--- a/ports/ARM7-AT91SAM7X/sam7x_emac.c
+++ b/ports/ARM7-AT91SAM7X/sam7x_emac.c
@@ -246,9 +246,9 @@ void InitEMAC(int prio) {
AT91C_BASE_EMAC->EMAC_NCR |= AT91C_EMAC_MPE;
if ((phy_get(MII_PHYSID1) != (MII_MICREL_ID >> 16)) ||
(phy_get(MII_PHYSID2 & 0xFFF0) != (MII_MICREL_ID & 0xFFF0)))
- chDbgPanic("Wrong PHY identifier");
+ chSysHalt();
if (!get_link_status())
- chDbgPanic("No link");
+ chSysHalt();
AT91C_BASE_EMAC->EMAC_NCR &= ~AT91C_EMAC_MPE;
/*