History log of /fuchsia/zircon/system/dev/nand/skip-block/logical-to-physical-map.cpp
Revision Date Author Comments
# 18d036ea 25-Jul-2018 Suraj Malhotra <surajmalhotra@google.com>

[astro][gauss][nandpart][skip-block] Add support for partition copies.

The bootloader (or TPL partition) for astro and gauss require that it be
written 4 times. To accomplish this, the partition is borken into 4 sub
partitions, at physical quarter boundries. From each sub-partition, a
skip-block write is performed.

This enables us to pave the bootloader. Another way to accomplish this
same behavior would be to modify the partition map to instead expose 4
skip-block partitions for the bootloader partition, and have the paver
manually write each copy in succession. This was avoided as it would
require device specific information embedded in it.

Reads will always read the first copy. We could expose the ability to
chose which copy of the partition gets read, or do some sort of smart
fallback for reading other copies of the partition for failed reads if
there is a good use case for it.

Change-Id: I08e30c7078e44fd7f957d4997bacc1fc213836af
Tested: Paved the bootloader.


# 23f4267b 28-Jun-2018 Suraj Malhotra <surajmalhotra@google.com>

[dev][skip-block] Implement skip-block driver.

The skip-block driver attaches to non-FTL managed nand partitions exposed by the
nandpart driver. It allows for reading/writing at erase unit granularity.
This greatly simplifies the API as there is no distinction between write
and erase sizes, and therefore no need for garbage collection, or
figuring out how to append pages to the end of a partially written
block.

The API interface to skip-block is IOCTL based, and expected to be used
just by the paver utility. It should allow for updating of the
ZIRCON-A/B/R partitions, SYSCONFIG, and other non-managed partitions.

Change-Id: I4be682ae2e5c2ffa54bef27e1bcabf34bbcd795f
Tested: TODO