On 8/15/26 21:57, Philippe Mathieu-Daudé wrote:
How much this diverges of the generic 8250 model we have?
In order to reduce maintenance burden with duplicated code, the
project preference is to use the inheritance pattern of oriented
bject programming, in particular with QOM APIs.
This model could inherit from our generic model with:
TypeInfo::parent = TYPE_SERIAL
then override its specific methods.
Could you have a look and justify the full rewrite?
Hi Phil,
Thanks for the review.
The rewrite was not meant as a replacement for the generic 8250. I
was following the K230 TRM as closely as I could, and I did not
realize the preferred approach was to reuse the in-tree 8250 via
QOM rather than reimplement the 16550 core.
I agree the duplication is not justified. I will respin this to
inherit from / reuse the generic serial model as you suggested,
and keep the DesignWare probe window that Linux 8250_dw needs
(UCV/CPR/CTR/DLF/USR).
One open question: the TRM (and CPR) advertise some DesignWare
extras beyond a plain 16550 — for example a 32-byte FIFO, THRE
mode, shadow registers, and USR busy-detect. The first version
implemented several of these, which is why it grew into a full
rewrite. For the respin, should I:
1) keep only the minimal probe window (CPR not advertising
features the generic model does not implement), or
2) plan follow-up work to model some of those DW extras?
I am happy either way; I mainly want to know which level of
fidelity is good.
If the pending generic dw8250 lands first, I can also switch the
K230 board over to that type instead of keeping a parallel model.
Thanks,
WX Chen