u-boot/include/configs/pdu001.h
Felix Brack ffa6602905 arm:pdu001: Use pseudo partition UUID for LINUX kernel boot paramter root
As more and more LINUX drivers are modified to use asynchronous probing
instead of synchronous probing, relying on device names being equal in
U-Boot and LINUX is not possible anymore. This is also true for block
device names like mmc0, mmc1 ect.
With LINUX kernel commit a1a4891 the probing type for the sdhci-omap
driver has been set to asynchronous mode too (probe_type is now
PROBE_PREFER_ASYNCHRONOUS).
In the case of the PDU001 board this results in the devices mmc0 and
mmc1 being swapped between U-Boot and LINUX. Device mmc0 in U-Boot
becomes mmc1 in LINUX an vice versa. Hence using device name identifiers
with LINUX kernel parameter root does not work anymore.
This patch changes the LINUX kernel boot parameter root to use the
pseudo (since we use MBR not GPT) partition UUID to locate the partition
hosting the root file system.

Signed-off-by: Felix Brack <fb@ltec.ch>
2021-01-12 10:21:41 +05:30

78 lines
2 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* pdu001.h
*
* Copyright (C) 2018 EETS GmbH - http://www.eets.ch/
*
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
*/
#ifndef __CONFIG_PDU001_H
#define __CONFIG_PDU001_H
#include <configs/ti_am335x_common.h>
/* Using 32K of volatile storage for environment */
#define MACH_TYPE_PDU001 5075
#define CONFIG_MACH_TYPE MACH_TYPE_PDU001
/* Clock Defines */
#define V_OSCK 24000000 /* Clock output from T2 */
#define V_SCLK (V_OSCK)
#if CONFIG_CONS_INDEX == 1
#define CONSOLE_DEV "ttyO0"
#elif CONFIG_CONS_INDEX == 2
#define CONSOLE_DEV "ttyO1"
#elif CONFIG_CONS_INDEX == 3
#define CONSOLE_DEV "ttyO2"
#elif CONFIG_CONS_INDEX == 4
#define CONSOLE_DEV "ttyO3"
#elif CONFIG_CONS_INDEX == 5
#define CONSOLE_DEV "ttyO4"
#elif CONFIG_CONS_INDEX == 6
#define CONSOLE_DEV "ttyO5"
#endif
#define CONFIG_BOOTCOMMAND \
"run eval_boot_device;" \
"part uuid mmc ${mmc_boot}:${root_fs_partition} root_fs_partuuid;" \
"setenv bootargs console=${console} " \
"vt.global_cursor_default=0 " \
"root=PARTUUID=${root_fs_partuuid} " \
"rootfstype=ext4 " \
"rootwait " \
"rootdelay=1;" \
"fatload mmc ${mmc_boot} ${fdtaddr} ${fdtfile};" \
"fatload mmc ${mmc_boot} ${loadaddr} ${bootfile};" \
"bootz ${loadaddr} - ${fdtaddr}"
#ifndef CONFIG_SPL_BUILD
#define CONFIG_EXTRA_ENV_SETTINGS \
DEFAULT_LINUX_BOOT_ENV \
"fdtfile=am335x-pdu001.dtb\0" \
"bootfile=zImage\0" \
"console=" CONSOLE_DEV ",115200n8\0" \
"root_fs_partition=2\0" \
"eval_boot_device=" \
"if test $boot_device = emmc; then " \
"setenv mmc_boot 0;" \
"elif test $boot_device = sdcard; then " \
"setenv mmc_boot 1;" \
"else " \
"echo Bootdevice is neither MMC0 nor MMC1;" \
"reset;" \
"fi;" \
"\0"
#endif
/* NS16550 Configuration */
#define CONFIG_SYS_NS16550_COM1 UART0_BASE
#define CONFIG_SYS_NS16550_COM2 UART1_BASE
#define CONFIG_SYS_NS16550_COM3 UART2_BASE
#define CONFIG_SYS_NS16550_COM4 UART3_BASE
#define CONFIG_SYS_NS16550_COM5 UART4_BASE
#define CONFIG_SYS_NS16550_COM6 UART5_BASE
#endif /* ! __CONFIG_PDU001_H */