How to ask if a person has done/had breakfast?

Solution 1:

It would usually be either “Did you have breakfast?” or “Have you had breakfast?” Also fine are “Did you eat… ?” and “Have you eaten… ?”

If it is — say — mid-morning, and you want to know if someone has already eaten today, then “Have you had/eaten breakfast?” (possibly “…yet?”) is probably the more natural form (since they might still have the breakfast in question), but either is fine. If you’re asking about a previous day, or asking in the afternoon (so that it’s too late for them to have that breakfast), then it should be “Did you have/eat breakfast?”

To do breakfast (or any other meal) has a slightly different connotation: not just eating the meal, but specifically meeting someone for it, usually to discuss business. Unless you’re specifically talking about this situation, Did you do breakfast? is probably not what you want.

Google ngrams data for corroboration.

Solution 2:

Did you have your breakfast? Did is telling that it is past so there is no need to put another past word for it.

You can use "I ate my breakfast./ I had my breakfast." Also you can say : I breakfasted

Solution 3:

Normally, one would say, "Have you had breakfast?" or "Did you have breakfast [yet]?" to ask if someone has eaten breakfast on a particular day or morning.

When used with breakfast, do can also mean eat (besides make, etc). However, this usage has more to do with frequency than anything else. Thus, the following example is valid: "I don't do breakfast on Sundays." Another: "Did you do breakfast today?" In fact, you might notice that, in regular conversation, do breakfast is mostly used in the first person and rarely in the interrogative.

It is unidiomatic (but not incorrect) to say, "Have you done breakfast?" to ask if someone has eaten breakfast.