github tock/tock release-1.5
Tock 1.5

latest releases: release-2.1.1, release-2.1, tock-registers-v0.8...
4 years ago

Tock 1.5 is a periodic release so that there is at least one tested 1.x release before Tock 2.0. It includes updated components, more RISC-V development, new supported boards, improved process handling, and a host of other changes.

Highlights of this Release

  • New Features and Development

    • #1338 Added generic components
    • #1428 Add MPU configuration to panic print message
    • #1443 Add strace feature to kernel
    • #1480 Remove unsafe from TBF parsing in kernel
    • #1505 Add InterruptService abstraction
    • #1511 Complete transition to register interface
    • #1082 Processes are fully restartable
    • #1581 Capabilities in networking stack
    • #1589 RISC-V PMP implementation
    • #1590 Refactor panic!() printing implementation
    • #1680 Add hook for syscall filtering
    • #1748 Update in-kernel grant interface
  • New capsules

    • #1430 Low level debug
    • #1580 Log storage
    • #1715 HD44780 LCD
    • #1723 l3gd20 3 axis gyro and temperature sensor
  • New Boards

  • New Documentation

All Merged PRs:

  • #1338 Add generic components that any board can use
  • #1368 Tock Register Interface: help ensure correct use
  • #1392 Add functional unit tests for the kernel ring buffer.
  • #1393 Add cargo test for chips and archs on ci-travis.
  • #1394 Make process::alloc() take the alignment into account.
  • #1396 Fix typo in net::ipv6::ip_utils documentation.
  • #1397 Imix pin mapping documentation
  • #1398 hifive1: Increase stack size to 0x1000
  • #1399 Add Clippy Script + implement some clippy recommendations
  • #1401 arch/rv32i: Fixup MIE bit fields
  • #1403 put something useful in boards/README.md
  • #1404 turn the "getting started" guide into more of a tutorial
  • #1405 nrf52: add nRF52840 support to ficr.rs
  • #1406 allow GPIOs to be switched on
  • #1407 fix TOCK_KERNEL_VERSION
  • #1410 Add macro to generate register structs, and apply it to nrf52/clock (Fix #1400)
  • #1411 replace env! with option_env!
  • #1412 HiFive1: Add support for Machine Mode Interrupts
  • #1414 doc: fix various links and formatting
  • #1415 tools: add link checking script
  • #1417 Update rust and add update script
  • #1418 Fix path for kernel_layout.ld in nordic boards' build.rs.
  • #1420 SAM4L: create GLOC peripheral driver
  • #1421 make: freshen up board Makefile
  • #1422 Add support for multiple GPIO ports in chips/nrf5x.
  • #1425 RISCV addition for cycle and instruction counting
  • #1426 Add more variants to chips/nrf52/src/ficr.rs and keep them ordered in alphanumerical order
  • #1427 Add USB register mapping (for nRF52840-DK) to chips/nrf52.
  • #1428 Add MPU information to panic!() print
  • #1430 Implement the low-level-debug capsule.
  • #1431 fix slack invite link
  • #1432 Remove duplicate app register saving on context switch
  • #1434 Move USB control transaction handling to a separate module and add more descriptors.
  • #1435 Extend nrf52's UICR (NFC) and only erase its memory when needed
  • #1436 Remove impossible if-condition in cortex-m3 MPU
  • #1437 Add hifive1 support for user application
  • #1438 Add MIT to list of contributors
  • #1440 Make process_detail_fmt work with unknown app heap/stack pointers.
  • #1443 Add strace feature to trace syscalls in the kernel.
  • #1445 SiFive: PWM: Slight MMIO address correction
  • #1446 Use MaybeUninit in static_init instead of transmuting an option.
  • #1448 Drop messages instead of panicking when the debug buffer is full (Fix #1442).
  • #1450 Add comments to kernel/platform
  • #1451 rust2018: do not need macro_use
  • #1452 components: add generic spi, add to hail
  • #1453 components: make si7021 generic, add to hail
  • #1454 board: arty: use components
  • #1455 libraries: release tock-register-interface v0.4
  • #1456 Add DebugWriter component, use console component
  • #1458 register_structs!: Make output type public
  • #1460 Add the Ibex CPU and the OpenTitan Board
  • #1461 Add support for explicit visibility in register_structs.
  • #1463 Remove cargo.lock
  • #1466 doc/Design.md: Add 'Some in-kernel design principles` section
  • #1468 Update Nordic nrf52 chip model and variant
  • #1469 Fixed a typo.
  • #1471 RISC-V: OpenTitan Preparation
  • #1473 Replace IRC badge with Slack badge on README
  • #1474 Disable adc for deep sleep
  • #1476 UDP port binding + virtualization between apps and capsules
  • #1478 Add transmit_sync for sifive UART for use in panic
  • #1479 boards/hifive1: Remove duplicate PLIC enable
  • #1480 Rewrite TBF parsing logic
  • #1481 regs: Add Copy and Clone to InMemoryRegister
  • #1483 Remove dead code that double-checks the checksum
  • #1484 tools: Add setuptools to svd2regs.nix generated environment
  • #1486 Ensure the create_capability! macro cannot be called from capsules
  • #1487 Add missing panic! documentation in Porting Guide
  • #1488 boards/Makefile.common: Minor cleanup
  • #1489 register_structs!: Fix breakage of custom_test_frameworks
  • #1490 map the NRF52840-DK GPIOs correctly
  • #1492 Add support for the nrf52840_dongle board.
  • #1493 Remove direct dependency on nrf5x from nrf52dk_base.
  • #1494 Add support for power management in nrf52 chips.
  • #1495 Fix memory overuse in HiFive1 board
  • #1497 Mechanically align static_init_half with updated static_init macro.
  • #1498 Use the gpio::Pin enum in nRF52-based boards instead of raw numbers.
  • #1499 Add tests to capsules/alarm.rs
  • #1502 nRF52 UART updates - CTS/RTS optional, support PORT1 pins
  • #1503 Components: add GPIO, LED, AlarmMux, UartMux
  • #1504 nrf52: gpio: make disable_input a no-op
  • #1505 Add an InterruptService for chips of the nRF5x family.
  • #1506 doc: add style doc
  • #1507 doc: Add missing table of contents to docs
  • #1508 doc/policy: Core Team Information
  • #1509 doc: updating porting guide
  • #1510 RFC: Register visibility granularity
  • #1511 Migrate the last of the old arch stuff to the new registers interface
  • #1514 Add debug statements to show how and where process are loaded from flash to sram.
  • #1516 Fix nrf5x's counter register to use 24 bits instead of 32 (fix #1515).
  • #1519 doc: Add explicit Code of Conduct to top-level README
  • #1520 Fix in-kernel storage allocation macro and section.
  • #1522 Transitions virtual UART to use a deferred callback
  • #1523 Add a notice about QEMU support
  • #1525 update adc capsule to use grant
  • #1527 Improve display of MPU layout in Cortex-M panic handler
  • #1528 libraries/tock-cells: remove unsafe from TakeCell
  • #1529 Fix restarting apps
  • #1530 capsules: show process restarts in process console
  • #1531 Fix counting the number of syscalls a process has called.
  • #1533 libraries: cells: add more to numeric cell
  • #1535 Fix formatting bug in markdown
  • #1536 kernel: lib: make process::Error public
  • #1537 tock-registers: release v0.5
  • #1539 Update nrf52840dk README
  • #1540 Add a simple alarm test. It fires the first alarm in about 10 seconds.
  • #1541 use new components for nrf52 boards
  • #1543 Add support for USB bulk/interrupt on the nrf52 chip.
  • #1546 Update Rust nightly version
  • #1547 Use static_init in the DebugWriter component to create debug buffers.
  • #1548 Add kernel::debug::IoWrite trait and remove unsound str::from_utf8_unchecked (fix #1449)
  • #1550 readme: add link to docs.tockos.org
  • #1551 Add Analog_Comparator for nrf52840
  • #1553 doc: restore documentation for hidden items
  • #1554 Add support for structs with a lifetime parameter in register_structs.
  • #1556 Refactor Segger RTT and add a usb_debugging mode on the nRF52840-DK board
  • #1558 Fixing GPIO component and missing FloatingState
  • #1561 Add make audit command based on Cargo audit.
  • #1562 arch/rv32i: Implement proper atomic helper
  • #1564 chips: doc: update supported HIL table
  • #1565 kernel: Add trait for process restart policies
  • #1566 kernel: Add an "identifier" to AppId
  • #1567 libraries/riscv-csr: Fix warning under cargo test
  • #1570 CI: build the rust tools during CI
  • #1571 Update booting information with some details about RISC-V
  • #1574 arch/rv32i: Simplify mcause CSR parsing
  • #1578 boards/opentitan: Add support for the LED HIL
  • #1579 add set_vector_table_offset()
  • #1580 Create a log storage capsule
  • #1581 Layered networking capabilities
  • #1582 doc: fix syntax highlighting tag
  • #1587 arch/rv32i: Rework switch_to_userspace handler
  • #1588 kernel: give processes unique identifiers
  • #1589 Add support for RISC-V PMP
  • #1590 Printing system state refactoring between Chip and Process
  • #1592 chips/ibex: update for register layout changes
  • #1593 Removed useless allow(dead_code) in components.
  • #1594 Add OpenTitan Working Group
  • #1595 arch/rv32i: Fix up the PMP CFG offsets
  • #1596 Fix broken link to JTAG instructions
  • #1598 chips/ibex: Normalize timer interrupt handler
  • #1599 nrf52: remove duplicate radio reference
  • #1600 boards/opentitan: Hookup Low Level Debug (lldb)
  • #1601 Print out syscall return value as a format instead of a number
  • #1603 rv32i: pmp: use TOR in disable_mpu
  • #1604 arty-e21: enable PMP
  • #1605 opentitan: Increase the App memory
  • #1606 boards/opentitan: Fix bad pointer dereference
  • #1608 Correct Name Spelling
  • #1609 ADC Capsule: More work on supporting restarts.
  • #1610 boards/opentitan: Connect the GPIO capsule
  • #1611 Enable AES hardware block for OpenTitan
  • #1612 nRF51 Serialization: Support restarting apps
  • #1613 kernel: don't cache the process appid in main loop
  • #1614 CRC: Add set_client to HIL
  • #1615 opentitan: notes 2020-02-14
  • #1617 Update nrf52dk README
  • #1620 Notes from 2/21 call.
  • #1621 doc: wg: Add Silvestrs to the OpenTitan WG
  • #1622 doc: OpenTitan: add 2020-02-21 notes
  • #1623 Flash HIL: return buffers if errors
  • #1627 [libraries enum primitive]: fix failing tests
  • #1631 Update rust Feb, 2020
  • #1632 Add a threat model to Tock's documentation.
  • #1633 Updated the number of User LEDs for Nucleo_F429ZI
  • #1636 Fix race condition between DynamicDeferredCall and interrupts.
  • #1637 doc: notes from 2/28 core call
  • #1638 doc: ot: add 2020-02-28 notes
  • #1642 kernel: Fix recording last syscall
  • #1643 rust: remove all unused feature pragmas
  • #1644 chips/e310x: Fix spelling of suppress_all
  • #1645 doc: Update architecture diagram
  • #1647 chips/e310x: Remove unstable pragma
  • #1648 kernel: use NonNull, iterate on grant and appslice interfaces
  • #1649 chips/saml4: remove unstable pragma
  • #1653 kernel: stdize process_each and process_each_cap
  • #1655 Add new restart policy and configure hail to restart failed apps
  • #1656 kernel+process console: add grant usage
  • #1658 Add panic_button component and update the GPIO HIL accordingly.
  • #1659 Make UART control flow pin optional on Nordic boards.
  • #1660 DRAFT rust: disable frame pointers in the Tock kernel
  • #1661 Handle device register aliases explicitly
  • #1664 Generalize chip_layout.ld to Nordic boards and increase ROM size on nrf52840.
  • #1667 Implement a debug_enqueue! macro that writes to a ring buffer flushed only upon panicking.
  • #1668 Add --remap-path-prefix to make builds more deterministic and smaller.
  • #1669 Print a SHA-256 sum of built binaries, to check for reproducibility.
  • #1670 update rust to 2020-03-06
  • #1671 doc: ot: add notes 2020-03-06
  • #1672 Notes from Core-WG call 03/06
  • #1674 Porting to STM32F303 and STM32F3Discovery kit
  • #1677 [USB] Split each endpoint's state into independent IN and OUT sides.
  • #1678 Update I2cMaster driver number according to doc/syscalls/README.md
  • #1680 kernel: Add syscall filter to platform trait
  • #1681 Make nrf52* based boards compatible with bootloader.
  • #1683 Add @jrvanwhy to core team list
  • #1684 Updated nucleo to use components for led and alarm
  • #1686 Removed loop from io.rs panic_fmt for nucleo
  • #1687 Notes from core-WG call 03/13/20
  • #1688 Revert PR #1660
  • #1689 doc: ot: add notes from 2020-03-13
  • #1693 Fix remove_pending_callbacks formatting.
  • #1699 SAM4L: Update DMA peripheral driver
  • #1700 doc: wg: add core working group charter
  • #1704 opentitan: Disable aes_test
  • #1705 OpenTitan WG Roadmap
  • #1706 doc: ot: add notes 2020-03-19
  • #1708 Create core-notes-2020-03-20
  • #1709 added system call to set alarm to a relative tics
  • #1710 Add tock-on-titan's print_memory_usage.py script to the tools/ directory.
  • #1711 Updates size tool to have fixes requested in #1673
  • #1714 Use a Cargo workspace to make builds reproducible and speed up CI.
  • #1715 Capsule for HD44780 LCD
  • #1716 doc: ot: add 03-26-2020 notes
  • #1717 rv32i: pmp: Fix the app allocation calculator
  • #1719 tools: remove fixed bash interpreter path
  • #1722 stop running size reporting script in travis
  • #1723 capsule for l3gd20 3 axis gyro and temperature sensor
  • #1724 Remove option encapsulation in Kernel get_process_iter
  • #1725 added i2c component
  • #1729 added riscv toolchain to shell.nix
  • #1731 doc: ot: add notes 04-02-2020
  • #1732 doc: wg: opentitan: Move notes into right path
  • #1733 Cleanup core files in working group folder
  • #1734 move imix kernel tests into subdirectory
  • #1737 rust: Disable frame pointers on RISC-V targets only
  • #1738 rust: Turn on aggressive identical code folding
  • #1740 Core WG notes 04/03/2020
  • #1742 stm32f{3,4}xx: remove unused deferred calls code
  • #1743 Update stm32 boards makefiles
  • #1746 Fixed USART number for panic of stm32f3 boards
  • #1747 Notes from core-WG call 03/27/20
  • #1748 kernel: grant: fix allocation
  • #1749 add core-wg call notes from 4-10-2020
  • #1750 nRF52: Fix dynamic deferred calls
  • #1753 Bring back Travis memory reporting
  • #1755 capsules: remove block comment, rustfmt
  • #1757 capsules: virtual_uart: avoid double receive, check rx len, support custom buffer
  • #1759 doc: Update GPIO syscall for pseudo-stabilization
  • #1763 small grammar fixes + fix broken link
  • #1768 Notes from Core WG 04/17/2020 call
  • #1772 small fixes to docs
  • #1774 minor fixes to docs
  • #1778 rv32i,ibex: use ',' as sections specifier
  • #1779 capsules: process console: add fault to help msg
  • #1781 boards: hail: fix gpio pin assignments
  • #1782 OpenTitan fixes for 1.5
  • #1783 Updated instructions on running HiFive under qemu
  • #1785 fix imix in-kernel networking tests
  • #1786 rv32i: try a different section identifier
  • #1788 OpenTitan: README: Update the OpenTitan SHA
  • #1789 doc: Add syscall filter to syscall documentation
  • #1792 fix capability check error
  • #1793 Hifive updates
  • #1796 mark get_pin_mut() as unsafe
  • #1798 Add core WG talk notes for 2020-04-24.
  • #1804 doc: fix stack/data position on arch diagram
  • #1809 arty-e21 updates

Don't miss a new tock release

NewReleases is sending notifications on new releases.