Kevin O'Connor
9a11286327
stm32: Implement armcm_main() in arch specific code
...
Move armcm_main() to stm32f0.c, stm32f1.c, and stm32f4.c. This gives
the arch specific code more control on the early boot setup.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-24 11:35:18 -04:00
Kevin O'Connor
faeaa54925
armcm_boot: Use armcm_main() instead of main() to start board code
...
The main() function has a special meaning to gcc and using it can
result in different code generation. Use armcm_main() to avoid that.
Also, invoke SystemInit() from the board specific armcm_main() code.
This gives the board code more control over board initialization.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-24 11:16:10 -04:00
Kevin O'Connor
0b0c47c566
stm32: Support PA11/PA12 pin remap on stm32f042 tsop20 chip
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:34:48 -04:00
Kevin O'Connor
a6d90bb95e
stm32: Support stm32f042 build from stm32/ directory
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:34:48 -04:00
Kevin O'Connor
2c535106ee
stm32: Initial support for stm32f070
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:19:03 -04:00
Kevin O'Connor
7b792e40d5
stm32f0: Rename internal build symbol from MACH_STM32F0 to MACH_STM32F0_HAL
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:16:35 -04:00
Kevin O'Connor
a46244057c
stm32: Support 16bit packet memory access on usbfs controller
...
The stm32f0 line uses 16bit packet memory reads/writes (as opposed to
the goofy 32bit accesses required on the stm32f103).
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:16:35 -04:00
Kevin O'Connor
c2881f7d15
stm32: Be explicit in layout of gpio banks in digital_regs variable
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 21:16:35 -04:00
Kevin O'Connor
40d076cce5
stm32: Use stm32f103xe header for stm32f103 line
...
Use the "e" revision so that the SPI3 device is available for use.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-23 15:49:00 -04:00
Kevin O'Connor
1e8582e3f6
stm32: Make sure to turn on the usb clock before writing to the packet memory
...
The USB clock needs to be enabled prior to writing to the USB packet
memory.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-10-13 14:33:23 -04:00
Kevin O'Connor
bbf6f87de0
avr: List 20Mhz option below 16Mhz option in Kconfig
...
When enabling "low level options" in Kconfig, selecting a chip that is
20Mhz capable would result in 20Mhz being the default. A 16Mhz speed
is the preferred default, so list that first in the menu.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-30 10:05:02 -04:00
Kevin O'Connor
e90d9c33eb
lpc176x: Use FIOPIN to set start value on gpio_out_reset()
...
The FIOSET and FIOCLR registers may not set an initial value if the
pin is not in an output mode. So, use FIOPIN to set the initial
value.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-29 17:02:39 -04:00
Kevin O'Connor
626cb71428
stm32: Only prompt for a bootloader on stm32f103 and stm32f407
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 12:11:52 -04:00
Kevin O'Connor
9e2c17f468
atsam: No need to call SystemInit() from main()
...
The SystemInit() is already called from armcm_boot.c.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
Kevin O'Connor
9b70c052cc
armcm_boot: Export MCU definition from armcm_boot
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
Kevin O'Connor
1c6a8267f9
armcm_reset: Add a new helper file defining command_reset()
...
Add a generic ARM Cortex-M implementation of the "reset" command.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
Kevin O'Connor
80e17b1e53
stm32: Move VTOR fixup from main() to chip specific code
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
Kevin O'Connor
8cb3d09484
stm32: Move usb_request_bootloader() to chip specific code
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-18 11:59:43 -04:00
Kevin O'Connor
4f889ecd93
stm32: Fix usbfs rx buffer sizing
...
The usbfs receive buffers must also have space for the 2 byte crc at
the end of a transmission. This fixes an error that could lead to
lost messages from mcu to host (resulting in bytes_invalid increasing
in stats) on the stm32f103.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-16 19:33:06 -04:00
Kevin O'Connor
045c938a61
stm32: Use official defines for EPR bits
...
Use the standard definitions for the endpoint register bits.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-16 18:39:54 -04:00
Kevin O'Connor
86cf361486
stm32: Rename USB_BTABLE to EPM in usbfs.c
...
Rename the internal definition so it isn't in conflict with the
USB_BTABLE register.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-16 18:39:47 -04:00
Kevin O'Connor
c780537c57
atsam: Add missing PB21 pin to ADC module
...
Reported by @mental405.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-16 10:50:24 -04:00
Kevin O'Connor
60ae92d143
stm32: Disable usb irqs in usbotg handlers
...
It appears the usbotg controller can get confused if the usb irq
handler runs while processing a usb request. Disable usb irqs during
usb processing to avoid this.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-12 08:12:51 -04:00
Kevin O'Connor
8d4a5c16be
atsam: Enable flash loop caching optimization on sam4s
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-08 09:11:41 -04:00
Kevin O'Connor
4fa41d9c61
stm32: Rework usbotg transmit interrupts
...
Use the XFRC interrupt instead of TXFE. Don't mask/unmask the tx
interrupts during runtime. This fixes some race conditions where a tx
notification may have previously gotten lost.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-08 00:07:16 -04:00
Kevin O'Connor
dc9f9ea1d6
stm32: Add support for SPI3 bus on alternate PC11,PC12,PC10 pins
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-05 22:42:48 -04:00
Kevin O'Connor
4097a02585
tmcuart: Fix typo in function name
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-09-01 14:56:09 -04:00
Kevin O'Connor
7031202e7c
stm32: Add support for SPI1 and SPI3 busses
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 19:55:30 -04:00
Kevin O'Connor
017a4d8321
stm32: Fix gpio enumerations (each bank has 16 pins, not 32)
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 18:35:01 -04:00
Kevin O'Connor
c380d4639b
stm32: Work around stm32f407 usbotg chip errata
...
It appears bogus entries can get placed on the rxqueue - detect and
clear them.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-31 15:16:46 -04:00
Kevin O'Connor
9335cc4804
stm32: Configure and enable usbotg endpoint0 during setup
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
4a178824aa
stm32: Disable and flush usbotg bulk transmit pipe on usb_set_configure()
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
7eba063ac8
stm32: Perform usbotg endpoint init during usb_set_configure()
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
917fd51057
stm32: Discard usbotg tx data until usb is ready
...
If the usb interface is not ready, just discard messages.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
5e3acff8c7
stm32: No need to clear the usbotg address on reset
...
The controller automatically clears the address.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:45 -04:00
Kevin O'Connor
7229680227
stm32: Enable usbotg bulk reads during endpoint configuration
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-30 12:15:32 -04:00
Kevin O'Connor
c95209bf7a
atsam: ADC pins need to be in input mode with pullups disabled
...
The ADC pins (on at least the sam3x8e) need to be configured in input
mode with the internal pullups disabled in order to get accurate ADC
readings.
Reported by @bryanboettcher.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-28 13:45:01 -04:00
Kevin O'Connor
8f5c15d4dc
buildcommands: Match DECL_X names to the actual C macro names
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 13:26:30 -04:00
Kevin O'Connor
caeb610bb9
armcm_link: Rename armcm_boot.lds.S to armcm_link.lds.S
...
Rename the linker script so the build does not have any conflicts with
the armcm_boot.d dependency file.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 13:18:24 -04:00
Kevin O'Connor
ff7be3e026
ctr: Encode negative integers in normal hex notation
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 13:06:44 -04:00
Kevin O'Connor
7d014933ce
command: Allow count parameter of DECL_ENUMERATION_RANGE() to be an expression
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 12:22:51 -04:00
Kevin O'Connor
84fd89b8cf
ctr: Add support for multiple integers in DECL_CTR_INT
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 12:22:51 -04:00
Kevin O'Connor
e59d875256
ctr: Encode integers in hex
...
Replace the custom encoding with a hex encoding. This makes it a
little easier to inspect the CTR conversions.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 11:08:51 -04:00
Kevin O'Connor
69fc1e63b4
Makefile: Translate null characters to newline characters in ctr requests
...
Store the CTR requests in compile_time_request.txt with the null
characters removed. This makes it slightly easier to inspect the CTR
conversions.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 10:35:26 -04:00
Kevin O'Connor
1022729a2a
lpc176x: Update code to use armcm_boot mechanism
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
6409eda058
lpc176x: Move irq handler code above irq setup
...
Only code movement.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
44f862388f
atsam: Update code to use armcm_boot mechanism
...
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
fc879456db
atsam: Move irq handler code above irq setup
...
Only code movement.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
6338f6a5f0
atsamd: Update code to use armcm_boot mechanism
...
Replace the custom linker scripts with the src/generic/armcm_boot.c
mechanism.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00
Kevin O'Connor
4990fe814d
atsamd: Move irq handler code above irq setup
...
Only code movement.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
2019-08-22 09:58:58 -04:00