From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcin Niestroj Date: Fri, 20 Jul 2018 17:46:59 +0200 Subject: [U-Boot] [PATCH] ARM: mx6ul: Apply ERR011115 errata workaround In-Reply-To: References: <20180719113727.16805-1-m.niestroj@grinn-global.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable To: u-boot@lists.denx.de Hi, On 20.07.2018 16:29, S=C3=A9bastien Szymanski wrote: > Hi, >=20 > On 07/19/2018 01:37 PM, Marcin Niestroj wrote: >> ERR011115 in IMX6UL errata says to use OCRAM memory above >> 0x908000 (instead of 0x907000) for silicon revision 1.2 shipped >> prior date code 1740. >> >> As we cannot check affected targets in runtime, apply that >> workaround by default for all IMX6UL platforms. Leave possibility >> to disable that workaround for non-affected targets, so more OCRAM >> area can be used by SPL (e.g. for featureful SPL images). >> >> Signed-off-by: Marcin Niestroj >> --- >> arch/arm/mach-imx/mx6/Kconfig | 9 +++++++++ >> include/configs/imx6_spl.h | 11 +++++++++-- >> 2 files changed, 18 insertions(+), 2 deletions(-) >> >> diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconf= ig >> index 521fad74b5..61708a0526 100644 >> --- a/arch/arm/mach-imx/mx6/Kconfig >> +++ b/arch/arm/mach-imx/mx6/Kconfig >> @@ -58,6 +58,15 @@ config MX6UL >> select SYSCOUNTER_TIMER >> bool >> =20 >> +config MX6UL_ERR011115 >> + bool "Workaround for ERR011115 in IMX6UL Errata" >> + depends on MX6UL >> + default MX6UL >> + help >> + Say N here if you are sure that your platform is not affected >> + with ERR011115. Doing so might be useful in case of featureful >> + (big) SPL images. >> + >> config MX6UL_LITESOM >> bool >> select MX6UL >> diff --git a/include/configs/imx6_spl.h b/include/configs/imx6_spl.h >> index 720ff045a7..42d12c7503 100644 >> --- a/include/configs/imx6_spl.h >> +++ b/include/configs/imx6_spl.h >> @@ -19,16 +19,23 @@ >> * which consists of a 4K header in front of us that contains the I= VT, DCD >> * and some padding thus 'our' max size is really 0x00908000 - 0x00= 918000 >> * or 64KB >> + * - Use 0x00909000 as start of OCRAM Free Area as a workaround for >> + * ERR011115 in IMX6UL Errata >> */ >> +#ifdef CONFIG_MX6UL_ERR011115 >> +#define CONFIG_SPL_TEXT_BASE 0x00909000 >> +#else >> #define CONFIG_SPL_TEXT_BASE 0x00908000 >> -#define CONFIG_SPL_MAX_SIZE 0x10000 >> +#endif >> + >> +#define CONFIG_SPL_MAX_SIZE (0x00918000 - CONFIG_SPL_TEXT_BASE) >> #define CONFIG_SPL_STACK 0x0091FFB8 >> /* >> * Pad SPL to 68KB (4KB header + 64KB max size). This allows to write = the >> * SPL/U-Boot combination generated with u-boot-with-spl.imx directly = to a >> * boot media (given that boot media specific offset is configured pro= perly). >> */ >> -#define CONFIG_SPL_PAD_TO 0x11000 >> +#define CONFIG_SPL_PAD_TO (CONFIG_SPL_MAX_SIZE + 0x1000) >=20 > I got the following error when building the u-boot-with-spl.imx file: >=20 > /home/sszy/development/armadeus-git-opos6ul/buildroot/output/host/usr/bin= /arm-linux-gnueabihf-objcopy: > --pad-to: bad number: (CONFIG_SPL_MAX_SIZE + 0x1000) >=20 > Anyway, this is wrong and will break the u-boot-with-spl.imx for MMC/SD > boot device. >=20 > The default offset for the U-Boot image on MMC/SD boot device is 69KB > (see SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR) so I think CONFIG_SPL_PAD_TO > should always be 0x11000 (=3D=3D 68KB). Thanks for catching this! You are right, CONFIG_SPL_PAD_TO is used during u-boot with spl single image generation (always with objcopy + cat). Using 0x11000 value fixes build and makes u-boot-with-spl.imx successfully booting SPL as well as u-boot. I will post new patch with this issue fixed soon. >=20 > Regards, >=20 >> =20 >> /* MMC support */ >> #if defined(CONFIG_SPL_MMC_SUPPORT) >> >=20 >=20 --=20 Marcin Niestroj