aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/fx3/b200/bootloader/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/fx3/b200/bootloader/main.c')
-rw-r--r--firmware/fx3/b200/bootloader/main.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/firmware/fx3/b200/bootloader/main.c b/firmware/fx3/b200/bootloader/main.c
new file mode 100644
index 000000000..f46690813
--- /dev/null
+++ b/firmware/fx3/b200/bootloader/main.c
@@ -0,0 +1,55 @@
+//
+// Copyright 2011-2012 Cypress Semiconductor Corporation
+// Copyright 2019 Ettus Research, a National Instruments Brand
+//
+// SPDX-License-Identifier: GPL-3.0-or-later
+//
+
+#include "cyfx3usb.h"
+#include "cyfx3device.h"
+
+extern void usbBoot (void);
+extern uint8_t glCheckForDisconnect;
+extern uint8_t glInCompliance;
+
+int main (void)
+{
+ CyFx3BootErrorCode_t status;
+ CyFx3BootIoMatrixConfig_t ioCfg = {
+ .isDQ32Bit = CyFalse,
+ .useUart = CyFalse,
+ .useI2C = CyTrue,
+ .useI2S = CyFalse,
+ .useSpi = CyFalse,
+ .gpioSimpleEn[0] = 0,
+ .gpioSimpleEn[1] = 0
+ };
+
+ CyFx3BootDeviceInit(CyTrue);
+
+ status = CyFx3BootDeviceConfigureIOMatrix(&ioCfg);
+
+ if (status != CY_FX3_BOOT_SUCCESS)
+ {
+ return status;
+ }
+
+ usbBoot();
+
+ while (1)
+ {
+ if (glCheckForDisconnect)
+ {
+ CyFx3BootUsbCheckUsb3Disconnect();
+ glCheckForDisconnect = 0;
+ }
+
+ if (glInCompliance)
+ {
+ CyFx3BootUsbSendCompliancePatterns();
+ glInCompliance = 0;
+ }
+ }
+ return 0;
+}
+