[U-Boot] [PATCH v4 0/16] sunxi: Add support for the CHIP Pro
Jagan Teki
jagan at openedev.com
Sat Feb 25 08:04:57 UTC 2017
On Wed, Feb 22, 2017 at 1:32 PM, Jagan Teki <jagan at openedev.com> wrote:
> On Wed, Feb 22, 2017 at 5:03 AM, Maxime Ripard
> <maxime.ripard at free-electrons.com> wrote:
>> Hi Jagan,
>>
>> On Tue, Feb 21, 2017 at 10:50:34AM +0530, Jagan Teki wrote:
>>> On Mon, Jan 23, 2017 at 7:16 PM, Maxime Ripard
>>> <maxime.ripard at free-electrons.com> wrote:
>>> > The CHIP Pro is a SoM made by NextThing Co, and that embeds a GR8 SIP, an
>>> > AXP209 PMIC, a WiFi BT chip and a 512MB SLC NAND.
>>> >
>>> > Since the first Allwinner device coming whit an SLC NAND that doesn't have
>>> > the shortcomings (and breakages) the MLC NAND has, we can finally enable
>>> > the NAND support on a board by default.
>>> >
>>> > This is the occasion to introduce a bunch of additions needed imo to be
>>> > able to come up with a sane NAND support for our users.
>>> >
>>> > The biggest pain point is that the BROM uses a different ECC and randomizer
>>> > configuration than for the rest of the NAND. In order to lessen the number
>>> > of bitflips, you also need to pad with random data the SPL image.
>>> >
>>> > Since it's quite tedious to do right (and most users won't be able to
>>> > figure it out) and since if it is not done right, it will eventually turn
>>> > into an unusable system (which is bad UX), we think that the best solution
>>> > is to generate an SPL image that already embeds all this. We'll possible
>>> > have to do the same thing for the U-Boot image (at least for the random
>>> > padding) on MLC NANDs.
>>> >
>>> > The only drawback from that is that you need to flash it raw, instead of
>>> > using the usual nand write, but it's just a different command, nothing
>>> > major anyway.
>>> >
>>> > In order to flash it, from a device switched in FEL, on your host:
>>> > sunxi-fel spl spl/sunxi-spl.bin
>>> > sunxi-fel write 0x4a000000 u-boot-dtb.bin
>>> > sunxi-fel write 0x43000000 spl/sunxi-spl-with-ecc.bin
>>> > sunxi-fel exe 0x4a000000
>>> >
>>> > And on the board, once u-boot is running (assuming the NAND is already
>>> > erased):
>>> >
>>> > nand write.raw.noverify 0x43000000 0 40
>>> > nand write.raw.noverify 0x43000000 0x400000 40
>>> >
>>> > nand write 0x4a000000 0x800000 0xc0000
>>> >
>>> > I also encountered some weird bug in the private libgcc that prevents
>>> > U-Boot from loading. Disabling CONFIG_USE_PRIVATE_LIBGCC fixes that.
>>> >
>>> > Let me know what you think,
>>> > Maxime
>>> >
>>> > Changes from v3:
>>> > - Bring new Kconfig patches from Boris
>>> > - Do not define Kconfig defaults in our board Kconfig but directly in the
>>> > option declaration
>>> > - Sync the DT with the kernel
>>> > - Fixed build breakages
>>> >
>>> > Changes from v2:
>>> > - Move CMD_NAND and CMD_UBI default to cmd/Kconfig
>>> > - Define the env Kconfig options only for ARCH_SUNXI to avoid build
>>> > breakages
>>> > - Define CMD_MTDPARTS only for ARCH_SUNXI
>>> >
>>> > Changes from v1:
>>> > - Allowed to build lib/bch.c for the host, and used that in the image
>>> > builder
>>> > - Fixed a bug in the NAND driver
>>> > - Wrote a documentation on how to flash a NAND image on an Allwinner
>>> > board
>>> > - Fixed a few compilation breakages and issues
>>> > - Moved U-boot offset out of the config header and into Kconfig
>>> > - Moved the environment into UBI
>>> > - Moved the environment selection to Kconfig
>>> > - Moved the CMD_MTDPARTS options to Kconfig
>>> > - Provide MTDIDS_DEFAULT and MTDPARTS_DEFAULT options through Kconfig
>>> > - Added the tags from everyone
>>> >
>>> > Boris Brezillon (3):
>>> > mtd: ubi: Select RBTREE option from MTD_UBI Kconfig entry
>>> > cmd: Expose a Kconfig option to enable UBIFS commands
>>> > cmd: nand: Expose optional suboptions in Kconfig
>>> >
>>> > Hans de Goede (1):
>>> > sunxi: Enable UBI and NAND support
>>> >
>>> > Maxime Ripard (12):
>>> > nand: sunxi: Fix modulo by zero error
>>> > bch: Allow to build for the host
>>> > tools: sunxi: Add spl image builder
>>> > common: Move environment choice to Kconfig
>>> > cmd: Add Kconfig option for CMD_MTDPARTS and related options
>>> > mtd: sunxi: Select the U-Boot location config option
>>> > mtd: sunxi: Change U-Boot offset
>>> > sunxi: Add the default mtdids and mtdparts to our env
>>> > nand: sunxi: Add options for the SPL NAND configuration
>>> > scripts: sunxi: Build an raw SPL image
>>> > sunxi: Sync GR8 DTS and AXP209 with the kernel
>>> > sunxi: Add support for the CHIP Pro
>>>
>>> Reviewed-by: Jagan Teki <jagan at openedev.com>
>>
>> I'm still getting up to speed wrt. how you merge patches. Are you
>> waiting for someone, or do you want to merge them through your tree
>> directly?
>
> I've some merge conflicts, trying to resolve and apply directly
> otherwise I will let you know to resend.
Patches with include/configs/sunxi-common.h changes trigger merge
conflicts, can you rebase and send it again.
thanks!
--
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.
More information about the U-Boot
mailing list