lpc176x: Resync code with upstream Klipper code

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2022-12-15 15:35:01 -05:00 committed by Eric Callahan
parent da7cc967d0
commit 6f67a01a60
2 changed files with 33 additions and 12 deletions

View File

@ -41,6 +41,10 @@ config FLASH_SIZE
hex
default 0x80000
config FLASH_BOOT_ADDRESS
hex
default 0x0
config RAM_START
hex
default 0x10000000
@ -53,13 +57,6 @@ config STACK_SIZE
int
default 512
config FLASH_START
hex
default 0x0000
config FLASH_BOOT_ADDRESS
hex
default 0x0000
######################################################################
# Bootloader
@ -67,15 +64,15 @@ config FLASH_BOOT_ADDRESS
choice
prompt "Build CanBoot deployment application"
config LPC176X_FLASH_START_0000
config LPC_FLASH_START_0000
bool "Do not build"
config LPC176X_FLASH_START_4000
bool "16KiB bootloader"
config LPC_FLASH_START_4000
bool "16KiB bootloader (Smoothieware bootloader)"
endchoice
config FLASH_APPLICATION_ADDRESS
hex
default 0x4000 if LPC176X_FLASH_START_4000
default 0
default 0x4000 if LPC_FLASH_START_4000
default 0x0000
######################################################################
@ -100,6 +97,10 @@ endchoice
# Flash settings
######################################################################
config FLASH_START
hex
default 0x0000
config LAUNCH_APP_ADDRESS
hex
default 0x4000

View File

@ -6,6 +6,9 @@
#include "autoconf.h" // CONFIG_CLOCK_FREQ
#include "board/armcm_boot.h" // armcm_main
#include "board/armcm_reset.h" // try_request_canboot
#include "board/irq.h" // irq_disable
#include "board/misc.h" // bootloader_request
#include "internal.h" // enable_pclock
#include "sched.h" // sched_main
@ -37,6 +40,23 @@ DECL_INIT(watchdog_init);
* misc functions
****************************************************************/
// Try to reboot into bootloader
void
bootloader_request(void)
{
if (!CONFIG_FLASH_APPLICATION_ADDRESS)
return;
try_request_canboot();
// Disable USB and pause for 5ms so host recognizes a disconnect
irq_disable();
if (CONFIG_USB)
usb_disconnect();
// The "LPC17xx-DFU-Bootloader" will enter the bootloader if the
// watchdog timeout flag is set.
LPC_WDT->WDMOD = 0x07;
NVIC_SystemReset();
}
// Check if a peripheral clock has been enabled
int
is_enabled_pclock(uint32_t pclk)