qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/10] hw/sd: Start splitting SD vs SPI protocols
@ 2021-06-24 14:21 Philippe Mathieu-Daudé
  2021-06-24 14:22 ` [RFC PATCH 01/10] hw/sd: When card is in wrong state, log which state it is Philippe Mathieu-Daudé
                   ` (10 more replies)
  0 siblings, 11 replies; 29+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-06-24 14:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-block, Andrew Jeffery, Bin Meng, Philippe Mathieu-Daudé,
	Cédric Le Goater, Joel Stanley

Hi Cédric,

After our discussion yesterday about how to add support for MMC
(and eMMC) I looked at how to easily add these bus protocols,
which might have commands quite different, avoiding to have big
unreadable if/else statements.

I'm not yet happy enough with the result but it is a starting
point which keeps things still simple.
What I'm wondering is if we could include the command classes
(as another dimension in the array). Also if we could use the
older spec version supported as base set of commands, and if the
user asks for more recent spec version, for each version we
overwrite the array of commands. Thoughts?

Phil.

Philippe Mathieu-Daudé (10):
  hw/sd: When card is in wrong state, log which state it is
  hw/sd: Extract address_in_range() helper, log invalid accesses
  hw/sd: Move proto_name to SDProto structure
  hw/sd: Introduce sd_cmd_handler type
  hw/sd: Add sd_cmd_illegal() handler
  hw/sd: Add sd_cmd_unimplemented() handler
  hw/sd: Add sd_cmd_GO_IDLE_STATE() handler
  hw/sd: Add sd_cmd_SEND_OP_CMD() handler
  hw/sd: Add sd_cmd_ALL_SEND_CID() handler
  hw/sd: Add sd_cmd_SEND_RELATIVE_ADDR() handler

 hw/sd/sd.c | 251 ++++++++++++++++++++++++++++++-----------------------
 1 file changed, 143 insertions(+), 108 deletions(-)

-- 
2.31.1



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2021-06-28 11:27 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-24 14:21 [RFC PATCH 00/10] hw/sd: Start splitting SD vs SPI protocols Philippe Mathieu-Daudé
2021-06-24 14:22 ` [RFC PATCH 01/10] hw/sd: When card is in wrong state, log which state it is Philippe Mathieu-Daudé
2021-06-25  7:27   ` Bin Meng
2021-06-24 14:22 ` [RFC PATCH 02/10] hw/sd: Extract address_in_range() helper, log invalid accesses Philippe Mathieu-Daudé
2021-06-25  7:27   ` Bin Meng
2021-06-24 14:22 ` [RFC PATCH 03/10] hw/sd: Move proto_name to SDProto structure Philippe Mathieu-Daudé
2021-06-25  7:27   ` Bin Meng
2021-06-28  7:27   ` Cédric Le Goater
2021-06-24 14:22 ` [RFC PATCH 04/10] hw/sd: Introduce sd_cmd_handler type Philippe Mathieu-Daudé
2021-06-25 13:46   ` Bin Meng
2021-06-28  7:29   ` Cédric Le Goater
2021-06-28 11:25     ` Philippe Mathieu-Daudé
2021-06-24 14:22 ` [RFC PATCH 05/10] hw/sd: Add sd_cmd_illegal() handler Philippe Mathieu-Daudé
2021-06-25 13:47   ` Bin Meng
2021-06-26  9:48     ` Philippe Mathieu-Daudé
2021-06-28  7:31   ` Cédric Le Goater
2021-06-24 14:22 ` [RFC PATCH 06/10] hw/sd: Add sd_cmd_unimplemented() handler Philippe Mathieu-Daudé
2021-06-25 13:49   ` Bin Meng
2021-06-25 17:17     ` Philippe Mathieu-Daudé
2021-06-26  3:31       ` Bin Meng
2021-06-26  9:43         ` Philippe Mathieu-Daudé
2021-06-24 14:22 ` [RFC PATCH 07/10] hw/sd: Add sd_cmd_GO_IDLE_STATE() handler Philippe Mathieu-Daudé
2021-06-25 13:49   ` Bin Meng
2021-06-24 14:22 ` [RFC PATCH 08/10] hw/sd: Add sd_cmd_SEND_OP_CMD() handler Philippe Mathieu-Daudé
2021-06-24 14:22 ` [RFC PATCH 09/10] hw/sd: Add sd_cmd_ALL_SEND_CID() handler Philippe Mathieu-Daudé
2021-06-25 13:50   ` Bin Meng
2021-06-24 14:22 ` [RFC PATCH 10/10] hw/sd: Add sd_cmd_SEND_RELATIVE_ADDR() handler Philippe Mathieu-Daudé
2021-06-25 13:51   ` Bin Meng
2021-06-28  7:54 ` [RFC PATCH 00/10] hw/sd: Start splitting SD vs SPI protocols Cédric Le Goater

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).