Hi, > > The problem with this is that I need the TSEG size in another module as > > well, namely PlatformPei. The dispatch order between PlatformPei and > > SmmAccessPei is unspecified (they have both TRUE for DEPEX). If > > PlatformPei gets dispatched second, I really wouldn't want to write to > > MCH_ESMRAMC again, just to query MCH_TSEGMB. (I couldn't just read > > MCH_TSEGMB because if PlatformPei were dispatched first, then MCH_TSEGMB > > would still be unset). > > > > In other words, I wouldn't like to write a register just to receive the > > information; I need the information in two places whose relative > > ordering is unspecified, and one of those already writes the register in > > question, genuinely. I guess I could hack it around with another dynamic > > PCD, but that's kind of ugly.
Hmm, this unspecified ordering works nicely today because tseg size is a compile time constant. If we make this dynamic we either need a pcd or must probe tseg size twice (no matter whenever this is some pci cfg space register or fw_cfg file), which is kind of ugly too ... > > If we invented a read-only, side-effect-free PCI config space register > > that gave me this value plain and simple (similarly to how a new fw_cfg > > file would do), that would be a lot cleaner for me. That makes the "probe twice" thing easier indeed. > > I think this would > > match your earlier alternative where you wrote "Alternatively we could > > add some qemu-specific register". Yes. cheers, Gerd _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

