BootROM vs OTP ROM vs ...

261 views
Skip to first unread message

Paul Sokolovsky

unread,
Jul 16, 2015, 8:08:33 AM7/16/15
to esp82...@googlegroups.com
Hello,

Well, http://esp8266-re.foogod.com/wiki/Glossary#BootROM says it all. I
propose to call internal mask ROM of esp8266 bootrom, and don't call it
anything else to avoid confusion. BootROM is still a bit misnomer,
better name might be something like "ROMLib", but I didn't hear such
term, so again it would be confusing. BootROM however is generally
accepted term, and any CPU beyond the simplest 8-bitters has one, and
of course it contains some routine library, at least to support a
bootloader. The difference is only whether functions in it are
"exported" or not.

--
Best regards,
Paul mailto:pmi...@gmail.com

Alex Stewart

unread,
Jul 16, 2015, 2:10:56 PM7/16/15
to Paul Sokolovsky, esp82...@googlegroups.com
Frankly, I prefer "OTP ROM" for a few reasons:
  • It's descriptive of exactly what it is.  It is the one-time-programmable ROM built into the chip.  This is a well-defined and understood term in the industry, and is not easily confusable with other things.
  • "Boot ROM" is unclear and confusing.  This architecture actually has a multiple-stage bootloader, part of which is in the OTP ROM and part is loaded from Flash.  Is the second stage bootloader part of the "boot ROM" or not?
  • "Boot ROM" is also misleading because the OTP ROM contains a lot more than just boot code (i.e. library routines, etc, as you mentioned)
FYI, I know people have speculated various ways, but it's pretty clear to me that the OTP ROMs are in fact non-reprogrammable mask ROMs (and thus actually OTP).  The reason I'm fairly sure of that is because in the Xtensa ISA documentation, it lists built-in mask ROM as a selectable option of the architecture, but built-in flash does not appear to be an option provided by Tensilica..

--Alex

--
You received this message because you are subscribed to the Google Groups "esp8266-re" group.
To unsubscribe from this group and stop receiving emails from it, send an email to esp8266-re+...@googlegroups.com.
To post to this group, send email to esp82...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/esp8266-re/20150716150831.3aa49bfb%40x230.
For more options, visit https://groups.google.com/d/optout.

Paul Sokolovsky

unread,
Jul 16, 2015, 2:42:44 PM7/16/15
to Alex Stewart, esp82...@googlegroups.com
Hello,

On Thu, 16 Jul 2015 11:10:56 -0700
Alex Stewart <foo...@gmail.com> wrote:

> Frankly, I prefer "OTP ROM" for a few reasons:
>
> - It's descriptive of exactly what it is. It is the
> one-time-programmable ROM built into the chip.

Sorry, "one-time-programmable" means "one time programmable by the
customer". E.g., many SoC have OTP fuses - device vendor burns them,
and user forever caught in a locked bootloader.

> This is a
> well-defined and understood term in the industry, and is not easily
> confusable with other things.
> - "Boot ROM" is unclear and confusing. This architecture actually
> has a multiple-stage bootloader, part of which is in the OTP ROM and
> part is loaded from Flash. Is the second stage bootloader part of
> the "boot ROM" or not?
> - "Boot ROM" is also misleading because the OTP ROM contains a lot

Alex Stewart

unread,
Jul 16, 2015, 3:53:04 PM7/16/15
to Paul Sokolovsky, esp82...@googlegroups.com
Sorry, "one-time-programmable" means "one time programmable by the
customer". E.g., many SoC have OTP fuses - device vendor burns them,
and user forever caught in a locked bootloader.

No, "one-time-programmable" means it can be programmed one time.  It does not say anything about who programs it.

And actually, your example is almost exactly what is happening here:  The SoC fabricator (Tensilica/Cadence) create the chip (to Espressif's specifications) with an OTP ROM region.  The vendor (Espressif) then programs it, and passes it on to the end users (us) who are locked into what they have programmed into that region and cannot change it.

Please note, however, that your example is technically wrong in that a fused EEPROM is not the same thing as an OTP ROM.  (A fused ROM can be rewritten multiple times up until it is fused, whereas an OTP ROM cannot)

--Alex

Paul Sokolovsky

unread,
Jul 16, 2015, 4:33:22 PM7/16/15
to Alex Stewart, esp82...@googlegroups.com
Hello,

On Thu, 16 Jul 2015 12:53:04 -0700
Alex Stewart <foo...@gmail.com> wrote:

> >
> > Sorry, "one-time-programmable" means "one time programmable by the
> > customer". E.g., many SoC have OTP fuses - device vendor burns them,
> > and user forever caught in a locked bootloader.
>
>
> No, "one-time-programmable" means it can be programmed one time. It
> does not say anything about who programs it.
>
> And actually, your example is almost exactly what is happening here:
> The SoC fabricator (Tensilica/Cadence) create the chip (to Espressif's
> specifications) with an OTP ROM region. The vendor (Espressif) then
> programs it, and passes it on to the end users (us) who are locked
> into what they have programmed into that region and cannot change it.
>
> Please note, however, that your example is technically wrong in that a
> fused EEPROM is not the same thing as an OTP ROM. (A fused ROM can be
> rewritten multiple times up until it is fused, whereas an OTP ROM
> cannot)

Final argument I would have is referring to the Real World. So, here's
what wikipedia thinks about it:
https://en.wikipedia.org/wiki/One-time_programmable . Note that it
actually redirects to another page, but apparently many (several?)
people found it acceptable. Note also that you can find arguments for
your treatment of the matter ("depending on the technology, can be
programmed at wafer"). But that's just another argument why using terms
like "OTP ROM" or "BootROM" are not ideal - because nobody really knows
whether technology for ESP8266's BootROM is OTP or Mask, it's rather
strange to make any claims about the technology.

Usage of BootROM:
https://www.google.com/search?q=bootrom+pdf (in plain words, almost any
datasheet which talks about internal ROM on a chip calls it BootROM).

Feel free to provide references for wide acceptance of "OTP ROM
which is not programmable" meaning (googling for "OTP ROM" gives
arguments for "my" treatment of it, at least in my reading).

Alex Stewart

unread,
Jul 27, 2015, 3:43:14 PM7/27/15
to Paul Sokolovsky, esp82...@googlegroups.com
So I've been thinking about this a bit more, and while I'm still not sure I entirely accept your argument, it does occur to me that a valid point is that OTP and mask ROM are not the same thing, and it is actually quite likely that what we're talking about is probably actually mask ROM, not OTP, so calling it OTP would be potentially misleading/confusing (particularly since it is actually possible/likely that the chip may have both mask and OTP on it for different purposes).

So in lieu of anything better to call it (and to prevent us getting too bogged down in semantic details/arguments instead of what we're actually here for (reverse engineering)), I suppose I can accept "Boot ROM" as the recommended term..

If nobody else has objections, I'll see about going through and updating the bits that currently refer to "OTP" when I have some time so we can keep everything consistent..

--Alex

Tom Trebisky

unread,
Mar 3, 2017, 5:48:29 PM3/3/17
to esp8266-re
I would have to chime in and say that technically it is mask ROM.  OTP rom implies delivery to the customer in unprogrammed form.
Usually OTP rom devices are actually UV erasable rom devices in a package without a window.  

But I just call it "the bootrom" with the understanding that routines in it do form a useful library of functions. 
Reply all
Reply to author
Forward
0 new messages