qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] What is the best git-way to add a new board?


From: Philippe Mathieu-Daudé
Subject: [Qemu-devel] What is the best git-way to add a new board?
Date: Mon, 28 May 2018 02:02:52 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0

Hi,

What is the best git-way to add a new board?
Thinking about testing/review.

The following ways occurred to me:


1/ how RISC-V boards got merged

  Add devices individually,
  finally add the board and default-configs/Makefile rules at once.

PRO: commits are easier to cherry-pick/rebase
CON: you can not test a single patch until applying the whole series
     harder (less interest) to write qtests


1bis/ example of the Smartfusion2 board

  Variant of 1/, but also modify the default-configs/Makefile to
  build each device.

PRO: single patch can be test without much troubles,
     unit/acceptance tests can be run without applying the whole series,
     different people can work in parallel.
CON: no integration test until the last 'board' commit


2/ Reverse Polish testing

  Add a board stub (all devices as UnimplementedDevice) and Makefile
  rule, then for each new device, replace the unimp board entry,
    modify the default-configs/Makefile,
    add unit/acceptance tests

PRO: you can add an integration test since the first board commit :)
       (enforcing Test Driven Development),
     allow unpaid contributor to slowly push his work upstream
       instead of painful rebases or his work lost by change of
       interest or worth issues.
CON: not acceptable by upstream except with good integration test
     integration test might not be upstream-able due to license
       incompatibilities (JTAG-extracted firmwares...)

The use of UnimplementedDevice is now a bit enforced by the
ignore_memory_transaction_failures flag.


Regards,

Phil.

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]