flashrom
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
August 2017
- 16 participants
- 51 discussions
On Thu, 17 Aug 2017 10:23:54 +0100
Richard Hughes <hughsient(a)gmail.com> wrote:
> On 17 August 2017 at 10:18, Stefan Tauner <stefan.tauner(a)gmx.at> wrote:
> > However, this is inevitable sometimes as explained before... so maybe
> > we need some additional message passing indicating the different
> > reasons for a "change of plans" so that the UI can react? (which is
> > exactly the type of complication I wanted to avoid ;)
>
> I think a status enum of something like RESET would be enough to show
> something hand-wavey in the UI, e.g. "Sorry for the delay, trying
> harder..."
Am I the only one seeing a contradiction to what you wrote half an hour
ago (below)? Did I miss something?
On Thu, 17 Aug 2017 09:58:25 +0100
Richard Hughes <hughsient(a)gmail.com> wrote:
> If the percentage does go backwards then we need to give the user a
> really good reason of why, otherwise users *will* file issues and bugs
> about it.
--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner
4
5
Contexts in the libflashrom interface (was: Using libflashrom from fwupd)
by Nico Huber Aug. 18, 2017
by Nico Huber Aug. 18, 2017
Aug. 18, 2017
Yet another thread (YAT?).
>
> flashrom_set_progress_callbacks(flashrom_progress_cb *cb_progress,
> flashrom_progress_event_cb *cb_event, void *user_data); < We might need
> to add a flashrom context here? No idea how the current staging
> implementation works but eventually we want to fix the hidden internal
> state...
Yes, there should be a context. I've already started to add an imaginary
flashrom_programmer context but forgot the even lower functions like
flashrom_init(), flashrom_set_log_callback()...
So add a third one? `struct flashrom_context`? It wouldn't matter how
we handle them internally, e.g. they could all point to the same object
or even be NULL pointers for the start. Just having one for the global
stuff like logging, one for the programmer and one for the chip seems
reasonable and should give us all the flexibility we need for the future.
Nico
2
1
Aug. 17, 2017
Hi,
starting a new thread for this because it's somewhat orthogonal.
> [...] The progress would not be
> constant in speed (e.g. because reading is usually much faster than
> writing), and it would sometimes even be non-monotonic (if a write
> fails, we re-read the whole chip to make absolutely sure we get
> everything correct thus increasing the total number of bytes to
> transfer...
That's an internal that I'd really try to avoid to build the progress
interface around. Actually I'd like to get rid of this fallback semantic
at least in the library version of flashrom_flash_write(). Some reasons
why:
* I've seen this fallback (not) working in the following cases:
1. Unreliable connection – fallback made things even worse, usually
erasing the whole chip.
2. Wrong flash chip selected – is that a valid use case?
3. Locked opcodes in the programmer – we could just ask the programmer
beforehand if it's supposed to work.
* The complex procedure is very far from what someone would expect when
he calls a write function.
Instead, the caller could set a hint in the flash context if a specific
erase function should be used (to work around issues that shouldn't
exist, ahem).
Thoughts?
Nico
1
0
On 17 August 2017 at 12:41, Stefan Tauner <stefan.tauner(a)gmx.at> wrote:
> If we want to make the life of the caller easier and notify it of these
> events we should not use the "enum flashrom_progress_stage" parameter
> for it or rename it. I'd rather separate these two things completely
> like this:
> enum flashrom_progress_stage {
> enum flashrom_progress_event {
Looks sane to me.
> FLASHROM_PROGEV_SKIP_{STEP, STAGE}, /* If and when we skip a step, or possibly even stage */
> Is this useful at all?
I don't think showing the skip is super useful.
> The disadvantage is that this is completely non-linear speed and
> there need to exist prior knowledge in the caller.
This is something I tried to do with libhif:
https://github.com/rpm-software-management/libdnf/blob/master/libdnf/dnf-st…
-- and it gets really hard, really fast. I think linear speed is a
nice thing to have, but don't bust a kidney over it. Remember at the
moment I've screen-scraping addresses...
> - Go fully berserk and add another callback that informs the
> application of the overall plan/layout of stages flashrom will do.
Or maybe in the progress callback just have ints for the number of
stages to complete and the number of states that are completed. If the
UI wants global then it can do the simple math to make it one value,
otherwise it just ignores the stages.
Richard
1
0
On Thu, 17 Aug 2017 09:58:25 +0100
Richard Hughes <hughsient(a)gmail.com> wrote:
> If the percentage does go backwards then we need to give the user a
> really good reason of why, otherwise users *will* file issues and bugs
> about it.
However, this is inevitable sometimes as explained before... so maybe
we need some additional message passing indicating the different
reasons for a "change of plans" so that the UI can react? (which is
exactly the type of complication I wanted to avoid ;)
The other alternative to that (besides not showing exact progress) would
be to stall it while the action catches up again but that's according
to your suggestions re. "percent" not feasible either (and I fully
agree).
--
Kind regards/Mit freundlichen Grüßen, Stefan Tauner
2
1
Hi Richard, David,
On 16.08.2017 23:02, David Hendricks wrote:
> On Tue, Aug 15, 2017 at 4:55 AM, Richard Hughes <hughsient(a)gmail.com> wrote:
>
>> Hi all,
>>
>> I'm the maintainer of fwupd, which is a daemon for doing firmware
>> updates in Linux. Using fwupd about 200,000 people update firmware
>> every month. At the moment I have an out-of-tree patch to use the
>> flashrom CLI for updating coreboot on Purism laptops, which exec's a
>> flashrom binary with the correct arguments and then screen scrapes the
>> output. This is less than ideal. I saw the appearance of a libflashrom
>> in the staging branch and got very excited. I'm assuming the long term
>> goal here is to install a shared with stable API/ABI library and a
>> pkg-config file. If so, please keep reading.
I'm only using it as a static library, kept reading anyway :) The cur-
rent API is to be considered unstable. We'd like to have it stabilized
before the next release (whenever that may happen), but it's not a top
priority.
>>
>> One thing that is really important for fwupd is progress completion;
>> as flashing the firmware is an inherently scary thing to do users do
>> like to see a progress bar move from 0% to 100% in a gradual way as
>> it's very re-assuring. This is even more important for the GUI, where
>> people that just see a spinner don't know if the process is going to
>> take 10 seconds, or 10 minutes.
>>
>
> Agreed! Especially since a lot of users have large chips, slow programmers,
> or sometimes both. Simple read operations can take a worryingly long time
> on some common hardware these days.
>
>
>>
>> Would it be possible to have a process callback for
>> flashrom_image_read(), flashrom_image_write() and
>> flashrom_image_verify()? It'd need to have some kind of callback
>> userdata too, for instance:
You already helped to improve our API: I forgot that one might need a
userdata pointer for the log callback. Will fix that...
>>
>> int flashrom_image_verify(struct flashrom_flashctx *, const void
>> *buffer, size_t buffer_len, flashrom_progress_callback callback_fn,
>> void *callback_user_data);
>>
>> and also:
>>
>> typedef void(flashrom_progress_callback)(uint64 completed, unit64
>> total, void *user_data)
I guess this would suffice for read and verify, which are simple,
continuous operations. Write, however, is comprised of one, two or three
steps (depending on options and the data): Read (needed to know which
bytes have to change), (comparing to the data to be written) write (if
necessary) and optionally verify. So there is no straight forward way
to tell during read, for instance, if we are at 100% after the read or
not. We could compare the data early, but that might result in an awk-
ward implementation. My idea (not yet convinced if it's any good) would
be to add a `stage` parameter to the callback:
enum flashrom_progress_stage {
FLASHROM_PROGRESS_READ,
FLASHROM_PROGRESS_WRITE,
FLASHROM_PROGRESS_VERIFY,
};
>>
>
> The short answer is yes. Nico also briefly mentioned an idea on IRC to use
> a mechanism similar to flashrom_set_log_callback() to avoid complicating
> function signatures for the read, write, and verify functions.
Correct, I would prefer a method to set the current callback and private
pointer over adding more parameters. Though, we could have another set
of functions ofc, with more parameters.
Richard, please let us know, what you'd prefer. After all, the interface
should be designed to be most usable (and not driven by internals). e.g.
do you expect the callback or the userdata pointer to change between
calls?
>
>>
>> I'm not familiar at all with flashrom internals, but could try to
>> produce a patch if required -- although to propagate the progress
>> through operations would mean patching a lot of chip->read() callbacks
>> which probably requires a more experienced hand. Ideas welcome,
>> thanks.
I'd be glad to help implementing it. But let's discuss the interface
first.
Nico
4
3
On Tue, Aug 15, 2017 at 4:55 AM, Richard Hughes <hughsient(a)gmail.com> wrote:
> Hi all,
>
> I'm the maintainer of fwupd, which is a daemon for doing firmware
> updates in Linux. Using fwupd about 200,000 people update firmware
> every month. At the moment I have an out-of-tree patch to use the
> flashrom CLI for updating coreboot on Purism laptops, which exec's a
> flashrom binary with the correct arguments and then screen scrapes the
> output. This is less than ideal. I saw the appearance of a libflashrom
> in the staging branch and got very excited. I'm assuming the long term
> goal here is to install a shared with stable API/ABI library and a
> pkg-config file. If so, please keep reading.
>
> One thing that is really important for fwupd is progress completion;
> as flashing the firmware is an inherently scary thing to do users do
> like to see a progress bar move from 0% to 100% in a gradual way as
> it's very re-assuring. This is even more important for the GUI, where
> people that just see a spinner don't know if the process is going to
> take 10 seconds, or 10 minutes.
>
Agreed! Especially since a lot of users have large chips, slow programmers,
or sometimes both. Simple read operations can take a worryingly long time
on some common hardware these days.
>
> Would it be possible to have a process callback for
> flashrom_image_read(), flashrom_image_write() and
> flashrom_image_verify()? It'd need to have some kind of callback
> userdata too, for instance:
>
> int flashrom_image_verify(struct flashrom_flashctx *, const void
> *buffer, size_t buffer_len, flashrom_progress_callback callback_fn,
> void *callback_user_data);
>
> and also:
>
> typedef void(flashrom_progress_callback)(uint64 completed, unit64
> total, void *user_data)
>
The short answer is yes. Nico also briefly mentioned an idea on IRC to use
a mechanism similar to flashrom_set_log_callback() to avoid complicating
function signatures for the read, write, and verify functions.
>
> I'm not familiar at all with flashrom internals, but could try to
> produce a patch if required -- although to propagate the progress
> through operations would mean patching a lot of chip->read() callbacks
> which probably requires a more experienced hand. Ideas welcome,
> thanks.
>
> Richard.
>
> _______________________________________________
> flashrom mailing list
> flashrom(a)flashrom.org
> https://mail.coreboot.org/mailman/listinfo/flashrom
>
1
0
On 09.08.2017 23:10, Ian Stewart wrote:
> Thanks guys, this gives me some more things to try. I'll unplug the CMOS
> battery to be sure to cut all power for a while, then try to connect some
> additional pins if that doesn't work. What's this hack you mention about
> the /CS problem?
>> [1] https://paste.flashrom.org/view.php?id=3042
It sends a dummy read before every actual command to make sure /CS is
easier to assert. Might be achieved in different ways, this is just
the programmer independent one.
Nico
>
> The support is much appreciated,
> Ian
>
> On Wed, Aug 9, 2017 at 3:41 PM, Nico Huber <nico.h(a)gmx.de> wrote:
>
>> Hi Ian,
>>
>> jumping in here late because I had no idea yet how to help you.
>>
>> On 04.08.2017 16:26, Ian Stewart wrote:
>>> Hi There,
>>>
>>> I keep getting Verifying flash... FAILED messages over and over while
>>> trying to flash an 8mb x200 chip. I'd say I've gotten the message ~10
>>> times now and I've tried at different spispeeds as well. For the record
>>> I've flashed a x60 and a different x200 before without issues so I don't
>>> think I'm missing anything (although both were 4mb chips so they used a
>>> different Pomona clip).
>>
>> The X200 is often hard to flash. Though, the usual problem is some kind
>> of capacitance on the /CS line which would show many more irregularities
>> (e.g. the probing would already be unreliable and not as consistent as
>> below, with all the id1 0xc2, id2 0x2017). You can of course try my hack
>> to work around the /CS problem [1], nevertheless.
>>
>>>
>>> Any ideas to get this working?
>>
>> Not yet. But a clue: The parts where your writing fails are all in the
>> ME region, I suppose (or where the ME region was before in case your
>> image tries to change that). If the other devices had smaller flash
>> chips, probably because they don't have an ME. It could be that the ME
>> is still active and interferes or even overwrites your data. If you
>> haven't tried already: Cut all power to the device for some minutes
>> (battery, power adapter, and flash clip in case).
>>
>> As there are only 0x306d bytes left that haven't been written cor-
>> rectly, you can also try to write again and again and see if that
>> number gets lower.
>>
>> Another thought: You can build a firmware (e.g. coreboot) that only
>> uses the upper most part of the flash chip and try to write that. You
>> already succeeded to write that part once (a :S in the output means
>> the contents stayed because they were already what was supposed to be
>> written), so it might work again in that region.
>>
>> And you should ofc try what David suggested. If you don't know for
>> 100% that you don't need to connect a pin, connect it respectively!
>>
>> Nico
>>
>> [1] https://paste.flashrom.org/view.php?id=3042
>>
>>>
>>> Thanks for your work on this project.
>>> Cheers,
>>> Ian
>>>
>>>
>>> root@beaglebone:/home/libreboot_r20160907_util/flashrom/armv7l#
>> ./flashrom
>>> -p linux_spi:dev=/dev/spidev1.0,spispeed=
>>> 512 -w x200_8mb_usqwerty_vesafb.rom -V
>>> flashrom v0.9.9-unknown on Linux 3.8.13-bone79 (armv7l)
>>> flashrom is free software, get the source code at https://flashrom.org
>>>
>>> flashrom was built with libpci 3.1.9, GCC 4.6.3, little endian
>>> Command line (5 args): ./flashrom -p linux_spi:dev=/dev/spidev1.0,
>> spispeed=512
>>> -w x200_8mb_usqwerty_vesafb.rom -V
>>> Calibrating delay loop... OS timer resolution is 5 usecs, 332M loops per
>>> second, 10 myus = 11 us, 100 myus = 101 us,
>>> 1000 myus = 1037 us, 10000 myus = 10905 us, 20 myus = 22 us, OK.
>>> Initializing linux_spi programmer
>>> Using device /dev/spidev1.0
>>> Using 512 kHz clock
>>> The following protocols are supported: SPI.
>>> Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25LQ16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for AMIC A25LQ032/A25LQ32A, 4096 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for AMIC A25LQ64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT25DF641(A), 8192 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT25DL081, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT25DL161, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT25F512, 64 kB: probe_spi_at25f: id1 0xff, id2 0xff
>>> Probing for Atmel AT25F512A, 64 kB: probe_spi_at25f: id1 0xff, id2 0xff
>>> Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Atmel AT25F1024(A), 128 kB: probe_spi_at25f: id1 0xff, id2
>> 0xff
>>> Probing for Atmel AT25F2048, 256 kB: probe_spi_at25f: id1 0xff, id2 0xff
>>> Probing for Atmel AT25F4096, 512 kB: probe_spi_at25f: id1 0xff, id2 0xff
>>> Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT45DB321E, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for ESMT F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for ESMT F25L32PA, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25P05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25P10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25P20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25P40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25P80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25P16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25P32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25P64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25F64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25QH32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25QH64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25QH128, 16384 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Eon EN25S10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25S20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25S40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25S80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25S16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25S32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Eon EN25S64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for ESI ES25P40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for ESI ES25P80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for ESI ES25P16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for GigaDevice GD25LQ40, 512 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25LQ80, 1024 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25LQ16, 2048 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25LQ32, 4096 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25LQ64(B), 8192 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25LQ128, 16384 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25Q512, 64 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25Q10, 128 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25Q20(B), 256 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25Q40(B), 512 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25Q80(B), 1024 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25Q16(B), 2048 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25Q32(B), 4096 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25Q64(B), 8192 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25Q128B, 16384 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25Q128C, 16384 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25T80, 1024 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25VQ21B, 256 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25VQ40C, 512 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25VQ41B, 512 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for GigaDevice GD25VQ80C, 1024 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for GigaDevice GD25VQ16C, 2048 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Intel 25F160S33B8, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Intel 25F160S33T8, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Intel 25F320S33B8, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Intel 25F320S33T8, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Intel 25F640S33B8, 8192 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Intel 25F640S33T8, 8192 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Macronix MX23L1654, 2048 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Macronix MX23L3254, 4096 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Macronix MX23L6454, 8192 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Macronix MX23L12854, 16384 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Macronix MX25L512(E)/MX25V512(C), 64 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Macronix MX25L1005(C)/MX25L1006E, 128 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Macronix MX25L2005(C)/MX25L2006E, 256 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Macronix MX25L4005(A/C)/MX25L4006E, 512 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Macronix MX25L8005/MX25L8006E/MX25L8008E/MX25V8005, 1024 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x201
>>> 7
>>> Probing for Macronix MX25L1605D/MX25L1608D/MX25L1673E, 2048 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Macronix MX25L3205D/MX25L3208D, 4096 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Macronix MX25L6405D, 8192 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Found Macronix flash chip "MX25L6405D" (8192 kB, SPI) on linux_spi.
>>> Chip status register is 0x00.
>>> Chip status register: Status Register Write Disable (SRWD, SRP, ...) is
>> not
>>> set
>>> Chip status register: Bit 6 is not set
>>> Chip status register: Block Protect 3 (BP3) is not set
>>> Chip status register: Block Protect 2 (BP2) is not set
>>> Chip status register: Block Protect 1 (BP1) is not set
>>> Chip status register: Block Protect 0 (BP0) is not set
>>> Chip status register: Write Enable Latch (WEL) is not set
>>> Chip status register: Write In Progress (WIP/BUSY) is not set
>>> Probing for Macronix MX25L12805D, 16384 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Macronix MX25L12835F/MX25L12845E/MX25L12865E, 16384 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Macronix MX25U1635E, 2048 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Macronix MX25U3235E/F, 4096 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Macronix MX25U6435E/F, 8192 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Macronix MX25U12835F, 16384 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Macronix MX25L6495F, 8192 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Micron/Numonyx/ST M25P05-A, 64 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25P05, 64 kB: Ignoring RES in favour of
>>> RDID.
>>> Probing for Micron/Numonyx/ST M25P10-A, 128 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25P10, 128 kB: Ignoring RES in favour of
>>> RDID.
>>> Probing for Micron/Numonyx/ST M25P20, 256 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25P20-old, 256 kB: Ignoring RES in favour
>> of
>>> RDID.
>>> Probing for Micron/Numonyx/ST M25P40, 512 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25P40-old, 512 kB: Ignoring RES in favour
>> of
>>> RDID.
>>> Probing for Micron/Numonyx/ST M25P80, 1024 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25P16, 2048 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25P32, 4096 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25P64, 8192 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25P128, 16384 kB: probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25PE10, 128 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25PE20, 256 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25PE40, 512 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25PE80, 1024 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25PE16, 2048 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25PX80, 1024 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25PX16, 2048 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25PX32, 4096 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M25PX64, 8192 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M45PE10, 128 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M45PE20, 256 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M45PE40, 512 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M45PE80, 1024 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST M45PE16, 2048 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST N25Q016, 2048 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST N25Q032..1E, 4096 kB:
>> probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST N25Q032..3E, 4096 kB:
>> probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST N25Q064..1E, 8192 kB:
>> probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST N25Q064..3E, 8192 kB:
>> probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST N25Q128..1E, 16384 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Micron/Numonyx/ST N25Q128..3E, 16384 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Nantronics N25S10, 128 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Nantronics N25S20, 256 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Nantronics N25S40, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Nantronics N25S80, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Nantronics N25S16, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for PMC Pm25LD256C, 32 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for PMC Pm25LD512(C), 64 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for PMC Pm25LD010(C), 128 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for PMC Pm25LD020(C), 256 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for PMC Pm25LD040(C), 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for PMC Pm25LQ020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for PMC Pm25LQ040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for PMC Pm25LQ080, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for PMC Pm25LQ016, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for PMC Pm25LQ032C, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for PMC Pm25LV512(A), 64 kB: probe_spi_res2: id1 0x16, id2 0x16
>>> Probing for PMC Pm25LV010, 128 kB: probe_spi_res2: id1 0x16, id2 0x16
>>> Probing for PMC Pm25LV010A, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Sanyo LE25FW106, 128 kB: probe_spi_res2: id1 0x16, id2 0x16
>>> Probing for Sanyo LE25FW406A, 512 kB: probe_spi_res2: id1 0x16, id2 0x16
>>> Probing for Sanyo LE25FU406B, 512 kB: probe_spi_res2: id1 0x16, id2 0x16
>>> Probing for Sanyo LE25FU406C/LE25U40CMC, 512 kB: probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Sanyo LE25FW203A, 256 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Sanyo LE25FW403A, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Sanyo LE25FW418A, 512 kB: probe_spi_res2: id1 0x16, id2 0x16
>>> Probing for Sanyo LE25FW806, 1024 kB: probe_spi_res2: id1 0x16, id2 0x16
>>> Probing for Sanyo LE25FW808, 1024 kB: probe_spi_res2: id1 0x16, id2 0x16
>>> Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Spansion S25FL032A/P, 4096 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Spansion S25FL064A/P, 8192 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Spansion S25FL204K, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Spansion S25FL208K, 1024 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Spansion S25FL116K/S25FL216K, 2048 kB:
>> probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Spansion S25FL132K, 4096 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Spansion S25FL164K, 8192 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Spansion S25FL127S-64kB, 16384 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Spansion S25FL127S-256kB, 16384 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Spansion S25FL128P......0, 16384 kB: probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Spansion S25FL128P......1, 16384 kB: probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Spansion S25FL128S......0, 16384 kB: probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Spansion S25FL128S......1, 16384 kB: probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Spansion S25FL129P......0, 16384 kB: probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Spansion S25FL129P......1, 16384 kB: probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for SST SST25LF020A, 256 kB: probe_spi_rems: id1 0xc2, id2 0x16
>>> Probing for SST SST25LF040A, 512 kB: probe_spi_res2: id1 0x16, id2 0x16
>>> Probing for SST SST25LF080(A), 1024 kB: probe_spi_res2: id1 0x16, id2
>> 0x16
>>> Probing for SST SST25VF512(A), 64 kB: probe_spi_rems: id1 0xc2, id2 0x16
>>> Probing for SST SST25VF010(A), 128 kB: probe_spi_rems: id1 0xc2, id2 0x16
>>> Probing for SST SST25VF020, 256 kB: probe_spi_rems: id1 0xc2, id2 0x16
>>> Probing for SST SST25VF020B, 256 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for SST SST25VF040, 512 kB: probe_spi_rems: id1 0xc2, id2 0x16
>>> Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for SST SST25VF040B.REMS, 512 kB: probe_spi_rems: id1 0xc2, id2
>>> 0x16
>>> Probing for SST SST25WF020A, 256 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for SST SST25WF040B, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for SST SST25WF080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for SST SST25WF512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for SST SST25WF010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for SST SST25WF020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for SST SST25WF040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for SST SST25WF080, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Winbond W25Q40.V, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Winbond W25Q80.V, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Winbond W25Q16.V, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Winbond W25Q32.V, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Winbond W25Q64.V, 8192 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Winbond W25Q128.V, 16384 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Winbond W25Q20.W, 256 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Winbond W25Q40.W, 512 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Winbond W25Q80.W, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Winbond W25Q16.W, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Winbond W25Q32.W, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Winbond W25Q64.W, 8192 kB: probe_spi_rdid_generic: id1 0xc2,
>>> id2 0x2017
>>> Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2
>>> 0x2017
>>> Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xc2,
>> id2
>>> 0x2017
>>> Probing for Unknown SFDP-capable chip, 0 kB: No SFDP signature found.
>>> Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for Macronix unknown Macronix SPI chip, 0 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1
>>> 0xc2, id2 0x2017
>>> Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1
>> 0xc2,
>>> id2 0x2017
>>> Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic:
>> id1
>>> 0xc2, id2 0x2017
>>> Probing for Winbond unknown Winbond (ex Nexcom) SPI chip, 0 kB:
>>> probe_spi_rdid_generic: id1 0xc2, id2 0x2017
>>> Probing for Generic unknown SPI chip (RDID), 0 kB:
>> probe_spi_rdid_generic:
>>> id1 0xc2, id2 0x2017
>>> Probing for Generic unknown SPI chip (REMS), 0 kB: probe_spi_rems: id1
>>> 0xc2, id2 0x16
>>> Found Macronix flash chip "MX25L6405D" (8192 kB, SPI).
>>> This chip may contain one-time programmable memory. flashrom cannot read
>>> and may never be able to write it, hence it may not be able to completely
>>> clone the contents of this chip (see man page for details).
>>> Reading old flash chip contents... done.
>>> Erasing and writing flash chip... Trying erase function 0...
>>> 0x000000-0x000fff:S, 0x001000-0x001fff:S, 0x002000-0x00
>>> 2fff:S, 0x003000-0x003fff:EW, 0x004000-0x004fff:EW, 0x005000-0x005fff:S,
>>> 0x006000-0x006fff:S, 0x007000-0x007fff:S, 0
>>> x008000-0x008fff:S, 0x009000-0x009fff:S, 0x00a000-0x00afff:S,
>>> 0x00b000-0x00bfff:S, 0x00c000-0x00cfff:S, 0x00d000-0x0
>>> 0dfff:S, 0x00e000-0x00efff:S, 0x00f000-0x00ffff:S, 0x010000-0x010fff:S,
>>> 0x011000-0x011fff:S, 0x012000-0x012fff:S, 0x
>>> 013000-0x013fff:S, 0x014000-0x014fff:S, 0x015000-0x015fff:S,
>>> 0x016000-0x016fff:S, 0x017000-0x017fff:S, 0x018000-0x01
>>> 8fff:S, 0x019000-0x019fff:S, 0x01a000-0x01afff:S, 0x01b000-0x01bfff:EW,
>>> 0x01c000-0x01cfff:EW, 0x01d000-0x01dfff:EW,
>>> 0x01e000-0x01efff:EW, 0x01f000-0x01ffff:EW, 0x020000-0x020fff:S,
>>> 0x021000-0x021fff:S, 0x022000-0x022fff:S, 0x023000-
>>> 0x023fff:S, 0x024000-0x024fff:S, 0x025000-0x025fff:S,
>> 0x026000-0x026fff:S,
>>> 0x027000-0x027fff:S, 0x028000-0x028fff:S,
>>> 0x029000-0x029fff:S, 0x02a000-0x02afff:S, 0x02b000-0x02bfff:S,
>>> 0x02c000-0x02cfff:S, 0x02d000-0x02dfff:S, 0x02e000-0
>>> x02efff:S, 0x02f000-0x02ffff:S, 0x030000-0x030fff:S, 0x031000-0x031fff:S,
>>> 0x032000-0x032fff:S, 0x033000-0x033fff:S,
>>> 0x034000-0x034fff:S, 0x035000-0x035fff:S, 0x036000-0x036fff:S,
>>> 0x037000-0x037fff:S, 0x038000-0x038fff:S, 0x039000-0x
>>> 039fff:S, 0x03a000-0x03afff:S, 0x03b000-0x03bfff:S, 0x03c000-0x03cfff:S,
>>> 0x03d000-0x03dfff:S, 0x03e000-0x03efff:S, 0
>>> x03f000-0x03ffff:S, 0x040000-0x040fff:S, 0x041000-0x041fff:S,
>>> 0x042000-0x042fff:S, 0x043000-0x043fff:S, 0x044000-0x0
>>> 44fff:S, 0x045000-0x045fff:S, 0x046000-0x046fff:S, 0x047000-0x047fff:S,
>>> 0x048000-0x048fff:S, 0x049000-0x049fff:S, 0x
>>> 04a000-0x04afff:S, 0x04b000-0x04bfff:S, 0x04c000-0x04cfff:S,
>>> 0x04d000-0x04dfff:S, 0x04e000-0x04efff:S, 0x04f000-0x04
>>> ffff:S, 0x050000-0x050fff:S, 0x051000-0x051fff:S, 0x052000-0x052fff:S,
>>> 0x053000-0x053fff:S, 0x054000-0x054fff:S, 0x0
>>> 55000-0x055fff:S, 0x056000-0x056fff:S, 0x057000-0x057fff:S,
>>> 0x058000-0x058fff:S, 0x059000-0x059fff:S, 0x05a000-0x05a
>>> fff:S, 0x05b000-0x05bfff:S, 0x05c000-0x05cfff:S, 0x05d000-0x05dfff:S,
>>> 0x05e000-0x05efff:S, 0x05f000-0x05ffff:S, 0x06
>>> 0000-0x060fff:S, 0x061000-0x061fff:S, 0x062000-0x062fff:S,
>>> 0x063000-0x063fff:S, 0x064000-0x064fff:S, 0x065000-0x065f
>>> ff:S, 0x066000-0x066fff:S, 0x067000-0x067fff:S, 0x068000-0x068fff:S,
>>> 0x069000-0x069fff:S, 0x06a000-0x06afff:S, 0x06b
>>> 000-0x06bfff:S, 0x06c000-0x06cfff:S, 0x06d000-0x06dfff:S,
>>> 0x06e000-0x06efff:S, 0x06f000-0x06ffff:S, 0x070000-0x070ff
>>> f:S, 0x071000-0x071fff:S, 0x072000-0x072fff:S, 0x073000-0x073fff:S,
>>> 0x074000-0x074fff:S, 0x075000-0x075fff:S, 0x0760
>>> 00-0x076fff:S, 0x077000-0x077fff:S, 0x078000-0x078fff:S,
>>> 0x079000-0x079fff:S, 0x07a000-0x07afff:S, 0x07b000-0x07bfff
>>> :S, 0x07c000-0x07cfff:S, 0x07d000-0x07dfff:S, 0x07e000-0x07efff:S,
>>> 0x07f000-0x07ffff:S, 0x080000-0x080fff:S, 0x08100
>>> 0-0x081fff:S, 0x082000-0x082fff:S, 0x083000-0x083fff:S,
>>> 0x084000-0x084fff:S, 0x085000-0x085fff:S, 0x086000-0x086fff:
>>> S, 0x087000-0x087fff:S, 0x088000-0x088fff:S, 0x089000-0x089fff:S,
>>> 0x08a000-0x08afff:S, 0x08b000-0x08bfff:S, 0x08c000
>>> -0x08cfff:S, 0x08d000-0x08dfff:S, 0x08e000-0x08efff:S,
>> 0x08f000-0x08ffff:S,
>>> 0x090000-0x090fff:S, 0x091000-0x091fff:S
>>> , 0x092000-0x092fff:S, 0x093000-0x093fff:S, 0x094000-0x094fff:S,
>>> 0x095000-0x095fff:S, 0x096000-0x096fff:S, 0x097000-
>>> 0x097fff:S, 0x098000-0x098fff:S, 0x099000-0x099fff:S,
>> 0x09a000-0x09afff:S,
>>> 0x09b000-0x09bfff:S, 0x09c000-0x09cfff:S,
>>> 0x09d000-0x09dfff:S, 0x09e000-0x09efff:S, 0x09f000-0x09ffff:S,
>>> 0x0a0000-0x0a0fff:S, 0x0a1000-0x0a1fff:S, 0x0a2000-0
>>> x0a2fff:S, 0x0a3000-0x0a3fff:S, 0x0a4000-0x0a4fff:S, 0x0a5000-0x0a5fff:S,
>>> 0x0a6000-0x0a6fff:S, 0x0a7000-0x0a7fff:S,
>>> 0x0a8000-0x0a8fff:S, 0x0a9000-0x0a9fff:S, 0x0aa000-0x0aafff:S,
>>> 0x0ab000-0x0abfff:S, 0x0ac000-0x0acfff:S, 0x0ad000-0x
>>> 0adfff:S, 0x0ae000-0x0aefff:S, 0x0af000-0x0affff:S, 0x0b0000-0x0b0fff:S,
>>> 0x0b1000-0x0b1fff:S, 0x0b2000-0x0b2fff:S, 0
>>> x0b3000-0x0b3fff:S, 0x0b4000-0x0b4fff:S, 0x0b5000-0x0b5fff:S,
>>> 0x0b6000-0x0b6fff:S, 0x0b7000-0x0b7fff:S, 0x0b8000-0x0
>>> b8fff:S, 0x0b9000-0x0b9fff:S, 0x0ba000-0x0bafff:S, 0x0bb000-0x0bbfff:S,
>>> 0x0bc000-0x0bcfff:S, 0x0bd000-0x0bdfff:S, 0x
>>> 0be000-0x0befff:S, 0x0bf000-0x0bffff:S, 0x0c0000-0x0c0fff:S,
>>> 0x0c1000-0x0c1fff:S, 0x0c2000-0x0c2fff:S, 0x0c3000-0x0c
>>> 3fff:S, 0x0c4000-0x0c4fff:S, 0x0c5000-0x0c5fff:S, 0x0c6000-0x0c6fff:S,
>>> 0x0c7000-0x0c7fff:S, 0x0c8000-0x0c8fff:S, 0x0
>>> c9000-0x0c9fff:S, 0x0ca000-0x0cafff:S, 0x0cb000-0x0cbfff:S,
>>> 0x0cc000-0x0ccfff:S, 0x0cd000-0x0cdfff:EW, 0x0ce000-0x0c
>>> efff:S, 0x0cf000-0x0cffff:S, 0x0d0000-0x0d0fff:S, 0x0d1000-0x0d1fff:S,
>>> 0x0d2000-0x0d2fff:S, 0x0d3000-0x0d3fff:S, 0x0
>>> d4000-0x0d4fff:S, 0x0d5000-0x0d5fff:S, 0x0d6000-0x0d6fff:S,
>>> 0x0d7000-0x0d7fff:S, 0x0d8000-0x0d8fff:S, 0x0d9000-0x0d9
>>> fff:S, 0x0da000-0x0dafff:S, 0x0db000-0x0dbfff:S, 0x0dc000-0x0dcfff:S,
>>> 0x0dd000-0x0ddfff:S, 0x0de000-0x0defff:S, 0x0d
>>> f000-0x0dffff:S, 0x0e0000-0x0e0fff:S, 0x0e1000-0x0e1fff:S,
>>> 0x0e2000-0x0e2fff:S, 0x0e3000-0x0e3fff:S, 0x0e4000-0x0e4f
>>> ff:S, 0x0e5000-0x0e5fff:S, 0x0e6000-0x0e6fff:S, 0x0e7000-0x0e7fff:S,
>>> 0x0e8000-0x0e8fff:S, 0x0e9000-0x0e9fff:S, 0x0ea
>>> 000-0x0eafff:S, 0x0eb000-0x0ebfff:S, 0x0ec000-0x0ecfff:S,
>>> 0x0ed000-0x0edfff:S, 0x0ee000-0x0eefff:S, 0x0ef000-0x0efff
>>> f:S, 0x0f0000-0x0f0fff:S, 0x0f1000-0x0f1fff:S, 0x0f2000-0x0f2fff:S,
>>> 0x0f3000-0x0f3fff:S, 0x0f4000-0x0f4fff:S, 0x0f50
>>> 00-0x0f5fff:S, 0x0f6000-0x0f6fff:S, 0x0f7000-0x0f7fff:S,
>>> 0x0f8000-0x0f8fff:S, 0x0f9000-0x0f9fff:S, 0x0fa000-0x0fafff
>>> :S, 0x0fb000-0x0fbfff:S, 0x0fc000-0x0fcfff:S, 0x0fd000-0x0fdfff:S,
>>> 0x0fe000-0x0fefff:S, 0x0ff000-0x0fffff:S, 0x10000
>>> 0-0x100fff:S, 0x101000-0x101fff:S, 0x102000-0x102fff:S,
>>> 0x103000-0x103fff:S, 0x104000-0x104fff:S, 0x105000-0x105fff:
>>> S, 0x106000-0x106fff:S, 0x107000-0x107fff:S, 0x108000-0x108fff:S,
>>> 0x109000-0x109fff:S, 0x10a000-0x10afff:S, 0x10b000
>>> -0x10bfff:S, 0x10c000-0x10cfff:S, 0x10d000-0x10dfff:S,
>> 0x10e000-0x10efff:S,
>>> 0x10f000-0x10ffff:S, 0x110000-0x110fff:S
>>> , 0x111000-0x111fff:S, 0x112000-0x112fff:S, 0x113000-0x113fff:S,
>>> 0x114000-0x114fff:S, 0x115000-0x115fff:S, 0x116000-
>>> 0x116fff:S, 0x117000-0x117fff:S, 0x118000-0x118fff:S,
>> 0x119000-0x119fff:S,
>>> 0x11a000-0x11afff:S, 0x11b000-0x11bfff:S,
>>> 0x11c000-0x11cfff:S, 0x11d000-0x11dfff:S, 0x11e000-0x11efff:S,
>>> 0x11f000-0x11ffff:S, 0x120000-0x120fff:S, 0x121000-0
>>> x121fff:S, 0x122000-0x122fff:S, 0x123000-0x123fff:S, 0x124000-0x124fff:S,
>>> 0x125000-0x125fff:S, 0x126000-0x126fff:S,
>>> 0x127000-0x127fff:S, 0x128000-0x128fff:S, 0x129000-0x129fff:S,
>>> 0x12a000-0x12afff:S, 0x12b000-0x12bfff:S, 0x12c000-0x
>>> 12cfff:S, 0x12d000-0x12dfff:S, 0x12e000-0x12efff:S, 0x12f000-0x12ffff:S,
>>> 0x130000-0x130fff:S, 0x131000-0x131fff:S, 0
>>> x132000-0x132fff:S, 0x133000-0x133fff:S, 0x134000-0x134fff:S,
>>> 0x135000-0x135fff:S, 0x136000-0x136fff:S, 0x137000-0x1
>>> 37fff:S, 0x138000-0x138fff:S, 0x139000-0x139fff:S, 0x13a000-0x13afff:S,
>>> 0x13b000-0x13bfff:S, 0x13c000-0x13cfff:S, 0x
>>> 13d000-0x13dfff:S, 0x13e000-0x13efff:S, 0x13f000-0x13ffff:S,
>>> 0x140000-0x140fff:S, 0x141000-0x141fff:S, 0x142000-0x14
>>> 2fff:S, 0x143000-0x143fff:S, 0x144000-0x144fff:S, 0x145000-0x145fff:S,
>>> 0x146000-0x146fff:S, 0x147000-0x147fff:S, 0x1
>>> 48000-0x148fff:S, 0x149000-0x149fff:S, 0x14a000-0x14afff:S,
>>> 0x14b000-0x14bfff:S, 0x14c000-0x14cfff:S, 0x14d000-0x14d
>>> fff:S, 0x14e000-0x14efff:S, 0x14f000-0x14ffff:S, 0x150000-0x150fff:S,
>>> 0x151000-0x151fff:S, 0x152000-0x152fff:S, 0x15
>>> 3000-0x153fff:S, 0x154000-0x154fff:S, 0x155000-0x155fff:S,
>>> 0x156000-0x156fff:S, 0x157000-0x157fff:S, 0x158000-0x158f
>>> ff:S, 0x159000-0x159fff:S, 0x15a000-0x15afff:S, 0x15b000-0x15bfff:S,
>>> 0x15c000-0x15cfff:S, 0x15d000-0x15dfff:S, 0x15e
>>> 000-0x15efff:S, 0x15f000-0x15ffff:S, 0x160000-0x160fff:S,
>>> 0x161000-0x161fff:S, 0x162000-0x162fff:S, 0x163000-0x163ff
>>> f:S, 0x164000-0x164fff:S, 0x165000-0x165fff:S, 0x166000-0x166fff:S,
>>> 0x167000-0x167fff:S, 0x168000-0x168fff:S, 0x1690
>>> 00-0x169fff:S, 0x16a000-0x16afff:S, 0x16b000-0x16bfff:S,
>>> 0x16c000-0x16cfff:S, 0x16d000-0x16dfff:S, 0x16e000-0x16efff
>>> :S, 0x16f000-0x16ffff:S, 0x170000-0x170fff:S, 0x171000-0x171fff:S,
>>> 0x172000-0x172fff:S, 0x173000-0x173fff:S, 0x17400
>>> 0-0x174fff:S, 0x175000-0x175fff:S, 0x176000-0x176fff:S,
>>> 0x177000-0x177fff:S, 0x178000-0x178fff:S, 0x179000-0x179fff:
>>> S, 0x17a000-0x17afff:S, 0x17b000-0x17bfff:S, 0x17c000-0x17cfff:S,
>>> 0x17d000-0x17dfff:S, 0x17e000-0x17efff:S, 0x17f000
>>> -0x17ffff:S, 0x180000-0x180fff:S, 0x181000-0x181fff:S,
>> 0x182000-0x182fff:S,
>>> 0x183000-0x183fff:S, 0x184000-0x184fff:S
>>> , 0x185000-0x185fff:S, 0x186000-0x186fff:S, 0x187000-0x187fff:S,
>>> 0x188000-0x188fff:S, 0x189000-0x189fff:S, 0x18a000-
>>> 0x18afff:S, 0x18b000-0x18bfff:S, 0x18c000-0x18cfff:S,
>> 0x18d000-0x18dfff:S,
>>> 0x18e000-0x18efff:S, 0x18f000-0x18ffff:S,
>>> 0x190000-0x190fff:S, 0x191000-0x191fff:S, 0x192000-0x192fff:S,
>>> 0x193000-0x193fff:S, 0x194000-0x194fff:S, 0x195000-0
>>> x195fff:S, 0x196000-0x196fff:S, 0x197000-0x197fff:S, 0x198000-0x198fff:S,
>>> 0x199000-0x199fff:S, 0x19a000-0x19afff:S,
>>> 0x19b000-0x19bfff:S, 0x19c000-0x19cfff:S, 0x19d000-0x19dfff:S,
>>> 0x19e000-0x19efff:S, 0x19f000-0x19ffff:S, 0x1a0000-0x
>>> 1a0fff:S, 0x1a1000-0x1a1fff:S, 0x1a2000-0x1a2fff:S, 0x1a3000-0x1a3fff:S,
>>> 0x1a4000-0x1a4fff:S, 0x1a5000-0x1a5fff:S, 0
>>> x1a6000-0x1a6fff:S, 0x1a7000-0x1a7fff:S, 0x1a8000-0x1a8fff:S,
>>> 0x1a9000-0x1a9fff:S, 0x1aa000-0x1aafff:S, 0x1ab000-0x1
>>> abfff:S, 0x1ac000-0x1acfff:S, 0x1ad000-0x1adfff:S, 0x1ae000-0x1aefff:S,
>>> 0x1af000-0x1affff:S, 0x1b0000-0x1b0fff:S, 0x
>>> 1b1000-0x1b1fff:S, 0x1b2000-0x1b2fff:S, 0x1b3000-0x1b3fff:S,
>>> 0x1b4000-0x1b4fff:S, 0x1b5000-0x1b5fff:S, 0x1b6000-0x1b
>>> 6fff:S, 0x1b7000-0x1b7fff:S, 0x1b8000-0x1b8fff:S, 0x1b9000-0x1b9fff:S,
>>> 0x1ba000-0x1bafff:S, 0x1bb000-0x1bbfff:S, 0x1
>>> bc000-0x1bcfff:S, 0x1bd000-0x1bdfff:S, 0x1be000-0x1befff:S,
>>> 0x1bf000-0x1bffff:S, 0x1c0000-0x1c0fff:S, 0x1c1000-0x1c1
>>> fff:S, 0x1c2000-0x1c2fff:S, 0x1c3000-0x1c3fff:S, 0x1c4000-0x1c4fff:S,
>>> 0x1c5000-0x1c5fff:S, 0x1c6000-0x1c6fff:S, 0x1c
>>> 7000-0x1c7fff:S, 0x1c8000-0x1c8fff:S, 0x1c9000-0x1c9fff:S,
>>> 0x1ca000-0x1cafff:S, 0x1cb000-0x1cbfff:S, 0x1cc000-0x1ccf
>>> ff:S, 0x1cd000-0x1cdfff:S, 0x1ce000-0x1cefff:S, 0x1cf000-0x1cffff:S,
>>> 0x1d0000-0x1d0fff:S, 0x1d1000-0x1d1fff:S, 0x1d2
>>> 000-0x1d2fff:S, 0x1d3000-0x1d3fff:S, 0x1d4000-0x1d4fff:S,
>>> 0x1d5000-0x1d5fff:S, 0x1d6000-0x1d6fff:S, 0x1d7000-0x1d7ff
>>> f:S, 0x1d8000-0x1d8fff:S, 0x1d9000-0x1d9fff:S, 0x1da000-0x1dafff:S,
>>> 0x1db000-0x1dbfff:S, 0x1dc000-0x1dcfff:S, 0x1dd0
>>> 00-0x1ddfff:S, 0x1de000-0x1defff:S, 0x1df000-0x1dffff:S,
>>> 0x1e0000-0x1e0fff:S, 0x1e1000-0x1e1fff:S, 0x1e2000-0x1e2fff
>>> :S, 0x1e3000-0x1e3fff:S, 0x1e4000-0x1e4fff:S, 0x1e5000-0x1e5fff:S,
>>> 0x1e6000-0x1e6fff:S, 0x1e7000-0x1e7fff:S, 0x1e800
>>> 0-0x1e8fff:S, 0x1e9000-0x1e9fff:S, 0x1ea000-0x1eafff:S,
>>> 0x1eb000-0x1ebfff:S, 0x1ec000-0x1ecfff:S, 0x1ed000-0x1edfff:
>>> S, 0x1ee000-0x1eefff:S, 0x1ef000-0x1effff:S, 0x1f0000-0x1f0fff:S,
>>> 0x1f1000-0x1f1fff:S, 0x1f2000-0x1f2fff:S, 0x1f3000
>>> -0x1f3fff:S, 0x1f4000-0x1f4fff:S, 0x1f5000-0x1f5fff:S,
>> 0x1f6000-0x1f6fff:S,
>>> 0x1f7000-0x1f7fff:S, 0x1f8000-0x1f8fff:S
>>> , 0x1f9000-0x1f9fff:S, 0x1fa000-0x1fafff:S, 0x1fb000-0x1fbfff:S,
>>> 0x1fc000-0x1fcfff:S, 0x1fd000-0x1fdfff:S, 0x1fe000-
>>> 0x1fefff:S, 0x1ff000-0x1fffff:S, 0x200000-0x200fff:S,
>> 0x201000-0x201fff:S,
>>> 0x202000-0x202fff:S, 0x203000-0x203fff:S,
>>> 0x204000-0x204fff:S, 0x205000-0x205fff:S, 0x206000-0x206fff:S,
>>> 0x207000-0x207fff:S, 0x208000-0x208fff:S, 0x209000-0
>>> x209fff:S, 0x20a000-0x20afff:S, 0x20b000-0x20bfff:S, 0x20c000-0x20cfff:S,
>>> 0x20d000-0x20dfff:S, 0x20e000-0x20efff:S,
>>> 0x20f000-0x20ffff:S, 0x210000-0x210fff:S, 0x211000-0x211fff:S,
>>> 0x212000-0x212fff:S, 0x213000-0x213fff:S, 0x214000-0x
>>> 214fff:S, 0x215000-0x215fff:S, 0x216000-0x216fff:S, 0x217000-0x217fff:S,
>>> 0x218000-0x218fff:S, 0x219000-0x219fff:S, 0
>>> x21a000-0x21afff:S, 0x21b000-0x21bfff:S, 0x21c000-0x21cfff:S,
>>> 0x21d000-0x21dfff:S, 0x21e000-0x21efff:S, 0x21f000-0x2
>>> 1ffff:S, 0x220000-0x220fff:S, 0x221000-0x221fff:S, 0x222000-0x222fff:S,
>>> 0x223000-0x223fff:S, 0x224000-0x224fff:S, 0x
>>> 225000-0x225fff:S, 0x226000-0x226fff:S, 0x227000-0x227fff:S,
>>> 0x228000-0x228fff:S, 0x229000-0x229fff:S, 0x22a000-0x22
>>> afff:S, 0x22b000-0x22bfff:S, 0x22c000-0x22cfff:S, 0x22d000-0x22dfff:S,
>>> 0x22e000-0x22efff:S, 0x22f000-0x22ffff:S, 0x2
>>> 30000-0x230fff:S, 0x231000-0x231fff:S, 0x232000-0x232fff:S,
>>> 0x233000-0x233fff:S, 0x234000-0x234fff:S, 0x235000-0x235
>>> fff:S, 0x236000-0x236fff:S, 0x237000-0x237fff:S, 0x238000-0x238fff:S,
>>> 0x239000-0x239fff:S, 0x23a000-0x23afff:S, 0x23
>>> b000-0x23bfff:S, 0x23c000-0x23cfff:S, 0x23d000-0x23dfff:S,
>>> 0x23e000-0x23efff:S, 0x23f000-0x23ffff:S, 0x240000-0x240f
>>> ff:S, 0x241000-0x241fff:S, 0x242000-0x242fff:S, 0x243000-0x243fff:S,
>>> 0x244000-0x244fff:S, 0x245000-0x245fff:S, 0x246
>>> 000-0x246fff:S, 0x247000-0x247fff:S, 0x248000-0x248fff:S,
>>> 0x249000-0x249fff:S, 0x24a000-0x24afff:S, 0x24b000-0x24bff
>>> f:S, 0x24c000-0x24cfff:S, 0x24d000-0x24dfff:S, 0x24e000-0x24efff:S,
>>> 0x24f000-0x24ffff:S, 0x250000-0x250fff:S, 0x2510
>>> 00-0x251fff:S, 0x252000-0x252fff:S, 0x253000-0x253fff:S,
>>> 0x254000-0x254fff:S, 0x255000-0x255fff:S, 0x256000-0x256fff
>>> :S, 0x257000-0x257fff:S, 0x258000-0x258fff:S, 0x259000-0x259fff:S,
>>> 0x25a000-0x25afff:S, 0x25b000-0x25bfff:S, 0x25c00
>>> 0-0x25cfff:S, 0x25d000-0x25dfff:S, 0x25e000-0x25efff:S,
>>> 0x25f000-0x25ffff:S, 0x260000-0x260fff:S, 0x261000-0x261fff:
>>> S, 0x262000-0x262fff:S, 0x263000-0x263fff:S, 0x264000-0x264fff:S,
>>> 0x265000-0x265fff:S, 0x266000-0x266fff:S, 0x267000
>>> -0x267fff:S, 0x268000-0x268fff:S, 0x269000-0x269fff:S,
>> 0x26a000-0x26afff:S,
>>> 0x26b000-0x26bfff:S, 0x26c000-0x26cfff:S
>>> , 0x26d000-0x26dfff:S, 0x26e000-0x26efff:S, 0x26f000-0x26ffff:S,
>>> 0x270000-0x270fff:S, 0x271000-0x271fff:S, 0x272000-
>>> 0x272fff:S, 0x273000-0x273fff:S, 0x274000-0x274fff:S,
>> 0x275000-0x275fff:S,
>>> 0x276000-0x276fff:S, 0x277000-0x277fff:S,
>>> 0x278000-0x278fff:S, 0x279000-0x279fff:S, 0x27a000-0x27afff:S,
>>> 0x27b000-0x27bfff:S, 0x27c000-0x27cfff:S, 0x27d000-0
>>> x27dfff:S, 0x27e000-0x27efff:S, 0x27f000-0x27ffff:S, 0x280000-0x280fff:S,
>>> 0x281000-0x281fff:S, 0x282000-0x282fff:S,
>>> 0x283000-0x283fff:S, 0x284000-0x284fff:S, 0x285000-0x285fff:S,
>>> 0x286000-0x286fff:S, 0x287000-0x287fff:S, 0x288000-0x
>>> 288fff:S, 0x289000-0x289fff:S, 0x28a000-0x28afff:S, 0x28b000-0x28bfff:S,
>>> 0x28c000-0x28cfff:S, 0x28d000-0x28dfff:S, 0
>>> x28e000-0x28efff:S, 0x28f000-0x28ffff:S, 0x290000-0x290fff:S,
>>> 0x291000-0x291fff:S, 0x292000-0x292fff:S, 0x293000-0x2
>>> 93fff:S, 0x294000-0x294fff:S, 0x295000-0x295fff:S, 0x296000-0x296fff:S,
>>> 0x297000-0x297fff:S, 0x298000-0x298fff:S, 0x
>>> 299000-0x299fff:S, 0x29a000-0x29afff:S, 0x29b000-0x29bfff:S,
>>> 0x29c000-0x29cfff:S, 0x29d000-0x29dfff:S, 0x29e000-0x29
>>> efff:S, 0x29f000-0x29ffff:S, 0x2a0000-0x2a0fff:S, 0x2a1000-0x2a1fff:S,
>>> 0x2a2000-0x2a2fff:S, 0x2a3000-0x2a3fff:S, 0x2
>>> a4000-0x2a4fff:S, 0x2a5000-0x2a5fff:S, 0x2a6000-0x2a6fff:S,
>>> 0x2a7000-0x2a7fff:S, 0x2a8000-0x2a8fff:S, 0x2a9000-0x2a9
>>> fff:S, 0x2aa000-0x2aafff:S, 0x2ab000-0x2abfff:S, 0x2ac000-0x2acfff:S,
>>> 0x2ad000-0x2adfff:S, 0x2ae000-0x2aefff:S, 0x2a
>>> f000-0x2affff:S, 0x2b0000-0x2b0fff:S, 0x2b1000-0x2b1fff:S,
>>> 0x2b2000-0x2b2fff:S, 0x2b3000-0x2b3fff:S, 0x2b4000-0x2b4f
>>> ff:S, 0x2b5000-0x2b5fff:S, 0x2b6000-0x2b6fff:S, 0x2b7000-0x2b7fff:S,
>>> 0x2b8000-0x2b8fff:S, 0x2b9000-0x2b9fff:S, 0x2ba
>>> 000-0x2bafff:S, 0x2bb000-0x2bbfff:S, 0x2bc000-0x2bcfff:S,
>>> 0x2bd000-0x2bdfff:S, 0x2be000-0x2befff:S, 0x2bf000-0x2bfff
>>> f:S, 0x2c0000-0x2c0fff:S, 0x2c1000-0x2c1fff:S, 0x2c2000-0x2c2fff:S,
>>> 0x2c3000-0x2c3fff:S, 0x2c4000-0x2c4fff:S, 0x2c50
>>> 00-0x2c5fff:S, 0x2c6000-0x2c6fff:S, 0x2c7000-0x2c7fff:S,
>>> 0x2c8000-0x2c8fff:S, 0x2c9000-0x2c9fff:S, 0x2ca000-0x2cafff
>>> :S, 0x2cb000-0x2cbfff:S, 0x2cc000-0x2ccfff:S, 0x2cd000-0x2cdfff:S,
>>> 0x2ce000-0x2cefff:S, 0x2cf000-0x2cffff:S, 0x2d000
>>> 0-0x2d0fff:S, 0x2d1000-0x2d1fff:S, 0x2d2000-0x2d2fff:S,
>>> 0x2d3000-0x2d3fff:S, 0x2d4000-0x2d4fff:S, 0x2d5000-0x2d5fff:
>>> S, 0x2d6000-0x2d6fff:S, 0x2d7000-0x2d7fff:S, 0x2d8000-0x2d8fff:S,
>>> 0x2d9000-0x2d9fff:S, 0x2da000-0x2dafff:S, 0x2db000
>>> -0x2dbfff:S, 0x2dc000-0x2dcfff:S, 0x2dd000-0x2ddfff:S,
>> 0x2de000-0x2defff:S,
>>> 0x2df000-0x2dffff:S, 0x2e0000-0x2e0fff:S
>>> , 0x2e1000-0x2e1fff:S, 0x2e2000-0x2e2fff:S, 0x2e3000-0x2e3fff:S,
>>> 0x2e4000-0x2e4fff:S, 0x2e5000-0x2e5fff:S, 0x2e6000-
>>> 0x2e6fff:S, 0x2e7000-0x2e7fff:S, 0x2e8000-0x2e8fff:S,
>> 0x2e9000-0x2e9fff:S,
>>> 0x2ea000-0x2eafff:S, 0x2eb000-0x2ebfff:S,
>>> 0x2ec000-0x2ecfff:S, 0x2ed000-0x2edfff:S, 0x2ee000-0x2eefff:S,
>>> 0x2ef000-0x2effff:S, 0x2f0000-0x2f0fff:S, 0x2f1000-0
>>> x2f1fff:S, 0x2f2000-0x2f2fff:S, 0x2f3000-0x2f3fff:S, 0x2f4000-0x2f4fff:S,
>>> 0x2f5000-0x2f5fff:S, 0x2f6000-0x2f6fff:S,
>>> 0x2f7000-0x2f7fff:S, 0x2f8000-0x2f8fff:S, 0x2f9000-0x2f9fff:S,
>>> 0x2fa000-0x2fafff:S, 0x2fb000-0x2fbfff:S, 0x2fc000-0x
>>> 2fcfff:S, 0x2fd000-0x2fdfff:S, 0x2fe000-0x2fefff:S, 0x2ff000-0x2fffff:S,
>>> 0x300000-0x300fff:S, 0x301000-0x301fff:S, 0
>>> x302000-0x302fff:S, 0x303000-0x303fff:S, 0x304000-0x304fff:S,
>>> 0x305000-0x305fff:S, 0x306000-0x306fff:S, 0x307000-0x3
>>> 07fff:S, 0x308000-0x308fff:S, 0x309000-0x309fff:S, 0x30a000-0x30afff:S,
>>> 0x30b000-0x30bfff:S, 0x30c000-0x30cfff:S, 0x
>>> 30d000-0x30dfff:S, 0x30e000-0x30efff:S, 0x30f000-0x30ffff:S,
>>> 0x310000-0x310fff:S, 0x311000-0x311fff:S, 0x312000-0x31
>>> 2fff:S, 0x313000-0x313fff:S, 0x314000-0x314fff:S, 0x315000-0x315fff:S,
>>> 0x316000-0x316fff:S, 0x317000-0x317fff:S, 0x3
>>> 18000-0x318fff:S, 0x319000-0x319fff:S, 0x31a000-0x31afff:S,
>>> 0x31b000-0x31bfff:S, 0x31c000-0x31cfff:S, 0x31d000-0x31d
>>> fff:S, 0x31e000-0x31efff:S, 0x31f000-0x31ffff:S, 0x320000-0x320fff:S,
>>> 0x321000-0x321fff:S, 0x322000-0x322fff:S, 0x32
>>> 3000-0x323fff:S, 0x324000-0x324fff:S, 0x325000-0x325fff:S,
>>> 0x326000-0x326fff:S, 0x327000-0x327fff:S, 0x328000-0x328f
>>> ff:S, 0x329000-0x329fff:S, 0x32a000-0x32afff:S, 0x32b000-0x32bfff:S,
>>> 0x32c000-0x32cfff:S, 0x32d000-0x32dfff:S, 0x32e
>>> 000-0x32efff:S, 0x32f000-0x32ffff:S, 0x330000-0x330fff:S,
>>> 0x331000-0x331fff:S, 0x332000-0x332fff:S, 0x333000-0x333ff
>>> f:S, 0x334000-0x334fff:S, 0x335000-0x335fff:S, 0x336000-0x336fff:S,
>>> 0x337000-0x337fff:S, 0x338000-0x338fff:S, 0x3390
>>> 00-0x339fff:S, 0x33a000-0x33afff:S, 0x33b000-0x33bfff:S,
>>> 0x33c000-0x33cfff:S, 0x33d000-0x33dfff:S, 0x33e000-0x33efff
>>> :S, 0x33f000-0x33ffff:S, 0x340000-0x340fff:S, 0x341000-0x341fff:S,
>>> 0x342000-0x342fff:S, 0x343000-0x343fff:S, 0x34400
>>> 0-0x344fff:S, 0x345000-0x345fff:S, 0x346000-0x346fff:S,
>>> 0x347000-0x347fff:S, 0x348000-0x348fff:S, 0x349000-0x349fff:
>>> S, 0x34a000-0x34afff:S, 0x34b000-0x34bfff:S, 0x34c000-0x34cfff:S,
>>> 0x34d000-0x34dfff:S, 0x34e000-0x34efff:S, 0x34f000
>>> -0x34ffff:S, 0x350000-0x350fff:S, 0x351000-0x351fff:S,
>> 0x352000-0x352fff:S,
>>> 0x353000-0x353fff:S, 0x354000-0x354fff:S
>>> , 0x355000-0x355fff:S, 0x356000-0x356fff:S, 0x357000-0x357fff:S,
>>> 0x358000-0x358fff:S, 0x359000-0x359fff:S, 0x35a000-
>>> 0x35afff:S, 0x35b000-0x35bfff:S, 0x35c000-0x35cfff:S,
>> 0x35d000-0x35dfff:S,
>>> 0x35e000-0x35efff:S, 0x35f000-0x35ffff:S,
>>> 0x360000-0x360fff:S, 0x361000-0x361fff:S, 0x362000-0x362fff:S,
>>> 0x363000-0x363fff:S, 0x364000-0x364fff:S, 0x365000-0
>>> x365fff:S, 0x366000-0x366fff:S, 0x367000-0x367fff:S, 0x368000-0x368fff:S,
>>> 0x369000-0x369fff:S, 0x36a000-0x36afff:S,
>>> 0x36b000-0x36bfff:S, 0x36c000-0x36cfff:S, 0x36d000-0x36dfff:S,
>>> 0x36e000-0x36efff:S, 0x36f000-0x36ffff:S, 0x370000-0x
>>> 370fff:S, 0x371000-0x371fff:S, 0x372000-0x372fff:S, 0x373000-0x373fff:S,
>>> 0x374000-0x374fff:S, 0x375000-0x375fff:S, 0
>>> x376000-0x376fff:S, 0x377000-0x377fff:S, 0x378000-0x378fff:S,
>>> 0x379000-0x379fff:S, 0x37a000-0x37afff:S, 0x37b000-0x3
>>> 7bfff:S, 0x37c000-0x37cfff:S, 0x37d000-0x37dfff:S, 0x37e000-0x37efff:S,
>>> 0x37f000-0x37ffff:S, 0x380000-0x380fff:S, 0x
>>> 381000-0x381fff:S, 0x382000-0x382fff:S, 0x383000-0x383fff:S,
>>> 0x384000-0x384fff:S, 0x385000-0x385fff:S, 0x386000-0x38
>>> 6fff:S, 0x387000-0x387fff:S, 0x388000-0x388fff:S, 0x389000-0x389fff:S,
>>> 0x38a000-0x38afff:S, 0x38b000-0x38bfff:S, 0x3
>>> 8c000-0x38cfff:S, 0x38d000-0x38dfff:S, 0x38e000-0x38efff:S,
>>> 0x38f000-0x38ffff:S, 0x390000-0x390fff:S, 0x391000-0x391
>>> fff:S, 0x392000-0x392fff:S, 0x393000-0x393fff:S, 0x394000-0x394fff:S,
>>> 0x395000-0x395fff:S, 0x396000-0x396fff:S, 0x39
>>> 7000-0x397fff:S, 0x398000-0x398fff:S, 0x399000-0x399fff:S,
>>> 0x39a000-0x39afff:S, 0x39b000-0x39bfff:S, 0x39c000-0x39cf
>>> ff:S, 0x39d000-0x39dfff:S, 0x39e000-0x39efff:S, 0x39f000-0x39ffff:S,
>>> 0x3a0000-0x3a0fff:S, 0x3a1000-0x3a1fff:S, 0x3a2
>>> 000-0x3a2fff:S, 0x3a3000-0x3a3fff:S, 0x3a4000-0x3a4fff:S,
>>> 0x3a5000-0x3a5fff:S, 0x3a6000-0x3a6fff:S, 0x3a7000-0x3a7ff
>>> f:S, 0x3a8000-0x3a8fff:S, 0x3a9000-0x3a9fff:S, 0x3aa000-0x3aafff:S,
>>> 0x3ab000-0x3abfff:S, 0x3ac000-0x3acfff:S, 0x3ad0
>>> 00-0x3adfff:S, 0x3ae000-0x3aefff:S, 0x3af000-0x3affff:S,
>>> 0x3b0000-0x3b0fff:S, 0x3b1000-0x3b1fff:S, 0x3b2000-0x3b2fff
>>> :S, 0x3b3000-0x3b3fff:S, 0x3b4000-0x3b4fff:S, 0x3b5000-0x3b5fff:S,
>>> 0x3b6000-0x3b6fff:S, 0x3b7000-0x3b7fff:S, 0x3b800
>>> 0-0x3b8fff:S, 0x3b9000-0x3b9fff:S, 0x3ba000-0x3bafff:S,
>>> 0x3bb000-0x3bbfff:S, 0x3bc000-0x3bcfff:S, 0x3bd000-0x3bdfff:
>>> S, 0x3be000-0x3befff:S, 0x3bf000-0x3bffff:S, 0x3c0000-0x3c0fff:S,
>>> 0x3c1000-0x3c1fff:S, 0x3c2000-0x3c2fff:S, 0x3c3000
>>> -0x3c3fff:S, 0x3c4000-0x3c4fff:S, 0x3c5000-0x3c5fff:S,
>> 0x3c6000-0x3c6fff:S,
>>> 0x3c7000-0x3c7fff:S, 0x3c8000-0x3c8fff:S
>>> , 0x3c9000-0x3c9fff:S, 0x3ca000-0x3cafff:S, 0x3cb000-0x3cbfff:S,
>>> 0x3cc000-0x3ccfff:S, 0x3cd000-0x3cdfff:S, 0x3ce000-
>>> 0x3cefff:S, 0x3cf000-0x3cffff:S, 0x3d0000-0x3d0fff:S,
>> 0x3d1000-0x3d1fff:S,
>>> 0x3d2000-0x3d2fff:S, 0x3d3000-0x3d3fff:S,
>>> 0x3d4000-0x3d4fff:S, 0x3d5000-0x3d5fff:S, 0x3d6000-0x3d6fff:S,
>>> 0x3d7000-0x3d7fff:S, 0x3d8000-0x3d8fff:S, 0x3d9000-0
>>> x3d9fff:S, 0x3da000-0x3dafff:S, 0x3db000-0x3dbfff:S, 0x3dc000-0x3dcfff:S,
>>> 0x3dd000-0x3ddfff:S, 0x3de000-0x3defff:S,
>>> 0x3df000-0x3dffff:S, 0x3e0000-0x3e0fff:S, 0x3e1000-0x3e1fff:S,
>>> 0x3e2000-0x3e2fff:S, 0x3e3000-0x3e3fff:S, 0x3e4000-0x
>>> 3e4fff:S, 0x3e5000-0x3e5fff:S, 0x3e6000-0x3e6fff:S, 0x3e7000-0x3e7fff:S,
>>> 0x3e8000-0x3e8fff:S, 0x3e9000-0x3e9fff:S, 0
>>> x3ea000-0x3eafff:S, 0x3eb000-0x3ebfff:S, 0x3ec000-0x3ecfff:S,
>>> 0x3ed000-0x3edfff:S, 0x3ee000-0x3eefff:S, 0x3ef000-0x3
>>> effff:S, 0x3f0000-0x3f0fff:S, 0x3f1000-0x3f1fff:S, 0x3f2000-0x3f2fff:S,
>>> 0x3f3000-0x3f3fff:S, 0x3f4000-0x3f4fff:S, 0x
>>> 3f5000-0x3f5fff:S, 0x3f6000-0x3f6fff:S, 0x3f7000-0x3f7fff:S,
>>> 0x3f8000-0x3f8fff:S, 0x3f9000-0x3f9fff:S, 0x3fa000-0x3f
>>> afff:S, 0x3fb000-0x3fbfff:S, 0x3fc000-0x3fcfff:S, 0x3fd000-0x3fdfff:S,
>>> 0x3fe000-0x3fefff:S, 0x3ff000-0x3fffff:S, 0x4
>>> 00000-0x400fff:S, 0x401000-0x401fff:S, 0x402000-0x402fff:S,
>>> 0x403000-0x403fff:S, 0x404000-0x404fff:S, 0x405000-0x405
>>> fff:S, 0x406000-0x406fff:S, 0x407000-0x407fff:S, 0x408000-0x408fff:S,
>>> 0x409000-0x409fff:S, 0x40a000-0x40afff:S, 0x40
>>> b000-0x40bfff:S, 0x40c000-0x40cfff:S, 0x40d000-0x40dfff:S,
>>> 0x40e000-0x40efff:S, 0x40f000-0x40ffff:S, 0x410000-0x410f
>>> ff:S, 0x411000-0x411fff:S, 0x412000-0x412fff:S, 0x413000-0x413fff:S,
>>> 0x414000-0x414fff:S, 0x415000-0x415fff:S, 0x416
>>> 000-0x416fff:S, 0x417000-0x417fff:S, 0x418000-0x418fff:S,
>>> 0x419000-0x419fff:S, 0x41a000-0x41afff:S, 0x41b000-0x41bff
>>> f:S, 0x41c000-0x41cfff:S, 0x41d000-0x41dfff:S, 0x41e000-0x41efff:S,
>>> 0x41f000-0x41ffff:S, 0x420000-0x420fff:S, 0x4210
>>> 00-0x421fff:S, 0x422000-0x422fff:S, 0x423000-0x423fff:S,
>>> 0x424000-0x424fff:S, 0x425000-0x425fff:S, 0x426000-0x426fff
>>> :S, 0x427000-0x427fff:S, 0x428000-0x428fff:S, 0x429000-0x429fff:S,
>>> 0x42a000-0x42afff:S, 0x42b000-0x42bfff:S, 0x42c00
>>> 0-0x42cfff:S, 0x42d000-0x42dfff:S, 0x42e000-0x42efff:S,
>>> 0x42f000-0x42ffff:S, 0x430000-0x430fff:S, 0x431000-0x431fff:
>>> S, 0x432000-0x432fff:S, 0x433000-0x433fff:S, 0x434000-0x434fff:S,
>>> 0x435000-0x435fff:S, 0x436000-0x436fff:S, 0x437000
>>> -0x437fff:S, 0x438000-0x438fff:S, 0x439000-0x439fff:S,
>> 0x43a000-0x43afff:S,
>>> 0x43b000-0x43bfff:S, 0x43c000-0x43cfff:S
>>> , 0x43d000-0x43dfff:S, 0x43e000-0x43efff:S, 0x43f000-0x43ffff:S,
>>> 0x440000-0x440fff:S, 0x441000-0x441fff:S, 0x442000-
>>> 0x442fff:S, 0x443000-0x443fff:S, 0x444000-0x444fff:S,
>> 0x445000-0x445fff:S,
>>> 0x446000-0x446fff:S, 0x447000-0x447fff:S,
>>> 0x448000-0x448fff:S, 0x449000-0x449fff:S, 0x44a000-0x44afff:S,
>>> 0x44b000-0x44bfff:S, 0x44c000-0x44cfff:S, 0x44d000-0
>>> x44dfff:S, 0x44e000-0x44efff:S, 0x44f000-0x44ffff:S, 0x450000-0x450fff:S,
>>> 0x451000-0x451fff:S, 0x452000-0x452fff:S,
>>> 0x453000-0x453fff:S, 0x454000-0x454fff:S, 0x455000-0x455fff:S,
>>> 0x456000-0x456fff:S, 0x457000-0x457fff:S, 0x458000-0x
>>> 458fff:S, 0x459000-0x459fff:S, 0x45a000-0x45afff:S, 0x45b000-0x45bfff:S,
>>> 0x45c000-0x45cfff:S, 0x45d000-0x45dfff:S, 0
>>> x45e000-0x45efff:S, 0x45f000-0x45ffff:S, 0x460000-0x460fff:S,
>>> 0x461000-0x461fff:S, 0x462000-0x462fff:S, 0x463000-0x4
>>> 63fff:S, 0x464000-0x464fff:S, 0x465000-0x465fff:S, 0x466000-0x466fff:S,
>>> 0x467000-0x467fff:S, 0x468000-0x468fff:S, 0x
>>> 469000-0x469fff:S, 0x46a000-0x46afff:S, 0x46b000-0x46bfff:S,
>>> 0x46c000-0x46cfff:S, 0x46d000-0x46dfff:S, 0x46e000-0x46
>>> efff:S, 0x46f000-0x46ffff:S, 0x470000-0x470fff:S, 0x471000-0x471fff:S,
>>> 0x472000-0x472fff:S, 0x473000-0x473fff:S, 0x4
>>> 74000-0x474fff:S, 0x475000-0x475fff:S, 0x476000-0x476fff:S,
>>> 0x477000-0x477fff:S, 0x478000-0x478fff:S, 0x479000-0x479
>>> fff:S, 0x47a000-0x47afff:S, 0x47b000-0x47bfff:S, 0x47c000-0x47cfff:S,
>>> 0x47d000-0x47dfff:S, 0x47e000-0x47efff:S, 0x47
>>> f000-0x47ffff:S, 0x480000-0x480fff:S, 0x481000-0x481fff:S,
>>> 0x482000-0x482fff:S, 0x483000-0x483fff:S, 0x484000-0x484f
>>> ff:S, 0x485000-0x485fff:S, 0x486000-0x486fff:S, 0x487000-0x487fff:S,
>>> 0x488000-0x488fff:S, 0x489000-0x489fff:S, 0x48a
>>> 000-0x48afff:S, 0x48b000-0x48bfff:S, 0x48c000-0x48cfff:S,
>>> 0x48d000-0x48dfff:S, 0x48e000-0x48efff:S, 0x48f000-0x48fff
>>> f:S, 0x490000-0x490fff:S, 0x491000-0x491fff:S, 0x492000-0x492fff:S,
>>> 0x493000-0x493fff:S, 0x494000-0x494fff:S, 0x4950
>>> 00-0x495fff:S, 0x496000-0x496fff:S, 0x497000-0x497fff:S,
>>> 0x498000-0x498fff:S, 0x499000-0x499fff:S, 0x49a000-0x49afff
>>> :S, 0x49b000-0x49bfff:S, 0x49c000-0x49cfff:S, 0x49d000-0x49dfff:S,
>>> 0x49e000-0x49efff:S, 0x49f000-0x49ffff:S, 0x4a000
>>> 0-0x4a0fff:S, 0x4a1000-0x4a1fff:S, 0x4a2000-0x4a2fff:S,
>>> 0x4a3000-0x4a3fff:S, 0x4a4000-0x4a4fff:S, 0x4a5000-0x4a5fff:
>>> S, 0x4a6000-0x4a6fff:S, 0x4a7000-0x4a7fff:S, 0x4a8000-0x4a8fff:S,
>>> 0x4a9000-0x4a9fff:S, 0x4aa000-0x4aafff:S, 0x4ab000
>>> -0x4abfff:S, 0x4ac000-0x4acfff:S, 0x4ad000-0x4adfff:S,
>> 0x4ae000-0x4aefff:S,
>>> 0x4af000-0x4affff:S, 0x4b0000-0x4b0fff:S
>>> , 0x4b1000-0x4b1fff:S, 0x4b2000-0x4b2fff:S, 0x4b3000-0x4b3fff:S,
>>> 0x4b4000-0x4b4fff:S, 0x4b5000-0x4b5fff:S, 0x4b6000-
>>> 0x4b6fff:S, 0x4b7000-0x4b7fff:S, 0x4b8000-0x4b8fff:S,
>> 0x4b9000-0x4b9fff:S,
>>> 0x4ba000-0x4bafff:S, 0x4bb000-0x4bbfff:S,
>>> 0x4bc000-0x4bcfff:S, 0x4bd000-0x4bdfff:S, 0x4be000-0x4befff:S,
>>> 0x4bf000-0x4bffff:S, 0x4c0000-0x4c0fff:S, 0x4c1000-0
>>> x4c1fff:S, 0x4c2000-0x4c2fff:S, 0x4c3000-0x4c3fff:S, 0x4c4000-0x4c4fff:S,
>>> 0x4c5000-0x4c5fff:S, 0x4c6000-0x4c6fff:S,
>>> 0x4c7000-0x4c7fff:S, 0x4c8000-0x4c8fff:S, 0x4c9000-0x4c9fff:S,
>>> 0x4ca000-0x4cafff:S, 0x4cb000-0x4cbfff:S, 0x4cc000-0x
>>> 4ccfff:S, 0x4cd000-0x4cdfff:S, 0x4ce000-0x4cefff:S, 0x4cf000-0x4cffff:S,
>>> 0x4d0000-0x4d0fff:S, 0x4d1000-0x4d1fff:S, 0
>>> x4d2000-0x4d2fff:S, 0x4d3000-0x4d3fff:S, 0x4d4000-0x4d4fff:S,
>>> 0x4d5000-0x4d5fff:S, 0x4d6000-0x4d6fff:S, 0x4d7000-0x4
>>> d7fff:S, 0x4d8000-0x4d8fff:S, 0x4d9000-0x4d9fff:S, 0x4da000-0x4dafff:S,
>>> 0x4db000-0x4dbfff:S, 0x4dc000-0x4dcfff:S, 0x
>>> 4dd000-0x4ddfff:S, 0x4de000-0x4defff:S, 0x4df000-0x4dffff:S,
>>> 0x4e0000-0x4e0fff:S, 0x4e1000-0x4e1fff:S, 0x4e2000-0x4e
>>> 2fff:S, 0x4e3000-0x4e3fff:S, 0x4e4000-0x4e4fff:S, 0x4e5000-0x4e5fff:S,
>>> 0x4e6000-0x4e6fff:S, 0x4e7000-0x4e7fff:S, 0x4
>>> e8000-0x4e8fff:S, 0x4e9000-0x4e9fff:S, 0x4ea000-0x4eafff:S,
>>> 0x4eb000-0x4ebfff:S, 0x4ec000-0x4ecfff:S, 0x4ed000-0x4ed
>>> fff:S, 0x4ee000-0x4eefff:S, 0x4ef000-0x4effff:S, 0x4f0000-0x4f0fff:S,
>>> 0x4f1000-0x4f1fff:S, 0x4f2000-0x4f2fff:S, 0x4f
>>> 3000-0x4f3fff:S, 0x4f4000-0x4f4fff:S, 0x4f5000-0x4f5fff:S,
>>> 0x4f6000-0x4f6fff:S, 0x4f7000-0x4f7fff:S, 0x4f8000-0x4f8f
>>> ff:S, 0x4f9000-0x4f9fff:S, 0x4fa000-0x4fafff:S, 0x4fb000-0x4fbfff:S,
>>> 0x4fc000-0x4fcfff:S, 0x4fd000-0x4fdfff:S, 0x4fe
>>> 000-0x4fefff:S, 0x4ff000-0x4fffff:S, 0x500000-0x500fff:S,
>>> 0x501000-0x501fff:S, 0x502000-0x502fff:S, 0x503000-0x503ff
>>> f:S, 0x504000-0x504fff:S, 0x505000-0x505fff:S, 0x506000-0x506fff:S,
>>> 0x507000-0x507fff:S, 0x508000-0x508fff:S, 0x5090
>>> 00-0x509fff:S, 0x50a000-0x50afff:S, 0x50b000-0x50bfff:S,
>>> 0x50c000-0x50cfff:S, 0x50d000-0x50dfff:S, 0x50e000-0x50efff
>>> :S, 0x50f000-0x50ffff:S, 0x510000-0x510fff:S, 0x511000-0x511fff:S,
>>> 0x512000-0x512fff:S, 0x513000-0x513fff:S, 0x51400
>>> 0-0x514fff:S, 0x515000-0x515fff:S, 0x516000-0x516fff:S,
>>> 0x517000-0x517fff:S, 0x518000-0x518fff:S, 0x519000-0x519fff:
>>> S, 0x51a000-0x51afff:S, 0x51b000-0x51bfff:S, 0x51c000-0x51cfff:S,
>>> 0x51d000-0x51dfff:S, 0x51e000-0x51efff:S, 0x51f000
>>> -0x51ffff:S, 0x520000-0x520fff:S, 0x521000-0x521fff:S,
>> 0x522000-0x522fff:S,
>>> 0x523000-0x523fff:S, 0x524000-0x524fff:S
>>> , 0x525000-0x525fff:S, 0x526000-0x526fff:S, 0x527000-0x527fff:S,
>>> 0x528000-0x528fff:S, 0x529000-0x529fff:S, 0x52a000-
>>> 0x52afff:S, 0x52b000-0x52bfff:S, 0x52c000-0x52cfff:S,
>> 0x52d000-0x52dfff:S,
>>> 0x52e000-0x52efff:S, 0x52f000-0x52ffff:S,
>>> 0x530000-0x530fff:S, 0x531000-0x531fff:S, 0x532000-0x532fff:S,
>>> 0x533000-0x533fff:S, 0x534000-0x534fff:S, 0x535000-0
>>> x535fff:S, 0x536000-0x536fff:S, 0x537000-0x537fff:S, 0x538000-0x538fff:S,
>>> 0x539000-0x539fff:S, 0x53a000-0x53afff:S,
>>> 0x53b000-0x53bfff:S, 0x53c000-0x53cfff:S, 0x53d000-0x53dfff:S,
>>> 0x53e000-0x53efff:S, 0x53f000-0x53ffff:S, 0x540000-0x
>>> 540fff:S, 0x541000-0x541fff:S, 0x542000-0x542fff:S, 0x543000-0x543fff:S,
>>> 0x544000-0x544fff:S, 0x545000-0x545fff:S, 0
>>> x546000-0x546fff:S, 0x547000-0x547fff:S, 0x548000-0x548fff:S,
>>> 0x549000-0x549fff:S, 0x54a000-0x54afff:S, 0x54b000-0x5
>>> 4bfff:S, 0x54c000-0x54cfff:S, 0x54d000-0x54dfff:S, 0x54e000-0x54efff:S,
>>> 0x54f000-0x54ffff:S, 0x550000-0x550fff:S, 0x
>>> 551000-0x551fff:S, 0x552000-0x552fff:S, 0x553000-0x553fff:S,
>>> 0x554000-0x554fff:S, 0x555000-0x555fff:S, 0x556000-0x55
>>> 6fff:S, 0x557000-0x557fff:S, 0x558000-0x558fff:S, 0x559000-0x559fff:S,
>>> 0x55a000-0x55afff:S, 0x55b000-0x55bfff:S, 0x5
>>> 5c000-0x55cfff:S, 0x55d000-0x55dfff:S, 0x55e000-0x55efff:S,
>>> 0x55f000-0x55ffff:S, 0x560000-0x560fff:S, 0x561000-0x561
>>> fff:S, 0x562000-0x562fff:S, 0x563000-0x563fff:S, 0x564000-0x564fff:S,
>>> 0x565000-0x565fff:S, 0x566000-0x566fff:S, 0x56
>>> 7000-0x567fff:S, 0x568000-0x568fff:S, 0x569000-0x569fff:S,
>>> 0x56a000-0x56afff:S, 0x56b000-0x56bfff:S, 0x56c000-0x56cf
>>> ff:S, 0x56d000-0x56dfff:S, 0x56e000-0x56efff:S, 0x56f000-0x56ffff:S,
>>> 0x570000-0x570fff:S, 0x571000-0x571fff:S, 0x572
>>> 000-0x572fff:S, 0x573000-0x573fff:S, 0x574000-0x574fff:S,
>>> 0x575000-0x575fff:S, 0x576000-0x576fff:S, 0x577000-0x577ff
>>> f:S, 0x578000-0x578fff:S, 0x579000-0x579fff:S, 0x57a000-0x57afff:S,
>>> 0x57b000-0x57bfff:S, 0x57c000-0x57cfff:S, 0x57d0
>>> 00-0x57dfff:S, 0x57e000-0x57efff:S, 0x57f000-0x57ffff:S,
>>> 0x580000-0x580fff:S, 0x581000-0x581fff:S, 0x582000-0x582fff
>>> :S, 0x583000-0x583fff:S, 0x584000-0x584fff:S, 0x585000-0x585fff:S,
>>> 0x586000-0x586fff:S, 0x587000-0x587fff:S, 0x58800
>>> 0-0x588fff:S, 0x589000-0x589fff:S, 0x58a000-0x58afff:S,
>>> 0x58b000-0x58bfff:S, 0x58c000-0x58cfff:S, 0x58d000-0x58dfff:
>>> S, 0x58e000-0x58efff:S, 0x58f000-0x58ffff:S, 0x590000-0x590fff:S,
>>> 0x591000-0x591fff:S, 0x592000-0x592fff:S, 0x593000
>>> -0x593fff:S, 0x594000-0x594fff:S, 0x595000-0x595fff:S,
>> 0x596000-0x596fff:S,
>>> 0x597000-0x597fff:S, 0x598000-0x598fff:S
>>> , 0x599000-0x599fff:S, 0x59a000-0x59afff:S, 0x59b000-0x59bfff:S,
>>> 0x59c000-0x59cfff:S, 0x59d000-0x59dfff:S, 0x59e000-
>>> 0x59efff:S, 0x59f000-0x59ffff:S, 0x5a0000-0x5a0fff:S,
>> 0x5a1000-0x5a1fff:S,
>>> 0x5a2000-0x5a2fff:S, 0x5a3000-0x5a3fff:S,
>>> 0x5a4000-0x5a4fff:S, 0x5a5000-0x5a5fff:S, 0x5a6000-0x5a6fff:S,
>>> 0x5a7000-0x5a7fff:S, 0x5a8000-0x5a8fff:S, 0x5a9000-0
>>> x5a9fff:S, 0x5aa000-0x5aafff:S, 0x5ab000-0x5abfff:S, 0x5ac000-0x5acfff:S,
>>> 0x5ad000-0x5adfff:S, 0x5ae000-0x5aefff:S,
>>> 0x5af000-0x5affff:S, 0x5b0000-0x5b0fff:S, 0x5b1000-0x5b1fff:S,
>>> 0x5b2000-0x5b2fff:S, 0x5b3000-0x5b3fff:S, 0x5b4000-0x
>>> 5b4fff:S, 0x5b5000-0x5b5fff:S, 0x5b6000-0x5b6fff:S, 0x5b7000-0x5b7fff:S,
>>> 0x5b8000-0x5b8fff:S, 0x5b9000-0x5b9fff:S, 0
>>> x5ba000-0x5bafff:S, 0x5bb000-0x5bbfff:S, 0x5bc000-0x5bcfff:S,
>>> 0x5bd000-0x5bdfff:S, 0x5be000-0x5befff:S, 0x5bf000-0x5
>>> bffff:S, 0x5c0000-0x5c0fff:S, 0x5c1000-0x5c1fff:S, 0x5c2000-0x5c2fff:S,
>>> 0x5c3000-0x5c3fff:S, 0x5c4000-0x5c4fff:S, 0x
>>> 5c5000-0x5c5fff:S, 0x5c6000-0x5c6fff:S, 0x5c7000-0x5c7fff:S,
>>> 0x5c8000-0x5c8fff:S, 0x5c9000-0x5c9fff:S, 0x5ca000-0x5c
>>> afff:S, 0x5cb000-0x5cbfff:S, 0x5cc000-0x5ccfff:S, 0x5cd000-0x5cdfff:S,
>>> 0x5ce000-0x5cefff:S, 0x5cf000-0x5cffff:S, 0x5
>>> d0000-0x5d0fff:S, 0x5d1000-0x5d1fff:S, 0x5d2000-0x5d2fff:S,
>>> 0x5d3000-0x5d3fff:S, 0x5d4000-0x5d4fff:S, 0x5d5000-0x5d5
>>> fff:S, 0x5d6000-0x5d6fff:S, 0x5d7000-0x5d7fff:S, 0x5d8000-0x5d8fff:S,
>>> 0x5d9000-0x5d9fff:S, 0x5da000-0x5dafff:S, 0x5d
>>> b000-0x5dbfff:S, 0x5dc000-0x5dcfff:S, 0x5dd000-0x5ddfff:S,
>>> 0x5de000-0x5defff:S, 0x5df000-0x5dffff:S, 0x5e0000-0x5e0f
>>> ff:S, 0x5e1000-0x5e1fff:S, 0x5e2000-0x5e2fff:S, 0x5e3000-0x5e3fff:S,
>>> 0x5e4000-0x5e4fff:S, 0x5e5000-0x5e5fff:S, 0x5e6
>>> 000-0x5e6fff:S, 0x5e7000-0x5e7fff:S, 0x5e8000-0x5e8fff:S,
>>> 0x5e9000-0x5e9fff:S, 0x5ea000-0x5eafff:S, 0x5eb000-0x5ebff
>>> f:S, 0x5ec000-0x5ecfff:S, 0x5ed000-0x5edfff:S, 0x5ee000-0x5eefff:S,
>>> 0x5ef000-0x5effff:S, 0x5f0000-0x5f0fff:S, 0x5f10
>>> 00-0x5f1fff:S, 0x5f2000-0x5f2fff:S, 0x5f3000-0x5f3fff:S,
>>> 0x5f4000-0x5f4fff:S, 0x5f5000-0x5f5fff:S, 0x5f6000-0x5f6fff
>>> :S, 0x5f7000-0x5f7fff:S, 0x5f8000-0x5f8fff:S, 0x5f9000-0x5f9fff:S,
>>> 0x5fa000-0x5fafff:S, 0x5fb000-0x5fbfff:S, 0x5fc00
>>> 0-0x5fcfff:S, 0x5fd000-0x5fdfff:S, 0x5fe000-0x5fefff:S,
>>> 0x5ff000-0x5fffff:S, 0x600000-0x600fff:S, 0x601000-0x601fff:
>>> S, 0x602000-0x602fff:S, 0x603000-0x603fff:S, 0x604000-0x604fff:S,
>>> 0x605000-0x605fff:S, 0x606000-0x606fff:S, 0x607000
>>> -0x607fff:S, 0x608000-0x608fff:S, 0x609000-0x609fff:S,
>> 0x60a000-0x60afff:S,
>>> 0x60b000-0x60bfff:S, 0x60c000-0x60cfff:S
>>> , 0x60d000-0x60dfff:S, 0x60e000-0x60efff:S, 0x60f000-0x60ffff:S,
>>> 0x610000-0x610fff:S, 0x611000-0x611fff:S, 0x612000-
>>> 0x612fff:S, 0x613000-0x613fff:S, 0x614000-0x614fff:S,
>> 0x615000-0x615fff:S,
>>> 0x616000-0x616fff:S, 0x617000-0x617fff:S,
>>> 0x618000-0x618fff:S, 0x619000-0x619fff:S, 0x61a000-0x61afff:S,
>>> 0x61b000-0x61bfff:S, 0x61c000-0x61cfff:S, 0x61d000-0
>>> x61dfff:S, 0x61e000-0x61efff:S, 0x61f000-0x61ffff:S, 0x620000-0x620fff:S,
>>> 0x621000-0x621fff:S, 0x622000-0x622fff:S,
>>> 0x623000-0x623fff:S, 0x624000-0x624fff:S, 0x625000-0x625fff:S,
>>> 0x626000-0x626fff:S, 0x627000-0x627fff:S, 0x628000-0x
>>> 628fff:S, 0x629000-0x629fff:S, 0x62a000-0x62afff:S, 0x62b000-0x62bfff:S,
>>> 0x62c000-0x62cfff:S, 0x62d000-0x62dfff:S, 0
>>> x62e000-0x62efff:S, 0x62f000-0x62ffff:S, 0x630000-0x630fff:S,
>>> 0x631000-0x631fff:S, 0x632000-0x632fff:S, 0x633000-0x6
>>> 33fff:S, 0x634000-0x634fff:S, 0x635000-0x635fff:S, 0x636000-0x636fff:S,
>>> 0x637000-0x637fff:S, 0x638000-0x638fff:S, 0x
>>> 639000-0x639fff:S, 0x63a000-0x63afff:S, 0x63b000-0x63bfff:S,
>>> 0x63c000-0x63cfff:S, 0x63d000-0x63dfff:S, 0x63e000-0x63
>>> efff:S, 0x63f000-0x63ffff:S, 0x640000-0x640fff:S, 0x641000-0x641fff:S,
>>> 0x642000-0x642fff:S, 0x643000-0x643fff:S, 0x6
>>> 44000-0x644fff:S, 0x645000-0x645fff:S, 0x646000-0x646fff:S,
>>> 0x647000-0x647fff:S, 0x648000-0x648fff:S, 0x649000-0x649
>>> fff:S, 0x64a000-0x64afff:S, 0x64b000-0x64bfff:S, 0x64c000-0x64cfff:S,
>>> 0x64d000-0x64dfff:S, 0x64e000-0x64efff:S, 0x64
>>> f000-0x64ffff:S, 0x650000-0x650fff:S, 0x651000-0x651fff:S,
>>> 0x652000-0x652fff:S, 0x653000-0x653fff:S, 0x654000-0x654f
>>> ff:S, 0x655000-0x655fff:S, 0x656000-0x656fff:S, 0x657000-0x657fff:S,
>>> 0x658000-0x658fff:S, 0x659000-0x659fff:S, 0x65a
>>> 000-0x65afff:S, 0x65b000-0x65bfff:S, 0x65c000-0x65cfff:S,
>>> 0x65d000-0x65dfff:S, 0x65e000-0x65efff:S, 0x65f000-0x65fff
>>> f:S, 0x660000-0x660fff:S, 0x661000-0x661fff:S, 0x662000-0x662fff:S,
>>> 0x663000-0x663fff:S, 0x664000-0x664fff:S, 0x6650
>>> 00-0x665fff:S, 0x666000-0x666fff:S, 0x667000-0x667fff:S,
>>> 0x668000-0x668fff:S, 0x669000-0x669fff:S, 0x66a000-0x66afff
>>> :S, 0x66b000-0x66bfff:S, 0x66c000-0x66cfff:S, 0x66d000-0x66dfff:S,
>>> 0x66e000-0x66efff:S, 0x66f000-0x66ffff:S, 0x67000
>>> 0-0x670fff:S, 0x671000-0x671fff:S, 0x672000-0x672fff:S,
>>> 0x673000-0x673fff:S, 0x674000-0x674fff:S, 0x675000-0x675fff:
>>> S, 0x676000-0x676fff:S, 0x677000-0x677fff:S, 0x678000-0x678fff:S,
>>> 0x679000-0x679fff:S, 0x67a000-0x67afff:S, 0x67b000
>>> -0x67bfff:S, 0x67c000-0x67cfff:S, 0x67d000-0x67dfff:S,
>> 0x67e000-0x67efff:S,
>>> 0x67f000-0x67ffff:S, 0x680000-0x680fff:S
>>> , 0x681000-0x681fff:S, 0x682000-0x682fff:S, 0x683000-0x683fff:S,
>>> 0x684000-0x684fff:S, 0x685000-0x685fff:S, 0x686000-
>>> 0x686fff:S, 0x687000-0x687fff:S, 0x688000-0x688fff:S,
>> 0x689000-0x689fff:S,
>>> 0x68a000-0x68afff:S, 0x68b000-0x68bfff:S,
>>> 0x68c000-0x68cfff:S, 0x68d000-0x68dfff:S, 0x68e000-0x68efff:S,
>>> 0x68f000-0x68ffff:S, 0x690000-0x690fff:S, 0x691000-0
>>> x691fff:S, 0x692000-0x692fff:S, 0x693000-0x693fff:S, 0x694000-0x694fff:S,
>>> 0x695000-0x695fff:S, 0x696000-0x696fff:S,
>>> 0x697000-0x697fff:S, 0x698000-0x698fff:S, 0x699000-0x699fff:S,
>>> 0x69a000-0x69afff:S, 0x69b000-0x69bfff:S, 0x69c000-0x
>>> 69cfff:S, 0x69d000-0x69dfff:S, 0x69e000-0x69efff:S, 0x69f000-0x69ffff:S,
>>> 0x6a0000-0x6a0fff:S, 0x6a1000-0x6a1fff:S, 0
>>> x6a2000-0x6a2fff:S, 0x6a3000-0x6a3fff:S, 0x6a4000-0x6a4fff:S,
>>> 0x6a5000-0x6a5fff:S, 0x6a6000-0x6a6fff:S, 0x6a7000-0x6
>>> a7fff:S, 0x6a8000-0x6a8fff:S, 0x6a9000-0x6a9fff:S, 0x6aa000-0x6aafff:S,
>>> 0x6ab000-0x6abfff:S, 0x6ac000-0x6acfff:S, 0x
>>> 6ad000-0x6adfff:S, 0x6ae000-0x6aefff:S, 0x6af000-0x6affff:S,
>>> 0x6b0000-0x6b0fff:S, 0x6b1000-0x6b1fff:S, 0x6b2000-0x6b
>>> 2fff:S, 0x6b3000-0x6b3fff:S, 0x6b4000-0x6b4fff:S, 0x6b5000-0x6b5fff:S,
>>> 0x6b6000-0x6b6fff:S, 0x6b7000-0x6b7fff:S, 0x6
>>> b8000-0x6b8fff:S, 0x6b9000-0x6b9fff:S, 0x6ba000-0x6bafff:S,
>>> 0x6bb000-0x6bbfff:S, 0x6bc000-0x6bcfff:S, 0x6bd000-0x6bd
>>> fff:S, 0x6be000-0x6befff:S, 0x6bf000-0x6bffff:S, 0x6c0000-0x6c0fff:S,
>>> 0x6c1000-0x6c1fff:S, 0x6c2000-0x6c2fff:S, 0x6c
>>> 3000-0x6c3fff:S, 0x6c4000-0x6c4fff:S, 0x6c5000-0x6c5fff:S,
>>> 0x6c6000-0x6c6fff:S, 0x6c7000-0x6c7fff:S, 0x6c8000-0x6c8f
>>> ff:S, 0x6c9000-0x6c9fff:S, 0x6ca000-0x6cafff:S, 0x6cb000-0x6cbfff:S,
>>> 0x6cc000-0x6ccfff:S, 0x6cd000-0x6cdfff:S, 0x6ce
>>> 000-0x6cefff:S, 0x6cf000-0x6cffff:S, 0x6d0000-0x6d0fff:S,
>>> 0x6d1000-0x6d1fff:S, 0x6d2000-0x6d2fff:S, 0x6d3000-0x6d3ff
>>> f:S, 0x6d4000-0x6d4fff:S, 0x6d5000-0x6d5fff:S, 0x6d6000-0x6d6fff:S,
>>> 0x6d7000-0x6d7fff:S, 0x6d8000-0x6d8fff:S, 0x6d90
>>> 00-0x6d9fff:S, 0x6da000-0x6dafff:S, 0x6db000-0x6dbfff:S,
>>> 0x6dc000-0x6dcfff:S, 0x6dd000-0x6ddfff:S, 0x6de000-0x6defff
>>> :S, 0x6df000-0x6dffff:S, 0x6e0000-0x6e0fff:S, 0x6e1000-0x6e1fff:S,
>>> 0x6e2000-0x6e2fff:S, 0x6e3000-0x6e3fff:S, 0x6e400
>>> 0-0x6e4fff:S, 0x6e5000-0x6e5fff:S, 0x6e6000-0x6e6fff:S,
>>> 0x6e7000-0x6e7fff:S, 0x6e8000-0x6e8fff:S, 0x6e9000-0x6e9fff:
>>> S, 0x6ea000-0x6eafff:S, 0x6eb000-0x6ebfff:S, 0x6ec000-0x6ecfff:S,
>>> 0x6ed000-0x6edfff:S, 0x6ee000-0x6eefff:S, 0x6ef000
>>> -0x6effff:S, 0x6f0000-0x6f0fff:S, 0x6f1000-0x6f1fff:S,
>> 0x6f2000-0x6f2fff:S,
>>> 0x6f3000-0x6f3fff:S, 0x6f4000-0x6f4fff:S
>>> , 0x6f5000-0x6f5fff:S, 0x6f6000-0x6f6fff:S, 0x6f7000-0x6f7fff:S,
>>> 0x6f8000-0x6f8fff:S, 0x6f9000-0x6f9fff:S, 0x6fa000-
>>> 0x6fafff:S, 0x6fb000-0x6fbfff:S, 0x6fc000-0x6fcfff:S,
>> 0x6fd000-0x6fdfff:S,
>>> 0x6fe000-0x6fefff:S, 0x6ff000-0x6fffff:S,
>>> 0x700000-0x700fff:S, 0x701000-0x701fff:S, 0x702000-0x702fff:S,
>>> 0x703000-0x703fff:S, 0x704000-0x704fff:S, 0x705000-0
>>> x705fff:S, 0x706000-0x706fff:S, 0x707000-0x707fff:S, 0x708000-0x708fff:S,
>>> 0x709000-0x709fff:S, 0x70a000-0x70afff:S,
>>> 0x70b000-0x70bfff:S, 0x70c000-0x70cfff:S, 0x70d000-0x70dfff:S,
>>> 0x70e000-0x70efff:S, 0x70f000-0x70ffff:S, 0x710000-0x
>>> 710fff:S, 0x711000-0x711fff:S, 0x712000-0x712fff:S, 0x713000-0x713fff:S,
>>> 0x714000-0x714fff:S, 0x715000-0x715fff:S, 0
>>> x716000-0x716fff:S, 0x717000-0x717fff:S, 0x718000-0x718fff:S,
>>> 0x719000-0x719fff:S, 0x71a000-0x71afff:S, 0x71b000-0x7
>>> 1bfff:S, 0x71c000-0x71cfff:S, 0x71d000-0x71dfff:S, 0x71e000-0x71efff:S,
>>> 0x71f000-0x71ffff:S, 0x720000-0x720fff:S, 0x
>>> 721000-0x721fff:S, 0x722000-0x722fff:S, 0x723000-0x723fff:S,
>>> 0x724000-0x724fff:S, 0x725000-0x725fff:S, 0x726000-0x72
>>> 6fff:S, 0x727000-0x727fff:S, 0x728000-0x728fff:S, 0x729000-0x729fff:S,
>>> 0x72a000-0x72afff:S, 0x72b000-0x72bfff:S, 0x7
>>> 2c000-0x72cfff:S, 0x72d000-0x72dfff:S, 0x72e000-0x72efff:S,
>>> 0x72f000-0x72ffff:S, 0x730000-0x730fff:S, 0x731000-0x731
>>> fff:S, 0x732000-0x732fff:S, 0x733000-0x733fff:S, 0x734000-0x734fff:S,
>>> 0x735000-0x735fff:S, 0x736000-0x736fff:S, 0x73
>>> 7000-0x737fff:S, 0x738000-0x738fff:S, 0x739000-0x739fff:S,
>>> 0x73a000-0x73afff:S, 0x73b000-0x73bfff:S, 0x73c000-0x73cf
>>> ff:S, 0x73d000-0x73dfff:S, 0x73e000-0x73efff:S, 0x73f000-0x73ffff:S,
>>> 0x740000-0x740fff:S, 0x741000-0x741fff:S, 0x742
>>> 000-0x742fff:S, 0x743000-0x743fff:S, 0x744000-0x744fff:S,
>>> 0x745000-0x745fff:S, 0x746000-0x746fff:S, 0x747000-0x747ff
>>> f:S, 0x748000-0x748fff:S, 0x749000-0x749fff:S, 0x74a000-0x74afff:S,
>>> 0x74b000-0x74bfff:S, 0x74c000-0x74cfff:S, 0x74d0
>>> 00-0x74dfff:S, 0x74e000-0x74efff:S, 0x74f000-0x74ffff:S,
>>> 0x750000-0x750fff:S, 0x751000-0x751fff:S, 0x752000-0x752fff
>>> :S, 0x753000-0x753fff:S, 0x754000-0x754fff:S, 0x755000-0x755fff:S,
>>> 0x756000-0x756fff:S, 0x757000-0x757fff:S, 0x75800
>>> 0-0x758fff:S, 0x759000-0x759fff:S, 0x75a000-0x75afff:S,
>>> 0x75b000-0x75bfff:S, 0x75c000-0x75cfff:S, 0x75d000-0x75dfff:
>>> S, 0x75e000-0x75efff:S, 0x75f000-0x75ffff:S, 0x760000-0x760fff:S,
>>> 0x761000-0x761fff:S, 0x762000-0x762fff:S, 0x763000
>>> -0x763fff:S, 0x764000-0x764fff:S, 0x765000-0x765fff:S,
>> 0x766000-0x766fff:S,
>>> 0x767000-0x767fff:S, 0x768000-0x768fff:S
>>> , 0x769000-0x769fff:S, 0x76a000-0x76afff:S, 0x76b000-0x76bfff:S,
>>> 0x76c000-0x76cfff:S, 0x76d000-0x76dfff:S, 0x76e000-
>>> 0x76efff:S, 0x76f000-0x76ffff:S, 0x770000-0x770fff:S,
>> 0x771000-0x771fff:S,
>>> 0x772000-0x772fff:S, 0x773000-0x773fff:S,
>>> 0x774000-0x774fff:S, 0x775000-0x775fff:S, 0x776000-0x776fff:S,
>>> 0x777000-0x777fff:S, 0x778000-0x778fff:S, 0x779000-0
>>> x779fff:S, 0x77a000-0x77afff:S, 0x77b000-0x77bfff:S, 0x77c000-0x77cfff:S,
>>> 0x77d000-0x77dfff:S, 0x77e000-0x77efff:S,
>>> 0x77f000-0x77ffff:S, 0x780000-0x780fff:S, 0x781000-0x781fff:S,
>>> 0x782000-0x782fff:S, 0x783000-0x783fff:S, 0x784000-0x
>>> 784fff:S, 0x785000-0x785fff:S, 0x786000-0x786fff:S, 0x787000-0x787fff:S,
>>> 0x788000-0x788fff:S, 0x789000-0x789fff:S, 0
>>> x78a000-0x78afff:S, 0x78b000-0x78bfff:S, 0x78c000-0x78cfff:S,
>>> 0x78d000-0x78dfff:S, 0x78e000-0x78efff:S, 0x78f000-0x7
>>> 8ffff:S, 0x790000-0x790fff:S, 0x791000-0x791fff:S, 0x792000-0x792fff:S,
>>> 0x793000-0x793fff:S, 0x794000-0x794fff:S, 0x
>>> 795000-0x795fff:S, 0x796000-0x796fff:S, 0x797000-0x797fff:S,
>>> 0x798000-0x798fff:S, 0x799000-0x799fff:S, 0x79a000-0x79
>>> afff:S, 0x79b000-0x79bfff:S, 0x79c000-0x79cfff:S, 0x79d000-0x79dfff:S,
>>> 0x79e000-0x79efff:S, 0x79f000-0x79ffff:S, 0x7
>>> a0000-0x7a0fff:S, 0x7a1000-0x7a1fff:S, 0x7a2000-0x7a2fff:S,
>>> 0x7a3000-0x7a3fff:S, 0x7a4000-0x7a4fff:S, 0x7a5000-0x7a5
>>> fff:S, 0x7a6000-0x7a6fff:S, 0x7a7000-0x7a7fff:S, 0x7a8000-0x7a8fff:S,
>>> 0x7a9000-0x7a9fff:S, 0x7aa000-0x7aafff:S, 0x7a
>>> b000-0x7abfff:S, 0x7ac000-0x7acfff:S, 0x7ad000-0x7adfff:S,
>>> 0x7ae000-0x7aefff:S, 0x7af000-0x7affff:S, 0x7b0000-0x7b0f
>>> ff:S, 0x7b1000-0x7b1fff:S, 0x7b2000-0x7b2fff:S, 0x7b3000-0x7b3fff:S,
>>> 0x7b4000-0x7b4fff:S, 0x7b5000-0x7b5fff:S, 0x7b6
>>> 000-0x7b6fff:S, 0x7b7000-0x7b7fff:S, 0x7b8000-0x7b8fff:S,
>>> 0x7b9000-0x7b9fff:S, 0x7ba000-0x7bafff:S, 0x7bb000-0x7bbff
>>> f:S, 0x7bc000-0x7bcfff:S, 0x7bd000-0x7bdfff:S, 0x7be000-0x7befff:S,
>>> 0x7bf000-0x7bffff:S, 0x7c0000-0x7c0fff:S, 0x7c10
>>> 00-0x7c1fff:S, 0x7c2000-0x7c2fff:S, 0x7c3000-0x7c3fff:S,
>>> 0x7c4000-0x7c4fff:S, 0x7c5000-0x7c5fff:S, 0x7c6000-0x7c6fff
>>> :S, 0x7c7000-0x7c7fff:S, 0x7c8000-0x7c8fff:S, 0x7c9000-0x7c9fff:S,
>>> 0x7ca000-0x7cafff:S, 0x7cb000-0x7cbfff:S, 0x7cc00
>>> 0-0x7ccfff:S, 0x7cd000-0x7cdfff:S, 0x7ce000-0x7cefff:S,
>>> 0x7cf000-0x7cffff:S, 0x7d0000-0x7d0fff:S, 0x7d1000-0x7d1fff:
>>> S, 0x7d2000-0x7d2fff:S, 0x7d3000-0x7d3fff:S, 0x7d4000-0x7d4fff:S,
>>> 0x7d5000-0x7d5fff:S, 0x7d6000-0x7d6fff:S, 0x7d7000
>>> -0x7d7fff:S, 0x7d8000-0x7d8fff:S, 0x7d9000-0x7d9fff:S,
>> 0x7da000-0x7dafff:S,
>>> 0x7db000-0x7dbfff:S, 0x7dc000-0x7dcfff:S
>>> , 0x7dd000-0x7ddfff:S, 0x7de000-0x7defff:S, 0x7df000-0x7dffff:S,
>>> 0x7e0000-0x7e0fff:S, 0x7e1000-0x7e1fff:S, 0x7e2000-
>>> 0x7e2fff:S, 0x7e3000-0x7e3fff:S, 0x7e4000-0x7e4fff:S,
>> 0x7e5000-0x7e5fff:S,
>>> 0x7e6000-0x7e6fff:S, 0x7e7000-0x7e7fff:S,
>>> 0x7e8000-0x7e8fff:S, 0x7e9000-0x7e9fff:S, 0x7ea000-0x7eafff:S,
>>> 0x7eb000-0x7ebfff:S, 0x7ec000-0x7ecfff:S, 0x7ed000-0
>>> x7edfff:S, 0x7ee000-0x7eefff:S, 0x7ef000-0x7effff:S, 0x7f0000-0x7f0fff:S,
>>> 0x7f1000-0x7f1fff:S, 0x7f2000-0x7f2fff:S,
>>> 0x7f3000-0x7f3fff:S, 0x7f4000-0x7f4fff:S, 0x7f5000-0x7f5fff:S,
>>> 0x7f6000-0x7f6fff:S, 0x7f7000-0x7f7fff:S, 0x7f8000-0x
>>> 7f8fff:S, 0x7f9000-0x7f9fff:S, 0x7fa000-0x7fafff:S, 0x7fb000-0x7fbfff:S,
>>> 0x7fc000-0x7fcfff:S, 0x7fd000-0x7fdfff:S, 0
>>> x7fe000-0x7fefff:S, 0x7ff000-0x7fffff:S
>>> Erase/write done.
>>> Verifying flash... FAILED at 0x00003001! Expected=0x5f, Found=0xd0,
>> failed
>>> byte count from 0x00000000-0x007fffff: 0x
>>> 306d
>>> Your flash chip is in an unknown state.
>>> Please report this on IRC at chat.freenode.net (channel #flashrom) or
>>> mail flashrom(a)flashrom.org, thanks!
>>> root@beaglebone:/home/libreboot_r20160907_util/flashrom/armv7l#
>>>
>>>
>>>
>>> _______________________________________________
>>> flashrom mailing list
>>> flashrom(a)flashrom.org
>>> https://mail.coreboot.org/mailman/listinfo/flashrom
>>>
>>
>>
>
2
1
Hi all,
I'm the maintainer of fwupd, which is a daemon for doing firmware
updates in Linux. Using fwupd about 200,000 people update firmware
every month. At the moment I have an out-of-tree patch to use the
flashrom CLI for updating coreboot on Purism laptops, which exec's a
flashrom binary with the correct arguments and then screen scrapes the
output. This is less than ideal. I saw the appearance of a libflashrom
in the staging branch and got very excited. I'm assuming the long term
goal here is to install a shared with stable API/ABI library and a
pkg-config file. If so, please keep reading.
One thing that is really important for fwupd is progress completion;
as flashing the firmware is an inherently scary thing to do users do
like to see a progress bar move from 0% to 100% in a gradual way as
it's very re-assuring. This is even more important for the GUI, where
people that just see a spinner don't know if the process is going to
take 10 seconds, or 10 minutes.
Would it be possible to have a process callback for
flashrom_image_read(), flashrom_image_write() and
flashrom_image_verify()? It'd need to have some kind of callback
userdata too, for instance:
int flashrom_image_verify(struct flashrom_flashctx *, const void
*buffer, size_t buffer_len, flashrom_progress_callback callback_fn,
void *callback_user_data);
and also:
typedef void(flashrom_progress_callback)(uint64 completed, unit64
total, void *user_data)
I'm not familiar at all with flashrom internals, but could try to
produce a patch if required -- although to propagate the progress
through operations would mean patching a lot of chip->read() callbacks
which probably requires a more experienced hand. Ideas welcome,
thanks.
Richard.
1
0
Re: [flashrom] When flashrom support Intel Purley platform Lewisburg PCH?
by Sandy Zhang Aug. 14, 2017
by Sandy Zhang Aug. 14, 2017
Aug. 14, 2017
Hi David,
Lewisburg PCH defines sixty SPI regions, but from the code in ichspi.c, I
find it defines only 10 regions, is this the reason about only 10 regions
was described in the log file?
code as below: (num_freg define the spi regions)
int ich_init_spi(void *spibar, enum ich_chipset ich_gen)
{
...
...
...
/* Moving registers / bits */
if (ich_generation == CHIPSET_100_SERIES_SUNRISE_POINT) {
num_freg = 10;
num_pr = 6;
reg_pr0 = PCH100_REG_FPR0;
swseq_data.reg_ssfsc = PCH100_REG_SSFSC;
swseq_data.reg_preop = PCH100_REG_PREOP;
swseq_data.reg_optype = PCH100_REG_OPTYPE;
swseq_data.reg_opmenu = PCH100_REG_OPMENU;
hwseq_data.addr_mask = PCH100_FADDR_FLA;
hwseq_data.only_4k = true;
hwseq_data.hsfc_fcycle = PCH100_HSFC_FCYCLE;
}
2017-08-14 14:23 GMT+08:00 David Hendricks <david.hendricks(a)gmail.com>:
> On Sun, Aug 13, 2017 at 6:26 PM, Sandy Zhang <sanzhang(a)celestica.com>
> wrote:
>
>> Hi David,
>>
>> I'm inline.
>>
>
> I don't see your responses. Did you intend to reply to my comments?
>
>
>>
>> 2017-08-14 9:17 GMT+08:00 David Hendricks <david.hendricks(a)gmail.com>:
>>
>>> Hi Sandy,
>>>
>>> Responses in-line.
>>>
>>> On Fri, Aug 11, 2017 at 1:38 AM, Sandy Zhang <sanzhang(a)celestica.com>
>>> wrote:
>>>
>>>> Hi David,
>>>>
>>>> Sorry, I have a doubt about the range outside, from the binary
>>>> map, we can find the Spare 3 Region size is 0x00FFFFFF - 0xFF0000 + 1 =
>>>> 0x10000, and the binary size map to this range is also 0x10000, they are
>>>> equal, why outside was happened? and can you tell me how to update the
>>>> binary region's range defined in the flash description?
>>>>
>>>> Start (hex) End (hex) Length (hex) Area Name
>>>> ----------- --------- ------------ ---------
>>>> ...
>>>> ...
>>>> ....
>>>> 00FF0000 00FFFFFF 00010000 Spare 3 Region
>>>> 01000000 01FFFFFF 01000000 BIOS Region
>>>>
>>>
>>> The Flash Region registers (BIOS_FREGn) define the boundaries of each
>>> region. I don't see where 0xa36000-0xffffff is covered:
>>> 0x54: 0x00000000 FREG0: Flash Descriptor region (0x00000000-0x00000fff)
>>> is read-write.
>>> 0x58: 0x1fff1000 FREG1: BIOS region (0x01000000-0x01ffffff) is
>>> read-write.
>>> 0x5C: 0x0a250003 FREG2: Management Engine region (0x00003000-0x00a25fff)
>>> is read-write.
>>> 0x60: 0x00020001 FREG3: Gigabit Ethernet region (0x00001000-0x00002fff)
>>> is read-write.
>>> 0x64: 0x00007fff FREG4: Platform Data region is unused.
>>> 0x68: 0x0a350a26 FREG5: unknown region (0x00a26000-0x00a35fff) is
>>> read-write.
>>> 0x6C: 0x00007fff FREG6: unknown region is unused.
>>> 0x70: 0x00007fff FREG7: unknown region is unused.
>>> 0x74: 0x00007fff FREG8: unknown region is unused.
>>> 0x78: 0x00007fff FREG9: unknown region is unused.
>>>
>>> You might also need to set permissions for the "BIOS" master (i.e.
>>> flashrom running on the CPU) via BRWA and BRRA in the FRACC register.
>>>
>>> In addition, from flash log file(please see attachment
>>>> "Lewisburg_W25Q256.log"), it shows:
>>>> Found Programmer flash chip "Opaque flash chip" (32768 kB,
>>>> Programmer-specific) mapped at physical address 0x0000000000000000.
>>>> but, my flash chip is "Winbond flash chip", what do you think about
>>>> this?
>>>>
>>>
>>> This is OK. Intel hardware sequencing is an "opaque" programmer
>>> interface since flashrom does not directly send NOR flash commands via a
>>> raw SPI interface. For hardware sequencing we use the FCYCLE field as our
>>> command interface to the SPI flash.
>>>
>>>
>>
>>
>> --
>>
>> *Best Regard!*
>>
>> *Sandy Zhang (* 张立康*)*
>> *BIOS Engineer*
>> *Global Design Service*
>> *Celestica(Shanghai) R&D Center, China*
>> *Mail: sanzhang(a)celestica.com <viterzho(a)celestica.com>*
>> *Mobile: (+86)15965353952 <+86%20159%206535%203952>*
>> *Phone: (+86)021-61006028-7623*
>>
>
>
--
*Best Regard!*
*Sandy Zhang (* 张立康*)*
*BIOS Engineer*
*Global Design Service*
*Celestica(Shanghai) R&D Center, China*
*Mail: sanzhang(a)celestica.com <viterzho(a)celestica.com>*
*Mobile: (+86)15965353952*
*Phone: (+86)021-61006028-7623*
1
0