- No longer include `tools/serial.mk` and `tools/avrdude.mk`, as this is
no done by `boards/common/atmega`
- No longer provide `RESET ?=`, as this is now done in `tools/avrdude.mk` for
all ATmega boards unless they are using a bootloader
- Use the common logic to translate from a bootloader to concrete flasher flags
- Extended documentation on how to use optiboot as alternative bootloader, as
the stock bootloader is affected by a bug preventing the use of RIOT's
pm_reboot() implementation
- including `avrdude.mk` and `serial.mk` is no longer needed
- the avrdude flag -F is dropped
- This allows flashing a board having an MCU different to the one
RIOT was compiled for
- It is better to let the user provide this flag manually if she/he really
wants to turn safety off, knows what she/he is doing, and accepts the
risk associated with this
- the avrdude flag -D is dropped
- This disables issuing an erase command during flashing, however this
erase cycle is strictly required to be able to program the flash
- This is only needed in case of the stk500v2 bootloader, which implicitly
does the erase cycle and fails if explicitly asked to do so
- Only for the stk500v2 bootloader this flag is now added
- Include `tools/avrdude.mk` and `tools/serial.mk` at the common place instead
for each ATmega based board individually
- Introduce the makefile variable BOOTLOADER to de-duplicate flash configs:
- Two boards using the same bootloader now just use `BOOTLOADER ?= foo`
and share the individual config
- These settings are not applied when `PROGRAMMER` is set to still allow
users to manually specify how to program their board
We can't run I2C off the 120 MHz main clock as the availiable dividers are too small.
Use the 48 MHz GCLK 6 instead which offers an appropriate frequency.
fixes#12037
Instead of hard-coding the peripheral clocks to CLOCK_CORECLOCK
introduce helper functions to return the frequency of the individual
GCLKs and use those for baud-rate calculations.
This requires the GCLK to be part of the peripheral's config struct.
While this is already the case for most peripherals, this also adds
it for those where it wasn't used before.
As it defaults to 0 (CLOCK_CORECLOCK) no change is to be expected.
To simplify board definitions and for unification between samd2x and
newer models, don't use the GCLK bitmask in board definitions.
Instead use the GCLK index and generate the bitmask when needed.