summaryrefslogtreecommitdiffstats
path: root/app/steth.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/steth.c')
-rw-r--r--app/steth.c77
1 files changed, 40 insertions, 37 deletions
diff --git a/app/steth.c b/app/steth.c
index afd68ed..5ed11c7 100644
--- a/app/steth.c
+++ b/app/steth.c
@@ -200,40 +200,41 @@ steth_lwip_init (struct netif *netif)
#ifdef FUCKED
-static void fucked_phy_reset(uint8_t phy)
+static void fucked_phy_reset (uint8_t phy)
{
-unsigned i;
- eth_smi_write(phy, PHY_REG_BCR, PHY_REG_BCR_RESET);
- for (i=0;(eth_smi_read(phy, PHY_REG_BCR) & PHY_REG_BCR_RESET) && (i<1000);++i) delay_us(1000);
+ unsigned i;
+ eth_smi_write (phy, PHY_REG_BCR, PHY_REG_BCR_RESET);
+
+ for (i = 0; (eth_smi_read (phy, PHY_REG_BCR) & PHY_REG_BCR_RESET) && (i < 1000); ++i) delay_us (1000);
}
-static void fucked_eth_init(uint8_t phy, enum eth_clk clock)
+static void fucked_eth_init (uint8_t phy, enum eth_clk clock)
{
- ETH_MACMIIAR = clock;
- fucked_phy_reset(phy);
-
- ETH_MACCR = ETH_MACCR_CSTF | ETH_MACCR_FES | ETH_MACCR_DM |
- ETH_MACCR_APCS | ETH_MACCR_RD;
- ETH_MACFFR = ETH_MACFFR_RA | ETH_MACFFR_PM;
- ETH_MACHTHR = 0; /* pass all frames */
- ETH_MACHTLR = 0;
- ETH_MACFCR = (0x100 << ETH_MACFCR_PT_SHIFT);
- ETH_MACVLANTR = 0;
- ETH_DMAOMR = ETH_DMAOMR_DTCEFD | ETH_DMAOMR_RSF | ETH_DMAOMR_DFRF |
- ETH_DMAOMR_TSF | ETH_DMAOMR_FEF | ETH_DMAOMR_OSF;
- ETH_DMABMR = ETH_DMABMR_AAB | ETH_DMABMR_FB |
- (32 << ETH_DMABMR_RDP_SHIFT) | (32 << ETH_DMABMR_PBL_SHIFT) |
- ETH_DMABMR_PM_2_1 | ETH_DMABMR_USP;
+ ETH_MACMIIAR = clock;
+ fucked_phy_reset (phy);
+
+ ETH_MACCR = ETH_MACCR_CSTF | ETH_MACCR_FES | ETH_MACCR_DM |
+ ETH_MACCR_APCS | ETH_MACCR_RD;
+ ETH_MACFFR = ETH_MACFFR_RA | ETH_MACFFR_PM;
+ ETH_MACHTHR = 0; /* pass all frames */
+ ETH_MACHTLR = 0;
+ ETH_MACFCR = (0x100 << ETH_MACFCR_PT_SHIFT);
+ ETH_MACVLANTR = 0;
+ ETH_DMAOMR = ETH_DMAOMR_DTCEFD | ETH_DMAOMR_RSF | ETH_DMAOMR_DFRF |
+ ETH_DMAOMR_TSF | ETH_DMAOMR_FEF | ETH_DMAOMR_OSF;
+ ETH_DMABMR = ETH_DMABMR_AAB | ETH_DMABMR_FB |
+ (32 << ETH_DMABMR_RDP_SHIFT) | (32 << ETH_DMABMR_PBL_SHIFT) |
+ ETH_DMABMR_PM_2_1 | ETH_DMABMR_USP;
}
#endif
void eth_reset (void)
{
-unsigned i;
+ unsigned i;
- printf("Eth_reset()\r\n");
+ printf ("Eth_reset()\r\n");
rcc_periph_reset_hold (RST_ETHMAC);
delay_ms (1);
@@ -246,7 +247,7 @@ unsigned i;
rcc_periph_reset_release (RST_ETHMAC);
- delay_ms (1);
+ delay_ms (1);
CLEAR (NRST);
delay_us (1);
SET (NRST);
@@ -255,16 +256,17 @@ unsigned i;
TRACE;
ETH_DMABMR |= ETH_DMABMR_SR;
- i=0;
+ i = 0;
+
while (ETH_DMABMR & ETH_DMABMR_SR) {
- delay_ms(1);
- i++;
+ delay_ms (1);
+ i++;
- if (i>1000) {
- printf("No 50MHz clock to ethernet MAC\n");
- return;
- }
- }
+ if (i > 1000) {
+ printf ("No 50MHz clock to ethernet MAC\n");
+ return;
+ }
+ }
/*MDC = HCLK / 102 (0b100) => 1.6MHz */
TRACE;
@@ -274,10 +276,10 @@ unsigned i;
eth_init (PHY, ETH_CLK_150_168MHZ);
#endif
- if (eth_smi_read (PHY, 0)==0xffff) {
- fucked=1;
- printf("WARNING: PHY is AWOL\r\n");
- }
+ if (eth_smi_read (PHY, 0) == 0xffff) {
+ fucked = 1;
+ printf ("WARNING: PHY is AWOL\r\n");
+ }
TRACE;
phy_stat();
@@ -370,7 +372,8 @@ steth_init (void)
#endif
eth_start_an();
- if (fucked) delay_ms(1000);
+
+ if (fucked) delay_ms (1000);
@@ -404,7 +407,7 @@ void steth_slow_tick (void)
an_happy = phy_link_an_done (PHY);
- if ((!phy_link_isup (PHY) || !an_happy) && running) {
+ if ((!phy_link_isup (PHY) || !an_happy) && running) {
printf ("stopping nic\r\n");
eth_reset();