STM32 Primer 2 support.
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 9 Sep 2010 00:51:09 +0000 (09:51 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Thu, 9 Sep 2010 00:57:27 +0000 (09:57 +0900)
16 files changed:
AUTHORS [new file with mode: 0644]
ChangeLog
NEWS [new file with mode: 0644]
boards/OLIMEX_STM32_H103/board.mk
boards/OLIMEX_STM32_H103/hw_config.c [new file with mode: 0644]
boards/OLIMEX_STM32_H103/mcuconf.h [new file with mode: 0644]
boards/STM32_PRIMER2/board.c [new file with mode: 0644]
boards/STM32_PRIMER2/board.h [new file with mode: 0644]
boards/STM32_PRIMER2/board.mk [new file with mode: 0644]
boards/STM32_PRIMER2/hw_config.c [new file with mode: 0644]
boards/STM32_PRIMER2/mcuconf.h [new file with mode: 0644]
src/Makefile
src/gnuk.h
src/hw_config.c [deleted file]
src/main.c
src/mcuconf.h [deleted file]

diff --git a/AUTHORS b/AUTHORS
new file mode 100644 (file)
index 0000000..4337719
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,27 @@
+Kaz Kojima:
+    Added STM32 Primer2 support:
+       boards/STM32_PRIMER2/board.c
+       boards/STM32_PRIMER2/board.h
+       boards/STM32_PRIMER2/board.mk
+       boards/STM32_PRIMER2/mcuconf.h
+       boards/STM32_PRIMER2/hw_config.c
+
+NIIBE Yutaka: wrote
+       src/ac.c
+       src/main.c
+       src/usb_lld.h
+       src/gnuk.h
+       src/usb_lld.c
+       src/usb-icc.c
+       src/openpgp-do.c
+       src/flash.c
+       src/debug.c
+       src/usb_desc.c
+       src/usb-cdc-vport.c
+       src/hardclock.c
+       src/openpgp.h
+       src/openpgp.c
+       src/call-rsa.c
+       src/random.c
+       *
+       and others.
index a307ed9..c44fae1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-09-09  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+       * boards/STM32_PRIMER2/{board.c,board.h,board.mk,hw_config.c,mcuconf.h}:
+       New files.
+
+       * boards/OLIMEX_STM32_H103/{mcuconf.h,hw_config.c}: Moved from src.
+
+       * src/main.c (main): Use set_led instead of palClearPad directly.
+
 2010-09-08  NIIBE Yutaka  <gniibe@fsij.org>
 
        * src/ac.c (calc_md): Make SHA1 variable auto.
diff --git a/NEWS b/NEWS
new file mode 100644 (file)
index 0000000..0f78dcc
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,26 @@
+Gnuk NEWS - User visible changes
+
+* Major changes in Gnuk 0.1
+
+  Released 2010-09-XX, by NIIBE Yutaka
+
+** New board support "STM32 Primer2" is added by Kaz Kojima.
+
+** Now, LED behavior is meaningful.  "ON" during execution.
+
+** Fixed bcdCCID revision number.
+
+** Logo.
+
+** Decipher is supported.
+
+
+* Major changes in Gnuk 0.0
+
+  Released 2010-09-06, by NIIBE Yutaka
+
+** This is initial release.  Only it supports digital signing.
+
+Local Variables:
+mode: outline
+End:
index 09b9505..c5f9dd4 100644 (file)
@@ -1,5 +1,6 @@
 # List of all the board related files.
-BOARDSRC = ../boards/OLIMEX_STM32_H103/board.c
+BOARDSRC = ../boards/OLIMEX_STM32_H103/board.c \
+       ../boards/OLIMEX_STM32_H103/hw_config.c
 
 # Required include directories
 BOARDINC = ../boards/OLIMEX_STM32_H103
diff --git a/boards/OLIMEX_STM32_H103/hw_config.c b/boards/OLIMEX_STM32_H103/hw_config.c
new file mode 100644 (file)
index 0000000..61a4b26
--- /dev/null
@@ -0,0 +1,56 @@
+/* Hardware specific USB functions */
+/*
+ * For detail, please see the documentation of 
+ * STM32F10x USB Full Speed Device Library (USB-FS-Device_Lib)
+ * by STMicroelectronics' MCD Application Team
+ */
+
+#include "ch.h"
+#include "hal.h"
+#include "board.h"
+#include "usb_lib.h"
+#include "usb_prop.h"
+#include "usb_desc.h"
+#include "hw_config.h"
+#include "platform_config.h"
+#include "usb_pwr.h"
+
+void
+Enter_LowPowerMode (void)
+{
+  bDeviceState = SUSPENDED;
+}
+
+void
+Leave_LowPowerMode (void)
+{
+  DEVICE_INFO *pInfo = &Device_Info;
+
+  if (pInfo->Current_Configuration != 0)
+    bDeviceState = CONFIGURED;
+  else
+    bDeviceState = ATTACHED;
+}
+
+void
+USB_Cable_Config (FunctionalState NewState)
+{
+  if (NewState != DISABLE)
+    palClearPad (IOPORT3, GPIOC_DISC);
+  else
+    palSetPad (IOPORT3, GPIOC_DISC);
+}
+
+void
+Get_SerialNum (void)
+{
+}
+
+void
+set_led (int value)
+{
+  if (value)
+    palClearPad (IOPORT3, GPIOC_LED);
+  else
+    palSetPad (IOPORT3, GPIOC_LED);
+}
diff --git a/boards/OLIMEX_STM32_H103/mcuconf.h b/boards/OLIMEX_STM32_H103/mcuconf.h
new file mode 100644 (file)
index 0000000..c862cf9
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio.
+
+    This file is part of ChibiOS/RT.
+
+    ChibiOS/RT 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 3 of the License, or
+    (at your option) any later version.
+
+    ChibiOS/RT 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, see <http://www.gnu.org/licenses/>.
+
+                                      ---
+
+    A special exception to the GPL can be applied should you wish to distribute
+    a combined work that includes ChibiOS/RT, without being obliged to provide
+    the source code for any proprietary components. See the file exception.txt
+    for full details of how and when the exception can be applied.
+*/
+
+/*
+ * STM32 drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the driver
+ * is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 15...0       Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3        Lowest...Highest.
+ */
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_SW                    STM32_SW_PLL
+#define STM32_PLLSRC                STM32_PLLSRC_HSE
+#define STM32_PLLXTPRE              STM32_PLLXTPRE_DIV1
+#define STM32_PLLMUL_VALUE          9
+#define STM32_HPRE                  STM32_HPRE_DIV1
+#define STM32_PPRE1                 STM32_PPRE1_DIV2
+#define STM32_PPRE2                 STM32_PPRE2_DIV2
+#define STM32_ADCPRE                STM32_ADCPRE_DIV4
+#define STM32_MCO                   STM32_MCO_NOCLOCK
+
+/*
+ * ADC driver system settings.
+ */
+#define USE_STM32_ADC1              TRUE
+#define STM32_ADC1_DMA_PRIORITY     3
+#define STM32_ADC1_IRQ_PRIORITY     5
+#define STM32_ADC1_DMA_ERROR_HOOK() chSysHalt()
+
+/*
+ * CAN driver system settings.
+ */
+#define USE_STM32_CAN1              TRUE
+#define STM32_CAN1_IRQ_PRIORITY     11
+
+/*
+ * PWM driver system settings.
+ */
+#define USE_STM32_PWM1              TRUE
+#define USE_STM32_PWM2              FALSE
+#define USE_STM32_PWM3              FALSE
+#define USE_STM32_PWM4              FALSE
+#define STM32_PWM1_IRQ_PRIORITY     7
+#define STM32_PWM2_IRQ_PRIORITY     7
+#define STM32_PWM3_IRQ_PRIORITY     7
+#define STM32_PWM4_IRQ_PRIORITY     7
+
+/*
+ * SERIAL driver system settings.
+ */
+#define USE_STM32_USART1            FALSE
+#define USE_STM32_USART2            TRUE
+#define USE_STM32_USART3            FALSE
+#if defined(STM32F10X_HD) || defined(STM32F10X_CL)
+#define USE_STM32_UART4             FALSE
+#define USE_STM32_UART5             FALSE
+#endif
+#define STM32_USART1_PRIORITY       12
+#define STM32_USART2_PRIORITY       12
+#define STM32_USART3_PRIORITY       12
+#if defined(STM32F10X_HD) || defined(STM32F10X_CL)
+#define STM32_UART4_PRIORITY        12
+#define STM32_UART5_PRIORITY        12
+#endif
+
+/*
+ * SPI driver system settings.
+ */
+#define USE_STM32_SPI1              TRUE
+#define USE_STM32_SPI2              TRUE
+#define STM32_SPI1_DMA_PRIORITY     2
+#define STM32_SPI2_DMA_PRIORITY     2
+#define STM32_SPI1_IRQ_PRIORITY     10
+#define STM32_SPI2_IRQ_PRIORITY     10
+#define STM32_SPI1_DMA_ERROR_HOOK() chSysHalt()
diff --git a/boards/STM32_PRIMER2/board.c b/boards/STM32_PRIMER2/board.c
new file mode 100644 (file)
index 0000000..ae47ec9
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio.
+
+    This file is part of ChibiOS/RT.
+
+    ChibiOS/RT 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 3 of the License, or
+    (at your option) any later version.
+
+    ChibiOS/RT 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, see <http://www.gnu.org/licenses/>.
+
+                                      ---
+
+    A special exception to the GPL can be applied should you wish to distribute
+    a combined work that includes ChibiOS/RT, without being obliged to provide
+    the source code for any proprietary components. See the file exception.txt
+    for full details of how and when the exception can be applied.
+*/
+
+#include "ch.h"
+#include "hal.h"
+
+/*
+ * Early initialization code.
+ * This initialization is performed just after reset before BSS and DATA
+ * segments initialization.
+ */
+void hwinit0(void) {
+
+  stm32_clock_init();
+}
+
+/*
+ * Late initialization code.
+ * This initialization is performed after BSS and DATA segments initialization
+ * and before invoking the main() function.
+ */
+void hwinit1(void) {
+
+  /*
+   * HAL initialization.
+   */
+  halInit();
+
+  /*
+   * ChibiOS/RT initialization.
+   */
+  chSysInit();
+}
diff --git a/boards/STM32_PRIMER2/board.h b/boards/STM32_PRIMER2/board.h
new file mode 100644 (file)
index 0000000..b295095
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio.
+
+    This file is part of ChibiOS/RT.
+
+    ChibiOS/RT 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 3 of the License, or
+    (at your option) any later version.
+
+    ChibiOS/RT 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, see <http://www.gnu.org/licenses/>.
+
+                                      ---
+
+    A special exception to the GPL can be applied should you wish to distribute
+    a combined work that includes ChibiOS/RT, without being obliged to provide
+    the source code for any proprietary components. See the file exception.txt
+    for full details of how and when the exception can be applied.
+*/
+
+#ifndef _BOARD_H_
+#define _BOARD_H_
+
+/*
+ * Setup for the STM32 Primer2.
+ */
+
+/*
+ * Board identifier.
+ */
+#define BOARD_STM32_PRIMER2
+#define BOARD_NAME "STM32 Primer2"
+
+/*
+ * Board frequencies.
+ */
+#define STM32_LSECLK            32768
+#define STM32_HSECLK            12000000
+
+/*
+ * MCU type, this macro is used by both the ST library and the ChibiOS/RT
+ * native STM32 HAL.
+ */
+#define STM32F10X_MD
+
+/*
+ * IO pins assignments.
+ */
+#define GPIOA_BUTTON            8
+#define GPIOC_SHUTDOWN         13
+#define GPIOD_DISC              3
+#define GPIOE_LED               0
+#define GPIOE_LEDR             1
+
+/*
+ * I/O ports initial setup, this configuration is established soon after reset
+ * in the initialization code.
+ *
+ * The digits have the following meaning:
+ *   0 - Analog input.
+ *   1 - Push Pull output 10MHz.
+ *   2 - Push Pull output 2MHz.
+ *   3 - Push Pull output 50MHz.
+ *   4 - Digital input.
+ *   5 - Open Drain output 10MHz.
+ *   6 - Open Drain output 2MHz.
+ *   7 - Open Drain output 50MHz.
+ *   8 - Digital input with PullUp or PullDown resistor depending on ODR.
+ *   9 - Alternate Push Pull output 10MHz.
+ *   A - Alternate Push Pull output 2MHz.
+ *   B - Alternate Push Pull output 50MHz.
+ *   C - Reserved.
+ *   D - Alternate Open Drain output 10MHz.
+ *   E - Alternate Open Drain output 2MHz.
+ *   F - Alternate Open Drain output 50MHz.
+ * Please refer to the STM32 Reference Manual for details.
+ */
+
+/*
+ * Port A setup.
+ * Everything input with pull-up except:
+ * PA2  - Alternate output  (USART2 TX).
+ * PA3  - Normal input      (USART2 RX).
+ * PA8  - Input with pull-down (PBUTTON).
+ */
+#define VAL_GPIOACRL            0x88884B88      /*  PA7...PA0 */
+#define VAL_GPIOACRH            0x88888888      /* PA15...PA8 */
+#define VAL_GPIOAODR            0xFFFFFEFF
+
+/*
+ * Port B setup.
+ * Everything input with pull-up except:
+ * PB13 - Alternate output  (AUDIO SPI2 SCK).
+ * PB14 - Normal input      (AUDIO SPI2 MISO).
+ * PB15 - Alternate output  (AUDIO SPI2 MOSI).
+ */
+#define VAL_GPIOBCRL            0x88888888      /*  PB7...PB0 */
+#define VAL_GPIOBCRH            0xB4B88888      /* PB15...PB8 */
+#define VAL_GPIOBODR            0xFFFFFFFF
+
+/*
+ * Port C setup.
+ * Everything input with pull-up except:
+ * PC6  - Normal input because there is an external resistor.
+ * PC7  - Normal input because there is an external resistor.
+ * PC13 - Push Pull output (SHUTDOWN)
+ */
+#define VAL_GPIOCCRL            0x44888888      /*  PC7...PC0 */
+#define VAL_GPIOCCRH            0x88388888      /* PC15...PC8 */
+#define VAL_GPIOCODR            0xFFFFFFFF
+
+/*
+ * Port D setup.
+ * Everything input with pull-up except:
+ * PD3  - Push Pull output (USB_DISCONNECT)
+ */
+#define VAL_GPIODCRL            0x88883888      /*  PD7...PD0 */
+#define VAL_GPIODCRH            0x88888888      /* PD15...PD8 */
+#define VAL_GPIODODR            0xFFFFFFFF
+
+/*
+ * Port E setup.
+ * Everything input with pull-up except:
+ * PE0  - Push Pull output (LED0).
+ * PD1  - Push Pull output (LED1).
+ */
+#define VAL_GPIOECRL            0x88888833      /*  PE7...PE0 */
+#define VAL_GPIOECRH            0x88888888      /* PE15...PE8 */
+#define VAL_GPIOEODR            0xFFFFFFFF
+
+#if 0
+/*
+ * Port F setup.
+ * Everything input with pull-up except:
+ */
+#define VAL_GPIOFCRL            0x88888888      /*  PF7...PF0 */
+#define VAL_GPIOFCRH            0x88888888      /* PF15...PF8 */
+#define VAL_GPIOFODR            0xFFFFFFFF
+
+/*
+ * Port G setup.
+ * Everything input with pull-up except:
+ */
+#define VAL_GPIOGCRL            0x88888888      /*  PG7...PG0 */
+#define VAL_GPIOGCRH            0x88888888      /* PG15...PG8 */
+#define VAL_GPIOGODR            0xFFFFFFFF
+#endif
+
+#endif /* _BOARD_H_ */
diff --git a/boards/STM32_PRIMER2/board.mk b/boards/STM32_PRIMER2/board.mk
new file mode 100644 (file)
index 0000000..f8e6af1
--- /dev/null
@@ -0,0 +1,6 @@
+# List of all the board related files.
+BOARDSRC = ../boards/STM32_PRIMER2/board.c \
+       ../boards/STM32_PRIMER2/hw_config.c
+
+# Required include directories
+BOARDINC = ../boards/STM32_PRIMER2
diff --git a/boards/STM32_PRIMER2/hw_config.c b/boards/STM32_PRIMER2/hw_config.c
new file mode 100644 (file)
index 0000000..bc17937
--- /dev/null
@@ -0,0 +1,56 @@
+/* Hardware specific USB functions */
+/*
+ * For detail, please see the documentation of 
+ * STM32F10x USB Full Speed Device Library (USB-FS-Device_Lib)
+ * by STMicroelectronics' MCD Application Team
+ */
+
+#include "ch.h"
+#include "hal.h"
+#include "board.h"
+#include "usb_lib.h"
+#include "usb_prop.h"
+#include "usb_desc.h"
+#include "hw_config.h"
+#include "platform_config.h"
+#include "usb_pwr.h"
+
+void
+Enter_LowPowerMode (void)
+{
+  bDeviceState = SUSPENDED;
+}
+
+void
+Leave_LowPowerMode (void)
+{
+  DEVICE_INFO *pInfo = &Device_Info;
+
+  if (pInfo->Current_Configuration != 0)
+    bDeviceState = CONFIGURED;
+  else
+    bDeviceState = ATTACHED;
+}
+
+void
+USB_Cable_Config (FunctionalState NewState)
+{
+  if (NewState != DISABLE)
+    palClearPad (IOPORT4, GPIOC_DISC);
+  else
+    palSetPad (IOPORT4, GPIOC_DISC);
+}
+
+void
+Get_SerialNum (void)
+{
+}
+
+void
+set_led (int value)
+{
+  if (value)
+    palClearPad (IOPORT5, GPIOC_LEDR);
+  else
+    palSetPad (IOPORT5, GPIOC_LEDR);
+}
diff --git a/boards/STM32_PRIMER2/mcuconf.h b/boards/STM32_PRIMER2/mcuconf.h
new file mode 100644 (file)
index 0000000..4db6cf6
--- /dev/null
@@ -0,0 +1,107 @@
+/*
+    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio.
+
+    This file is part of ChibiOS/RT.
+
+    ChibiOS/RT 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 3 of the License, or
+    (at your option) any later version.
+
+    ChibiOS/RT 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, see <http://www.gnu.org/licenses/>.
+
+                                      ---
+
+    A special exception to the GPL can be applied should you wish to distribute
+    a combined work that includes ChibiOS/RT, without being obliged to provide
+    the source code for any proprietary components. See the file exception.txt
+    for full details of how and when the exception can be applied.
+*/
+
+/*
+ * STM32 drivers configuration.
+ * The following settings override the default settings present in
+ * the various device driver implementation headers.
+ * Note that the settings for each driver only have effect if the driver
+ * is enabled in halconf.h.
+ *
+ * IRQ priorities:
+ * 15...0       Lowest...Highest.
+ *
+ * DMA priorities:
+ * 0...3        Lowest...Highest.
+ */
+
+/*
+ * HAL driver system settings.
+ */
+#define STM32_SW                    STM32_SW_PLL
+#define STM32_PLLSRC                STM32_PLLSRC_HSE
+#define STM32_PLLXTPRE              STM32_PLLXTPRE_DIV2
+#define STM32_PLLMUL_VALUE          12
+#define STM32_HPRE                  STM32_HPRE_DIV1
+#define STM32_PPRE1                 STM32_PPRE1_DIV2
+#define STM32_PPRE2                 STM32_PPRE2_DIV2
+#define STM32_ADCPRE                STM32_ADCPRE_DIV4
+#define STM32_MCO                   STM32_MCO_NOCLOCK
+
+/*
+ * ADC driver system settings.
+ */
+#define USE_STM32_ADC1              TRUE
+#define STM32_ADC1_DMA_PRIORITY     3
+#define STM32_ADC1_IRQ_PRIORITY     5
+#define STM32_ADC1_DMA_ERROR_HOOK() chSysHalt()
+
+/*
+ * CAN driver system settings.
+ */
+#define USE_STM32_CAN1              TRUE
+#define STM32_CAN1_IRQ_PRIORITY     11
+
+/*
+ * PWM driver system settings.
+ */
+#define USE_STM32_PWM1              TRUE
+#define USE_STM32_PWM2              FALSE
+#define USE_STM32_PWM3              FALSE
+#define USE_STM32_PWM4              FALSE
+#define STM32_PWM1_IRQ_PRIORITY     7
+#define STM32_PWM2_IRQ_PRIORITY     7
+#define STM32_PWM3_IRQ_PRIORITY     7
+#define STM32_PWM4_IRQ_PRIORITY     7
+
+/*
+ * SERIAL driver system settings.
+ */
+#define USE_STM32_USART1            FALSE
+#define USE_STM32_USART2            FALSE
+#define USE_STM32_USART3            FALSE
+#if defined(STM32F10X_HD) || defined(STM32F10X_CL)
+#define USE_STM32_UART4             FALSE
+#define USE_STM32_UART5             FALSE
+#endif
+#define STM32_USART1_PRIORITY       12
+#define STM32_USART2_PRIORITY       12
+#define STM32_USART3_PRIORITY       12
+#if defined(STM32F10X_HD) || defined(STM32F10X_CL)
+#define STM32_UART4_PRIORITY        12
+#define STM32_UART5_PRIORITY        12
+#endif
+
+/*
+ * SPI driver system settings.
+ */
+#define USE_STM32_SPI1              TRUE
+#define USE_STM32_SPI2              TRUE
+#define STM32_SPI1_DMA_PRIORITY     2
+#define STM32_SPI2_DMA_PRIORITY     2
+#define STM32_SPI1_IRQ_PRIORITY     10
+#define STM32_SPI2_IRQ_PRIORITY     10
+#define STM32_SPI1_DMA_ERROR_HOOK() chSysHalt()
index 885879c..8cec464 100644 (file)
@@ -88,7 +88,7 @@ CSRC = $(PORTSRC) \
        $(VCOMSRC) \
        $(CRYPTSRC) \
        main.c usb_lld.c \
-       hw_config.c usb_desc.c usb_prop.c \
+       usb_desc.c usb_prop.c \
        usb-icc.c openpgp.c ac.c openpgp-do.c flash.c hardclock.c \
        random.c
 
index 4179396..0c84a7c 100644 (file)
@@ -197,3 +197,5 @@ extern void random_bytes_free (const uint8_t *);
 extern uint32_t hardclock (void);
 
 extern void gpg_do_reset_pw_counter (uint8_t which);
+
+extern void set_led (int);
diff --git a/src/hw_config.c b/src/hw_config.c
deleted file mode 100644 (file)
index 8b762f9..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Hardware specific USB functions */
-/*
- * For detail, please see the documentation of 
- * STM32F10x USB Full Speed Device Library (USB-FS-Device_Lib)
- * by STMicroelectronics' MCD Application Team
- */
-
-#include "ch.h"
-#include "hal.h"
-
-#include "usb_lib.h"
-#include "usb_prop.h"
-#include "usb_desc.h"
-#include "hw_config.h"
-#include "platform_config.h"
-#include "usb_pwr.h"
-
-void
-Enter_LowPowerMode (void)
-{
-  bDeviceState = SUSPENDED;
-}
-
-void
-Leave_LowPowerMode (void)
-{
-  DEVICE_INFO *pInfo = &Device_Info;
-
-  if (pInfo->Current_Configuration != 0)
-    bDeviceState = CONFIGURED;
-  else
-    bDeviceState = ATTACHED;
-}
-
-void
-USB_Cable_Config (FunctionalState NewState)
-{
-  if (NewState != DISABLE)
-    palClearPad (IOPORT3, GPIOC_DISC);
-  else
-    palSetPad (IOPORT3, GPIOC_DISC);
-}
-
-void
-Get_SerialNum (void)
-{
-}
index 766b88f..0e6cb03 100644 (file)
 
 #include "config.h"
 
-#include "ch.h"
-#include "hal.h"
-#include "usb_lld.h"
+#include "usb_lib.h"
 
+#include "ch.h"
 #include "gnuk.h"
-
-#include "usb_lib.h"
+#include "usb_lld.h"
 #include "usb_istr.h"
 #include "usb_desc.h"
 #include "hw_config.h"
@@ -213,13 +211,13 @@ main (int argc, char **argv)
        led_state = 0;
 
       if (led_state)
-       palClearPad (IOPORT3, GPIOC_LED);
+       set_led (1);
       else
        {
          if ((count & 1))
-           palClearPad (IOPORT3, GPIOC_LED);
+           set_led (1);
          else
-           palSetPad (IOPORT3, GPIOC_LED);
+           set_led (0);
        }
 
 #ifdef DEBUG_MORE
diff --git a/src/mcuconf.h b/src/mcuconf.h
deleted file mode 100644 (file)
index c862cf9..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
-    ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio.
-
-    This file is part of ChibiOS/RT.
-
-    ChibiOS/RT 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 3 of the License, or
-    (at your option) any later version.
-
-    ChibiOS/RT 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, see <http://www.gnu.org/licenses/>.
-
-                                      ---
-
-    A special exception to the GPL can be applied should you wish to distribute
-    a combined work that includes ChibiOS/RT, without being obliged to provide
-    the source code for any proprietary components. See the file exception.txt
-    for full details of how and when the exception can be applied.
-*/
-
-/*
- * STM32 drivers configuration.
- * The following settings override the default settings present in
- * the various device driver implementation headers.
- * Note that the settings for each driver only have effect if the driver
- * is enabled in halconf.h.
- *
- * IRQ priorities:
- * 15...0       Lowest...Highest.
- *
- * DMA priorities:
- * 0...3        Lowest...Highest.
- */
-
-/*
- * HAL driver system settings.
- */
-#define STM32_SW                    STM32_SW_PLL
-#define STM32_PLLSRC                STM32_PLLSRC_HSE
-#define STM32_PLLXTPRE              STM32_PLLXTPRE_DIV1
-#define STM32_PLLMUL_VALUE          9
-#define STM32_HPRE                  STM32_HPRE_DIV1
-#define STM32_PPRE1                 STM32_PPRE1_DIV2
-#define STM32_PPRE2                 STM32_PPRE2_DIV2
-#define STM32_ADCPRE                STM32_ADCPRE_DIV4
-#define STM32_MCO                   STM32_MCO_NOCLOCK
-
-/*
- * ADC driver system settings.
- */
-#define USE_STM32_ADC1              TRUE
-#define STM32_ADC1_DMA_PRIORITY     3
-#define STM32_ADC1_IRQ_PRIORITY     5
-#define STM32_ADC1_DMA_ERROR_HOOK() chSysHalt()
-
-/*
- * CAN driver system settings.
- */
-#define USE_STM32_CAN1              TRUE
-#define STM32_CAN1_IRQ_PRIORITY     11
-
-/*
- * PWM driver system settings.
- */
-#define USE_STM32_PWM1              TRUE
-#define USE_STM32_PWM2              FALSE
-#define USE_STM32_PWM3              FALSE
-#define USE_STM32_PWM4              FALSE
-#define STM32_PWM1_IRQ_PRIORITY     7
-#define STM32_PWM2_IRQ_PRIORITY     7
-#define STM32_PWM3_IRQ_PRIORITY     7
-#define STM32_PWM4_IRQ_PRIORITY     7
-
-/*
- * SERIAL driver system settings.
- */
-#define USE_STM32_USART1            FALSE
-#define USE_STM32_USART2            TRUE
-#define USE_STM32_USART3            FALSE
-#if defined(STM32F10X_HD) || defined(STM32F10X_CL)
-#define USE_STM32_UART4             FALSE
-#define USE_STM32_UART5             FALSE
-#endif
-#define STM32_USART1_PRIORITY       12
-#define STM32_USART2_PRIORITY       12
-#define STM32_USART3_PRIORITY       12
-#if defined(STM32F10X_HD) || defined(STM32F10X_CL)
-#define STM32_UART4_PRIORITY        12
-#define STM32_UART5_PRIORITY        12
-#endif
-
-/*
- * SPI driver system settings.
- */
-#define USE_STM32_SPI1              TRUE
-#define USE_STM32_SPI2              TRUE
-#define STM32_SPI1_DMA_PRIORITY     2
-#define STM32_SPI2_DMA_PRIORITY     2
-#define STM32_SPI1_IRQ_PRIORITY     10
-#define STM32_SPI2_IRQ_PRIORITY     10
-#define STM32_SPI1_DMA_ERROR_HOOK() chSysHalt()