mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-30 22:08:52 +09:00
![Felix Brack](/assets/img/avatar_default.png)
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>
79 lines
2.0 KiB
C
79 lines
2.0 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 */
|