diff options
Diffstat (limited to 'recipes-bsp')
28 files changed, 167 insertions, 1635 deletions
diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/mtrv1-DDRlowDriveStrength.patch b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0001-mtrv1-DDRlowDriveStrength.patch index e57ba89..e57ba89 100644 --- a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/mtrv1-DDRlowDriveStrength.patch +++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0001-mtrv1-DDRlowDriveStrength.patch diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/disable-rtc-interrupts.patch b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0003-disable-rtc-interrupts.patch index d262972..d262972 100644 --- a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/disable-rtc-interrupts.patch +++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0003-disable-rtc-interrupts.patch diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0005-at91bootstrap-3.8-mtcap.patch b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0005-at91bootstrap-3.8-mtcap.patch new file mode 100644 index 0000000..4a52903 --- /dev/null +++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0005-at91bootstrap-3.8-mtcap.patch @@ -0,0 +1,77 @@ +diff -Naru orig/board/at91sam9x5ek/at91sam9x5ek.c new/board/at91sam9x5ek/at91sam9x5ek.c +--- orig/board/at91sam9x5ek/at91sam9x5ek.c 2020-09-10 14:47:38.921510351 -0500 ++++ new/board/at91sam9x5ek/at91sam9x5ek.c 2020-09-10 12:29:01.089756599 -0500 +@@ -56,6 +56,32 @@ + writel(0xFF, RTC_SCCR + AT91C_BASE_RTC); + } + ++ ++static void initialize_mt_gpio(void) ++{ ++ const struct pio_desc mt_gpio_pins[] = { ++ {"LORA-RESET",AT91C_PIN_PA(8), 0, PIO_PULLUP, PIO_OUTPUT}, ++ {"PA14-UNUSED",AT91C_PIN_PA(14), 0, PIO_PULLUP, PIO_INPUT}, ++ {"LORA-32MHZ-CLOCK",AT91C_PIN_PA(26), 0, PIO_DEFAULT, PIO_INPUT}, ++ {"LORA-CRESET",AT91C_PIN_PA(29), 0, PIO_PULLUP, PIO_OUTPUT}, ++ {"CELL-LDO-ENABLE",AT91C_PIN_PB(11), 0, PIO_DEFAULT, PIO_OUTPUT}, ++ {"MP8859-ENABLE",AT91C_PIN_PB(12), 0, PIO_DEFAULT, PIO_OUTPUT}, ++ {"POE-AT-STATUS",AT91C_PIN_PB(15), 0, PIO_PULLUP, PIO_INPUT}, ++ {"PB18-UNUSED",AT91C_PIN_PB(18), 0, PIO_PULLUP, PIO_INPUT}, ++ {"ETH-RESET",AT91C_PIN_PC(6), 1, PIO_DEFAULT, PIO_OUTPUT}, ++ {"UART-TX-GNSS",AT91C_PIN_PC(8), 0, PIO_DEFAULT, PIO_PERIPH_C}, ++ {"LED-CD",AT91C_PIN_PC(16), 1, PIO_OPENDRAIN, PIO_OUTPUT}, ++ {"ALLOW-RESET",AT91C_PIN_PC(26), 1, PIO_DEFAULT, PIO_OUTPUT}, ++ {"GNSS-RESET",AT91C_PIN_PD(15), 0, PIO_PULLUP, PIO_OUTPUT}, ++ {"GNSS-INT",AT91C_PIN_PD(19), 1, PIO_DEFAULT, PIO_OUTPUT}, ++ {"RADIO-POWER-MONITOR",AT91C_PIN_PD(21), 0, PIO_PULLDOWN, PIO_INPUT}, ++ {(char *)0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}, ++ }; ++ ++ pio_configure(mt_gpio_pins); ++} ++ ++ + static void at91_dbgu_hw_init(void) + { + /* Configure DBGU pins */ +@@ -200,6 +225,9 @@ + /* Init timer */ + timer_init(); + ++ /* Initialize MT GPIO */ ++ initialize_mt_gpio(); ++ + /* Initialize dbgu */ + initialize_dbgu(); + +@@ -313,10 +341,14 @@ + + reg = readl(AT91C_BASE_CCFG + CCFG_EBICSA); + reg |= AT91C_EBI_CS3A_SM; ++#ifdef NOTMTCDT + if (get_cm_rev() == 'A') + reg &= ~AT91C_EBI_NFD0_ON_D16; + else + reg |= (AT91C_EBI_DDR_MP_EN | AT91C_EBI_NFD0_ON_D16); ++#endif /* NOTMTCDT */ ++ /* MTCDT */ ++ reg |= (AT91C_EBI_DDR_MP_EN | AT91C_EBI_NFD0_ON_D16); + + reg &= ~AT91C_EBI_DRV; + writel(reg, AT91C_BASE_CCFG + CCFG_EBICSA); +@@ -346,11 +378,15 @@ + AT91C_BASE_SMC + SMC_CTRL3); + + /* Configure the PIO controller */ ++#ifdef NOTMTCDT + if (get_cm_rev() == 'A') + pio_configure(nand_pins_lo); + else ++#endif /* NOTMTCDT */ ++ /* MTCDT */ + pio_configure(nand_pins_hi); + ++ + pmc_enable_periph_clock(AT91C_ID_PIOC_D); + } + #endif /* #ifdef CONFIG_NANDFLASH */ diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/at91bootstrap-3.8-mtcdt.patch b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0005-at91bootstrap-3.8-mtcdt.patch index 8710ee5..14f01eb 100644 --- a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/at91bootstrap-3.8-mtcdt.patch +++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0005-at91bootstrap-3.8-mtcdt.patch @@ -1,9 +1,9 @@ -diff -aNru orig/board/at91sam9x5ek/at91sam9x5ek.c new/board/at91sam9x5ek/at91sam9x5ek.c ---- orig/board/at91sam9x5ek/at91sam9x5ek.c 2019-04-16 14:20:15.036823256 -0500 -+++ new/board/at91sam9x5ek/at91sam9x5ek.c 2019-04-16 14:26:10.648812728 -0500 -@@ -44,6 +44,37 @@ - #include "at91sam9x5ek.h" - #include "board_hw_info.h" +diff -Naru orig/board/at91sam9x5ek/at91sam9x5ek.c new/board/at91sam9x5ek/at91sam9x5ek.c +--- orig/board/at91sam9x5ek/at91sam9x5ek.c 2020-09-10 16:30:43.653327254 -0500 ++++ new/board/at91sam9x5ek/at91sam9x5ek.c 2020-09-10 16:16:38.597352272 -0500 +@@ -56,6 +56,37 @@ + writel(0xFF, RTC_SCCR + AT91C_BASE_RTC); + } + +static void initialize_mt_gpio(void) @@ -39,7 +39,7 @@ diff -aNru orig/board/at91sam9x5ek/at91sam9x5ek.c new/board/at91sam9x5ek/at91sam static void at91_dbgu_hw_init(void) { /* Configure DBGU pins */ -@@ -185,6 +210,9 @@ +@@ -200,6 +231,9 @@ /* Init timer */ timer_init(); @@ -49,7 +49,7 @@ diff -aNru orig/board/at91sam9x5ek/at91sam9x5ek.c new/board/at91sam9x5ek/at91sam /* Initialize dbgu */ initialize_dbgu(); -@@ -298,10 +326,14 @@ +@@ -313,10 +347,14 @@ reg = readl(AT91C_BASE_CCFG + CCFG_EBICSA); reg |= AT91C_EBI_CS3A_SM; @@ -64,7 +64,7 @@ diff -aNru orig/board/at91sam9x5ek/at91sam9x5ek.c new/board/at91sam9x5ek/at91sam reg &= ~AT91C_EBI_DRV; writel(reg, AT91C_BASE_CCFG + CCFG_EBICSA); -@@ -331,11 +363,15 @@ +@@ -346,11 +384,15 @@ AT91C_BASE_SMC + SMC_CTRL3); /* Configure the PIO controller */ diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0005-at91bootstrap-3.8-mtr.patch b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0005-at91bootstrap-3.8-mtr.patch new file mode 100644 index 0000000..cbbe27d --- /dev/null +++ b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/0005-at91bootstrap-3.8-mtr.patch @@ -0,0 +1,69 @@ +diff -Naru orig/board/at91sam9x5ek/at91sam9x5ek.c new/board/at91sam9x5ek/at91sam9x5ek.c +--- orig/board/at91sam9x5ek/at91sam9x5ek.c 2020-09-10 17:38:21.769207114 -0500 ++++ new/board/at91sam9x5ek/at91sam9x5ek.c 2020-09-10 17:51:24.137183953 -0500 +@@ -56,6 +56,31 @@ + writel(0xFF, RTC_SCCR + AT91C_BASE_RTC); + } + ++ ++static void initialize_mt_gpio(void) ++{ ++ /* Configure DBGU pins */ ++ const struct pio_desc mt_gpio_pins[] = { ++ /* Misc. pins -- Pins PD15-PD18 belong to PERIPH ++ * B A20-A25 until bootstrap shuts them down. ++ * This code prevents these pins from being used ++ * during boot, since we do not ++ * need these pins to boot the system and we ++ * do not want resets to toggle needlessly. ++ */ ++ {"PD15",AT91C_PIN_PD(15), 1, PIO_PULLUP, PIO_OUTPUT}, ++ {"PD16",AT91C_PIN_PD(16), 1, PIO_PULLUP, PIO_OUTPUT}, ++ {"PD17",AT91C_PIN_PD(17), 1, PIO_PULLUP, PIO_OUTPUT}, ++ {"PD18",AT91C_PIN_PD(18), 1, PIO_PULLUP, PIO_OUTPUT}, ++ {"PD19",AT91C_PIN_PD(19), 1, PIO_PULLUP, PIO_OUTPUT}, ++ {"PD20IN",AT91C_PIN_PD(20), 0, PIO_PULLUP, PIO_INPUT}, ++ {(char *)0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}, ++ }; ++ ++ pio_configure(mt_gpio_pins); ++} ++ ++ + static void at91_dbgu_hw_init(void) + { + /* Configure DBGU pins */ +@@ -200,6 +225,9 @@ + /* Init timer */ + timer_init(); + ++ /* Initialize MT GPIO */ ++ initialize_mt_gpio(); ++ + /* Initialize dbgu */ + initialize_dbgu(); + +@@ -313,10 +341,8 @@ + + reg = readl(AT91C_BASE_CCFG + CCFG_EBICSA); + reg |= AT91C_EBI_CS3A_SM; +- if (get_cm_rev() == 'A') +- reg &= ~AT91C_EBI_NFD0_ON_D16; +- else +- reg |= (AT91C_EBI_DDR_MP_EN | AT91C_EBI_NFD0_ON_D16); ++ /* MTR */ ++ reg |= (AT91C_EBI_DDR_MP_EN | AT91C_EBI_NFD0_ON_D16); + + reg &= ~AT91C_EBI_DRV; + writel(reg, AT91C_BASE_CCFG + CCFG_EBICSA); +@@ -346,9 +372,7 @@ + AT91C_BASE_SMC + SMC_CTRL3); + + /* Configure the PIO controller */ +- if (get_cm_rev() == 'A') +- pio_configure(nand_pins_lo); +- else ++ /* MTR2 */ + pio_configure(nand_pins_hi); + + pmc_enable_periph_clock(AT91C_ID_PIOC_D); diff --git a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/at91bootstrap-3.8-mtr.patch b/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/at91bootstrap-3.8-mtr.patch deleted file mode 100644 index 2993323..0000000 --- a/recipes-bsp/at91bootstrap/at91bootstrap-3.8.12/at91bootstrap-3.8-mtr.patch +++ /dev/null @@ -1,414 +0,0 @@ -diff -aNru orig/board/at91sam9x5ek/at91sam9x5ek.c new/board/at91sam9x5ek/at91sam9x5ek.c ---- orig/board/at91sam9x5ek/at91sam9x5ek.c 2019-04-16 14:20:15.036823256 -0500 -+++ new/board/at91sam9x5ek/at91sam9x5ek.c 2019-04-16 14:42:16.920784122 -0500 -@@ -44,6 +44,31 @@ - #include "at91sam9x5ek.h" - #include "board_hw_info.h" - -+ -+static void initialize_mt_gpio(void) -+{ -+ /* Configure DBGU pins */ -+ const struct pio_desc mt_gpio_pins[] = { -+ /* Misc. pins -- Pins PD15-PD18 belong to PERIPH -+ * B A20-A25 until bootstrap shuts them down. -+ * This code prevents these pins from being used -+ * during boot, since we do not -+ * need these pins to boot the system and we -+ * do not want resets to toggle needlessly. -+ */ -+ {"PD15",AT91C_PIN_PD(15), 1, PIO_PULLUP, PIO_OUTPUT}, -+ {"PD16",AT91C_PIN_PD(16), 1, PIO_PULLUP, PIO_OUTPUT}, -+ {"PD17",AT91C_PIN_PD(17), 1, PIO_PULLUP, PIO_OUTPUT}, -+ {"PD18",AT91C_PIN_PD(18), 1, PIO_PULLUP, PIO_OUTPUT}, -+ {"PD19",AT91C_PIN_PD(19), 1, PIO_PULLUP, PIO_OUTPUT}, -+ {"PD20IN",AT91C_PIN_PD(20), 0, PIO_PULLUP, PIO_INPUT}, -+ {(char *)0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ }; -+ -+ pio_configure(mt_gpio_pins); -+} -+ -+ - static void at91_dbgu_hw_init(void) - { - /* Configure DBGU pins */ -@@ -185,6 +210,9 @@ - /* Init timer */ - timer_init(); - -+ /* Initialize MT GPIO */ -+ initialize_mt_gpio(); -+ - /* Initialize dbgu */ - initialize_dbgu(); - -@@ -298,10 +326,8 @@ - - reg = readl(AT91C_BASE_CCFG + CCFG_EBICSA); - reg |= AT91C_EBI_CS3A_SM; -- if (get_cm_rev() == 'A') -- reg &= ~AT91C_EBI_NFD0_ON_D16; -- else -- reg |= (AT91C_EBI_DDR_MP_EN | AT91C_EBI_NFD0_ON_D16); -+ /* MTR */ -+ reg |= (AT91C_EBI_DDR_MP_EN | AT91C_EBI_NFD0_ON_D16); - - reg &= ~AT91C_EBI_DRV; - writel(reg, AT91C_BASE_CCFG + CCFG_EBICSA); -@@ -331,9 +357,7 @@ - AT91C_BASE_SMC + SMC_CTRL3); - - /* Configure the PIO controller */ -- if (get_cm_rev() == 'A') -- pio_configure(nand_pins_lo); -- else -+ /* MTR2 */ - pio_configure(nand_pins_hi); - - pmc_enable_periph_clock(AT91C_ID_PIOC_D); -diff -aNru orig/board/at91sam9x5ek/at91sam9x5ek.c.orig new/board/at91sam9x5ek/at91sam9x5ek.c.orig ---- orig/board/at91sam9x5ek/at91sam9x5ek.c.orig 1969-12-31 18:00:00.000000000 -0600 -+++ new/board/at91sam9x5ek/at91sam9x5ek.c.orig 2019-04-16 14:20:15.036823256 -0500 -@@ -0,0 +1,341 @@ -+/* ---------------------------------------------------------------------------- -+ * ATMEL Microcontroller Software Support -+ * ---------------------------------------------------------------------------- -+ * Copyright (c) 2008, Atmel Corporation -+ * -+ * All rights reserved. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions are met: -+ * -+ * - Redistributions of source code must retain the above copyright notice, -+ * this list of conditions and the disclaimer below. -+ * -+ * Atmel's name may not be used to endorse or promote products derived from -+ * this software without specific prior written permission. -+ * -+ * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR -+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE -+ * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, -+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, -+ * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+#include "common.h" -+#include "hardware.h" -+#include "arch/at91_ccfg.h" -+#include "arch/at91_rstc.h" -+#include "arch/at91_pmc.h" -+#include "arch/at91_smc.h" -+#include "arch/at91_pio.h" -+#include "arch/at91_ddrsdrc.h" -+#include "gpio.h" -+#include "pmc.h" -+#include "usart.h" -+#include "debug.h" -+#include "ddramc.h" -+#include "timer.h" -+#include "watchdog.h" -+#include "string.h" -+#include "at91sam9x5ek.h" -+#include "board_hw_info.h" -+ -+static void at91_dbgu_hw_init(void) -+{ -+ /* Configure DBGU pins */ -+ const struct pio_desc dbgu_pins[] = { -+ {"RXD", AT91C_PIN_PA(9), 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ {"TXD", AT91C_PIN_PA(10), 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ {(char *)0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ }; -+ -+ pmc_enable_periph_clock(AT91C_ID_PIOA_B); -+ pio_configure(dbgu_pins); -+} -+ -+static void initialize_dbgu(void) -+{ -+ at91_dbgu_hw_init(); -+ usart_init(BAUDRATE(MASTER_CLOCK, BAUD_RATE)); -+} -+ -+#ifdef CONFIG_DDR2 -+/* Using the Micron MT47H64M16HR-3 */ -+static void ddramc_reg_config(struct ddramc_register *ddramc_config) -+{ -+ ddramc_config->mdr = (AT91C_DDRC2_DBW_16_BITS -+ | AT91C_DDRC2_MD_DDR2_SDRAM); -+ -+ ddramc_config->cr = (AT91C_DDRC2_NC_DDR10_SDR9 /* 10 column bits(1K) */ -+ | AT91C_DDRC2_NR_13 /* 13 row bits (8K) */ -+ | AT91C_DDRC2_CAS_3 /* CAS Latency 3 */ -+ | AT91C_DDRC2_NB_BANKS_8 /* 8 banks */ -+ | AT91C_DDRC2_DISABLE_RESET_DLL -+ | AT91C_DDRC2_DECOD_INTERLEAVED);/*Interleaved decode*/ -+ -+ /* -+ * Make sure to uncomment the following line if the DDR controller -+ * shares the EBI with another memory controller (SMC, NAND,..). -+ * For instance, AT91C_DDRC2_EBISHARE shall be set if NAND flash -+ * data line 0 is positioned on EBI data line 0 (AT91C_EBI_NFD0_ON_D16 bit -+ * cleared in CCFG_EBICSA register). -+ * -+ * For Atmel AT91SAM9x5-EK revision B onwards, this AT91C_DDRC2_EBISHARE bit -+ * is cleared because the NAND flash data line 0 is positioned on EBI -+ * data line number 16 (AT91C_EBI_NFD0_ON_D16 bit set in CCFG_EBICSA -+ * register). Only the DDR controller function is thus used on lower -+ * EBI data lines. -+ */ -+ //ddramc_config->cr |= AT91C_DDRC2_EBISHARE; /* DQM is shared with other controller */ -+ -+ -+ /* -+ * The DDR2-SDRAM device requires a refresh every 15.625 us or 7.81 us. -+ * With a 133 MHz frequency, the refresh timer count register must to be -+ * set with (15.625 x 133 MHz) ~ 2084 i.e. 0x824 -+ * or (7.81 x 133 MHz) ~ 1040 i.e. 0x410. -+ */ -+ ddramc_config->rtr = 0x411; /* Refresh timer: 7.8125us */ -+ -+ /* One clock cycle @ 133 MHz = 7.5 ns */ -+ ddramc_config->t0pr = (AT91C_DDRC2_TRAS_(6) /* 6 * 7.5 = 45 ns */ -+ | AT91C_DDRC2_TRCD_(2) /* 2 * 7.5 = 22.5 ns */ -+ | AT91C_DDRC2_TWR_(2) /* 2 * 7.5 = 15 ns */ -+ | AT91C_DDRC2_TRC_(8) /* 8 * 7.5 = 75 ns */ -+ | AT91C_DDRC2_TRP_(2) /* 2 * 7.5 = 15 ns */ -+ | AT91C_DDRC2_TRRD_(2) /* 2 * 7.5 = 15 ns */ -+ | AT91C_DDRC2_TWTR_(2) /* 2 clock cycles min */ -+ | AT91C_DDRC2_TMRD_(2)); /* 2 clock cycles */ -+ -+ ddramc_config->t1pr = (AT91C_DDRC2_TXP_(2) /* 2 clock cycles */ -+ | AT91C_DDRC2_TXSRD_(200) /* 200 clock cycles */ -+ | AT91C_DDRC2_TXSNR_(19) /* 19 * 7.5 = 142.5 ns*/ -+ | AT91C_DDRC2_TRFC_(18)); /* 18 * 7.5 = 135 ns */ -+ -+ ddramc_config->t2pr = (AT91C_DDRC2_TFAW_(7) /* 7 * 7.5 = 52.5 ns */ -+ | AT91C_DDRC2_TRTP_(2) /* 2 clock cycles min */ -+ | AT91C_DDRC2_TRPA_(3) /* 3 * 7.5 = 22.5 ns */ -+ | AT91C_DDRC2_TXARDS_(7) /* 7 clock cycles */ -+ | AT91C_DDRC2_TXARD_(2)); /* 2 clock cycles */ -+} -+ -+static void ddramc_init(void) -+{ -+ unsigned long csa; -+ struct ddramc_register ddramc_reg; -+ -+ ddramc_reg_config(&ddramc_reg); -+ -+ /* ENABLE DDR2 clock */ -+ pmc_enable_system_clock(AT91C_PMC_DDR); -+ -+ /* Chip select 1 is for DDR2/SDRAM */ -+ csa = readl(AT91C_BASE_CCFG + CCFG_EBICSA); -+ csa |= AT91C_EBI_CS1A_SDRAMC; -+ csa &= ~AT91C_EBI_DBPUC; -+ csa |= AT91C_EBI_DBPDC; -+ csa |= AT91C_EBI_DRV_HD; -+ -+ writel(csa, AT91C_BASE_CCFG + CCFG_EBICSA); -+ -+ /* DDRAM2 Controller initialize */ -+ ddram_initialize(AT91C_BASE_DDRSDRC, AT91C_BASE_CS1, &ddramc_reg); -+} -+#endif /* #ifdef CONFIG_DDR2 */ -+ -+static void one_wire_hw_init(void) -+{ -+ const struct pio_desc wire_pio[] = { -+ {"1-Wire", AT91C_PIN_PB(18), 1, PIO_DEFAULT, PIO_OUTPUT}, -+ {(char *)0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ }; -+ -+ pmc_enable_periph_clock(AT91C_ID_PIOA_B); -+ pio_configure(wire_pio); -+} -+ -+#ifdef CONFIG_HW_INIT -+void hw_init(void) -+{ -+ /* Disable watchdog */ -+ at91_disable_wdt(); -+ -+ /* -+ * At this stage the main oscillator is -+ * supposed to be enabled PCK = MCK = MOSC -+ */ -+ pmc_init_pll(0); -+ -+ /* Configure PLLA = MOSC * (PLL_MULA + 1) / PLL_DIVA */ -+ pmc_cfg_plla(PLLA_SETTINGS); -+ -+ /* Switch PCK/MCK on Main clock output */ -+ pmc_cfg_mck(BOARD_PRESCALER_MAIN_CLOCK); -+ -+ /* Switch PCK/MCK on PLLA output */ -+ pmc_cfg_mck(BOARD_PRESCALER_PLLA); -+ -+ /* Enable External Reset */ -+ writel(AT91C_RSTC_KEY_UNLOCK | AT91C_RSTC_URSTEN, AT91C_BASE_RSTC + RSTC_RMR); -+ -+ /* Init timer */ -+ timer_init(); -+ -+ /* Initialize dbgu */ -+ initialize_dbgu(); -+ -+#ifdef CONFIG_DDR2 -+ /* Initialize DDRAM Controller */ -+ ddramc_init(); -+#endif -+ /* one wire pin init */ -+ one_wire_hw_init(); -+} -+#endif /* #ifdef CONFIG_HW_INIT */ -+ -+#ifdef CONFIG_DATAFLASH -+void at91_spi0_hw_init(void) -+{ -+ /* Configure PINs for SPI0 */ -+ const struct pio_desc spi0_pins[] = { -+ {"MISO", AT91C_PIN_PA(11), 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ {"MOSI", AT91C_PIN_PA(12), 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ {"SPCK", AT91C_PIN_PA(13), 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ {"NPCS", CONFIG_SYS_SPI_PCS, 1, PIO_DEFAULT, PIO_OUTPUT}, -+ {(char *)0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ }; -+ -+ pmc_enable_periph_clock(AT91C_ID_PIOA_B); -+ pio_configure(spi0_pins); -+ -+ pmc_enable_periph_clock(AT91C_ID_SPI0); -+} -+#endif /* #ifdef CONFIG_DATAFLASH */ -+ -+#ifdef CONFIG_SDCARD -+#ifdef CONFIG_OF_LIBFDT -+void at91_board_set_dtb_name(char *of_name) -+{ -+ unsigned int cpu_board_id = get_cm_sn(); -+ unsigned int disp_board_id = get_dm_sn(); -+ -+ if (cpu_board_id == BOARD_ID_SAM9G15_CM) -+ strcpy(of_name, "at91sam9g15ek"); -+ else if (cpu_board_id == BOARD_ID_SAM9G25_CM) -+ strcpy(of_name, "at91sam9g25ek"); -+ else if (cpu_board_id == BOARD_ID_SAM9G35_CM) -+ strcpy(of_name, "at91sam9g35ek"); -+ else if (cpu_board_id == BOARD_ID_SAM9X25_CM) -+ strcpy(of_name, "at91sam9x25ek"); -+ else if (cpu_board_id == BOARD_ID_SAM9X35_CM) -+ strcpy(of_name, "at91sam9x35ek"); -+ else -+ dbg_info("WARNING: Not correct CPU board ID\n"); -+ -+ if (disp_board_id == BOARD_ID_PDA_DM) -+ strcat(of_name, "_pda"); -+ -+ strcat(of_name, ".dtb"); -+} -+#endif -+ -+void at91_mci0_hw_init(void) -+{ -+ const struct pio_desc mci_pins[] = { -+ {"MCCK", AT91C_PIN_PA(17), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"MCCDA", AT91C_PIN_PA(16), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"MCDA0", AT91C_PIN_PA(15), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"MCDA1", AT91C_PIN_PA(18), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"MCDA2", AT91C_PIN_PA(19), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"MCDA3", AT91C_PIN_PA(20), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {(char *)0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ }; -+ -+ /* Configure the PIO controller */ -+ pmc_enable_periph_clock(AT91C_ID_PIOA_B); -+ pio_configure(mci_pins); -+ -+ /* Enable the clock */ -+ pmc_enable_periph_clock(AT91C_ID_HSMCI0); -+} -+#endif /* #ifdef CONFIG_SDCARD */ -+ -+#ifdef CONFIG_NANDFLASH -+void nandflash_hw_init(void) -+{ -+ unsigned int reg; -+ -+ /* Configure Nand PINs */ -+ const struct pio_desc nand_pins_hi[] = { -+ {"NANDOE", CONFIG_SYS_NAND_OE_PIN, 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"NANDWE", CONFIG_SYS_NAND_WE_PIN, 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"NANDALE", CONFIG_SYS_NAND_ALE_PIN, 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"NANDCLE", CONFIG_SYS_NAND_CLE_PIN, 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"NANDCS", CONFIG_SYS_NAND_ENABLE_PIN, 1, PIO_PULLUP, PIO_OUTPUT}, -+ {"D0", AT91C_PIN_PD(6), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"D1", AT91C_PIN_PD(7), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"D2", AT91C_PIN_PD(8), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"D3", AT91C_PIN_PD(9), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"D4", AT91C_PIN_PD(10), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"D5", AT91C_PIN_PD(11), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"D6", AT91C_PIN_PD(12), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"D7", AT91C_PIN_PD(13), 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {(char *)0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ }; -+ -+ const struct pio_desc nand_pins_lo[] = { -+ {"NANDOE", CONFIG_SYS_NAND_OE_PIN, 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"NANDWE", CONFIG_SYS_NAND_WE_PIN, 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"NANDALE", CONFIG_SYS_NAND_ALE_PIN, 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"NANDCLE", CONFIG_SYS_NAND_CLE_PIN, 0, PIO_PULLUP, PIO_PERIPH_A}, -+ {"NANDCS", CONFIG_SYS_NAND_ENABLE_PIN, 1, PIO_PULLUP, PIO_OUTPUT}, -+ {(char *)0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}, -+ }; -+ -+ reg = readl(AT91C_BASE_CCFG + CCFG_EBICSA); -+ reg |= AT91C_EBI_CS3A_SM; -+ if (get_cm_rev() == 'A') -+ reg &= ~AT91C_EBI_NFD0_ON_D16; -+ else -+ reg |= (AT91C_EBI_DDR_MP_EN | AT91C_EBI_NFD0_ON_D16); -+ -+ reg &= ~AT91C_EBI_DRV; -+ writel(reg, AT91C_BASE_CCFG + CCFG_EBICSA); -+ -+ /* Configure SMC CS3 */ -+ writel((AT91C_SMC_NWESETUP_(1) -+ | AT91C_SMC_NCS_WRSETUP_(0) -+ | AT91C_SMC_NRDSETUP_(2) -+ | AT91C_SMC_NCS_RDSETUP_(0)), -+ AT91C_BASE_SMC + SMC_SETUP3); -+ -+ writel((AT91C_SMC_NWEPULSE_(3) -+ | AT91C_SMC_NCS_WRPULSE_(5) -+ | AT91C_SMC_NRDPULSE_(4) -+ | AT91C_SMC_NCS_RDPULSE_(6)), -+ AT91C_BASE_SMC + SMC_PULSE3); -+ -+ writel((AT91C_SMC_NWECYCLE_(5) -+ | AT91C_SMC_NRDCYCLE_(7)), -+ AT91C_BASE_SMC + SMC_CYCLE3); -+ -+ writel((AT91C_SMC_READMODE -+ | AT91C_SMC_WRITEMODE -+ | AT91C_SMC_NWAITM_NWAIT_DISABLE -+ | AT91C_SMC_DBW_WIDTH_BITS_8 -+ | AT91_SMC_TDF_(1)), -+ AT91C_BASE_SMC + SMC_CTRL3); -+ -+ /* Configure the PIO controller */ -+ if (get_cm_rev() == 'A') -+ pio_configure(nand_pins_lo); -+ else -+ pio_configure(nand_pins_hi); -+ -+ pmc_enable_periph_clock(AT91C_ID_PIOC_D); -+} -+#endif /* #ifdef CONFIG_NANDFLASH */ diff --git a/recipes-bsp/at91bootstrap/at91bootstrap.inc b/recipes-bsp/at91bootstrap/at91bootstrap.inc index 3682bca..07dfda4 100644 --- a/recipes-bsp/at91bootstrap/at91bootstrap.inc +++ b/recipes-bsp/at91bootstrap/at91bootstrap.inc @@ -15,27 +15,29 @@ LIC_FILES_CHKSUM = "file://main.c;endline=27;md5=42f86d2f6fd17d1221c5c651b487a07 inherit cml1 deploy +# TODO: python2: use python3 +inherit python-dir pythonnative SRC_URI_append = " \ file://defconfig \ file://onetime-slow-clock-switch.patch \ - file://disable-rtc-interrupts.patch \ + file://0003-disable-rtc-interrupts.patch \ file://at91sam9x5_4bit_pmecc_header.bin \ " -SRC_URI_append_mtrv1 = " file://mtrv1-DDRlowDriveStrength.patch \ +SRC_URI_append_mtrv1 = " file://0001-mtrv1-DDRlowDriveStrength.patch \ file://defconfig.mtr \ - file://at91bootstrap-3.8-mtr.patch \ + file://0005-at91bootstrap-3.8-mtr.patch \ " SRC_URI_append_mtr = " file://defconfig.mtr \ - file://at91bootstrap-3.8-mtr.patch \ + file://0005-at91bootstrap-3.8-mtr.patch \ " -SRC_URI_append_mtre = " file://mtrv1-DDRlowDriveStrength.patch \ +SRC_URI_append_mtre = " file://0001-mtrv1-DDRlowDriveStrength.patch \ file://defconfig.mtr \ - file://at91bootstrap-3.8-mtr.patch \ + file://0005-at91bootstrap-3.8-mtr.patch \ " -SRC_URI_append_mtcdt = " file://at91bootstrap-3.8-mtcdt.patch " -SRC_URI_append_mtcap = " file://at91bootstrap-3.8-mtcdt.patch " +SRC_URI_append_mtcdt = " file://0005-at91bootstrap-3.8-mtcdt.patch " +SRC_URI_append_mtcap = " file://0005-at91bootstrap-3.8-mtcap.patch " DEPENDS += "bc-native" diff --git a/recipes-bsp/at91bootstrap/at91bootstrap_3.8.12.bb b/recipes-bsp/at91bootstrap/at91bootstrap_3.8.12.bb index dcbb649..b8e5ba9 100644 --- a/recipes-bsp/at91bootstrap/at91bootstrap_3.8.12.bb +++ b/recipes-bsp/at91bootstrap/at91bootstrap_3.8.12.bb @@ -1,5 +1,5 @@ require at91bootstrap.inc -PR = "m2" +PR = "m5" LIC_FILES_CHKSUM = "file://main.c;endline=27;md5=a2a70db58191379e2550cbed95449fbd" diff --git a/recipes-bsp/multitech/mt-dt-overlay_1.0.0.bb b/recipes-bsp/multitech/mt-dt-overlay_1.0.0.bb deleted file mode 100644 index 2714705..0000000 --- a/recipes-bsp/multitech/mt-dt-overlay_1.0.0.bb +++ /dev/null @@ -1,53 +0,0 @@ -DESCRIPTION = "Compile MT board device tree overlays" -LICENSE = "(GPLv2+)" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -PACKAGE_ARCH = "${MACHINE_ARCH}" - -# By using an overlay, we should be able to support multiple pinouts -# using the same image. The overlays go into /lib/dtoverlays. -# There names are: [hw-version]-driver.dtbo -# e.g. /lib/dtoverlays/MTRV1-0.0-pps.dtbo -# The idea is that mts-io will search for the overlays, and install the -# appropriate device tree overlay for the current hw-version. - -dt_dir = "/lib/dtoverlays" - -PR = "r1" - -SRC_URI = "git://git.multitech.net/mt-dt-overlay.git;protocol=git" - -SRCREV = "${PV}" - -DEPENDS = "virtual/kernel u-boot-mkimage-native" - -S = "${WORKDIR}/git" - -do_compile[depends] += "virtual/kernel:do_deploy virtual/kernel:do_shared_workdir" -do_compile[nostamp] = "1" - -do_compile () { - echo MACHINE is ${MACHINE} - oe_runmake DTC=/usr/bin/dtc KERNEL_DIR=${STAGING_KERNEL_DIR} KERNEL_BUILD_DIR=${KERNEL_PATH} ${MACHINE}_dtbos -} - -FILES_${PN} = "${dt_dir}" - -addtask install after do_compile - -do_install () { - # Copy files to /lib/dt-overlay/main (mtac cards will be in mtac) - if [ -e ${AT91BOOTSTRAP_MACHINE} ]; then - install -d ${D}/${dt_dir} - ( - cd ${MACHINE} - for f in *.dtbo ; do - if [[ -h $f ]] ; then - cp -df ${f} ${D}/${dt_dir} - else - install ${f} ${D}/${dt_dir} - fi - done - ) - fi; -} - diff --git a/recipes-bsp/multitech/mt-dt-overlay_1.0.1.bb b/recipes-bsp/multitech/mt-dt-overlay_1.0.1.bb deleted file mode 100644 index 2714705..0000000 --- a/recipes-bsp/multitech/mt-dt-overlay_1.0.1.bb +++ /dev/null @@ -1,53 +0,0 @@ -DESCRIPTION = "Compile MT board device tree overlays" -LICENSE = "(GPLv2+)" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -PACKAGE_ARCH = "${MACHINE_ARCH}" - -# By using an overlay, we should be able to support multiple pinouts -# using the same image. The overlays go into /lib/dtoverlays. -# There names are: [hw-version]-driver.dtbo -# e.g. /lib/dtoverlays/MTRV1-0.0-pps.dtbo -# The idea is that mts-io will search for the overlays, and install the -# appropriate device tree overlay for the current hw-version. - -dt_dir = "/lib/dtoverlays" - -PR = "r1" - -SRC_URI = "git://git.multitech.net/mt-dt-overlay.git;protocol=git" - -SRCREV = "${PV}" - -DEPENDS = "virtual/kernel u-boot-mkimage-native" - -S = "${WORKDIR}/git" - -do_compile[depends] += "virtual/kernel:do_deploy virtual/kernel:do_shared_workdir" -do_compile[nostamp] = "1" - -do_compile () { - echo MACHINE is ${MACHINE} - oe_runmake DTC=/usr/bin/dtc KERNEL_DIR=${STAGING_KERNEL_DIR} KERNEL_BUILD_DIR=${KERNEL_PATH} ${MACHINE}_dtbos -} - -FILES_${PN} = "${dt_dir}" - -addtask install after do_compile - -do_install () { - # Copy files to /lib/dt-overlay/main (mtac cards will be in mtac) - if [ -e ${AT91BOOTSTRAP_MACHINE} ]; then - install -d ${D}/${dt_dir} - ( - cd ${MACHINE} - for f in *.dtbo ; do - if [[ -h $f ]] ; then - cp -df ${f} ${D}/${dt_dir} - else - install ${f} ${D}/${dt_dir} - fi - done - ) - fi; -} - diff --git a/recipes-bsp/multitech/mtac-eth_1.1.0.bb b/recipes-bsp/multitech/mtac-eth_1.1.0.bb deleted file mode 100644 index f05fc19..0000000 --- a/recipes-bsp/multitech/mtac-eth_1.1.0.bb +++ /dev/null @@ -1,47 +0,0 @@ -DESCRIPTION = "MTAC ETH (Ethernet) Card" -HOMEPAGE = "http://www.multitech.net/developer/products/multiconnect-conduit-platform/accessory-cards/mtac-eth/" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -do_fetch[depends]+="virtual/kernel:do_shared_workdir" -DEPENDS = "virtual/kernel mtac mts-io" -RDEPENDS_${PN} = "kernel-module-mtac" -INC_PR = "r0" - -SRCREV = "${PV}" - -PR = "${INC_PR}.1${KERNEL_MODULE_PACKAGE_SUFFIX}" - -SRC_URI = " \ - git://git.multitech.net/mtac-eth.git;protocol=git \ -" -S = "${WORKDIR}/git" - -inherit module - -EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \ - EXTRA_CFLAGS='-I${STAGING_INCDIR}/mts-kernel-headers' \ - KBUILD_VERBOSE=1 \ - M=${S} \ - modules \ - " - -do_compile () { - bbnote make "$@" - make "$@" - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - -PACKAGES = "kernel-module-${PN}" - -FILES_kernel-module-${PN} = "${base_libdir}/modules/${KERNEL_VERSION}/extra/mtac_eth.ko" - -PARALLEL_MAKE = "" - -fakeroot do_install () { - install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - # use cp instead of install so the driver doesn't get stripped - cp ${S}/mtac_eth.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra -} diff --git a/recipes-bsp/multitech/mtac-gpiob_1.1.2.bb b/recipes-bsp/multitech/mtac-gpiob_1.1.2.bb deleted file mode 100644 index d00c5fa..0000000 --- a/recipes-bsp/multitech/mtac-gpiob_1.1.2.bb +++ /dev/null @@ -1,47 +0,0 @@ -DESCRIPTION = "MTAC GPIOB Card" -HOMEPAGE = "http://www.multitech.net/developer/products/multiconnect-conduit-platform/accessory-cards/mtac-gpiob/" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -do_fetch[depends]+="virtual/kernel:do_shared_workdir" -DEPENDS = "virtual/kernel mtac mts-io" -RDEPENDS_${PN} = "kernel-module-mtac" -INC_PR = "r0" - -SRCREV = "${AUTOREV}" - -PR = "${INC_PR}.1${KERNEL_MODULE_PACKAGE_SUFFIX}" - -SRC_URI = " \ - git://git.multitech.net/mtac-gpiob.git;protocol=git \ -" -S = "${WORKDIR}/git" - -inherit module - -EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \ - EXTRA_CFLAGS='-I${STAGING_INCDIR}/mts-kernel-headers' \ - KBUILD_VERBOSE=1 \ - M=${S} \ - modules \ - " - -do_compile () { - bbnote make "$@" - make "$@" - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - -PACKAGES = "kernel-module-${PN}" - -FILES_kernel-module-${PN} = "${base_libdir}/modules/${KERNEL_VERSION}/extra/mtac_gpiob.ko" - -PARALLEL_MAKE = "" - -fakeroot do_install () { - install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - # use cp instead of install so the driver doesn't get stripped - cp ${S}/mtac_gpiob.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra -} diff --git a/recipes-bsp/multitech/mtac-lora_1.1.4.bb b/recipes-bsp/multitech/mtac-lora_1.1.4.bb deleted file mode 100644 index ec4dd21..0000000 --- a/recipes-bsp/multitech/mtac-lora_1.1.4.bb +++ /dev/null @@ -1,47 +0,0 @@ -DESCRIPTION = "MTAC LoRa Card" -HOMEPAGE = "http://www.multitech.net/developer/products/multiconnect-conduit-platform/accessory-cards/mtac-lora/" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -do_fetch[depends]+="virtual/kernel:do_shared_workdir" -DEPENDS = "virtual/kernel mtac mts-io" -RDEPENDS_${PN} = "kernel-module-mtac" -INC_PR = "r0" - -SRCREV = "${PV}" - -PR = "${INC_PR}.1${KERNEL_MODULE_PACKAGE_SUFFIX}" - -SRC_URI = " \ - git://git.multitech.net/mtac-lora.git;protocol=git \ -" -S = "${WORKDIR}/git" - -inherit module - -EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \ - EXTRA_CFLAGS='-I${STAGING_INCDIR}/mts-kernel-headers' \ - KBUILD_VERBOSE=1 \ - M=${S} \ - modules \ - " - -do_compile () { - bbnote make "$@" - make "$@" - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - -PACKAGES = "kernel-module-${PN}" - -FILES_kernel-module-${PN} = "${base_libdir}/modules/${KERNEL_VERSION}/extra/mtac_lora.ko" - -PARALLEL_MAKE = "" - -fakeroot do_install () { - install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - # use cp instead of install so the driver doesn't get stripped - cp ${S}/mtac_lora.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra -} diff --git a/recipes-bsp/multitech/mtac-mfser_1.1.0.bb b/recipes-bsp/multitech/mtac-mfser_1.1.0.bb deleted file mode 100644 index 42640f5..0000000 --- a/recipes-bsp/multitech/mtac-mfser_1.1.0.bb +++ /dev/null @@ -1,47 +0,0 @@ -DESCRIPTION = "MTAC Multi-Function Serial Card" -HOMEPAGE = "http://www.multitech.net/developer/products/multiconnect-conduit-platform/accessory-cards/mtac-mfser/" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -do_fetch[depends]+="virtual/kernel:do_shared_workdir" -DEPENDS = "virtual/kernel mtac mts-io" -RDEPENDS_${PN} = "kernel-module-mtac" -INC_PR = "r0" - -SRCREV = "${PV}" - -PR = "${INC_PR}.1${KERNEL_MODULE_PACKAGE_SUFFIX}" - -SRC_URI = " \ - git://git.multitech.net/mtac-mfser.git;protocol=git \ -" -S = "${WORKDIR}/git" - -inherit module - -EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \ - EXTRA_CFLAGS='-I${STAGING_INCDIR}/mts-kernel-headers' \ - KBUILD_VERBOSE=1 \ - M=${S} \ - modules \ - " - -do_compile () { - bbnote make "$@" - make "$@" - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - -PACKAGES = "kernel-module-${PN}" - -FILES_kernel-module-${PN} = "${base_libdir}/modules/${KERNEL_VERSION}/extra/mtac_mfser.ko" - -PARALLEL_MAKE = "" - -fakeroot do_install () { - install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - # use cp instead of install so the driver doesn't get stripped - cp ${S}/mtac_mfser.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra -} diff --git a/recipes-bsp/multitech/mtac-pulse_1.1.0.bb b/recipes-bsp/multitech/mtac-pulse_1.1.0.bb deleted file mode 100644 index 4b0195f..0000000 --- a/recipes-bsp/multitech/mtac-pulse_1.1.0.bb +++ /dev/null @@ -1,47 +0,0 @@ -DESCRIPTION = "MTAC PULSE Card" -HOMEPAGE = "http://www.multitech.net/developer/products/multiconnect-conduit-platform/accessory-cards/mtac-pulse/" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -do_fetch[depends]+="virtual/kernel:do_shared_workdir" -DEPENDS = "virtual/kernel mtac mts-io" -RDEPENDS_${PN} = "kernel-module-mtac" -INC_PR = "r0" - -SRCREV = "${PV}" - -PR = "${INC_PR}.1${KERNEL_MODULE_PACKAGE_SUFFIX}" - -SRC_URI = " \ - git://git.multitech.net/mtac-pulse.git;protocol=git \ -" -S = "${WORKDIR}/git" - -inherit module - -EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \ - EXTRA_CFLAGS='-I${STAGING_INCDIR}/mts-kernel-headers' \ - KBUILD_VERBOSE=1 \ - M=${S} \ - modules \ - " - -do_compile () { - bbnote make "$@" - make "$@" - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - -PACKAGES = "kernel-module-${PN}" - -FILES_kernel-module-${PN} = "${base_libdir}/modules/${KERNEL_VERSION}/extra/mtac_pulse.ko" - -PARALLEL_MAKE = "" - -fakeroot do_install () { - install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - # use cp instead of install so the driver doesn't get stripped - cp ${S}/mtac_pulse.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra -} diff --git a/recipes-bsp/multitech/mtac-xdot/xdot-util b/recipes-bsp/multitech/mtac-xdot/xdot-util deleted file mode 100755 index f805305..0000000 --- a/recipes-bsp/multitech/mtac-xdot/xdot-util +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash - -function detect_hw { - if [ ! -d /sys/devices/platform/mts-io/xdot ]; then - echo "XDOT hardware not found" - exit - fi -} - -function detect_hw_dev { - if [ ! -h /dev/disk/by-label/XDOT ]; then - echo "XDOT dev hardware not found" - exit - fi -} - -function flash { - echo "Flashing new firmware" - cp $FIRMWARE_FILE $TEMP_DIR -} - -function mount_xdot { - TEMP_DIR=`mktemp -d` - mount /dev/disk/by-label/XDOT $TEMP_DIR -} - -function reset { - mts-io-sysfs store xdot/reset 0 - mts-io-sysfs store xdot/reset 1 - mts-io-sysfs store xdot/reset -- -1 &>/dev/null -} - -function usb_reset { - echo 0 > /sys/bus/usb/devices/1-2.1/authorized - sleep 1 - echo 1 > /sys/bus/usb/devices/1-2.1/authorized -} - -function clean_up { - umount $TEMP_DIR - rm -fr $TEMP_DIR -} - -case "$1" in -"flash") - detect_hw_dev - FIRMWARE_FILE=$2 - mts-io-sysfs store xdot/reset -- -1 &>/dev/null - mount_xdot - flash - clean_up - sleep 1 - reset - echo done - ;; -"mount") - detect_hw_dev - mount_xdot - echo Mounted at $TEMP_DIR - ;; -"reset") - detect_hw - reset - ;; -"usb-reset") - detect_hw - usb_reset - ;; -*) ## If no parameters are given, print which are avaiable. - echo "Usage: $0 {flash|mount|reset|usb-reset}" - ;; -esac diff --git a/recipes-bsp/multitech/mtac-xdot_1.1.0.bb b/recipes-bsp/multitech/mtac-xdot_1.1.0.bb deleted file mode 100644 index 988a491..0000000 --- a/recipes-bsp/multitech/mtac-xdot_1.1.0.bb +++ /dev/null @@ -1,54 +0,0 @@ -DESCRIPTION = "MTAC XDOT (LoRa) Card" -HOMEPAGE = "http://www.multitech.net/developer/products/multiconnect-conduit-platform/accessory-cards/mtac-xdot/" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -do_fetch[depends]+="virtual/kernel:do_shared_workdir" -DEPENDS = "virtual/kernel mtac mts-io" -RDEPENDS_${PN} = "kernel-module-mtac" -INC_PR = "r2" - -SRCREV = "${PV}" - -PR = "${INC_PR}.1${KERNEL_MODULE_PACKAGE_SUFFIX}" - -SRC_URI = " \ - git://git.multitech.net/mtac-xdot.git;protocol=git \ - file://xdot-util \ -" -S = "${WORKDIR}/git" - -inherit module - -EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \ - EXTRA_CFLAGS='-I${STAGING_INCDIR}/mts-kernel-headers' \ - KBUILD_VERBOSE=1 \ - M=${S} \ - modules \ - " - -do_compile () { - bbnote make "$@" - make "$@" - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - - -PACKAGES = "kernel-module-${PN} ${PN}-util" - -FILES_kernel-module-${PN} = "${base_libdir}/modules/${KERNEL_VERSION}/extra/mtac_xdot.ko" - -FILES_${PN}-util += "${sbindir}/xdot-util" - -PARALLEL_MAKE = "" - -fakeroot do_install () { - install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - # use cp instead of install so the driver doesn't get stripped - cp ${S}/mtac_xdot.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - - install -m 0755 -d ${D}${sbindir} - install -m 0755 ${WORKDIR}/xdot-util ${D}${sbindir}/xdot-util -} diff --git a/recipes-bsp/multitech/mtac_4.0.3.bb b/recipes-bsp/multitech/mtac_4.0.3.bb deleted file mode 100644 index 376dfa1..0000000 --- a/recipes-bsp/multitech/mtac_4.0.3.bb +++ /dev/null @@ -1,53 +0,0 @@ -DESCRIPTION = "mtac drivers" -HOMEPAGE = "http://www.multitech.net/" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" -do_fetch[depends]+="virtual/kernel:do_shared_workdir" -DEPENDS = "virtual/kernel mts-io" -INC_PR = "r0" - -# SRCREV = "${PV}" -SRCREV = "${AUTOREV}" - -# Some packages depend on mtac -RPROVIDES_kernel-module-${PN} = "mtac" - -PR = "${INC_PR}.1${KERNEL_MODULE_PACKAGE_SUFFIX}" - -SRC_URI = " \ - git://git.multitech.net/mtac.git;protocol=git \ -" -S = "${WORKDIR}/git" - -inherit module - -EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \ - EXTRA_CFLAGS='-I${STAGING_INCDIR}/mts-kernel-headers' \ - KBUILD_VERBOSE=1 \ - M=${S} \ - modules \ - " - -do_compile () { - bbnote make "$@" - make "$@" - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - -PACKAGES = "kernel-module-${PN} ${PN}-dev" - -FILES_kernel-module-${PN} = "${base_libdir}/modules/${KERNEL_VERSION}/extra/mtac.ko" - -PARALLEL_MAKE = "" - -fakeroot do_install () { - install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - # use cp instead of install so the driver doesn't get stripped - cp ${S}/mtac.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - - install -d ${D}${includedir}/mts-kernel-headers/linux - install -m 0644 ${S}/mtac.h ${D}${includedir}/mts-kernel-headers/linux -} diff --git a/recipes-bsp/multitech/mts-io.inc b/recipes-bsp/multitech/mts-io.inc deleted file mode 100644 index 5b1dccc..0000000 --- a/recipes-bsp/multitech/mts-io.inc +++ /dev/null @@ -1,118 +0,0 @@ -DESCRIPTION = "mts-io controller and sysfs wrapper" -HOMEPAGE = "http://www.multitech.net/" -SECTION = "base" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://io-module/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ - file://io-tool/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ -" -DEPENDS = "virtual/kernel" -INC_PR = "r1" - -SRCREV = "${PV}" - -PR = "${INC_PR}.1-${KERNEL_MODULE_PACKAGE_SUFFIX}" - -SRC_URI = " \ - git://git.multitech.net/mts-io.git;protocol=git \ - file://led-status_heartbeat_trigger \ - file://lora-led-updater \ - file://mts-io.init \ - file://mts-io.blacklist \ - file://mts-io.mtcap.init \ - file://mts-io.conf \ -" -S = "${WORKDIR}/git" - -inherit module -inherit update-rc.d -inherit autotools - -# add this since we aren't using module.bbclass -addtask make_scripts after do_patch before do_compile -do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock" -do_make_scripts[deptask] = "do_populate_sysroot" - -EXTRA_OEMAKE = " -C ${STAGING_KERNEL_DIR} \ - KBUILD_VERBOSE=1 \ - M=${S}/io-module \ - modules \ - " - -do_compile () { - bbnote make "$@" - make "$@" - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - - -PACKAGES = "${PN}-noarch kernel-module-${PN} ${PN}-util ${PN}-util-dbg ${PN}-dev" - -FILES_kernel-module-${PN} = " \ - ${base_libdir}/modules/${KERNEL_VERSION}/extra/mts_io.ko \ - ${sysconfdir}/modprobe.d/mts-io.conf \ -" - -FILES_${PN}-noarch = "${sysconfdir}/init.d/mts-io \ - ${sysconfdir}/rc5.d/S95led-status_heartbeat_trigger \ - ${sysconfdir}/default/mts-io \ - ${sysconfdir}/init.d/led-status_heartbeat_trigger" - - -FILES_${PN}-noarch += "${libdir}/mts-io-sysfs*" -FILES_${PN}-noarch += "${sbindir}/mts-io-sysfs" -FILES_${PN}-noarch_append_mtcap += "${sbindir}/lora-led-updater" -FILES_${PN}-util += "${sbindir}/mts-util-lora2-reset" -FILES_${PN}-util-dbg += "/usr/src /usr/sbin/.debug" -FILES_${PN}-dev += "${includedir}/linux ${includedir}/mts-kernel-headers" - -INITSCRIPT_NAME = "mts-io" -INITSCRIPT_PARAMS = "start 39 S ." - -PARALLEL_MAKE = "" - -fakeroot do_install () { - make DESTDIR=${D} install - install -m 0755 -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - # use cp instead of install so the driver doesn't get stripped - cp ${S}/io-module/mts_io.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/extra - - # install headers for kernel modules - install -d ${D}${includedir}/mts-kernel-headers/linux - install -m 0644 ${S}/io-module/mts_io.h ${D}${includedir}/mts-kernel-headers/linux - install -m 0644 ${S}/io-module/mts_eeprom.h ${D}${includedir}/mts-kernel-headers/linux - install -m 0644 ${S}/io-module/at91gpio.h ${D}${includedir}/mts-kernel-headers/linux - - # install same headers for userspace applications - # Note this dupication can be avoided by adding the following into the recipes - # CFLAGS += ${STAGING_INCDIR}/mts-kernel-headers - # - install -d ${D}${includedir}/linux - install -m 0644 ${S}/io-module/mts_io.h ${D}${includedir}/linux - install -m 0644 ${S}/io-module/mts_eeprom.h ${D}${includedir}/linux - install -m 0644 ${S}/io-module/at91gpio.h ${D}${includedir}/linux - - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/mts-io.init ${D}${sysconfdir}/init.d/mts-io - install -m 0755 ${WORKDIR}/led-status_heartbeat_trigger ${D}/${sysconfdir}/init.d/ - install -d ${D}${sysconfdir}/default - install -m 0755 ${WORKDIR}/mts-io.conf ${D}${sysconfdir}/default/mts-io - install -d ${D}${sysconfdir}/modprobe.d - install -m 0644 ${WORKDIR}/mts-io.blacklist ${D}${sysconfdir}/modprobe.d/mts-io.conf - - # blink status LED after booted - install -d ${D}${sysconfdir}/rc5.d - ln -sf ${sysconfdir}/init.d/led-status_heartbeat_trigger ${D}/${sysconfdir}/rc5.d/S95led-status_heartbeat_trigger - - install -m 0755 -d ${D}${sbindir} - install -d ${D}${libdir}/mts-io-sysfs - install -m 0755 ${S}/io-tool/mts-io-sysfs-inc.sh ${D}${libdir}/mts-io-sysfs - install -m 0755 ${S}/io-tool/mts-io-sysfs ${D}${sbindir}/mts-io-sysfs -} - -fakeroot do_install_append_mtcap() { - # install MTCAP mts-io init script - install -m 0755 ${WORKDIR}/mts-io.mtcap.init ${D}${sysconfdir}/init.d/mts-io - install -m 0755 ${WORKDIR}/lora-led-updater ${D}${sbindir}/lora-led-updater -} diff --git a/recipes-bsp/multitech/mts-io/led-status_heartbeat_trigger b/recipes-bsp/multitech/mts-io/led-status_heartbeat_trigger deleted file mode 100755 index 88910df..0000000 --- a/recipes-bsp/multitech/mts-io/led-status_heartbeat_trigger +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -TRIGGER="/sys/class/leds/led-status/trigger" - -echo "setting $TRIGGER to heartbeat" -echo "heartbeat" > $TRIGGER diff --git a/recipes-bsp/multitech/mts-io/lora-led-updater b/recipes-bsp/multitech/mts-io/lora-led-updater deleted file mode 100755 index 0e38310..0000000 --- a/recipes-bsp/multitech/mts-io/lora-led-updater +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash - -while true; do - # If driver is unloaded, stop. - [[ -d /sys/devices/platform/mts-io ]] || exit 0 - fuser /dev/spidev0.0 > /dev/null - if [ $? == 0 ]; then - mts-io-sysfs store led-lora 1 >/dev/null 2>&1 - else - mts-io-sysfs store led-lora 0 >/dev/null 2>&1 - fi - sleep 5 -done - diff --git a/recipes-bsp/multitech/mts-io/mts-io.blacklist b/recipes-bsp/multitech/mts-io/mts-io.blacklist deleted file mode 100644 index 7421ac4..0000000 --- a/recipes-bsp/multitech/mts-io/mts-io.blacklist +++ /dev/null @@ -1 +0,0 @@ -blacklist mts-io diff --git a/recipes-bsp/multitech/mts-io/mts-io.conf b/recipes-bsp/multitech/mts-io/mts-io.conf deleted file mode 100644 index b5b4275..0000000 --- a/recipes-bsp/multitech/mts-io/mts-io.conf +++ /dev/null @@ -1,9 +0,0 @@ -# GPS GNSS reset when loading driver -# 1 Reset the GPS on driver load (default) -# 0 Do not reset -GPSGNSSRESET=1 - -# DEBUG -# 0 is off -# 1 is on -DEBUG=0 diff --git a/recipes-bsp/multitech/mts-io/mts-io.init b/recipes-bsp/multitech/mts-io/mts-io.init deleted file mode 100755 index 966d5ae..0000000 --- a/recipes-bsp/multitech/mts-io/mts-io.init +++ /dev/null @@ -1,405 +0,0 @@ -#!/bin/bash -### BEGIN INIT INFO -# Provides: mts-io -# Default-Start: S -# Default-Stop: -# Short-Description: load the mts-io driver -# Description: mts-io driver initializes the Conduit hardware and -# provides user mode access through the driver to the -# Conduit features. -### END INIT INFO - -. /etc/default/mts-io - -i2c=/sys/bus/i2c/devices/ -GPSCONFIGTYPE="/var/run/config/gpstype" -DEVTREE="/sys/kernel/config/device-tree/overlays/" - -((fail=0)) -# To log debug, set LOGDBG to /usr/bin/LOGGER -if ((DEBUG)) ; then - LOGDBG=/usr/bin/logger - ${LOGDBG} -t "mts-io" -p daemon.info -s "LOGDBG turned on" -else - LOGDBG=":" -fi - -hw="" -hw_name="" -MTAC_MODULES="" -((HASAP=0)) - -sethwtype() { - # mts-io must be loaded before trying this - hw=$(${SYSFS} show hw-version) - hw_name=(${hw//-/ }) - - # Only MTCDT and MTCDTIP have accessory cards, and - # MTCDTIPHP does not have accessory cards. - ((HASAP==0)) - case $hw_name in - MTCDTIPHP) - ;; - MTCDT|MTCDTIP) - ((HASAP = 1)) - ;; - *) - ;; - esac - MTAC_MODULES=$(cd /lib/modules/$(uname -r)/extra/;ls mtac_* 2>/dev/null) -} - -setdevtree() { - # add device tree overlays, if they exist. - [[ -d /lib/dtoverlays ]] || return 1 - ( - cd /lib/dtoverlays - for f in $(ls ${hw}*) ; do - if ! [[ -d ${DEVTREE} ]] ; then - mount configfs - fi - f1=${f/#${hw}-/} - f2=${f1/%.dtbo} - # f2 is the extracted device name - /bin/mkdir ${DEVTREE}/$f2 - /bin/cat $f >${DEVTREE}/$f2/dtbo - done - ) -} - - -SYSFS="/usr/sbin/mts-io-sysfs" -LRST="/usr/sbin/mts-util-lora2-reset" - -${LOGDBG} -p daemon.info 'mts-io script' -sysdir=/sys/devices/platform/mts-io -gpiodir=/sys/class/gpio -port1=${sysdir}/ap1 -port2=${sysdir}/ap2 - -USBRST=${sysdir}/usbhub-reset -NEED_I2C_RESET=0 -HWVER="" -HWNAME="" -HWLVL="" - - -RST[0]="${sysdir}/wifi-bt-reset" -RST[1]="${sysdir}/mtq-reset" -RST[2]="${sysdir}/ap1/reset" -RST[3]="${sysdir}/ap1/creset" -RST[4]="${sysdir}/ap2/reset" -RST[5]="${sysdir}/ap2/creset" -RST[6]="${sysdir}/secure-reset" -RST[7]="${sysdir}/eth-reset" -RST[8]="${sysdir}/sm1-reset" - -# GPSGNSSRESET is now set low during boot and is special cased. -#if ((GPSGNSSRESET)) ; then -# RST[9]="${sysdir}/gnss-reset" -#fi - -WPIN[0]="${sysdir}/ap1/cdone" -WPIN[1]="${sysdir}/ap2/cdone" - -USLPTIME=60000 # 30 milliseconds from Redpine Signals Reset Spec -WAIT="/bin/busybox usleep ${USLPTIME}" - -# Wait 10 WAIT intervals for pins to come high -waitpins() { - ((i=0)) - while((i < ${#WPIN[@]})) ; do - ((j=0)) - while [[ -r ${WPIN[$i]} ]] && ! (($(cat ${WPIN[$i]}))) ; do - logger -t "mts-io" -p daemon.error -s "Wait on ${WPIN[$i]}" - ${WAIT} - ((j++)) - if ((j > 10)) ; then - ((fail++)) - ${LOGDBG} -t "mts-io" -p daemon.error -s "Ready failure on ${WPIN[$i]}" - break - fi - done - ((i++)) - done -} - -reset_path() { - pin=$1 - ${LOGDBG} -t "mts-io" -p daemon.info Reset $pin - if [[ -f ${pin} ]] ; then - if ! ( (echo 1 >${pin}) && ${WAIT} && (echo 0 >${pin}) && ${WAIT} && (echo 1 >${pin}) ) ; then - /usr/bin/logger -t "mts-io" -p daemon.error -s "Failed write to ${pin}" - return 1 - fi - sleep 2 - - ${LOGDBG} -t "mts-io" -p daemon.info Completeed reset $pin - else - ${LOGDBG} -t "mts-io" -p daemon.info "${pin} does not exist" - fi - return 0 -} -reset_array() { - ((i=${#RST[@]}-1)) - while ((i>=0)) ; do - if [[ -f ${RST[$i]} ]] ; then - if ! ( (echo 1 >${RST[i]}) ) ; then - /usr/bin/logger -t "mts-io" -p daemon.error -s "Failed write to ${RST[$i]}" - fail=1 - else - ${LOGDBG} -t "mts-io" -p daemon.error -s "Wrote 1 to ${RST[$i]}" - fi - else - ${LOGDBG} -t "mts-io" -p daemon.info "${RST[$i]} does not exist" - RST[$i]="" - fi - ((i--)) - done - ((DBG)) && (cd $sysdir ; head gnss-reset eth-reset wifi-bt-reset usbhub-reset | logger -p daemon.info) - ((i=${#RST[@]}-1)) - while ((i>=0)) ; do - ${LOGDBG} -s -p daemon.info "i value is $i RST is ${RST[$i]} count is ${#RST[$i]}" - if ((${#RST[$i]} > 0)) && [[ -f ${RST[$i]} ]] ; then - if ! ( (echo 0 >${RST[i]}) ) ; then - /usr/bin/logger -t "mts-io" -p daemon.error -s "Failed write to ${RST[$i]}" - fail=1 - else - ${LOGDBG} -t "mts-io" -p daemon.error -s "Wrote 0 to ${RST[$i]}" - : - fi - else - ${LOGDBG} -t "mts-io" -p daemon.info "${RST[$i]} does not exist" - fi - ((i--)) - done - ${WAIT} - ((DBG)) && (cd $sysdir ; head gnss-reset eth-reset wifi-bt-reset usbhub-reset | logger -p daemon.info) - ((i=${#RST[@]}-1)) - while ((i>=0)) ; do - if ((${#RST[$i]} > 0)) && [[ -f ${RST[$i]} ]] ; then - if ! ( (echo 1 >${RST[$i]}) ) ; then - /usr/bin/logger -t "mts-io" -p daemon.error -s "Failed write to ${RST[$i]}" - fail=1 - else - ${LOGDBG} -t "mts-io" -p daemon.error -s "Wrote 1 to ${RST[$i]}" - fi - else - ${LOGDBG} -t "mts-io" -p daemon.info "${RST[$i]} does not exist" - fi - ((i--)) - done - ((DBG)) && (cd $sysdir ; head gnss-reset eth-reset wifi-bt-reset usbhub-reset | logger -p daemon.info) - return $fail -} -read_card_info() { - ap1_product_id="" - ap2_product_id="" - - if [[ -d $sysdir/ap1 ]]; then - ap1_product_id=$(cat $sysdir/ap1/product-id) - fi - if [[ -d $sysdir/ap2 ]]; then - ap2_product_id=$(cat $sysdir/ap2/product-id) - fi - - lora_hw=$(${SYSFS} show lora/hw-version 2> /dev/null) - - if [ -d $port1 ] && [[ $(cat $port1/hw-version) = $lora_hw ]]; then - modprobe spidev - ln -sf /dev/spidev32766.2 /dev/spidev0.0 - elif [ -d $port2 ] && [[ $(cat $port2/hw-version) = $lora_hw ]]; then - modprobe spidev - ln -sf /dev/spidev32765.2 /dev/spidev0.0 - elif [[ ${hw_name} == MTCAP ]]; then - modprobe spidev - elif [[ ${hw_name} == MTCDTIPHP ]]; then - modprobe spidev - ln -sf /dev/spidev32766.2 /dev/spidev0.0 - fi -} - -mfser_init() { - found_ap1=0 - - if [[ $ap1_product_id =~ ^MTAC-MFSER- ]]; then - /usr/bin/logger -t "mts-io" -p daemon.info -s "Linking /dev/mfser to /dev/ttyAP1" - ln -sf /dev/ttyAP1 /dev/mfser - found_ap1=1 - fi - - if [[ $ap2_product_id =~ ^MTAC-MFSER- ]]; then - if [[ $found_ap1 = 1 ]]; then - /usr/bin/logger -t "mts-io" -p daemon.info -s "Linking /dev/mfser-2 to /dev/ttyAP2" - ln -sf /dev/ttyAP2 /dev/mfser-2 - else - /usr/bin/logger -t "mts-io" -p daemon.info -s "Linking /dev/mfser to /dev/ttyAP2" - ln -sf /dev/ttyAP2 /dev/mfser - fi - fi - -} - -set_gpslink() { - [[ -d /var/run/config ]] || mkdir /var/run/config - gpscap=$(cat ${sysdir}/capability/gps) - - # For all hardware except MTCDTIPHP, the gpscapability - # flag indicates whether or not we have a GPS. - if ! [[ ${hw_name} =~ ^MTCDTIPHP$ ]] && ((gpscap == 0)) ; then - return - fi - - # Oldest MTRV1 uses venuse on ttyS1. - if [[ ${hw_name} == MTRV1 ]] && [[ ${hw} != MTRV1-0.0 ]] ; then - ln -sf /dev/ttyXRUSB0 /dev/gps0 - echo "u-blox" >"$GPSCONFIGTYPE" - return - fi - - if [[ ${hw_name} == MTR ]] || [[ ${hw_name} == MTRV1 ]] || [[ ${hw_name} == MTHS ]] ; then - ln -sf /dev/ttyS1 /dev/gps0 - echo "venus" >"$GPSCONFIGTYPE" - return - fi - - if [[ ${hw} == MTCDT ]] && [[ ${HWLVL} == 0.0 ]] ; then - # No GPS - return - fi - if [[ ${hw_name} == MTCDTIPHP ]] ; then - NEED_I2C_RESET=1 - ln -sf /dev/ttyXRUSB0 /dev/gps0 - return - fi - # Default MTCDT-0.1 - echo "u-blox" >"$GPSCONFIGTYPE" - ln -sf /dev/ttyXRUSB2 /dev/gps0 -} - -case $1 in - start) - # Point the firmware API at our i2c EEPROMs - echo -n ${i2c} > /sys/module/firmware_class/parameters/path - - /usr/bin/logger -t "mts-io" -p daemon.info -s "Loading mts-io module" - if ! modprobe mts_io ; then - ((fail++)) - fi - - sethwtype - setdevtree - - if ((HASAP == 1)) ; then - # install mtac explicitly or any unused modules will cause - # junk to the log as mtac is loaded and unloaded each time. - modprobe mtac - for f in ${MTAC_MODULES} ; do - modprobe ${f//.ko} 2>&1 | grep -v 'No such device or address' - done - fi - set_gpslink # Set GPS symlink. - /usr/bin/logger -t "mts-io" -p daemon.info -s "Resetting system modules" - read_card_info - has_gnss_reset=0 - # On boot, gnss-reset will be low - if [[ -f ${sysdir}/gnss-reset ]] ; then - if (($(mts-io-sysfs show gnss-reset) == 1)) ; then - mts-io-sysfs store gnss-reset 0 - fi - has_gnss_reset=1 - fi - /bin/busybox usleep $USLPTIME - reset_array - if ((has_gnss_reset)) ; then - mts-io-sysfs store gnss-reset 1 - fi - # use radio-reset init script for radio-reset - mfser_init - - waitpins - # Fix Telit error -62 and Redpine wrong USB speed detection on reset. - sleep 1 - if ! reset_path $USBRST ; then - ((fail++)) - fi - - if ((${#lora_hw} > 0)) && [[ ${lora_hw} =~ ^MTCDTIPHP-LORA-2\.1 ]] ; then - if [[ -x ${LRST} ]] ; then - ${LRST} -g -f - else - /usr/bin/logger -t "mts-io" -p daemon.err -s "ERROR: Missing ${LRST} -- Cannot initialize LoRa." - fi - fi - - if [[ -d ${DEVTREE} ]] ; then - /bin/umount configfs - fi - - if ((fail == 0)) ; then - echo "OK" - else - echo "FAIL" - fi - exit $fail - ;; - - stop) - /usr/bin/logger -t "mts-io" -p daemon.info -s "Unloading mtac modules and mts-io module" - MTAC_MODULES=$(lsmod | grep '^mtac_' | sed -e 's/_/-/' -e 's/ .*//') - - for f in ${MTAC_MODULES} ; do - if ! modprobe -r "$f" ; then - rmmod "$f" - fi - done - if ! modprobe -r mtac ; then - rmmod mtac - fi - - if ! modprobe -r mts-io ; then - rmmod mtsio - fi - RETVAL=$? - if ((RETVAL == 0)) ; then - echo "OK" - else - echo "FAIL" - fi - ;; - restart) - $0 stop - sleep 1 - $0 start - ;; - reload) - /usr/bin/logger -t "mts-io" -p daemon.info -s "Resetting system modules" - if ! reset_path $USBRST ; then - ((fail++)) - fi - /bin/busybox usleep $USLPTIME - reset_array - # Use radio-reset init script for radio-reset - mfser_init - if ((fail == 0)) ; then - echo "OK" - else - echo "FAIL" - fi - exit $fail - ;; - status) - if [[ -d ${sysdir} ]] ; then - echo Driver is loaded - exit 0 - else - echo Driver is not loaded - exit 3 - fi - ;; - *) - echo "Usage: $0 {start|stop|status|restart}" - exit 2 - ;; -esac - diff --git a/recipes-bsp/multitech/mts-io/mts-io.mtcap.init b/recipes-bsp/multitech/mts-io/mts-io.mtcap.init deleted file mode 100644 index 2642de9..0000000 --- a/recipes-bsp/multitech/mts-io/mts-io.mtcap.init +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/bash - -sysdir=/sys/devices/platform/mts-io - -i2c=/sys/bus/i2c/devices/ - -DEVTREE="/sys/kernel/config/device-tree/overlays/" -SYSFS="/usr/sbin/mts-io-sysfs" - -setwificap() { - WIFICAP=0 - if [[ -f ${sysdir}/capability/wifi ]] && (($(cat ${sysdir}/capability/wifi) == 1)) ; then - WIFICAP=1 - fi -} - -lora_init() { - # reset lora chip - mts-io-sysfs store lora/reset 1 - mts-io-sysfs store lora/reset 0 - usleep 100000 - mts-io-sysfs store lora/reset 1 -} - -eth_init() { - # reset eth phy - mts-io-sysfs store eth-reset 1 - mts-io-sysfs store eth-reset 0 - usleep 100000 - mts-io-sysfs store eth-reset 1 -} - -# Normal state when powered up -wifi_init1() { - (($WIFICAP)) || return 0 - # reset wlan - mts-io-sysfs store wlan-rst 0 - # disable wlan - mts-io-sysfs store wlan-en 0 -} - -wifi_init2() { - (($WIFICAP)) || return 0 - mts-io-sysfs store wlan-en 1 - usleep 30000 # 30mS according to WILC1000 spec. - mts-io-sysfs store wlan-rst 1 -} - - -cell_init() { - # remove /dev/modem_at[0,1] symlinks - rm -f /dev/modem_at[0,1] - - if [ -w /sys/devices/platform/mts-io/radio-power ] ; then - # power down the cellular chip gracefully - mts-io-sysfs store radio-power 0 - # power up the cellular chip - mts-io-sysfs store radio-power 1 - fi -} - -start_lora_led_updater() { - lora-led-updater & -} - -setdevtree() { - hw=$(${SYSFS} show hw-version) - - # add device tree overlays, if they exist. - [[ -d /lib/dtoverlays ]] || return 1 - ( - cd /lib/dtoverlays - for f in $(ls ${hw}*) ; do - if ! [[ -d ${DEVTREE} ]] ; then - mount configfs - fi - f1=${f/#${hw}-/} - f2=${f1/%.dtbo} - # f2 is the extracted device name - /bin/mkdir ${DEVTREE}/$f2 - /bin/cat $f >${DEVTREE}/$f2/dtbo - done - ) -} - -case $1 in - start) - # SPI driver for LoRa - modprobe spidev - # Point the firmware API at our i2c EEPROMs - echo -n ${i2c} > /sys/module/firmware_class/parameters/path - echo "Loading mts-io module" - modprobe -r atmel_mci - # Point the firmware API at our i2c EEPROMs - echo -n ${i2c} > /sys/module/firmware_class/parameters/path - modprobe mts_io - setdevtree - setwificap - wifi_init1 - lora_init - eth_init - cell_init & - start_lora_led_updater - wifi_init2 - modprobe atmel_mci - (($WIFICAP)) && modprobe wilc1000 - (($WIFICAP)) && modprobe wilc1000-sdio - ;; - - stop) - echo "Unloading mts-io module" - wifi_init1 # Power down wifi - modprobe -r wilc1000 >/dev/null 2>&1 - modprobe -r wilc1000-sdio >/dev/null 2>&1 - modprobe -r mts_io >/dev/null 2>&1 - ;; - - *) - echo "Usage: $0 {start|stop}" - exit 2 - ;; -esac diff --git a/recipes-bsp/multitech/mts-io_4.1.4.bb.save b/recipes-bsp/multitech/mts-io_4.1.4.bb.save deleted file mode 100644 index 92937cd..0000000 --- a/recipes-bsp/multitech/mts-io_4.1.4.bb.save +++ /dev/null @@ -1,4 +0,0 @@ -require mts-io.inc - -PR = "${INC_PR}.0-${MLINUX_KERNEL_VERSION}${MLINUX_KERNEL_EXTRA_VERSION}" - diff --git a/recipes-bsp/multitech/mts-io_4.3.2.bb.save b/recipes-bsp/multitech/mts-io_4.3.2.bb.save deleted file mode 100644 index 92937cd..0000000 --- a/recipes-bsp/multitech/mts-io_4.3.2.bb.save +++ /dev/null @@ -1,4 +0,0 @@ -require mts-io.inc - -PR = "${INC_PR}.0-${MLINUX_KERNEL_VERSION}${MLINUX_KERNEL_EXTRA_VERSION}" - diff --git a/recipes-bsp/wl12xx-firmware/wl12xx-firmware_r6.bb b/recipes-bsp/wl12xx-firmware/wl12xx-firmware_r6.bb index ed7fe36..65362df 100644 --- a/recipes-bsp/wl12xx-firmware/wl12xx-firmware_r6.bb +++ b/recipes-bsp/wl12xx-firmware/wl12xx-firmware_r6.bb @@ -3,6 +3,7 @@ HOMEPAGE = "http://processors.wiki.ti.com/index.php/ARM_Processor_Open_Source_Wi LICENSE = "Proprietary" LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=1c9961176d6529283e0d0c983be41b45" PR="r9" +RDEPENDS_${PN} =+ "bash" # bluetooth firmware from TI-ECS on github.com: # https://github.com/TI-ECS/bt-firmware.git |