Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: GlasgowEmbedded/glasgow
base: 26602c8f8f5c
Choose a base ref
...
head repository: GlasgowEmbedded/glasgow
compare: 30dc11b2fdee
Choose a head ref
  • 2 commits
  • 8 files changed
  • 1 contributor

Commits on Nov 15, 2020

  1. software: simplify firmware management.

      * Move firmware to glasgow/device/firmware.ihex.
      * Teach GlasgowHardwareDevice to find firmware unassisted.
      * Remove all code that accepted custom firmware filenames except
        for `flash --firmware`. There is no loss of functionality; during
        development, use `make -C firmware load`, which was always a more
        reliable option anyway.
    whitequark committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    68f8cfb View commit details
    Browse the repository at this point in the history
  2. firmware, software: positively verify API compatibility.

    Before this commit, firmware and software did not check USB protocol
    compatibility in any way. Although this mostly worked because there
    were few changes in USB protocol, there were still breaking changes,
    the last one in commit 5a7d18a that caused a silent hang when wrong
    firmware version was used. The community is larger now and this sort
    of breakage is no longer acceptable.
    
    After this commit, firmware exports an "API level" (functionally
    similar to a semver major version) and software verifies that its own
    API level matches that of the firmware. On mismatch, software reloads
    the firmware, like it would handle a blank device. Each time firmware
    is changed in an incompatible way (affecting e.g. control requests,
    FIFO configuration, ...) the API level must be increased.
    
    Miscellaneous cleanups:
      * In device enumeration code, no more than one handle to a device
        is now kept open at the same time. Although it doesn't matter on
        Linux, on Windows opening a USB device is an exclusive operation.
      * GlasgowHardwareDevice.{get_serial_list→enumerate_serials}
    whitequark committed Nov 15, 2020
    Configuration menu
    Copy the full SHA
    30dc11b View commit details
    Browse the repository at this point in the history