Skip to content

Latest commit

 

History

History
172 lines (118 loc) · 7.11 KB

File metadata and controls

172 lines (118 loc) · 7.11 KB

QD-Bootloader

Qorix Developer — Bootloader Configuration Feature Collaboration workspace between the Qorix Developer team and the Bootloader team for designing and implementing the BPCT (Bootloader Parameters Configurator Tool) feature inside Qorix Developer.


Overview

The qd-bootloader repo is the single working space for everything related to bringing bootloader configuration into Qorix Developer. The goal is to replace the current workflow — where bootloader parameters are hardcoded as #define values scattered across static .c/.h files — with a structured, YAML-driven visual designer experience fully integrated into the Qorix IDE.

When complete, the BPCT feature will allow engineers to configure all 18 bootloader modules through a set of six purpose-built visual designers, validate constraints in real time, and generate the three build artifacts consumed by BBT (Bootloader Build Tool): .mak, cfg.h, and cfg.c.

User configures in Qorix Designer
          │
          ▼
    bl-*.yaml  (YAML — single source of truth)
          │
          ▼
   BPCT Generator (Rust Domain Service)
          │
    ┌─────┼─────┐
   .mak  cfg.h  cfg.c
          │
          ▼
   BBT (Bootloader Build Tool)
          │
          ▼
    .S-record binary → CT → ET → DDT → ECU Flash

Repository Structure

qd-bootloader/
│
├── 01-template/
│   └── BPCT_Parameter_Catalogue_v1.xlsx     # Phase 1 working document
│
├── 10-workingGroup/
│   └── Flash_Bootloader_Collaboration_Workflow.md   # 6-phase collaboration framework
│
├── 20-designers/
│   └── BPCT_Bootloader_Configuration_Designers.md   # Designer specifications (BD1–BD6)
│
├── 30-mock-ups/
│   └── BPCT_Designers_Mockup.html           # Interactive HTML mockup (open in browser)
│
└── README.md

01-template/ — Working Templates

File Description
BPCT_Parameter_Catalogue_v1.xlsx Parameter catalogue spreadsheet for Phase 1 discovery workshops. Contains 6 sheets: Instructions, Module Registry (all 18 BPCT modules), Parameter Catalogue (55 pre-filled sample parameters), Module Relationships matrix, Validation Rules registry, and Summary Dashboard. Config ID: PC01_BL_PRODUCT_TOOLREQ.

10-workingGroup/ — Collaboration Framework

File Description
Flash_Bootloader_Collaboration_Workflow.md Formal six-phase collaboration framework between the Qorix Developer team and the Bootloader team. Covers: Phase 1 parameter discovery, Phase 2 methodology document, Phase 3 schema design, Phase 4 code generation contract, Phase 5 validation rules, Phase 6 CI integration.

20-designers/ — Designer Specifications

File Description
BPCT_Bootloader_Configuration_Designers.md Full specification for all six BPCT visual designers (BD1–BD6). Each section covers: backing YAML file, BPCT modules, output files, key parameters with binding times, cross-designer constraints, and validation rules. Includes relationship map and phased implementation recommendation.

30-mock-ups/ — Interactive Prototypes

File Description
BPCT_Designers_Mockup.html Self-contained interactive mockup of all six designers in Qorix IDE style. Open directly in any browser — no server required. Includes clickable MCU selector, flash memory map, UDS state machine, timing chain diagram, and security chain view.

The Six BPCT Designers

ID Designer Backing YAML BPCT Modules Outputs
BD1 Project & MCU bl-project.yaml GEN, MCU .mak, cfg.h
BD2 Communication bl-communication.yaml COMM .mak, cfg.h
BD3 Memory & Flash bl-memory.yaml MEM, DECOMP .mak, cfg.h, cfg.c
BD4 Core & Diagnostics bl-core.yaml BL, BOOTMGR, DIAG, SCHED, CRC, OEM cfg.h, cfg.c
BD5 Timing & HW Peripherals bl-hardware.yaml TIMER, WDG, PORT, SPI cfg.h
BD6 Crypto & Security bl-security.yaml CRYFLASH, CRYBOOT, CRYENC .mak, cfg.h, cfg.c

See 20-designers/BPCT_Bootloader_Configuration_Designers.md for the full specification.


BPCT Module Coverage

The 18 bootloader modules from the BPCT specification (v1.0.1, 28-May-2025) are fully covered across the six designers:

Core Bootloader — BootManager, Bootloader, Diagnostic, General/Common, Scheduler, CRC & Callbacks

Memory — Memory (PFlash/DFlash/NVM), Decompression

Cryptography — Crypto – Secure Flash, Crypto – Secure Boot, Crypto – Encryption

Communication — CAN, CAN-FD, LIN, Flexray, Ethernet

Hardware / MCAL — MCU, Timer, Port, SPI/QSPI, Watchdog

OEM — OEM Extensions & Callbacks


Getting Started

1. Run the Mockup

Open the interactive mockup in your browser — no installation required:

open 30-mock-ups/BPCT_Designers_Mockup.html
# or on Windows:
start 30-mock-ups/BPCT_Designers_Mockup.html

Switch between all six designers using the tab bar at the top. Each designer shows the canvas, properties panel, live YAML preview, and validation panel.

2. Fill in the Parameter Catalogue

Open 01-template/BPCT_Parameter_Catalogue_v1.xlsx in Excel. Use this in Phase 1 discovery workshops with the Bootloader team to catalogue all configurable parameters across the 18 BPCT modules.

Key columns to fill: Parameter Name (exact #define), Source File + Line, Default Value, Valid Range, Binding Time (pre-compile / link-time / post-build), and Output File (.mak / cfg.h / cfg.c).

3. Review the Collaboration Workflow

Read 10-workingGroup/Flash_Bootloader_Collaboration_Workflow.md before the first workshop with the Bootloader team. It defines role ownership, the data exchange format, and the CI pipeline contract for the full six-phase rollout.


Phased Implementation Plan

The recommended MVP-first delivery order:

Phase Designers Description
MVP BD1 → BD2 → BD3 → BD4 Non-secure bootloader — covers all parameters needed to compile a .S-record via BBT
Phase 2 BD5 Timing chain and hardware peripheral configuration
Phase 3 BD6 Security-enabled bootloader — crypto chain, Secure Boot, Encryption

Collaboration

This repo is a joint workspace between the Qorix Developer team and the Bootloader team.

Role Responsibility
Bootloader Team Parameter owners — define valid ranges, constraints, source file references
Qorix Team Tool implementors — build designers, YAML schemas, code generators, validation rules

Support contact: NOS_BOOTLOADER (see QORIX support system)

For questions about this repo, open an issue or contact the Qorix Developer team.


Reference

  • BPCT Tooling Discussions: v1.0.1 — 28-May-2025
  • Config ID: PC01_BL_PRODUCT_TOOLREQ
  • Approved by: Ravishankar B M
  • AUTOSAR Methodology reference: AUTOSAR FO RS Methodology R24-11