This introduces OMAP3 support for the common omap boot code, as well as a major cleanup of the common omap boot code. First, the omap_boot_parameters structure becomes platform-specific, since its definition differs a bit across omap platforms. The offsets are removed as well since it is U-Boot's coding style to use structures for mapping such kind of data (in the sense that it is similar to registers). It is correct to assume that romcode structure encoding is the same as U-Boot, given the description of these structures in the TRMs. The original address provided by the bootrom is passed to the U-Boot binary instead of a duplicate of the structure stored in global data. This allows to have only the relevant (boot device and mode) information stored in global data. It is also expected that the address where the bootrom stores that information is not overridden by the U-Boot SPL or U-Boot. The save_omap_boot_params is expected to handle all special cases where the data provided by the bootrom cannot be used as-is, so that spl_boot_device and spl_boot_mode only return the data from global data. All of this is only relevant when the U-Boot SPL is used. In cases it is not, save_boot_params should fallback to its weak (or board-specific) definition. save_omap_boot_params should not be called in that context either. Signed-off-by: Paul Kocialkowski <contact@paulk.fr>master
parent
a350c6a602
commit
60c7c30aa0
@ -1,34 +0,0 @@ |
||||
/*
|
||||
* (C) Copyright 2013 |
||||
* Texas Instruments, <www.ti.com> |
||||
* |
||||
* Sricharan R <r.sricharan@ti.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
/* ROM code defines */ |
||||
/* Boot device */ |
||||
#define BOOT_DEVICE_MASK 0xFF |
||||
#define BOOT_DEVICE_OFFSET 0x8 |
||||
#define DEV_DESC_PTR_OFFSET 0x4 |
||||
#define DEV_DATA_PTR_OFFSET 0x18 |
||||
#define BOOT_MODE_OFFSET 0x8 |
||||
#define RESET_REASON_OFFSET 0x9 |
||||
#define CH_FLAGS_OFFSET 0xA |
||||
|
||||
#define CH_FLAGS_CHSETTINGS (0x1 << 0) |
||||
#define CH_FLAGS_CHRAM (0x1 << 1) |
||||
#define CH_FLAGS_CHFLASH (0x1 << 2) |
||||
#define CH_FLAGS_CHMMCSD (0x1 << 3) |
||||
|
||||
#ifndef __ASSEMBLY__ |
||||
struct omap_boot_parameters { |
||||
char *boot_message; |
||||
unsigned int mem_boot_descriptor; |
||||
unsigned char omap_bootdevice; |
||||
unsigned char reset_reason; |
||||
unsigned char ch_flags; |
||||
unsigned long omap_bootmode; |
||||
}; |
||||
#endif |
Loading…
Reference in new issue