summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Tilman Sauerbeck [Sun, 7 Jul 2019 10:12:13 +0000 (12:12 +0200)]
common: Initialize the usb_serial module with an USB VID and PID pair.
No change in behaviour yet, as the IDs are not yet forwarded to
the USB system proper.
Tilman Sauerbeck [Sun, 7 Jul 2019 07:57:47 +0000 (09:57 +0200)]
bootloader: Jump to application code after serial communication is done.
Tilman Sauerbeck [Sun, 7 Jul 2019 08:06:12 +0000 (10:06 +0200)]
bootloader: Define application offset.
This defines the APPLICATION_ADDR constant and sets it to the
offset of the vector table to jump to after the bootloader is done.
Tilman Sauerbeck [Sun, 7 Jul 2019 07:49:05 +0000 (09:49 +0200)]
common: Implement jump_to_application().
Tilman Sauerbeck [Sun, 7 Jul 2019 07:57:33 +0000 (09:57 +0200)]
bootloader: Make run() function return a bool.
The return value indicates if the caller should continue to call
the function. It only returns false once COMMAND_START_APP is seen.
The idea is that after run() returns false, the we can jump to the
application code.
Tilman Sauerbeck [Sun, 7 Jul 2019 07:35:51 +0000 (09:35 +0200)]
bootloader: Prepare implementation of COMMAND_START_APP.
This command is to instruct the bootloader to jump to the application.
It doesn't do anything yet.
Tilman Sauerbeck [Thu, 4 Jul 2019 04:53:24 +0000 (06:53 +0200)]
common: Remove unused function USB_VcomWriteBlocking().
Tilman Sauerbeck [Thu, 4 Jul 2019 04:52:42 +0000 (06:52 +0200)]
common: Remove unused function USB_VcomReadBlocking().
Tilman Sauerbeck [Thu, 4 Jul 2019 04:52:00 +0000 (06:52 +0200)]
common: Remove prototype for undefined function USB_VcomReadPolling().
Tilman Sauerbeck [Fri, 28 Jun 2019 15:53:54 +0000 (17:53 +0200)]
tools: Add firmware updater.
Tilman Sauerbeck [Mon, 1 Jul 2019 18:01:43 +0000 (20:01 +0200)]
bootloader: Call into the bootloader module from main().
Tilman Sauerbeck [Fri, 28 Jun 2019 15:53:20 +0000 (17:53 +0200)]
bootloader: Add the bootloader module.
This implements a simple serial protocol that offers access to the
capabilities of the flash module, i.e. erase, program and verify
flash contents.
Tilman Sauerbeck [Wed, 3 Jul 2019 05:17:16 +0000 (07:17 +0200)]
common: Implement the transmit path for the USB serial module.
This adds the global variable cdc_tx_buf, which buffers data
to be written to USB.
Tilman Sauerbeck [Wed, 3 Jul 2019 04:04:02 +0000 (06:04 +0200)]
common: Implement the receive path for the USB serial module.
This sets up a ringbuffer for data received from the USB host.
When we try to read from the empty ringbuffer, another receive-data
request is sent.
Other modules can read from this ringbuffer via the new
usb_serial_read() function.
Tilman Sauerbeck [Tue, 25 Jun 2019 04:35:12 +0000 (06:35 +0200)]
common: Add the ringbuf module.
Tilman Sauerbeck [Tue, 25 Jun 2019 04:23:40 +0000 (06:23 +0200)]
common: Add the buffer module.
This comes with a C API, so it can be used by the USB serial code.
Tilman Sauerbeck [Tue, 25 Jun 2019 04:06:30 +0000 (06:06 +0200)]
bootloader: Add the flash module.
Offers functions to erase a flash sector, program a flash sector and
verify a flash sector's contents.
Note that we don't clear the flash controller's cache by writing to
MCM_PLACR after erasing or programming sectors since it doesn't seem
to be required.
Tilman Sauerbeck [Mon, 24 Jun 2019 04:55:23 +0000 (06:55 +0200)]
common: Add the crc32 module.
Tilman Sauerbeck [Mon, 24 Jun 2019 04:23:00 +0000 (06:23 +0200)]
common: Define panic handler using the #[panic_handler] attribute.
This means we now require rust 1.30 for the build.
Tilman Sauerbeck [Tue, 18 Jun 2019 05:02:01 +0000 (07:02 +0200)]
common: Implement USB0 interrupt handler.
With this change, the device successfully registers as a USB ACM device
and doesn't hard fault if it's disconnected from USB.
Tilman Sauerbeck [Mon, 17 Jun 2019 19:51:36 +0000 (21:51 +0200)]
common: Implement USB_DeviceIsrEnable() and USB_DeviceClockInit().
These functions are required by the C implementation.
Tilman Sauerbeck [Mon, 17 Jun 2019 19:51:08 +0000 (21:51 +0200)]
bootloader: Initialize the usb_serial module on startup.
Tilman Sauerbeck [Mon, 17 Jun 2019 19:49:15 +0000 (21:49 +0200)]
common: Add the usb_serial module.
Its init() function calls into the USB serial C code.
Tilman Sauerbeck [Mon, 17 Jun 2019 19:45:34 +0000 (21:45 +0200)]
bootloader: Put the binary at offset 0x8000 in flash.
This generates a binary that can be loaded as an application,
which allows for easy testing of the code.
Tilman Sauerbeck [Mon, 17 Jun 2019 06:11:37 +0000 (08:11 +0200)]
common: Implement clock::configure_usb().
Tilman Sauerbeck [Mon, 17 Jun 2019 06:05:55 +0000 (08:05 +0200)]
common: Set SIM_SOPT2.PLLFLLSEL by default.
At least the USB peripheral needs this, but probably others do, too.
Tilman Sauerbeck [Mon, 17 Jun 2019 05:35:47 +0000 (07:35 +0200)]
bootloader: Configure system and peripheral clocks.
Tilman Sauerbeck [Mon, 17 Jun 2019 05:34:52 +0000 (07:34 +0200)]
common: Add the clock module.
So far this module only knows how to bring the system to PEE mode.
Tilman Sauerbeck [Mon, 17 Jun 2019 04:48:43 +0000 (06:48 +0200)]
common: Remove unused code from usb_osa_bm.c.
Tilman Sauerbeck [Mon, 17 Jun 2019 04:44:40 +0000 (06:44 +0200)]
common: Use asm instead of __ASM in USB_OsaEnterCritical().
Tilman Sauerbeck [Mon, 17 Jun 2019 04:42:48 +0000 (06:42 +0200)]
common: Implement __disable_irq() from CMSIS.
Tilman Sauerbeck [Mon, 17 Jun 2019 04:41:47 +0000 (06:41 +0200)]
common: Remove EnableIRQ() and DisableIRQ() from fsl_common.h.
Tilman Sauerbeck [Mon, 17 Jun 2019 04:30:42 +0000 (06:30 +0200)]
common: Remove useless calls to __NOP() in busy wait loops.
Tilman Sauerbeck [Mon, 17 Jun 2019 04:24:44 +0000 (06:24 +0200)]
common: Avoid including fsl_clock.h, clock_config.h and board.h.
We won't need them.
Tilman Sauerbeck [Sun, 16 Jun 2019 19:55:40 +0000 (21:55 +0200)]
common: Hardcode use of NXP's USB baremetal stack in usb_osa.h.
Tilman Sauerbeck [Sun, 16 Jun 2019 19:50:38 +0000 (21:50 +0200)]
common: Avoid including core_cm0plus.h and system_MKL26Z4.h.
Manually add the required functions and macros instead.
Tilman Sauerbeck [Sun, 16 Jun 2019 19:46:40 +0000 (21:46 +0200)]
common: Hardcode our target's CPU type in fsl_device_registers.h.
Tilman Sauerbeck [Sun, 16 Jun 2019 19:44:12 +0000 (21:44 +0200)]
common: Add NXP's USB serial code.
This does not yet build.
Tilman Sauerbeck [Sun, 16 Jun 2019 19:10:48 +0000 (21:10 +0200)]
common: Add the nvic module.
Allows enabling and disabling of interrupts as well as configuring
their priority.
Tilman Sauerbeck [Sun, 16 Jun 2019 19:05:58 +0000 (21:05 +0200)]
common: Add the register module.
Allows 8, 16 or 32 bit access to peripheral registers.
Tilman Sauerbeck [Sun, 16 Jun 2019 18:31:44 +0000 (20:31 +0200)]
bootloader: Fix address of SRAM in the target.
Tilman Sauerbeck [Sun, 16 Jun 2019 18:11:02 +0000 (20:11 +0200)]
bootloader: Remove linker symbols __Vectors_Size and __Vectors_End.
They aren't used.
Tilman Sauerbeck [Sun, 16 Jun 2019 17:46:17 +0000 (19:46 +0200)]
bootloader: Remove commented support for multiple .data/.bss sections.
Tilman Sauerbeck [Sun, 16 Jun 2019 17:18:09 +0000 (19:18 +0200)]
build: Add infrastructure for the bootloader program and libcommon.
This builds, but does not produce a useful binary.
Tilman Sauerbeck [Sun, 26 May 2019 18:35:02 +0000 (20:35 +0200)]
Initial commit.