Flash ROM, external QSPI, v1.1 vs. D's three variants
Posted: Mon May 11, 2020 6:46 pm
It's hard to get a really sold understanding of how nonvolatile storage works on PyBoard. The old v1.1 is described as 1024KiB ROM. But direct experience quickly reveals that the mounted drive has a capacity of 97KB. An old discussion on the forums (viewtopic.php?f=6&t=870&p=4997) clarifies how the ROM is used, including reservations for firmware, boot sectors etc., and also claims that a large portion is simply unusable by PyBoard because of some conflict with mem-mapping that I haven't taken too much time to try to understanding.
Not having purchased a PyBoard D yet, this confusion gives me concern that I can't really determine in advance what sort of working environment I will have if I purchase a D. Namely, I can't make purchasing decisions about *which* D model I need. For example, the two lower D models actually advertise only *half* the ROM of the much older v1.1, claiming to offer 512KiB ROM, while the third D is documented as providing twice the v1.1's at 2MiBs. But I don't have any clear picture of what these values really mean at the user-level. The v1.1 ambiguities (in which 1024 on paper becomes a mere 97 when boots hit the ground) suggests that I really don't know what sort of environment these three boards will give me. Do the two lower D models have more or less user ROM than the v1.1? How could it be less when the v1.1 only has 97 of real, usable space, but they certainly claim to have half as much on paper, so...? I dunno...?
Furthermore, there is a tantalizing one-liner in the descriptions of all three D models claiming "2MiB external QSPI flash with execute capabilities to extend internal flash" and second 2MiBs QSPI flash for file system and storage. Discussions elsewhere (viewtopic.php?t=6637) have clarified that one of these is read-only, for storing firmware or read-only data. Presumably that is in reference to the flash that with execute capabilities and internal flash extension, but I'm not sure what that really *means*. Are OS firmware images written to this external flash, thereby freeing up some of the internal flash to offer a larger user-accessible file system? Does this mean that 512 on paper is actually more usable space to the user than the v1.1's 1024 on paper by pushing most of the system-level storage to the external 2M module? I don't know! Help!
And how does one use the read-only data feature of this external 2MBs? I see some documentation about wiring up the board to write data to that flash, but even used as read-only data, how would my program "read it only" if that flash doesn't even mount as a visible file system (even in a read-only state).
And like the v1.1, is there some huge sector of the internal flash that is completely unusable by PyBoard so that the documented flash size is simply...overlooking such a gap? It would be nice to document what fraction of the described 2MiBs is simply "gone", just for clarification.
Lastly, as to the second external 2MiB flash, may I presume that appears as a nearly full-capacity (2MiBs) mounted volume for my own use? How large is that volume in reality once it is mounted?
I don't mean to complain. I understand resources and personnel are limited, and I'm super excited about trying out the D, but I can't make an informed decision about which of the three D models to buy based on the current information.
Thank you very much.
Cheers!
Not having purchased a PyBoard D yet, this confusion gives me concern that I can't really determine in advance what sort of working environment I will have if I purchase a D. Namely, I can't make purchasing decisions about *which* D model I need. For example, the two lower D models actually advertise only *half* the ROM of the much older v1.1, claiming to offer 512KiB ROM, while the third D is documented as providing twice the v1.1's at 2MiBs. But I don't have any clear picture of what these values really mean at the user-level. The v1.1 ambiguities (in which 1024 on paper becomes a mere 97 when boots hit the ground) suggests that I really don't know what sort of environment these three boards will give me. Do the two lower D models have more or less user ROM than the v1.1? How could it be less when the v1.1 only has 97 of real, usable space, but they certainly claim to have half as much on paper, so...? I dunno...?
Furthermore, there is a tantalizing one-liner in the descriptions of all three D models claiming "2MiB external QSPI flash with execute capabilities to extend internal flash" and second 2MiBs QSPI flash for file system and storage. Discussions elsewhere (viewtopic.php?t=6637) have clarified that one of these is read-only, for storing firmware or read-only data. Presumably that is in reference to the flash that with execute capabilities and internal flash extension, but I'm not sure what that really *means*. Are OS firmware images written to this external flash, thereby freeing up some of the internal flash to offer a larger user-accessible file system? Does this mean that 512 on paper is actually more usable space to the user than the v1.1's 1024 on paper by pushing most of the system-level storage to the external 2M module? I don't know! Help!
And how does one use the read-only data feature of this external 2MBs? I see some documentation about wiring up the board to write data to that flash, but even used as read-only data, how would my program "read it only" if that flash doesn't even mount as a visible file system (even in a read-only state).
And like the v1.1, is there some huge sector of the internal flash that is completely unusable by PyBoard so that the documented flash size is simply...overlooking such a gap? It would be nice to document what fraction of the described 2MiBs is simply "gone", just for clarification.
Lastly, as to the second external 2MiB flash, may I presume that appears as a nearly full-capacity (2MiBs) mounted volume for my own use? How large is that volume in reality once it is mounted?
I don't mean to complain. I understand resources and personnel are limited, and I'm super excited about trying out the D, but I can't make an informed decision about which of the three D models to buy based on the current information.
Thank you very much.
Cheers!