Merge branch 'u-boot/master' into 'u-boot-arm/master'
Conflicts: drivers/video/exynos_fb.c
This commit is contained in:
commit
1812201997
2
MAKEALL
2
MAKEALL
@ -664,7 +664,7 @@ build_target() {
|
||||
export BUILD_DIR="${output_dir}"
|
||||
|
||||
target_arch=$(get_target_arch ${target})
|
||||
eval cross_toolchain=\$CROSS_COMPILE_${target_arch^^}
|
||||
eval cross_toolchain=\$CROSS_COMPILE_`echo $target_arch | tr '[:lower:]' '[:upper:]'`
|
||||
if [ "${cross_toolchain}" ] ; then
|
||||
MAKE="make CROSS_COMPILE=${cross_toolchain}"
|
||||
elif [ "${CROSS_COMPILE}" ] ; then
|
||||
|
6
Makefile
6
Makefile
@ -24,7 +24,7 @@
|
||||
VERSION = 2013
|
||||
PATCHLEVEL = 04
|
||||
SUBLEVEL =
|
||||
EXTRAVERSION = -rc1
|
||||
EXTRAVERSION = -rc2
|
||||
ifneq "$(SUBLEVEL)" ""
|
||||
U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
|
||||
else
|
||||
@ -402,8 +402,10 @@ ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
|
||||
ALL-$(CONFIG_NAND_U_BOOT) += $(obj)u-boot-nand.bin
|
||||
ALL-$(CONFIG_ONENAND_U_BOOT) += $(obj)u-boot-onenand.bin
|
||||
ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin
|
||||
ALL-$(CONFIG_SPL) += $(obj)$(subst ",,$(CONFIG_SPL_TARGET))
|
||||
ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot-dtb.bin
|
||||
ifneq ($(CONFIG_SPL_TARGET),)
|
||||
ALL-$(CONFIG_SPL) += $(obj)$(subst ",,$(CONFIG_SPL_TARGET))
|
||||
endif
|
||||
|
||||
# enable combined SPL/u-boot/dtb rules for tegra
|
||||
ifneq ($(CONFIG_TEGRA),)
|
||||
|
95
README
95
README
@ -496,6 +496,13 @@ The following options need to be configured:
|
||||
exists, unlike the similar options in the Linux kernel. Do not
|
||||
set these options unless they apply!
|
||||
|
||||
- CPU timer options:
|
||||
CONFIG_SYS_HZ
|
||||
|
||||
The frequency of the timer returned by get_timer().
|
||||
get_timer() must operate in milliseconds and this CONFIG
|
||||
option must be set to 1000.
|
||||
|
||||
- Linux Kernel Interface:
|
||||
CONFIG_CLOCKS_IN_MHZ
|
||||
|
||||
@ -1329,6 +1336,29 @@ The following options need to be configured:
|
||||
CONFIG_SH_MMCIF_CLK
|
||||
Define the clock frequency for MMCIF
|
||||
|
||||
- USB Device Firmware Update (DFU) class support:
|
||||
CONFIG_DFU_FUNCTION
|
||||
This enables the USB portion of the DFU USB class
|
||||
|
||||
CONFIG_CMD_DFU
|
||||
This enables the command "dfu" which is used to have
|
||||
U-Boot create a DFU class device via USB. This command
|
||||
requires that the "dfu_alt_info" environment variable be
|
||||
set and define the alt settings to expose to the host.
|
||||
|
||||
CONFIG_DFU_MMC
|
||||
This enables support for exposing (e)MMC devices via DFU.
|
||||
|
||||
CONFIG_DFU_NAND
|
||||
This enables support for exposing NAND devices via DFU.
|
||||
|
||||
CONFIG_SYS_DFU_MAX_FILE_SIZE
|
||||
When updating files rather than the raw storage device,
|
||||
we use a static buffer to copy the file into and then write
|
||||
the buffer once we've been given the whole file. Define
|
||||
this to the maximum filesize (in bytes) for the buffer.
|
||||
Default is 4 MiB if undefined.
|
||||
|
||||
- Journaling Flash filesystem support:
|
||||
CONFIG_JFFS2_NAND, CONFIG_JFFS2_NAND_OFF, CONFIG_JFFS2_NAND_SIZE,
|
||||
CONFIG_JFFS2_NAND_DEV
|
||||
@ -1930,15 +1960,15 @@ CBFS (Coreboot Filesystem) support
|
||||
|
||||
I2C_READ
|
||||
|
||||
Code that returns TRUE if the I2C data line is high,
|
||||
FALSE if it is low.
|
||||
Code that returns true if the I2C data line is high,
|
||||
false if it is low.
|
||||
|
||||
eg: #define I2C_READ ((immr->im_cpm.cp_pbdat & PB_SDA) != 0)
|
||||
|
||||
I2C_SDA(bit)
|
||||
|
||||
If <bit> is TRUE, sets the I2C data line high. If it
|
||||
is FALSE, it clears it (low).
|
||||
If <bit> is true, sets the I2C data line high. If it
|
||||
is false, it clears it (low).
|
||||
|
||||
eg: #define I2C_SDA(bit) \
|
||||
if(bit) immr->im_cpm.cp_pbdat |= PB_SDA; \
|
||||
@ -1946,8 +1976,8 @@ CBFS (Coreboot Filesystem) support
|
||||
|
||||
I2C_SCL(bit)
|
||||
|
||||
If <bit> is TRUE, sets the I2C clock line high. If it
|
||||
is FALSE, it clears it (low).
|
||||
If <bit> is true, sets the I2C clock line high. If it
|
||||
is false, it clears it (low).
|
||||
|
||||
eg: #define I2C_SCL(bit) \
|
||||
if(bit) immr->im_cpm.cp_pbdat |= PB_SCL; \
|
||||
@ -2768,6 +2798,32 @@ FIT uImage format:
|
||||
Adds the MTD partitioning infrastructure from the Linux
|
||||
kernel. Needed for UBI support.
|
||||
|
||||
- UBI support
|
||||
CONFIG_CMD_UBI
|
||||
|
||||
Adds commands for interacting with MTD partitions formatted
|
||||
with the UBI flash translation layer
|
||||
|
||||
Requires also defining CONFIG_RBTREE
|
||||
|
||||
CONFIG_UBI_SILENCE_MSG
|
||||
|
||||
Make the verbose messages from UBI stop printing. This leaves
|
||||
warnings and errors enabled.
|
||||
|
||||
- UBIFS support
|
||||
CONFIG_CMD_UBIFS
|
||||
|
||||
Adds commands for interacting with UBI volumes formatted as
|
||||
UBIFS. UBIFS is read-only in u-boot.
|
||||
|
||||
Requires UBI support as well as CONFIG_LZO
|
||||
|
||||
CONFIG_UBIFS_SILENCE_MSG
|
||||
|
||||
Make the verbose messages from UBIFS stop printing. This leaves
|
||||
warnings and errors enabled.
|
||||
|
||||
- SPL framework
|
||||
CONFIG_SPL
|
||||
Enable building of SPL globally.
|
||||
@ -3487,6 +3543,33 @@ but it can not erase, write this NOR flash by SRIO or PCIE interface.
|
||||
environment. If redundant environment is used, it will be copied to
|
||||
CONFIG_NAND_ENV_DST + CONFIG_ENV_SIZE.
|
||||
|
||||
- CONFIG_ENV_IS_IN_UBI:
|
||||
|
||||
Define this if you have an UBI volume that you want to use for the
|
||||
environment. This has the benefit of wear-leveling the environment
|
||||
accesses, which is important on NAND.
|
||||
|
||||
- CONFIG_ENV_UBI_PART:
|
||||
|
||||
Define this to a string that is the mtd partition containing the UBI.
|
||||
|
||||
- CONFIG_ENV_UBI_VOLUME:
|
||||
|
||||
Define this to the name of the volume that you want to store the
|
||||
environment in.
|
||||
|
||||
- CONFIG_ENV_UBI_VOLUME_REDUND:
|
||||
|
||||
Define this to the name of another volume to store a second copy of
|
||||
the environment in. This will enable redundant environments in UBI.
|
||||
It is assumed that both volumes are in the same MTD partition.
|
||||
|
||||
- CONFIG_UBI_SILENCE_MSG
|
||||
- CONFIG_UBIFS_SILENCE_MSG
|
||||
|
||||
You will probably want to define these to avoid a really noisy system
|
||||
when storing the env in UBI.
|
||||
|
||||
- CONFIG_SYS_SPI_INIT_OFFSET
|
||||
|
||||
Defines offset to the initial SPI buffer area in DPRAM. The
|
||||
|
@ -45,8 +45,8 @@ int display_get_info(int type, struct display_info *di)
|
||||
case DISPLAY_TYPE_LCD:
|
||||
di->pixel_width = panel_info.vl_col;
|
||||
di->pixel_height = panel_info.vl_row;
|
||||
di->screen_rows = CONSOLE_ROWS;
|
||||
di->screen_cols = CONSOLE_COLS;
|
||||
di->screen_rows = lcd_get_screen_rows();
|
||||
di->screen_cols = lcd_get_screen_columns();
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
|
@ -28,9 +28,6 @@
|
||||
#include <asm/arch/spr_misc.h>
|
||||
#include <asm/arch/spr_defs.h>
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE (!FALSE)
|
||||
|
||||
static void sel_1v8(void)
|
||||
{
|
||||
struct misc_regs *misc_p = (struct misc_regs *)CONFIG_SPEAR_MISCBASE;
|
||||
@ -133,8 +130,8 @@ void soc_init(void)
|
||||
/*
|
||||
* xxx_boot_selected:
|
||||
*
|
||||
* return TRUE if the particular booting option is selected
|
||||
* return FALSE otherwise
|
||||
* return true if the particular booting option is selected
|
||||
* return false otherwise
|
||||
*/
|
||||
static u32 read_bootstrap(void)
|
||||
{
|
||||
@ -150,18 +147,18 @@ int snor_boot_selected(void)
|
||||
/* Check whether SNOR boot is selected */
|
||||
if ((bootstrap & CONFIG_SPEAR_ONLYSNORBOOT) ==
|
||||
CONFIG_SPEAR_ONLYSNORBOOT)
|
||||
return TRUE;
|
||||
return true;
|
||||
|
||||
if ((bootstrap & CONFIG_SPEAR_NORNANDBOOT) ==
|
||||
CONFIG_SPEAR_NORNAND8BOOT)
|
||||
return TRUE;
|
||||
return true;
|
||||
|
||||
if ((bootstrap & CONFIG_SPEAR_NORNANDBOOT) ==
|
||||
CONFIG_SPEAR_NORNAND16BOOT)
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
int nand_boot_selected(void)
|
||||
@ -172,20 +169,20 @@ int nand_boot_selected(void)
|
||||
/* Check whether NAND boot is selected */
|
||||
if ((bootstrap & CONFIG_SPEAR_NORNANDBOOT) ==
|
||||
CONFIG_SPEAR_NORNAND8BOOT)
|
||||
return TRUE;
|
||||
return true;
|
||||
|
||||
if ((bootstrap & CONFIG_SPEAR_NORNANDBOOT) ==
|
||||
CONFIG_SPEAR_NORNAND16BOOT)
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
int pnor_boot_selected(void)
|
||||
{
|
||||
/* Parallel NOR boot is not selected in any SPEAr600 revision */
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
int usb_boot_selected(void)
|
||||
@ -195,39 +192,39 @@ int usb_boot_selected(void)
|
||||
if (USB_BOOT_SUPPORTED) {
|
||||
/* Check whether USB boot is selected */
|
||||
if (!(bootstrap & CONFIG_SPEAR_USBBOOT))
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
int tftp_boot_selected(void)
|
||||
{
|
||||
/* TFTP boot is not selected in any SPEAr600 revision */
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
int uart_boot_selected(void)
|
||||
{
|
||||
/* UART boot is not selected in any SPEAr600 revision */
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
int spi_boot_selected(void)
|
||||
{
|
||||
/* SPI boot is not selected in any SPEAr600 revision */
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
int i2c_boot_selected(void)
|
||||
{
|
||||
/* I2C boot is not selected in any SPEAr600 revision */
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
int mmc_boot_selected(void)
|
||||
{
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
void plat_late_init(void)
|
||||
|
@ -120,7 +120,7 @@ u32 spl_boot(void)
|
||||
/*
|
||||
* All the supported booting devices are listed here. Each of
|
||||
* the booting type supported by the platform would define the
|
||||
* macro xxx_BOOT_SUPPORTED to TRUE.
|
||||
* macro xxx_BOOT_SUPPORTED to true.
|
||||
*/
|
||||
|
||||
if (SNOR_BOOT_SUPPORTED && snor_boot_selected()) {
|
||||
|
@ -33,7 +33,6 @@ COBJS-$(CONFIG_CPU_PXA27X) = pxa2xx.o
|
||||
COBJS-y += cpuinfo.o
|
||||
|
||||
COBJS = $(COBJS-y)
|
||||
COBJS += pxafb.o
|
||||
COBJS += timer.o
|
||||
COBJS += usb.o
|
||||
|
||||
|
@ -61,9 +61,6 @@ typedef unsigned int __kernel_gid32_t;
|
||||
typedef unsigned short __kernel_old_uid_t;
|
||||
typedef unsigned short __kernel_old_gid_t;
|
||||
|
||||
#define BOOL_WAS_DEFINED
|
||||
typedef enum { false = 0, true = 1 } bool;
|
||||
|
||||
#ifdef __GNUC__
|
||||
typedef long long __kernel_loff_t;
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@ int disable_interrupts (void)
|
||||
sr = get_sr ();
|
||||
set_sr (sr | 0x0700);
|
||||
|
||||
return ((sr & 0x0700) == 0); /* return TRUE, if interrupts were enabled before */
|
||||
return ((sr & 0x0700) == 0); /* return true, if interrupts were enabled before */
|
||||
}
|
||||
|
||||
void int_handler (struct pt_regs *fp)
|
||||
|
@ -59,7 +59,7 @@ void enable_interrupts(void)
|
||||
|
||||
/*
|
||||
* disable interrupts
|
||||
* Return TRUE if GIE is enabled before we disable it.
|
||||
* Return true if GIE is enabled before we disable it.
|
||||
*/
|
||||
int disable_interrupts(void)
|
||||
{
|
||||
|
@ -513,7 +513,7 @@ void fsl_serdes_init(void)
|
||||
size_t arglen;
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_P4080_ERRATUM_SERDES_A001
|
||||
int need_serdes_a001; /* TRUE == need work-around for SERDES A001 */
|
||||
int need_serdes_a001; /* true == need work-around for SERDES A001 */
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_P4080_ERRATUM_SERDES8
|
||||
char buffer[HWCONFIG_BUFFER_SIZE];
|
||||
|
@ -37,7 +37,6 @@ COBJS-y += fec.o
|
||||
COBJS-$(CONFIG_OF_LIBFDT) += fdt.o
|
||||
COBJS-y += i2c.o
|
||||
COBJS-y += interrupts.o
|
||||
COBJS-y += lcd.o
|
||||
COBJS-y += scc.o
|
||||
COBJS-y += serial.o
|
||||
COBJS-y += speed.o
|
||||
|
@ -167,6 +167,11 @@ void fdt_fixup_dr_usb(void *blob, bd_t *bd)
|
||||
}
|
||||
}
|
||||
|
||||
if (mode_idx < 0 || phy_idx < 0) {
|
||||
puts("ERROR: wrong usb mode/phy defined!!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
dr_mode_type = modes[mode_idx];
|
||||
dr_phy_type = phys[phy_idx];
|
||||
|
||||
|
@ -88,8 +88,6 @@ void spd_ddr_init_hang (void) __attribute__((weak, alias("__spd_ddr_init_hang"))
|
||||
#define NUMMEMTESTS 8
|
||||
#define NUMMEMWORDS 8
|
||||
#define MAXBXCR 4
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
/*
|
||||
* This DDR2 setup code can dynamically setup the TLB entries for the DDR2 memory
|
||||
@ -298,7 +296,7 @@ static void get_spd_info(unsigned long *dimm_populated,
|
||||
unsigned char num_of_bytes;
|
||||
unsigned char total_size;
|
||||
|
||||
dimm_found = FALSE;
|
||||
dimm_found = false;
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
num_of_bytes = 0;
|
||||
total_size = 0;
|
||||
@ -307,16 +305,16 @@ static void get_spd_info(unsigned long *dimm_populated,
|
||||
total_size = spd_read(iic0_dimm_addr[dimm_num], 1);
|
||||
|
||||
if ((num_of_bytes != 0) && (total_size != 0)) {
|
||||
dimm_populated[dimm_num] = TRUE;
|
||||
dimm_found = TRUE;
|
||||
dimm_populated[dimm_num] = true;
|
||||
dimm_found = true;
|
||||
debug("DIMM slot %lu: populated\n", dimm_num);
|
||||
} else {
|
||||
dimm_populated[dimm_num] = FALSE;
|
||||
dimm_populated[dimm_num] = false;
|
||||
debug("DIMM slot %lu: Not populated\n", dimm_num);
|
||||
}
|
||||
}
|
||||
|
||||
if (dimm_found == FALSE) {
|
||||
if (dimm_found == false) {
|
||||
printf("ERROR - No memory installed. Install a DDR-SDRAM DIMM.\n\n");
|
||||
spd_ddr_init_hang ();
|
||||
}
|
||||
@ -330,7 +328,7 @@ static void check_mem_type(unsigned long *dimm_populated,
|
||||
unsigned char dimm_type;
|
||||
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
if (dimm_populated[dimm_num] == TRUE) {
|
||||
if (dimm_populated[dimm_num] == true) {
|
||||
dimm_type = spd_read(iic0_dimm_addr[dimm_num], 2);
|
||||
switch (dimm_type) {
|
||||
case 7:
|
||||
@ -356,7 +354,7 @@ static void check_volt_type(unsigned long *dimm_populated,
|
||||
unsigned long voltage_type;
|
||||
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
if (dimm_populated[dimm_num] == TRUE) {
|
||||
if (dimm_populated[dimm_num] == true) {
|
||||
voltage_type = spd_read(iic0_dimm_addr[dimm_num], 8);
|
||||
if (voltage_type != 0x04) {
|
||||
printf("ERROR: DIMM %lu with unsupported voltage level.\n",
|
||||
@ -398,12 +396,12 @@ static void program_cfg0(unsigned long *dimm_populated,
|
||||
/*
|
||||
* FIXME: assume the DDR SDRAMs in both banks are the same
|
||||
*/
|
||||
ecc_enabled = TRUE;
|
||||
ecc_enabled = true;
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
if (dimm_populated[dimm_num] == TRUE) {
|
||||
if (dimm_populated[dimm_num] == true) {
|
||||
ecc = spd_read(iic0_dimm_addr[dimm_num], 11);
|
||||
if (ecc != 0x02) {
|
||||
ecc_enabled = FALSE;
|
||||
ecc_enabled = false;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -437,7 +435,7 @@ static void program_cfg0(unsigned long *dimm_populated,
|
||||
/*
|
||||
* program Memory Data Error Checking
|
||||
*/
|
||||
if (ecc_enabled == TRUE) {
|
||||
if (ecc_enabled == true) {
|
||||
cfg0 |= SDRAM_CFG0_MCHK_GEN;
|
||||
} else {
|
||||
cfg0 |= SDRAM_CFG0_MCHK_NON;
|
||||
@ -493,7 +491,7 @@ static void program_rtr(unsigned long *dimm_populated,
|
||||
bus_period_x_10 = ONE_BILLION / (sys_info.freqPLB / 10);
|
||||
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
if (dimm_populated[dimm_num] == TRUE) {
|
||||
if (dimm_populated[dimm_num] == true) {
|
||||
refresh_rate_type = 0x7F & spd_read(iic0_dimm_addr[dimm_num], 12);
|
||||
switch (refresh_rate_type) {
|
||||
case 0x00:
|
||||
@ -585,15 +583,15 @@ static void program_tr0(unsigned long *dimm_populated,
|
||||
t_rp_ns = 0;
|
||||
t_rcd_ns = 0;
|
||||
t_ras_ns = 0;
|
||||
cas_2_0_available = TRUE;
|
||||
cas_2_5_available = TRUE;
|
||||
cas_3_0_available = TRUE;
|
||||
cas_2_0_available = true;
|
||||
cas_2_5_available = true;
|
||||
cas_3_0_available = true;
|
||||
tcyc_2_0_ns_x_10 = 0;
|
||||
tcyc_2_5_ns_x_10 = 0;
|
||||
tcyc_3_0_ns_x_10 = 0;
|
||||
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
if (dimm_populated[dimm_num] == TRUE) {
|
||||
if (dimm_populated[dimm_num] == true) {
|
||||
wcsbc = spd_read(iic0_dimm_addr[dimm_num], 15);
|
||||
t_rp_ns = spd_read(iic0_dimm_addr[dimm_num], 27) >> 2;
|
||||
t_rcd_ns = spd_read(iic0_dimm_addr[dimm_num], 29) >> 2;
|
||||
@ -640,7 +638,7 @@ static void program_tr0(unsigned long *dimm_populated,
|
||||
if (cas_index != 0) {
|
||||
cas_index++;
|
||||
}
|
||||
cas_3_0_available = FALSE;
|
||||
cas_3_0_available = false;
|
||||
}
|
||||
|
||||
if (((cas_bit & 0x08) != 0) || (cas_index < 3)) {
|
||||
@ -650,7 +648,7 @@ static void program_tr0(unsigned long *dimm_populated,
|
||||
if (cas_index != 0) {
|
||||
cas_index++;
|
||||
}
|
||||
cas_2_5_available = FALSE;
|
||||
cas_2_5_available = false;
|
||||
}
|
||||
|
||||
if (((cas_bit & 0x04) != 0) || (cas_index < 3)) {
|
||||
@ -660,7 +658,7 @@ static void program_tr0(unsigned long *dimm_populated,
|
||||
if (cas_index != 0) {
|
||||
cas_index++;
|
||||
}
|
||||
cas_2_0_available = FALSE;
|
||||
cas_2_0_available = false;
|
||||
}
|
||||
|
||||
break;
|
||||
@ -683,13 +681,13 @@ static void program_tr0(unsigned long *dimm_populated,
|
||||
/*
|
||||
* Program SD_CASL field
|
||||
*/
|
||||
if ((cas_2_0_available == TRUE) &&
|
||||
if ((cas_2_0_available == true) &&
|
||||
(bus_period_x_10 >= tcyc_2_0_ns_x_10)) {
|
||||
tr0 |= SDRAM_TR0_SDCL_2_0_CLK;
|
||||
} else if ((cas_2_5_available == TRUE) &&
|
||||
} else if ((cas_2_5_available == true) &&
|
||||
(bus_period_x_10 >= tcyc_2_5_ns_x_10)) {
|
||||
tr0 |= SDRAM_TR0_SDCL_2_5_CLK;
|
||||
} else if ((cas_3_0_available == TRUE) &&
|
||||
} else if ((cas_3_0_available == true) &&
|
||||
(bus_period_x_10 >= tcyc_3_0_ns_x_10)) {
|
||||
tr0 |= SDRAM_TR0_SDCL_3_0_CLK;
|
||||
} else {
|
||||
@ -950,9 +948,9 @@ static void program_tr1(void)
|
||||
current_fail_length = 0;
|
||||
current_start = 0;
|
||||
rdclt_offset = 0;
|
||||
window_found = FALSE;
|
||||
fail_found = FALSE;
|
||||
pass_found = FALSE;
|
||||
window_found = false;
|
||||
fail_found = false;
|
||||
pass_found = false;
|
||||
debug("Starting memory test ");
|
||||
|
||||
for (k = 0; k < NUMHALFCYCLES; k++) {
|
||||
@ -963,8 +961,8 @@ static void program_tr1(void)
|
||||
mtsdram(SDRAM0_TR1, (tr1 | SDRAM_TR1_RDCT_ENCODE(rdclt)));
|
||||
|
||||
if (short_mem_test()) {
|
||||
if (fail_found == TRUE) {
|
||||
pass_found = TRUE;
|
||||
if (fail_found == true) {
|
||||
pass_found = true;
|
||||
if (current_pass_length == 0) {
|
||||
current_start = rdclt_offset + rdclt;
|
||||
}
|
||||
@ -983,10 +981,10 @@ static void program_tr1(void)
|
||||
current_fail_length++;
|
||||
|
||||
if (current_fail_length >= (dly_val>>2)) {
|
||||
if (fail_found == FALSE) {
|
||||
fail_found = TRUE;
|
||||
} else if (pass_found == TRUE) {
|
||||
window_found = TRUE;
|
||||
if (fail_found == false) {
|
||||
fail_found = true;
|
||||
} else if (pass_found == true) {
|
||||
window_found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -994,9 +992,8 @@ static void program_tr1(void)
|
||||
}
|
||||
debug(".");
|
||||
|
||||
if (window_found == TRUE) {
|
||||
if (window_found == true)
|
||||
break;
|
||||
}
|
||||
|
||||
tr1 = tr1 ^ SDRAM_TR1_RDCD_MASK;
|
||||
rdclt_offset += dly_val;
|
||||
@ -1006,7 +1003,7 @@ static void program_tr1(void)
|
||||
/*
|
||||
* make sure we find the window
|
||||
*/
|
||||
if (window_found == FALSE) {
|
||||
if (window_found == false) {
|
||||
printf("ERROR: Cannot determine a common read delay.\n");
|
||||
spd_ddr_init_hang ();
|
||||
}
|
||||
@ -1115,7 +1112,7 @@ static unsigned long program_bxcr(unsigned long *dimm_populated,
|
||||
bank_base_addr = CONFIG_SYS_SDRAM_BASE;
|
||||
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
if (dimm_populated[dimm_num] == TRUE) {
|
||||
if (dimm_populated[dimm_num] == true) {
|
||||
num_row_addr = spd_read(iic0_dimm_addr[dimm_num], 3);
|
||||
num_col_addr = spd_read(iic0_dimm_addr[dimm_num], 4);
|
||||
num_banks = spd_read(iic0_dimm_addr[dimm_num], 5);
|
||||
|
@ -241,13 +241,6 @@ void board_add_ram_info(int use_default)
|
||||
/*-----------------------------------------------------------------------------+
|
||||
* Defines
|
||||
*-----------------------------------------------------------------------------*/
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#define SDRAM_DDR1 1
|
||||
#define SDRAM_DDR2 2
|
||||
#define SDRAM_NONE 0
|
||||
@ -683,7 +676,7 @@ static void get_spd_info(unsigned long *dimm_populated,
|
||||
unsigned char num_of_bytes;
|
||||
unsigned char total_size;
|
||||
|
||||
dimm_found = FALSE;
|
||||
dimm_found = false;
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
num_of_bytes = 0;
|
||||
total_size = 0;
|
||||
@ -696,16 +689,16 @@ static void get_spd_info(unsigned long *dimm_populated,
|
||||
iic0_dimm_addr[dimm_num], total_size);
|
||||
|
||||
if ((num_of_bytes != 0) && (total_size != 0)) {
|
||||
dimm_populated[dimm_num] = TRUE;
|
||||
dimm_found = TRUE;
|
||||
dimm_populated[dimm_num] = true;
|
||||
dimm_found = true;
|
||||
debug("DIMM slot %lu: populated\n", dimm_num);
|
||||
} else {
|
||||
dimm_populated[dimm_num] = FALSE;
|
||||
dimm_populated[dimm_num] = false;
|
||||
debug("DIMM slot %lu: Not populated\n", dimm_num);
|
||||
}
|
||||
}
|
||||
|
||||
if (dimm_found == FALSE) {
|
||||
if (dimm_found == false) {
|
||||
printf("ERROR - No memory installed. Install a DDR-SDRAM DIMM.\n\n");
|
||||
spd_ddr_init_hang ();
|
||||
}
|
||||
@ -724,7 +717,7 @@ static void check_mem_type(unsigned long *dimm_populated,
|
||||
unsigned long dimm_type;
|
||||
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
if (dimm_populated[dimm_num] == TRUE) {
|
||||
if (dimm_populated[dimm_num] == true) {
|
||||
dimm_type = spd_read(iic0_dimm_addr[dimm_num], 2);
|
||||
switch (dimm_type) {
|
||||
case 1:
|
||||
@ -994,14 +987,14 @@ static void program_copt1(unsigned long *dimm_populated,
|
||||
unsigned long val;
|
||||
|
||||
#ifdef CONFIG_DDR_ECC
|
||||
ecc_enabled = TRUE;
|
||||
ecc_enabled = true;
|
||||
#else
|
||||
ecc_enabled = FALSE;
|
||||
ecc_enabled = false;
|
||||
#endif
|
||||
dimm_32bit = FALSE;
|
||||
dimm_64bit = FALSE;
|
||||
buf0 = FALSE;
|
||||
buf1 = FALSE;
|
||||
dimm_32bit = false;
|
||||
dimm_64bit = false;
|
||||
buf0 = false;
|
||||
buf1 = false;
|
||||
|
||||
/*------------------------------------------------------------------
|
||||
* Set memory controller options reg 1, SDRAM_MCOPT1.
|
||||
@ -1026,7 +1019,7 @@ static void program_copt1(unsigned long *dimm_populated,
|
||||
/* test ecc support */
|
||||
ecc = (unsigned long)spd_read(iic0_dimm_addr[dimm_num], 11);
|
||||
if (ecc != 0x02) /* ecc not supported */
|
||||
ecc_enabled = FALSE;
|
||||
ecc_enabled = false;
|
||||
|
||||
/* test bank count */
|
||||
bankcount = (unsigned long)spd_read(iic0_dimm_addr[dimm_num], 17);
|
||||
@ -1048,15 +1041,15 @@ static void program_copt1(unsigned long *dimm_populated,
|
||||
if (registered == 1) { /* DDR2 always buffered */
|
||||
/* TODO: what about above comments ? */
|
||||
mcopt1 |= SDRAM_MCOPT1_RDEN;
|
||||
buf0 = TRUE;
|
||||
buf0 = true;
|
||||
} else {
|
||||
/* TODO: the mask 0x02 doesn't match Samsung def for byte 21. */
|
||||
if ((attribute & 0x02) == 0x00) {
|
||||
/* buffered not supported */
|
||||
buf0 = FALSE;
|
||||
buf0 = false;
|
||||
} else {
|
||||
mcopt1 |= SDRAM_MCOPT1_RDEN;
|
||||
buf0 = TRUE;
|
||||
buf0 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1068,14 +1061,14 @@ static void program_copt1(unsigned long *dimm_populated,
|
||||
if (registered == 1) {
|
||||
/* DDR2 always buffered */
|
||||
mcopt1 |= SDRAM_MCOPT1_RDEN;
|
||||
buf1 = TRUE;
|
||||
buf1 = true;
|
||||
} else {
|
||||
if ((attribute & 0x02) == 0x00) {
|
||||
/* buffered not supported */
|
||||
buf1 = FALSE;
|
||||
buf1 = false;
|
||||
} else {
|
||||
mcopt1 |= SDRAM_MCOPT1_RDEN;
|
||||
buf1 = TRUE;
|
||||
buf1 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1087,11 +1080,11 @@ static void program_copt1(unsigned long *dimm_populated,
|
||||
switch (data_width) {
|
||||
case 72:
|
||||
case 64:
|
||||
dimm_64bit = TRUE;
|
||||
dimm_64bit = true;
|
||||
break;
|
||||
case 40:
|
||||
case 32:
|
||||
dimm_32bit = TRUE;
|
||||
dimm_32bit = true;
|
||||
break;
|
||||
default:
|
||||
printf("WARNING: Detected a DIMM with a data width of %lu bits.\n",
|
||||
@ -1110,20 +1103,19 @@ static void program_copt1(unsigned long *dimm_populated,
|
||||
}
|
||||
}
|
||||
|
||||
if ((dimm_64bit == TRUE) && (dimm_32bit == TRUE)) {
|
||||
if ((dimm_64bit == true) && (dimm_32bit == true)) {
|
||||
printf("ERROR: Cannot mix 32 bit and 64 bit DDR-SDRAM DIMMs together.\n");
|
||||
spd_ddr_init_hang ();
|
||||
}
|
||||
else if ((dimm_64bit == TRUE) && (dimm_32bit == FALSE)) {
|
||||
} else if ((dimm_64bit == true) && (dimm_32bit == false)) {
|
||||
mcopt1 |= SDRAM_MCOPT1_DMWD_64;
|
||||
} else if ((dimm_64bit == FALSE) && (dimm_32bit == TRUE)) {
|
||||
} else if ((dimm_64bit == false) && (dimm_32bit == true)) {
|
||||
mcopt1 |= SDRAM_MCOPT1_DMWD_32;
|
||||
} else {
|
||||
printf("ERROR: Please install only 32 or 64 bit DDR-SDRAM DIMMs.\n\n");
|
||||
spd_ddr_init_hang ();
|
||||
}
|
||||
|
||||
if (ecc_enabled == TRUE)
|
||||
if (ecc_enabled == true)
|
||||
mcopt1 |= SDRAM_MCOPT1_MCHK_GEN;
|
||||
else
|
||||
mcopt1 |= SDRAM_MCOPT1_MCHK_NON;
|
||||
@ -1171,14 +1163,14 @@ static void program_codt(unsigned long *dimm_populated,
|
||||
total_rank += dimm_rank;
|
||||
total_dimm++;
|
||||
if ((dimm_num == 0) && (total_dimm == 1))
|
||||
firstSlot = TRUE;
|
||||
firstSlot = true;
|
||||
else
|
||||
firstSlot = FALSE;
|
||||
firstSlot = false;
|
||||
}
|
||||
}
|
||||
if (dimm_type == SDRAM_DDR2) {
|
||||
codt |= SDRAM_CODT_DQS_1_8_V_DDR2;
|
||||
if ((total_dimm == 1) && (firstSlot == TRUE)) {
|
||||
if ((total_dimm == 1) && (firstSlot == true)) {
|
||||
if (total_rank == 1) { /* PUUU */
|
||||
codt |= CALC_ODT_R(0);
|
||||
modt0 = CALC_ODT_W(0);
|
||||
@ -1193,7 +1185,7 @@ static void program_codt(unsigned long *dimm_populated,
|
||||
modt2 = 0x00000000;
|
||||
modt3 = 0x00000000;
|
||||
}
|
||||
} else if ((total_dimm == 1) && (firstSlot != TRUE)) {
|
||||
} else if ((total_dimm == 1) && (firstSlot != true)) {
|
||||
if (total_rank == 1) { /* UUPU */
|
||||
codt |= CALC_ODT_R(2);
|
||||
modt0 = 0x00000000;
|
||||
@ -1467,26 +1459,26 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
* the dimm modules installed.
|
||||
*-----------------------------------------------------------------*/
|
||||
t_wr_ns = 0;
|
||||
cas_2_0_available = TRUE;
|
||||
cas_2_5_available = TRUE;
|
||||
cas_3_0_available = TRUE;
|
||||
cas_4_0_available = TRUE;
|
||||
cas_5_0_available = TRUE;
|
||||
cas_2_0_available = true;
|
||||
cas_2_5_available = true;
|
||||
cas_3_0_available = true;
|
||||
cas_4_0_available = true;
|
||||
cas_5_0_available = true;
|
||||
max_2_0_tcyc_ns_x_100 = 10;
|
||||
max_2_5_tcyc_ns_x_100 = 10;
|
||||
max_3_0_tcyc_ns_x_100 = 10;
|
||||
max_4_0_tcyc_ns_x_100 = 10;
|
||||
max_5_0_tcyc_ns_x_100 = 10;
|
||||
sdram_ddr1 = TRUE;
|
||||
sdram_ddr1 = true;
|
||||
|
||||
/* loop through all the DIMM slots on the board */
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
/* If a dimm is installed in a particular slot ... */
|
||||
if (dimm_populated[dimm_num] != SDRAM_NONE) {
|
||||
if (dimm_populated[dimm_num] == SDRAM_DDR1)
|
||||
sdram_ddr1 = TRUE;
|
||||
sdram_ddr1 = true;
|
||||
else
|
||||
sdram_ddr1 = FALSE;
|
||||
sdram_ddr1 = false;
|
||||
|
||||
cas_bit = spd_read(iic0_dimm_addr[dimm_num], 18);
|
||||
debug("cas_bit[SPD byte 18]=%02lx\n", cas_bit);
|
||||
@ -1543,7 +1535,7 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
} else {
|
||||
if (cas_index != 0)
|
||||
cas_index++;
|
||||
cas_4_0_available = FALSE;
|
||||
cas_4_0_available = false;
|
||||
}
|
||||
|
||||
if (((cas_bit & 0x10) == 0x10) && (cas_index < 3) &&
|
||||
@ -1554,7 +1546,7 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
} else {
|
||||
if (cas_index != 0)
|
||||
cas_index++;
|
||||
cas_3_0_available = FALSE;
|
||||
cas_3_0_available = false;
|
||||
}
|
||||
|
||||
if (((cas_bit & 0x08) == 0x08) && (cas_index < 3) &&
|
||||
@ -1565,7 +1557,7 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
} else {
|
||||
if (cas_index != 0)
|
||||
cas_index++;
|
||||
cas_2_5_available = FALSE;
|
||||
cas_2_5_available = false;
|
||||
}
|
||||
|
||||
if (((cas_bit & 0x04) == 0x04) && (cas_index < 3) &&
|
||||
@ -1576,7 +1568,7 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
} else {
|
||||
if (cas_index != 0)
|
||||
cas_index++;
|
||||
cas_2_0_available = FALSE;
|
||||
cas_2_0_available = false;
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
@ -1592,7 +1584,7 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
} else {
|
||||
if (cas_index != 0)
|
||||
cas_index++;
|
||||
cas_5_0_available = FALSE;
|
||||
cas_5_0_available = false;
|
||||
}
|
||||
|
||||
if (((cas_bit & 0x10) == 0x10) && (cas_index < 3) &&
|
||||
@ -1603,7 +1595,7 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
} else {
|
||||
if (cas_index != 0)
|
||||
cas_index++;
|
||||
cas_4_0_available = FALSE;
|
||||
cas_4_0_available = false;
|
||||
}
|
||||
|
||||
if (((cas_bit & 0x08) == 0x08) && (cas_index < 3) &&
|
||||
@ -1614,7 +1606,7 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
} else {
|
||||
if (cas_index != 0)
|
||||
cas_index++;
|
||||
cas_3_0_available = FALSE;
|
||||
cas_3_0_available = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1636,14 +1628,17 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
debug("cycle_4_0_clk=%lu\n", cycle_4_0_clk);
|
||||
debug("cycle_5_0_clk=%lu\n", cycle_5_0_clk);
|
||||
|
||||
if (sdram_ddr1 == TRUE) { /* DDR1 */
|
||||
if ((cas_2_0_available == TRUE) && (sdram_freq <= cycle_2_0_clk)) {
|
||||
if (sdram_ddr1 == true) { /* DDR1 */
|
||||
if ((cas_2_0_available == true) &&
|
||||
(sdram_freq <= cycle_2_0_clk)) {
|
||||
mmode |= SDRAM_MMODE_DCL_DDR1_2_0_CLK;
|
||||
*selected_cas = DDR_CAS_2;
|
||||
} else if ((cas_2_5_available == TRUE) && (sdram_freq <= cycle_2_5_clk)) {
|
||||
} else if ((cas_2_5_available == true) &&
|
||||
(sdram_freq <= cycle_2_5_clk)) {
|
||||
mmode |= SDRAM_MMODE_DCL_DDR1_2_5_CLK;
|
||||
*selected_cas = DDR_CAS_2_5;
|
||||
} else if ((cas_3_0_available == TRUE) && (sdram_freq <= cycle_3_0_clk)) {
|
||||
} else if ((cas_3_0_available == true) &&
|
||||
(sdram_freq <= cycle_3_0_clk)) {
|
||||
mmode |= SDRAM_MMODE_DCL_DDR1_3_0_CLK;
|
||||
*selected_cas = DDR_CAS_3;
|
||||
} else {
|
||||
@ -1656,13 +1651,16 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
debug("cas_3_0_available=%d\n", cas_3_0_available);
|
||||
debug("cas_4_0_available=%d\n", cas_4_0_available);
|
||||
debug("cas_5_0_available=%d\n", cas_5_0_available);
|
||||
if ((cas_3_0_available == TRUE) && (sdram_freq <= cycle_3_0_clk)) {
|
||||
if ((cas_3_0_available == true) &&
|
||||
(sdram_freq <= cycle_3_0_clk)) {
|
||||
mmode |= SDRAM_MMODE_DCL_DDR2_3_0_CLK;
|
||||
*selected_cas = DDR_CAS_3;
|
||||
} else if ((cas_4_0_available == TRUE) && (sdram_freq <= cycle_4_0_clk)) {
|
||||
} else if ((cas_4_0_available == true) &&
|
||||
(sdram_freq <= cycle_4_0_clk)) {
|
||||
mmode |= SDRAM_MMODE_DCL_DDR2_4_0_CLK;
|
||||
*selected_cas = DDR_CAS_4;
|
||||
} else if ((cas_5_0_available == TRUE) && (sdram_freq <= cycle_5_0_clk)) {
|
||||
} else if ((cas_5_0_available == true) &&
|
||||
(sdram_freq <= cycle_5_0_clk)) {
|
||||
mmode |= SDRAM_MMODE_DCL_DDR2_5_0_CLK;
|
||||
*selected_cas = DDR_CAS_5;
|
||||
} else {
|
||||
@ -1677,7 +1675,7 @@ static void program_mode(unsigned long *dimm_populated,
|
||||
}
|
||||
}
|
||||
|
||||
if (sdram_ddr1 == TRUE)
|
||||
if (sdram_ddr1 == true)
|
||||
mmode |= SDRAM_MMODE_WR_DDR1;
|
||||
else {
|
||||
|
||||
@ -1851,16 +1849,16 @@ static void program_tr(unsigned long *dimm_populated,
|
||||
t_wpc_ns = 0;
|
||||
t_wtr_ns = 0;
|
||||
t_rpc_ns = 0;
|
||||
sdram_ddr1 = TRUE;
|
||||
sdram_ddr1 = true;
|
||||
|
||||
/* loop through all the DIMM slots on the board */
|
||||
for (dimm_num = 0; dimm_num < num_dimm_banks; dimm_num++) {
|
||||
/* If a dimm is installed in a particular slot ... */
|
||||
if (dimm_populated[dimm_num] != SDRAM_NONE) {
|
||||
if (dimm_populated[dimm_num] == SDRAM_DDR2)
|
||||
sdram_ddr1 = TRUE;
|
||||
sdram_ddr1 = true;
|
||||
else
|
||||
sdram_ddr1 = FALSE;
|
||||
sdram_ddr1 = false;
|
||||
|
||||
t_rcd_ns = max(t_rcd_ns, spd_read(iic0_dimm_addr[dimm_num], 29) >> 2);
|
||||
t_rrd_ns = max(t_rrd_ns, spd_read(iic0_dimm_addr[dimm_num], 28) >> 2);
|
||||
@ -1925,7 +1923,7 @@ static void program_tr(unsigned long *dimm_populated,
|
||||
break;
|
||||
}
|
||||
|
||||
if (sdram_ddr1 == TRUE) { /* DDR1 */
|
||||
if (sdram_ddr1 == true) { /* DDR1 */
|
||||
if (sdram_freq < 200000000) {
|
||||
sdtr2 |= SDRAM_SDTR2_WTR_1_CLK;
|
||||
sdtr2 |= SDRAM_SDTR2_WPC_2_CLK;
|
||||
@ -2548,8 +2546,8 @@ calibration_loop:
|
||||
current_pass_length = 0;
|
||||
current_fail_length = 0;
|
||||
current_start = 0;
|
||||
fail_found = FALSE;
|
||||
pass_found = FALSE;
|
||||
fail_found = false;
|
||||
pass_found = false;
|
||||
|
||||
/*
|
||||
* get the delay line calibration register value
|
||||
@ -2570,8 +2568,8 @@ calibration_loop:
|
||||
* See if the rffd value passed.
|
||||
*-----------------------------------------------------------------*/
|
||||
if (short_mem_test()) {
|
||||
if (fail_found == TRUE) {
|
||||
pass_found = TRUE;
|
||||
if (fail_found == true) {
|
||||
pass_found = true;
|
||||
if (current_pass_length == 0)
|
||||
current_start = rffd;
|
||||
|
||||
@ -2589,11 +2587,10 @@ calibration_loop:
|
||||
current_fail_length++;
|
||||
|
||||
if (current_fail_length >= (dly_val >> 2)) {
|
||||
if (fail_found == FALSE) {
|
||||
fail_found = TRUE;
|
||||
} else if (pass_found == TRUE) {
|
||||
if (fail_found == false)
|
||||
fail_found = true;
|
||||
else if (pass_found == true)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} /* for rffd */
|
||||
@ -2618,9 +2615,9 @@ calibration_loop:
|
||||
current_pass_length = 0;
|
||||
current_fail_length = 0;
|
||||
current_start = 0;
|
||||
window_found = FALSE;
|
||||
fail_found = FALSE;
|
||||
pass_found = FALSE;
|
||||
window_found = false;
|
||||
fail_found = false;
|
||||
pass_found = false;
|
||||
|
||||
for (rqfd = 0; rqfd <= SDRAM_RQDC_RQFD_MAX; rqfd++) {
|
||||
mfsdram(SDRAM_RQDC, rqdc_reg);
|
||||
@ -2635,8 +2632,8 @@ calibration_loop:
|
||||
* See if the rffd value passed.
|
||||
*-----------------------------------------------------------------*/
|
||||
if (short_mem_test()) {
|
||||
if (fail_found == TRUE) {
|
||||
pass_found = TRUE;
|
||||
if (fail_found == true) {
|
||||
pass_found = true;
|
||||
if (current_pass_length == 0)
|
||||
current_start = rqfd;
|
||||
|
||||
@ -2653,10 +2650,10 @@ calibration_loop:
|
||||
current_pass_length = 0;
|
||||
current_fail_length++;
|
||||
|
||||
if (fail_found == FALSE) {
|
||||
fail_found = TRUE;
|
||||
} else if (pass_found == TRUE) {
|
||||
window_found = TRUE;
|
||||
if (fail_found == false) {
|
||||
fail_found = true;
|
||||
} else if (pass_found == true) {
|
||||
window_found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2667,7 +2664,7 @@ calibration_loop:
|
||||
/*------------------------------------------------------------------
|
||||
* Make sure we found the valid read passing window. Halt if not
|
||||
*-----------------------------------------------------------------*/
|
||||
if (window_found == FALSE) {
|
||||
if (window_found == false) {
|
||||
if (rqfd_start < SDRAM_RQDC_RQFD_MAX) {
|
||||
putc('\b');
|
||||
putc(slash[loopi++ % 8]);
|
||||
@ -2769,13 +2766,13 @@ static void test(void)
|
||||
mtsdram(SDRAM_MCOPT1, (val & ~SDRAM_MCOPT1_MCHK_MASK) |
|
||||
SDRAM_MCOPT1_MCHK_NON);
|
||||
|
||||
window_found = FALSE;
|
||||
begin_found[0] = FALSE;
|
||||
end_found[0] = FALSE;
|
||||
search_end[0] = FALSE;
|
||||
begin_found[1] = FALSE;
|
||||
end_found[1] = FALSE;
|
||||
search_end[1] = FALSE;
|
||||
window_found = false;
|
||||
begin_found[0] = false;
|
||||
end_found[0] = false;
|
||||
search_end[0] = false;
|
||||
begin_found[1] = false;
|
||||
end_found[1] = false;
|
||||
search_end[1] = false;
|
||||
|
||||
for (dimm_num = 0; dimm_num < MAXDIMMS; dimm_num++) {
|
||||
mfsdram(SDRAM_MB0CF + (bxcr_num << 2), bxcf[bxcr_num]);
|
||||
@ -2812,32 +2809,32 @@ static void test(void)
|
||||
* See if the rffd value passed.
|
||||
*-----------------------------------------------------------------*/
|
||||
if (i < NUMMEMTESTS) {
|
||||
if ((end_found[dimm_num] == FALSE) &&
|
||||
(search_end[dimm_num] == TRUE)) {
|
||||
end_found[dimm_num] = TRUE;
|
||||
if ((end_found[dimm_num] == false) &&
|
||||
(search_end[dimm_num] == true)) {
|
||||
end_found[dimm_num] = true;
|
||||
}
|
||||
if ((end_found[0] == TRUE) &&
|
||||
(end_found[1] == TRUE))
|
||||
if ((end_found[0] == true) &&
|
||||
(end_found[1] == true))
|
||||
break;
|
||||
} else {
|
||||
if (begin_found[dimm_num] == FALSE) {
|
||||
begin_found[dimm_num] = TRUE;
|
||||
search_end[dimm_num] = TRUE;
|
||||
if (begin_found[dimm_num] == false) {
|
||||
begin_found[dimm_num] = true;
|
||||
search_end[dimm_num] = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
begin_found[dimm_num] = TRUE;
|
||||
end_found[dimm_num] = TRUE;
|
||||
begin_found[dimm_num] = true;
|
||||
end_found[dimm_num] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ((begin_found[0] == TRUE) && (begin_found[1] == TRUE))
|
||||
window_found = TRUE;
|
||||
if ((begin_found[0] == true) && (begin_found[1] == true))
|
||||
window_found = true;
|
||||
|
||||
/*------------------------------------------------------------------
|
||||
* Make sure we found the valid read passing window. Halt if not
|
||||
*-----------------------------------------------------------------*/
|
||||
if (window_found == FALSE) {
|
||||
if (window_found == false) {
|
||||
printf("ERROR: Cannot determine a common read delay for the "
|
||||
"DIMM(s) installed.\n");
|
||||
spd_ddr_init_hang ();
|
||||
|
@ -53,13 +53,6 @@
|
||||
/*-----------------------------------------------------------------------------+
|
||||
* Defines
|
||||
*-----------------------------------------------------------------------------*/
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#define MAXDIMMS 2
|
||||
#define MAXRANKS 2
|
||||
|
||||
@ -279,7 +272,7 @@ static void get_spd_info(unsigned long dimm_ranks[],
|
||||
unsigned long num_dimm_banks)
|
||||
{
|
||||
unsigned long dimm_num;
|
||||
unsigned long dimm_found = FALSE;
|
||||
unsigned long dimm_found = false;
|
||||
unsigned long const max_ranks_per_dimm = (1 == num_dimm_banks) ? 2 : 1;
|
||||
unsigned char num_of_bytes;
|
||||
unsigned char total_size;
|
||||
@ -334,7 +327,7 @@ static void get_spd_info(unsigned long dimm_ranks[],
|
||||
"\n\n");
|
||||
spd_ddr_init_hang();
|
||||
}
|
||||
dimm_found = TRUE;
|
||||
dimm_found = true;
|
||||
debug("DIMM slot %lu: populated with %lu-rank DDR2 DIMM"
|
||||
"\n", dimm_num, ranks_on_dimm);
|
||||
if (ranks_on_dimm > max_ranks_per_dimm) {
|
||||
@ -355,7 +348,7 @@ static void get_spd_info(unsigned long dimm_ranks[],
|
||||
debug("DIMM slot %lu: Not populated\n", dimm_num);
|
||||
}
|
||||
}
|
||||
if (dimm_found == FALSE) {
|
||||
if (dimm_found == false) {
|
||||
printf("ERROR: No memory installed.\n");
|
||||
printf("Install at least one DDR2 DIMM.\n\n");
|
||||
spd_ddr_init_hang();
|
||||
@ -882,7 +875,7 @@ static void program_ddr0_22(unsigned long dimm_ranks[],
|
||||
/* Check for ECC */
|
||||
if (0 == (spd_read(iic0_dimm_addr[dimm_num], 11) &
|
||||
0x02)) {
|
||||
ecc_available = FALSE;
|
||||
ecc_available = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -50,19 +50,24 @@ wait_ticks:
|
||||
stwu r1, -16(r1)
|
||||
mflr r0 /* save link register */
|
||||
stw r0, 20(r1) /* Use r0 or GDB will be unhappy */
|
||||
mr r7, r3 /* save tick count */
|
||||
stw r14, 12(r1) /* save used registers */
|
||||
stw r15, 8(r1)
|
||||
mr r14, r3 /* save tick count */
|
||||
bl get_ticks /* Get start time */
|
||||
|
||||
/* Calculate end time */
|
||||
addc r7, r4, r7 /* Compute end time lower */
|
||||
addze r6, r3 /* and end time upper */
|
||||
addc r14, r4, r14 /* Compute end time lower */
|
||||
addze r15, r3 /* and end time upper */
|
||||
|
||||
WATCHDOG_RESET /* Trigger watchdog, if needed */
|
||||
1: bl get_ticks /* Get current time */
|
||||
subfc r4, r4, r7 /* Subtract current time from end time */
|
||||
subfe. r3, r3, r6
|
||||
subfc r4, r4, r14 /* Subtract current time from end time */
|
||||
subfe. r3, r3, r15
|
||||
bge 1b /* Loop until time expired */
|
||||
|
||||
mtlr r0 /* restore link register */
|
||||
lwz r15, 8(r1) /* restore saved registers */
|
||||
lwz r14, 12(r1)
|
||||
lwz r0, 20(r1)
|
||||
addi r1,r1,16
|
||||
mtlr r0
|
||||
blr
|
||||
|
@ -134,6 +134,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -383,7 +383,7 @@ unsigned int memoryGetDeviceWidth (DEVICE device)
|
||||
* OUTPUT:
|
||||
* None.
|
||||
* RETURN:
|
||||
* False for invalid size, true otherwise.
|
||||
* false for invalid size, true otherwise.
|
||||
*
|
||||
* CAUTION: PCI_functions must be implemented later To_do !!!!!!!!!!!!!!!!!
|
||||
*
|
||||
@ -509,7 +509,7 @@ bool memoryMapBank (MEMORY_BANK bank, unsigned int bankBase,
|
||||
* None.
|
||||
*
|
||||
* RETURN:
|
||||
* False for invalid size, true otherwise.
|
||||
* false for invalid size, true otherwise.
|
||||
*
|
||||
* CAUTION: PCI_functions must be implemented later To_do !!!!!!!!!!!!!!!!!
|
||||
*
|
||||
@ -624,7 +624,7 @@ bool memoryMapDeviceSpace (DEVICE device, unsigned int deviceBase,
|
||||
* None.
|
||||
*
|
||||
* RETURN:
|
||||
* False for invalid size, true otherwise.
|
||||
* false for invalid size, true otherwise.
|
||||
*
|
||||
*******************************************************************************/
|
||||
bool memorySetPciWindow (PCI_MEM_WINDOW pciWindow, unsigned int pciWindowBase,
|
||||
@ -885,7 +885,7 @@ void gtMemorySetInternalSramBaseAddr (unsigned int sramBaseAddress)
|
||||
* None.
|
||||
*
|
||||
* RETURN:
|
||||
* False for invalid size, true otherwise.
|
||||
* false for invalid size, true otherwise.
|
||||
*
|
||||
*******************************************************************************/
|
||||
bool memorySetProtectRegion (MEMORY_PROTECT_WINDOW window,
|
||||
@ -1380,7 +1380,7 @@ void MemoryEnableWindow (MEMORY_WINDOW window)
|
||||
* OUTPUT:
|
||||
* None.
|
||||
* RETURN:
|
||||
* True for a closed window, false otherwise .
|
||||
* true for a closed window, false otherwise .
|
||||
*******************************************************************************/
|
||||
MEMORY_WINDOW_STATUS MemoryGetMemWindowStatus (MEMORY_WINDOW window)
|
||||
{
|
||||
|
@ -966,7 +966,7 @@ static int galmpsc_set_snoop (int mpsc, int value)
|
||||
* None.
|
||||
*
|
||||
* RETURN:
|
||||
* True for success, false otherwise.
|
||||
* true for success, false otherwise.
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
|
@ -46,13 +46,6 @@
|
||||
**************************************************************************
|
||||
**************************************************************************
|
||||
*************************************************************************/
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
/* In case not using SG on Tx, define MAX_SKB_FRAGS as 0 */
|
||||
#ifndef MAX_SKB_FRAGS
|
||||
#define MAX_SKB_FRAGS 0
|
||||
|
@ -966,7 +966,7 @@ static int galmpsc_set_snoop (int mpsc, int value)
|
||||
* None.
|
||||
*
|
||||
* RETURN:
|
||||
* True for success, false otherwise.
|
||||
* true for success, false otherwise.
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
|
@ -47,13 +47,6 @@
|
||||
**************************************************************************
|
||||
**************************************************************************
|
||||
*************************************************************************/
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
/* In case not using SG on Tx, define MAX_SKB_FRAGS as 0 */
|
||||
#ifndef MAX_SKB_FRAGS
|
||||
#define MAX_SKB_FRAGS 0
|
||||
|
@ -91,11 +91,6 @@ extern unsigned int INTERNAL_REG_BASE_ADDR;
|
||||
#define _1G 0x40000000
|
||||
#define _2G 0x80000000
|
||||
|
||||
#ifndef BOOL_WAS_DEFINED
|
||||
#define BOOL_WAS_DEFINED
|
||||
typedef enum _bool{false,true} bool;
|
||||
#endif
|
||||
|
||||
/* Little to Big endian conversion macros */
|
||||
|
||||
#ifdef LE /* Little Endian */
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -561,7 +561,8 @@ static char *menu_handle(struct menu_display *display)
|
||||
char *s;
|
||||
char temp[6][200];
|
||||
|
||||
m = menu_create(display->title, display->timeout, 1, ait_menu_print);
|
||||
m = menu_create(display->title, display->timeout, 1, ait_menu_print,
|
||||
NULL, NULL);
|
||||
|
||||
for (i = 0; display->menulist[i]; i++) {
|
||||
sprintf(key, "%d", i + 1);
|
||||
|
@ -477,16 +477,16 @@ int is_powerpc440ep_pass1(void)
|
||||
pvr = get_pvr();
|
||||
|
||||
if (pvr == PVR_POWERPC_440EP_PASS1)
|
||||
return TRUE;
|
||||
return true;
|
||||
else if (pvr == PVR_POWERPC_440EP_PASS2)
|
||||
return FALSE;
|
||||
return false;
|
||||
else {
|
||||
printf("brdutil error 3\n");
|
||||
for (;;)
|
||||
;
|
||||
}
|
||||
|
||||
return(FALSE);
|
||||
return false;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------+
|
||||
@ -495,9 +495,9 @@ int is_powerpc440ep_pass1(void)
|
||||
int is_nand_selected(void)
|
||||
{
|
||||
#ifdef CONFIG_BAMBOO_NAND
|
||||
return TRUE;
|
||||
return true;
|
||||
#else
|
||||
return FALSE;
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -507,7 +507,7 @@ int is_nand_selected(void)
|
||||
unsigned char config_on_ebc_cs4_is_small_flash(void)
|
||||
{
|
||||
/* Not implemented yet => returns constant value */
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------+
|
||||
@ -561,7 +561,7 @@ void ext_bus_cntlr_init(void)
|
||||
/*-------------------------------------------------------------------------+
|
||||
| PPC440EP Pass1
|
||||
+-------------------------------------------------------------------------*/
|
||||
if (is_powerpc440ep_pass1() == TRUE) {
|
||||
if (is_powerpc440ep_pass1() == true) {
|
||||
switch(bootstrap_settings) {
|
||||
case SDR0_PSTRP0_BOOTSTRAP_SETTINGS0:
|
||||
/* Default Strap Settings 0 : CPU 400 - PLB 133 - Boot EBC 8 bit 33MHz */
|
||||
@ -738,7 +738,7 @@ void ext_bus_cntlr_init(void)
|
||||
/*------------------------------------------------------------------------- */
|
||||
ebc0_cs0_bnap_value = EBC0_BNAP_SMALL_FLASH;
|
||||
ebc0_cs0_bncr_value = EBC0_BNCR_SMALL_FLASH_CS0;
|
||||
if ((is_nand_selected()) == TRUE) {
|
||||
if ((is_nand_selected()) == true) {
|
||||
/* NAND Flash */
|
||||
ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH;
|
||||
ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1;
|
||||
@ -765,7 +765,7 @@ void ext_bus_cntlr_init(void)
|
||||
/*------------------------------------------------------------------------- */
|
||||
ebc0_cs0_bnap_value = EBC0_BNAP_LARGE_FLASH_OR_SRAM;
|
||||
ebc0_cs0_bncr_value = EBC0_BNCR_LARGE_FLASH_OR_SRAM_CS0;
|
||||
if ((is_nand_selected()) == TRUE) {
|
||||
if ((is_nand_selected()) == true) {
|
||||
/* NAND Flash */
|
||||
ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH;
|
||||
ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1;
|
||||
@ -812,7 +812,7 @@ void ext_bus_cntlr_init(void)
|
||||
ebc0_cs0_bnap_value = 0;
|
||||
ebc0_cs0_bncr_value = 0;
|
||||
|
||||
if ((is_nand_selected()) == TRUE) {
|
||||
if ((is_nand_selected()) == true) {
|
||||
/* NAND Flash */
|
||||
ebc0_cs1_bnap_value = EBC0_BNAP_NAND_FLASH;
|
||||
ebc0_cs1_bncr_value = EBC0_BNCR_NAND_FLASH_CS1;
|
||||
@ -830,7 +830,7 @@ void ext_bus_cntlr_init(void)
|
||||
ebc0_cs3_bncr_value = 0;
|
||||
}
|
||||
|
||||
if ((config_on_ebc_cs4_is_small_flash()) == TRUE) {
|
||||
if ((config_on_ebc_cs4_is_small_flash()) == true) {
|
||||
/* Small Flash */
|
||||
ebc0_cs4_bnap_value = EBC0_BNAP_SMALL_FLASH;
|
||||
ebc0_cs4_bncr_value = EBC0_BNCR_SMALL_FLASH_CS4;
|
||||
|
@ -250,9 +250,6 @@
|
||||
#define PVR_POWERPC_440EP_PASS1 0x42221850
|
||||
#define PVR_POWERPC_440EP_PASS2 0x422218D3
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define GPIO0 0
|
||||
#define GPIO1 1
|
||||
|
||||
|
@ -47,9 +47,6 @@ void fpga_init (void);
|
||||
#define DEBUGF(fmt,args...)
|
||||
#endif
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE 1
|
||||
|
||||
int board_early_init_f (void)
|
||||
{
|
||||
/*----------------------------------------------------------------------------+
|
||||
|
@ -32,8 +32,6 @@
|
||||
|
||||
#define V_ULONG(a) (*(volatile unsigned long *)( a ))
|
||||
#define V_BYTE(a) (*(volatile unsigned char *)( a ))
|
||||
#define TRUE 0x1
|
||||
#define FALSE 0x0
|
||||
#define BUFFER_SIZE 0x80000
|
||||
#define NO_COMMAND 0
|
||||
#define GET_CODES 1
|
||||
|
@ -309,7 +309,7 @@ int read_flash(long nOffset, int *pnValue)
|
||||
nValue = *(volatile unsigned short *)addr;
|
||||
SSYNC();
|
||||
*pnValue = nValue;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
int poll_toggle_bit(long lOffset)
|
||||
@ -398,7 +398,7 @@ int erase_block_flash(int nBlock, unsigned long address)
|
||||
long ulSectorOff = 0x0;
|
||||
|
||||
if ((nBlock < 0) || (nBlock > AFP_NumSectors))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
ulSectorOff = (address - CONFIG_SYS_FLASH_BASE);
|
||||
|
||||
|
@ -9,9 +9,6 @@
|
||||
#define YELLOW (0xD292D210) /* yellow pixel pattern */
|
||||
#define WHITE (0xFE80FE80) /* white pixel pattern */
|
||||
|
||||
#define true 1
|
||||
#define false 0
|
||||
|
||||
typedef struct {
|
||||
unsigned int sav;
|
||||
unsigned int eav;
|
||||
|
@ -91,6 +91,7 @@ static int splash_load_from_nand(u32 bmp_load_addr)
|
||||
|
||||
res = nand_read_skip_bad(&nand_info[nand_curr_device],
|
||||
splash_screen_nand_offset, &bmp_header_size,
|
||||
NULL, nand_info[nand_curr_device].size,
|
||||
(u_char *)bmp_load_addr);
|
||||
if (res < 0)
|
||||
return res;
|
||||
@ -103,6 +104,7 @@ static int splash_load_from_nand(u32 bmp_load_addr)
|
||||
|
||||
return nand_read_skip_bad(&nand_info[nand_curr_device],
|
||||
splash_screen_nand_offset, &bmp_size,
|
||||
NULL, nand_info[nand_curr_device].size,
|
||||
(u_char *)bmp_load_addr);
|
||||
|
||||
splash_address_too_high:
|
||||
|
@ -381,14 +381,6 @@ static enum display_type env_parse_displaytype(char *displaytype)
|
||||
return NONE;
|
||||
}
|
||||
|
||||
int lcd_line_length;
|
||||
int lcd_color_fg;
|
||||
int lcd_color_bg;
|
||||
void *lcd_base;
|
||||
short console_col;
|
||||
short console_row;
|
||||
void *lcd_console_address;
|
||||
|
||||
void lcd_ctrl_init(void *lcdbase)
|
||||
{
|
||||
struct prcm *prcm = (struct prcm *)PRCM_BASE;
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -126,6 +126,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -260,7 +260,7 @@ int lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
|
||||
/*
|
||||
* Big epson detected
|
||||
*/
|
||||
reg_byte_swap = FALSE;
|
||||
reg_byte_swap = false;
|
||||
palette_index = 0x1e2;
|
||||
palette_value = 0x1e4;
|
||||
lcd_depth = 16;
|
||||
@ -269,7 +269,7 @@ int lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
|
||||
/*
|
||||
* Big epson detected (with register swap bug)
|
||||
*/
|
||||
reg_byte_swap = TRUE;
|
||||
reg_byte_swap = true;
|
||||
palette_index = 0x1e3;
|
||||
palette_value = 0x1e5;
|
||||
lcd_depth = 16;
|
||||
@ -278,7 +278,7 @@ int lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
|
||||
/*
|
||||
* Small epson detected (704)
|
||||
*/
|
||||
reg_byte_swap = FALSE;
|
||||
reg_byte_swap = false;
|
||||
palette_index = 0x15;
|
||||
palette_value = 0x17;
|
||||
lcd_depth = 8;
|
||||
@ -287,7 +287,7 @@ int lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
|
||||
/*
|
||||
* Small epson detected (705)
|
||||
*/
|
||||
reg_byte_swap = FALSE;
|
||||
reg_byte_swap = false;
|
||||
palette_index = 0x15;
|
||||
palette_value = 0x17;
|
||||
lcd_depth = 8;
|
||||
@ -300,7 +300,7 @@ int lcd_init(uchar *lcd_reg, uchar *lcd_mem, S1D_REGS *regs, int reg_count,
|
||||
/*
|
||||
* S1D13505 detected
|
||||
*/
|
||||
reg_byte_swap = TRUE;
|
||||
reg_byte_swap = true;
|
||||
palette_index = 0x25;
|
||||
palette_value = 0x27;
|
||||
lcd_depth = 16;
|
||||
|
@ -35,11 +35,6 @@
|
||||
#define LOAD_LONG(data) SWAP_LONG(data)
|
||||
#define LOAD_SHORT(data) SWAP_SHORT(data)
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#define TRUE (!FALSE)
|
||||
#endif
|
||||
|
||||
#define S1D_WRITE_PALETTE(p,i,r,g,b) \
|
||||
{ \
|
||||
out_8(&((uchar*)(p))[palette_index], (uchar)(i)); \
|
||||
|
@ -967,7 +967,7 @@ static int galmpsc_set_snoop (int mpsc, int value)
|
||||
* None.
|
||||
*
|
||||
* RETURN:
|
||||
* True for success, false otherwise.
|
||||
* true for success, false otherwise.
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
|
@ -47,13 +47,6 @@
|
||||
**************************************************************************
|
||||
**************************************************************************
|
||||
*************************************************************************/
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
/* In case not using SG on Tx, define MAX_SKB_FRAGS as 0 */
|
||||
#ifndef MAX_SKB_FRAGS
|
||||
#define MAX_SKB_FRAGS 0
|
||||
|
@ -30,10 +30,6 @@
|
||||
#define OK 0
|
||||
#define ERROR (-1)
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
|
||||
extern u_long pci9054_iobase;
|
||||
|
||||
|
||||
@ -97,7 +93,7 @@ static int PciEepromWriteLongVPD (int offs, unsigned int value)
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
@ -113,7 +113,7 @@ void fpga_serialslave_init(void)
|
||||
{
|
||||
debug("%s:%d: Initialize serial slave interface\n", __FUNCTION__,
|
||||
__LINE__);
|
||||
fpga_pgm_fn(FALSE, FALSE, 0); /* make sure program pin is inactive */
|
||||
fpga_pgm_fn(false, false, 0); /* make sure program pin is inactive */
|
||||
}
|
||||
|
||||
|
||||
@ -188,7 +188,7 @@ int fpga_done_fn(int cookie)
|
||||
int fpga_pre_config_fn(int cookie)
|
||||
{
|
||||
debug("%s:%d: FPGA pre-configuration\n", __FUNCTION__, __LINE__);
|
||||
fpga_reset(TRUE);
|
||||
fpga_reset(true);
|
||||
|
||||
/* release init# */
|
||||
out_be32((void*)GPIO0_OR, in_be32((void*)GPIO0_OR) | GPIO0_FPGA_FORCEINIT);
|
||||
@ -213,9 +213,9 @@ int fpga_post_config_fn(int cookie)
|
||||
/* enable PLD0..7 pins */
|
||||
out_be32((void*)GPIO1_OR, in_be32((void*)GPIO1_OR) & ~GPIO1_IOEN_N);
|
||||
|
||||
fpga_reset(TRUE);
|
||||
fpga_reset(true);
|
||||
udelay (100);
|
||||
fpga_reset(FALSE);
|
||||
fpga_reset(false);
|
||||
udelay (100);
|
||||
|
||||
FPGA_OUT32(&fpga->status, (gd->board_type << STATUS_HWREV_SHIFT) & STATUS_HWREV_MASK);
|
||||
@ -296,7 +296,7 @@ void ngcc_fpga_serialslave_init(void)
|
||||
__FUNCTION__, __LINE__);
|
||||
|
||||
/* make sure program pin is inactive */
|
||||
ngcc_fpga_pgm_fn (FALSE, FALSE, 0);
|
||||
ngcc_fpga_pgm_fn(false, false, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -382,10 +382,10 @@ int ngcc_fpga_pre_config_fn(int cookie)
|
||||
pmc440_fpga_t *fpga = (pmc440_fpga_t *)FPGA_BA;
|
||||
debug("%s:%d: FPGA pre-configuration\n", __FUNCTION__, __LINE__);
|
||||
|
||||
ngcc_fpga_reset(TRUE);
|
||||
ngcc_fpga_reset(true);
|
||||
FPGA_CLRBITS(&fpga->ctrla, 0xfffffe00);
|
||||
|
||||
ngcc_fpga_reset(TRUE);
|
||||
ngcc_fpga_reset(true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -401,7 +401,7 @@ int ngcc_fpga_post_config_fn(int cookie)
|
||||
debug("%s:%d: NGCC FPGA post configuration\n", __FUNCTION__, __LINE__);
|
||||
|
||||
udelay (100);
|
||||
ngcc_fpga_reset(FALSE);
|
||||
ngcc_fpga_reset(false);
|
||||
|
||||
FPGA_SETBITS(&fpga->ctrla, 0x29f8c000);
|
||||
|
||||
|
@ -6,9 +6,6 @@
|
||||
#include "eth.h"
|
||||
#include "eth_addrtbl.h"
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
|
||||
#define PRINTF printf
|
||||
|
||||
#ifdef CONFIG_GT_USE_MAC_HASH_TABLE
|
||||
@ -160,8 +157,8 @@ u32 hashTableFunction (u32 macH, u32 macL, u32 HashSize, u32 hash_mode)
|
||||
* rd - the RD field in the address table.
|
||||
* Outputs
|
||||
* address table entry is added.
|
||||
* TRUE if success.
|
||||
* FALSE if table full
|
||||
* true if success.
|
||||
* false if table full
|
||||
*/
|
||||
int addAddressTableEntry (u32 port, u32 macH, u32 macL, u32 rd, u32 skip)
|
||||
{
|
||||
@ -206,7 +203,7 @@ int addAddressTableEntry (u32 port, u32 macH, u32 macL, u32 rd, u32 skip)
|
||||
|
||||
if (i == HOP_NUMBER) {
|
||||
PRINTF ("addGT64260addressTableEntry: table section is full\n");
|
||||
return (FALSE);
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -215,7 +212,7 @@ int addAddressTableEntry (u32 port, u32 macH, u32 macL, u32 rd, u32 skip)
|
||||
entry->hi = newHi;
|
||||
entry->lo = newLo;
|
||||
DCACHE_FLUSH_N_SYNC ((u32) entry, MAC_ENTRY_SIZE);
|
||||
return (TRUE);
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_GT_USE_MAC_HASH_TABLE */
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -182,7 +182,7 @@ void fpga_selectmap_init (void)
|
||||
{
|
||||
PRINTF ("%s:%d: Initialize SelectMap interface\n", __FUNCTION__,
|
||||
__LINE__);
|
||||
fpga_pgm_fn (FALSE, FALSE, 0); /* make sure program pin is inactive */
|
||||
fpga_pgm_fn(false, false, 0); /* make sure program pin is inactive */
|
||||
}
|
||||
|
||||
|
||||
@ -314,7 +314,7 @@ int fpga_abort_fn (int cookie)
|
||||
int fpga_pre_config_fn (int cookie)
|
||||
{
|
||||
PRINTF ("%s:%d: FPGA pre-configuration\n", __FUNCTION__, __LINE__);
|
||||
fpga_reset (TRUE);
|
||||
fpga_reset(true);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -328,9 +328,9 @@ int fpga_post_config_fn (int cookie)
|
||||
int rc;
|
||||
|
||||
PRINTF ("%s:%d: FPGA post configuration\n", __FUNCTION__, __LINE__);
|
||||
fpga_reset (TRUE);
|
||||
fpga_reset(true);
|
||||
udelay (1000);
|
||||
fpga_reset (FALSE);
|
||||
fpga_reset(false);
|
||||
udelay (1000);
|
||||
|
||||
/*
|
||||
|
@ -138,6 +138,6 @@ SECTIONS
|
||||
{
|
||||
common/env_embedded.o (.ppcenv)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -133,6 +133,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -133,6 +133,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -133,6 +133,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -133,6 +133,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ int board_eth_init(bd_t *bis)
|
||||
|
||||
int overwrite_console(void)
|
||||
{
|
||||
/* return TRUE if console should be overwritten */
|
||||
/* return true if console should be overwritten */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -133,6 +133,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -68,32 +68,12 @@ vidinfo_t panel_info = {
|
||||
LCD_WIDTH, LCD_HEIGHT, LCD_BPP
|
||||
};
|
||||
|
||||
int lcd_line_length;
|
||||
|
||||
int lcd_color_fg;
|
||||
int lcd_color_bg;
|
||||
|
||||
/*
|
||||
* Frame buffer memory information
|
||||
*/
|
||||
void *lcd_base; /* Start of framebuffer memory */
|
||||
void *lcd_console_address; /* Start of console buffer */
|
||||
|
||||
short console_col = 0;
|
||||
short console_row = 0;
|
||||
|
||||
/*
|
||||
* The device we use to communicate with PSoC
|
||||
*/
|
||||
int serial_inited = 0;
|
||||
|
||||
/*
|
||||
* Exported functions
|
||||
*/
|
||||
void lcd_initcolregs (void);
|
||||
void lcd_ctrl_init (void *lcdbase);
|
||||
void lcd_enable (void);
|
||||
|
||||
/*
|
||||
* Imported functions to support the PSoC protocol
|
||||
*/
|
||||
@ -156,12 +136,12 @@ void lcd_enable (void)
|
||||
|
||||
#if !defined(SWAPPED_LCD)
|
||||
for (i=0; i<fb_size; i++) {
|
||||
serial_putc_raw_dev (PSOC_PSC, ((char *)lcd_base)[i]);
|
||||
serial_putc_raw_dev(PSOC_PSC, ((char *)gd->fb_base)[i]);
|
||||
}
|
||||
#else
|
||||
{
|
||||
int x, y, pwidth;
|
||||
char *p = (char *)lcd_base;
|
||||
char *p = (char *)gd->fb_base;
|
||||
|
||||
pwidth = ((panel_info.vl_col+7) >> 3);
|
||||
for (y=0; y<panel_info.vl_row; y++) {
|
||||
|
@ -450,7 +450,7 @@ STATUS flashWrite (flash_dev_t * dev, int pos, char *buf, int len)
|
||||
}
|
||||
|
||||
/*
|
||||
* flashWritable returns TRUE if a range contains all F's.
|
||||
* flashWritable returns true if a range contains all F's.
|
||||
*/
|
||||
|
||||
STATUS flashWritable (flash_dev_t * dev, int pos, int len)
|
||||
|
@ -96,6 +96,6 @@ SECTIONS
|
||||
common/env_embedded.o (.ppcenv)
|
||||
} > ram
|
||||
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -123,6 +123,6 @@ SECTIONS
|
||||
*(COMMON)
|
||||
}
|
||||
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -41,13 +41,6 @@
|
||||
#define PRINTF(fmt,args...)
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PIP405)
|
||||
|
||||
extern int drv_isa_kbd_init (void);
|
||||
@ -116,9 +109,9 @@ unsigned char open_cfg_super_IO(int address)
|
||||
out8(CONFIG_SYS_ISA_IO_BASE_ADDRESS | address,0x55); /* open config */
|
||||
out8(CONFIG_SYS_ISA_IO_BASE_ADDRESS | address,0x20); /* set address to DEV ID */
|
||||
if(in8(CONFIG_SYS_ISA_IO_BASE_ADDRESS | address | 0x1)==0x40) /* ok Device ID is correct */
|
||||
return TRUE;
|
||||
return true;
|
||||
else
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
void close_cfg_super_IO(int address)
|
||||
@ -179,7 +172,7 @@ void isa_sio_loadtable(void)
|
||||
|
||||
void isa_sio_setup(void)
|
||||
{
|
||||
if(open_cfg_super_IO(SIO_CFG_PORT)==TRUE)
|
||||
if (open_cfg_super_IO(SIO_CFG_PORT) == true)
|
||||
{
|
||||
isa_sio_loadtable();
|
||||
close_cfg_super_IO(0x3F0);
|
||||
|
@ -77,8 +77,6 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#undef SDRAM_DEBUG
|
||||
#define ENABLE_ECC /* for ecc boards */
|
||||
#define FALSE 0
|
||||
#define TRUE 1
|
||||
|
||||
/* stdlib.h causes some compatibility problems; should fixe these! -- wd */
|
||||
#ifndef __ldiv_t_defined
|
||||
@ -771,7 +769,8 @@ int last_stage_init (void)
|
||||
|
||||
int overwrite_console (void)
|
||||
{
|
||||
return ((in8 (PLD_EXT_CONF_REG) & 0x1)==0); /* return TRUE if console should be overwritten */
|
||||
/* return true if console should be overwritten */
|
||||
return ((in8(PLD_EXT_CONF_REG) & 0x1) == 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -36,9 +36,6 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#undef SDRAM_DEBUG
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE 1
|
||||
|
||||
/* stdlib.h causes some compatibility problems; should fixe these! -- wd */
|
||||
#ifndef __ldiv_t_defined
|
||||
typedef struct {
|
||||
@ -700,7 +697,8 @@ int misc_init_r (void)
|
||||
|
||||
int overwrite_console (void)
|
||||
{
|
||||
return (in8 (CONFIG_PORT_ADDR) & 0x1); /* return TRUE if console should be overwritten */
|
||||
/* return true if console should be overwritten */
|
||||
return in8(CONFIG_PORT_ADDR) & 0x1;
|
||||
}
|
||||
|
||||
|
||||
@ -945,7 +943,7 @@ void print_pip405_info (void)
|
||||
|
||||
void user_led0 (unsigned char on)
|
||||
{
|
||||
if (on == TRUE)
|
||||
if (on == true)
|
||||
out8 (PLD_LED_USER_REG, (in8 (PLD_LED_USER_REG) | 0x1));
|
||||
else
|
||||
out8 (PLD_LED_USER_REG, (in8 (PLD_LED_USER_REG) & 0xfe));
|
||||
@ -953,7 +951,7 @@ void user_led0 (unsigned char on)
|
||||
|
||||
void user_led1 (unsigned char on)
|
||||
{
|
||||
if (on == TRUE)
|
||||
if (on == true)
|
||||
out8 (PLD_LED_USER_REG, (in8 (PLD_LED_USER_REG) | 0x2));
|
||||
else
|
||||
out8 (PLD_LED_USER_REG, (in8 (PLD_LED_USER_REG) & 0xfd));
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -962,7 +962,7 @@ static int galmpsc_set_snoop (int mpsc, int value)
|
||||
* None.
|
||||
*
|
||||
* RETURN:
|
||||
* True for success, false otherwise.
|
||||
* true for success, false otherwise.
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
|
@ -47,13 +47,6 @@
|
||||
**************************************************************************
|
||||
**************************************************************************
|
||||
*************************************************************************/
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
/* In case not using SG on Tx, define MAX_SKB_FRAGS as 0 */
|
||||
#ifndef MAX_SKB_FRAGS
|
||||
#define MAX_SKB_FRAGS 0
|
||||
|
@ -125,6 +125,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -94,11 +94,11 @@ uint Daq_BRG_Get_Div16(uint brg)
|
||||
|
||||
if (*brg_ptr & CPM_BRG_DIV16) {
|
||||
/* DIV16 active */
|
||||
return (TRUE);
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
/* DIV16 inactive */
|
||||
return (FALSE);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -22,11 +22,6 @@
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#define TRUE (!FALSE)
|
||||
#endif
|
||||
|
||||
#define SLRCLK_EN_MASK 0x00040000 /* PA13 - SLRCLK_EN* */
|
||||
|
||||
#define MIN_SAMPLE_RATE 4000 /* Minimum sample rate */
|
||||
|
@ -141,6 +141,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -141,6 +141,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -133,6 +133,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ static int fpga_done_fn(int cookie)
|
||||
static int fpga_pre_config_fn(int cookie)
|
||||
{
|
||||
debug("%s:%d: FPGA pre-configuration\n", __func__, __LINE__);
|
||||
fpga_reset(TRUE);
|
||||
fpga_reset(true);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -128,9 +128,9 @@ static int fpga_post_config_fn(int cookie)
|
||||
|
||||
debug("%s:%d: FPGA post configuration\n", __func__, __LINE__);
|
||||
|
||||
fpga_reset(TRUE);
|
||||
fpga_reset(true);
|
||||
udelay(100);
|
||||
fpga_reset(FALSE);
|
||||
fpga_reset(false);
|
||||
udelay(100);
|
||||
|
||||
return rc;
|
||||
@ -200,7 +200,7 @@ static Xilinx_desc fpga[CONFIG_FPGA_COUNT] = {
|
||||
static void fpga_serialslave_init(void)
|
||||
{
|
||||
debug("%s:%d: Initialize serial slave interface\n", __func__, __LINE__);
|
||||
fpga_pgm_fn(FALSE, FALSE, 0); /* make sure program pin is inactive */
|
||||
fpga_pgm_fn(false, false, 0); /* make sure program pin is inactive */
|
||||
}
|
||||
|
||||
static int expi_setup(int freq)
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -125,6 +125,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -179,9 +179,9 @@ int fpga_post_config_fn(int cookie)
|
||||
{
|
||||
debug("%s:%d: FPGA post-configuration\n", __func__, __LINE__);
|
||||
|
||||
fpga_reset(TRUE);
|
||||
fpga_reset(true);
|
||||
udelay(100);
|
||||
fpga_reset(FALSE);
|
||||
fpga_reset(false);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -132,6 +132,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -137,6 +137,6 @@ SECTIONS
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
}
|
||||
__bss_end__ = . ;
|
||||
__bss_end = . ;
|
||||
PROVIDE (end = .);
|
||||
}
|
||||
|
@ -66,6 +66,7 @@ COBJS-$(CONFIG_ENV_IS_IN_NVRAM) += env_nvram.o
|
||||
COBJS-$(CONFIG_ENV_IS_IN_ONENAND) += env_onenand.o
|
||||
COBJS-$(CONFIG_ENV_IS_IN_SPI_FLASH) += env_sf.o
|
||||
COBJS-$(CONFIG_ENV_IS_IN_REMOTE) += env_remote.o
|
||||
COBJS-$(CONFIG_ENV_IS_IN_UBI) += env_ubi.o
|
||||
COBJS-$(CONFIG_ENV_IS_NOWHERE) += env_nowhere.o
|
||||
|
||||
# command
|
||||
@ -75,6 +76,7 @@ COBJS-$(CONFIG_CMD_SOURCE) += cmd_source.o
|
||||
COBJS-$(CONFIG_CMD_BDI) += cmd_bdinfo.o
|
||||
COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o
|
||||
COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o
|
||||
COBJS-$(CONFIG_CMD_BOOTMENU) += cmd_bootmenu.o
|
||||
COBJS-$(CONFIG_CMD_BOOTLDR) += cmd_bootldr.o
|
||||
COBJS-$(CONFIG_CMD_BOOTSTAGE) += cmd_bootstage.o
|
||||
COBJS-$(CONFIG_CMD_CACHE) += cmd_cache.o
|
||||
|
@ -72,7 +72,7 @@ int downstring __P ((char *));
|
||||
* F_INSTR - output raw instruction.
|
||||
* F_LINENO - show line # info if available.
|
||||
*
|
||||
* Returns TRUE if the area was successfully disassembled or FALSE if
|
||||
* Returns true if the area was successfully disassembled or false if
|
||||
* a problem was encountered with accessing the memory.
|
||||
*/
|
||||
|
||||
@ -137,8 +137,8 @@ int disppc (unsigned char *memaddr, unsigned char *virtual, int num_instr,
|
||||
for (i = 0; i < num_instr; ++i, memaddr += 4, ctx.virtual += 4) {
|
||||
#ifdef USE_SOURCE_CODE
|
||||
if (ctx.flags & F_LINENO) {
|
||||
if ((line_info_from_addr ((Elf32_Word) ctx.virtual, filename,
|
||||
funcname, &line_no) == TRUE) &&
|
||||
if ((line_info_from_addr ((Elf32_Word) ctx.virtual,
|
||||
filename, funcname, &line_no) == true) &&
|
||||
((line_no != last_line_no) ||
|
||||
(strcmp (last_funcname, funcname) != 0))) {
|
||||
print_source_line (filename, funcname, line_no, pfunc);
|
||||
@ -154,15 +154,15 @@ int disppc (unsigned char *memaddr, unsigned char *virtual, int num_instr,
|
||||
#ifdef USE_SOURCE_CODE
|
||||
if (ctx.flags & F_SYMBOL) {
|
||||
if ((symname =
|
||||
symbol_name_from_addr ((Elf32_Word) ctx.virtual,
|
||||
TRUE, 0)) != 0) {
|
||||
symbol_name_from_addr((Elf32_Word) ctx.virtual,
|
||||
true, 0)) != 0) {
|
||||
cursym = symname;
|
||||
symoffset = 0;
|
||||
} else {
|
||||
if ((cursym == 0) &&
|
||||
((symname =
|
||||
symbol_name_from_addr ((Elf32_Word) ctx.virtual,
|
||||
FALSE, &symoffset)) != 0)) {
|
||||
symbol_name_from_addr((Elf32_Word) ctx.virtual,
|
||||
false, &symoffset)) != 0)) {
|
||||
cursym = symname;
|
||||
} else {
|
||||
symoffset += 4;
|
||||
@ -205,7 +205,8 @@ int disppc (unsigned char *memaddr, unsigned char *virtual, int num_instr,
|
||||
}
|
||||
|
||||
if (((ctx.flags & F_SIMPLE) == 0) ||
|
||||
(ctx.op->hfunc == 0) || ((*ctx.op->hfunc) (&ctx) == FALSE)) {
|
||||
(ctx.op->hfunc == 0) ||
|
||||
((*ctx.op->hfunc) (&ctx) == false)) {
|
||||
sprintf (&ctx.data[ctx.datalen], "%-7s ", ctx.op->name);
|
||||
ctx.datalen += 8;
|
||||
print_operands (&ctx);
|
||||
@ -214,7 +215,7 @@ int disppc (unsigned char *memaddr, unsigned char *virtual, int num_instr,
|
||||
(*pfunc) (ctx.data);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
} /* disppc */
|
||||
|
||||
|
||||
@ -364,10 +365,10 @@ int print_operands (struct ppc_ctx *ctx)
|
||||
* value The address of an unsigned long to be filled in
|
||||
* with the value of the operand if it is found. This
|
||||
* will only be filled in if the function returns
|
||||
* TRUE. This may be passed as 0 if the value is
|
||||
* true. This may be passed as 0 if the value is
|
||||
* not required.
|
||||
*
|
||||
* Returns TRUE if the operand was found or FALSE if it was not.
|
||||
* Returns true if the operand was found or false if it was not.
|
||||
*/
|
||||
|
||||
int get_operand_value (struct opcode *op, unsigned long instr,
|
||||
@ -379,7 +380,7 @@ int get_operand_value (struct opcode *op, unsigned long instr,
|
||||
/*------------------------------------------------------------*/
|
||||
|
||||
if (field > n_operands) {
|
||||
return FALSE; /* bad operand ?! */
|
||||
return false; /* bad operand ?! */
|
||||
}
|
||||
|
||||
/* Walk through the operands and list each in order */
|
||||
@ -393,10 +394,10 @@ int get_operand_value (struct opcode *op, unsigned long instr,
|
||||
if (value) {
|
||||
*value = (instr >> opr->shift) & ((1 << opr->bits) - 1);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
} /* operand_value */
|
||||
|
||||
|
||||
@ -649,7 +650,7 @@ int tbr_value (char *name)
|
||||
* Arguments:
|
||||
* ctx A pointer to the disassembler context record.
|
||||
*
|
||||
* Returns TRUE if the simpler form was printed or FALSE if it was not.
|
||||
* Returns true if the simpler form was printed or false if it was not.
|
||||
*/
|
||||
|
||||
int handle_bc (struct ppc_ctx *ctx)
|
||||
@ -669,33 +670,33 @@ int handle_bc (struct ppc_ctx *ctx)
|
||||
|
||||
/*------------------------------------------------------------*/
|
||||
|
||||
if (get_operand_value (ctx->op, ctx->instr, O_BO, &bo) == FALSE)
|
||||
return FALSE;
|
||||
if (get_operand_value(ctx->op, ctx->instr, O_BO, &bo) == false)
|
||||
return false;
|
||||
|
||||
if (get_operand_value (ctx->op, ctx->instr, O_BI, &bi) == FALSE)
|
||||
return FALSE;
|
||||
if (get_operand_value(ctx->op, ctx->instr, O_BI, &bi) == false)
|
||||
return false;
|
||||
|
||||
if ((bo == 12) && (bi == 0)) {
|
||||
ctx->op = &blt;
|
||||
sprintf (&ctx->data[ctx->datalen], "%-7s ", ctx->op->name);
|
||||
ctx->datalen += 8;
|
||||
print_operands (ctx);
|
||||
return TRUE;
|
||||
return true;
|
||||
} else if ((bo == 4) && (bi == 10)) {
|
||||
ctx->op = =⃥
|
||||
sprintf (&ctx->data[ctx->datalen], "%-7s ", ctx->op->name);
|
||||
ctx->datalen += 8;
|
||||
print_operands (ctx);
|
||||
return TRUE;
|
||||
return true;
|
||||
} else if ((bo == 16) && (bi == 0)) {
|
||||
ctx->op = &bdnz;
|
||||
sprintf (&ctx->data[ctx->datalen], "%-7s ", ctx->op->name);
|
||||
ctx->datalen += 8;
|
||||
print_operands (ctx);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
return false;
|
||||
} /* handle_blt */
|
||||
|
||||
|
||||
@ -719,7 +720,7 @@ int handle_bc (struct ppc_ctx *ctx)
|
||||
* pfunc The address of a function to call to print the output.
|
||||
*
|
||||
*
|
||||
* Returns TRUE if it was able to output the line info, or false if it was
|
||||
* Returns true if it was able to output the line info, or false if it was
|
||||
* not.
|
||||
*/
|
||||
|
||||
@ -734,7 +735,7 @@ int print_source_line (char *filename, char *funcname,
|
||||
sprintf (out_buf, "%s %s(): line %d", filename, funcname, line_no);
|
||||
(*pfunc) (out_buf);
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
} /* print_source_line */
|
||||
|
||||
|
||||
@ -1039,14 +1040,14 @@ int downstring (char *s)
|
||||
* Arguments:
|
||||
* nextaddr The address (to be filled in) of the next
|
||||
* instruction to execute. This will only be a valid
|
||||
* address if TRUE is returned.
|
||||
* address if true is returned.
|
||||
*
|
||||
* step_over A flag indicating how to compute addresses for
|
||||
* branch statements:
|
||||
* TRUE = Step over the branch (next)
|
||||
* FALSE = step into the branch (step)
|
||||
* true = Step over the branch (next)
|
||||
* false = step into the branch (step)
|
||||
*
|
||||
* Returns TRUE if it was able to compute the address. Returns FALSE if
|
||||
* Returns true if it was able to compute the address. Returns false if
|
||||
* it has a problem reading the current instruction or one of the registers.
|
||||
*/
|
||||
|
||||
@ -1075,7 +1076,7 @@ int find_next_address (unsigned char *nextaddr, int step_over,
|
||||
|
||||
if (nextaddr == 0 || regs == 0) {
|
||||
printf ("find_next_address: bad args");
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
pc = regs->nip & 0xfffffffc;
|
||||
@ -1083,7 +1084,7 @@ int find_next_address (unsigned char *nextaddr, int step_over,
|
||||
|
||||
if ((op = find_opcode (instr)) == (struct opcode *) 0) {
|
||||
printf ("find_next_address: can't parse opcode 0x%lx", instr);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
ctr = regs->ctr;
|
||||
@ -1100,7 +1101,7 @@ int find_next_address (unsigned char *nextaddr, int step_over,
|
||||
!get_operand_value (op, instr, O_BI, &bi) ||
|
||||
!get_operand_value (op, instr, O_AA, &aa) ||
|
||||
!get_operand_value (op, instr, O_LK, &lk))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
if ((addr & (1 << 13)) != 0)
|
||||
addr = addr - (1 << 14);
|
||||
@ -1116,7 +1117,7 @@ int find_next_address (unsigned char *nextaddr, int step_over,
|
||||
if (!get_operand_value (op, instr, O_LI, &addr) ||
|
||||
!get_operand_value (op, instr, O_AA, &aa) ||
|
||||
!get_operand_value (op, instr, O_LK, &lk))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
if ((addr & (1 << 23)) != 0)
|
||||
addr = addr - (1 << 24);
|
||||
@ -1130,7 +1131,7 @@ int find_next_address (unsigned char *nextaddr, int step_over,
|
||||
if (!get_operand_value (op, instr, O_BO, &bo) ||
|
||||
!get_operand_value (op, instr, O_BI, &bi) ||
|
||||
!get_operand_value (op, instr, O_LK, &lk))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
addr = ctr;
|
||||
aa = 1;
|
||||
@ -1143,7 +1144,7 @@ int find_next_address (unsigned char *nextaddr, int step_over,
|
||||
if (!get_operand_value (op, instr, O_BO, &bo) ||
|
||||
!get_operand_value (op, instr, O_BI, &bi) ||
|
||||
!get_operand_value (op, instr, O_LK, &lk))
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
addr = lr;
|
||||
aa = 1;
|
||||
@ -1227,12 +1228,12 @@ int find_next_address (unsigned char *nextaddr, int step_over,
|
||||
step = next = pc + 4;
|
||||
}
|
||||
|
||||
if (step_over == TRUE)
|
||||
if (step_over == true)
|
||||
*(unsigned long *) nextaddr = next;
|
||||
else
|
||||
*(unsigned long *) nextaddr = step;
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
} /* find_next_address */
|
||||
|
||||
|
||||
|
@ -788,9 +788,6 @@ static init_fnc_t init_sequence_f[] = {
|
||||
/* TODO: can we rename this to timer_init()? */
|
||||
init_timebase,
|
||||
#endif
|
||||
#if defined(CONFIG_BOARD_EARLY_INIT_F)
|
||||
board_early_init_f,
|
||||
#endif
|
||||
#ifdef CONFIG_ARM
|
||||
timer_init, /* initialize timer */
|
||||
#endif
|
||||
|
@ -292,7 +292,7 @@ int do_bedbug_step (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!find_next_address ((unsigned char *) &addr, FALSE, bug_ctx.regs))
|
||||
if (!find_next_address((unsigned char *) &addr, false, bug_ctx.regs))
|
||||
return 1;
|
||||
|
||||
if (bug_ctx.set)
|
||||
@ -323,7 +323,7 @@ int do_bedbug_next (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!find_next_address ((unsigned char *) &addr, TRUE, bug_ctx.regs))
|
||||
if (!find_next_address((unsigned char *) &addr, true, bug_ctx.regs))
|
||||
return 1;
|
||||
|
||||
if (bug_ctx.set)
|
||||
|
517
common/cmd_bootmenu.c
Normal file
517
common/cmd_bootmenu.c
Normal file
@ -0,0 +1,517 @@
|
||||
/*
|
||||
* (C) Copyright 2011-2013 Pali Rohár <pali.rohar@gmail.com>
|
||||
*
|
||||
* See file CREDITS for list of people who contributed to this
|
||||
* project.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
||||
* MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <common.h>
|
||||
#include <command.h>
|
||||
#include <ansi.h>
|
||||
#include <menu.h>
|
||||
#include <hush.h>
|
||||
#include <watchdog.h>
|
||||
#include <malloc.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
/* maximum bootmenu entries */
|
||||
#define MAX_COUNT 99
|
||||
|
||||
/* maximal size of bootmenu env
|
||||
* 9 = strlen("bootmenu_")
|
||||
* 2 = strlen(MAX_COUNT)
|
||||
* 1 = NULL term
|
||||
*/
|
||||
#define MAX_ENV_SIZE (9 + 2 + 1)
|
||||
|
||||
struct bootmenu_entry {
|
||||
unsigned short int num; /* unique number 0 .. MAX_COUNT */
|
||||
char key[3]; /* key identifier of number */
|
||||
char *title; /* title of entry */
|
||||
char *command; /* hush command of entry */
|
||||
struct bootmenu_data *menu; /* this bootmenu */
|
||||
struct bootmenu_entry *next; /* next menu entry (num+1) */
|
||||
};
|
||||
|
||||
struct bootmenu_data {
|
||||
int delay; /* delay for autoboot */
|
||||
int active; /* active menu entry */
|
||||
int count; /* total count of menu entries */
|
||||
struct bootmenu_entry *first; /* first menu entry */
|
||||
};
|
||||
|
||||
enum bootmenu_key {
|
||||
KEY_NONE = 0,
|
||||
KEY_UP,
|
||||
KEY_DOWN,
|
||||
KEY_SELECT,
|
||||
};
|
||||
|
||||
static char *bootmenu_getoption(unsigned short int n)
|
||||
{
|
||||
char name[MAX_ENV_SIZE] = "bootmenu_";
|
||||
|
||||
if (n > MAX_COUNT)
|
||||
return NULL;
|
||||
|
||||
sprintf(name + 9, "%d", n);
|
||||
return getenv(name);
|
||||
}
|
||||
|
||||
static void bootmenu_print_entry(void *data)
|
||||
{
|
||||
struct bootmenu_entry *entry = data;
|
||||
int reverse = (entry->menu->active == entry->num);
|
||||
|
||||
/*
|
||||
* Move cursor to line where the entry will be drown (entry->num)
|
||||
* First 3 lines contain bootmenu header + 1 empty line
|
||||
*/
|
||||
printf(ANSI_CURSOR_POSITION, entry->num + 4, 1);
|
||||
|
||||
puts(" ");
|
||||
|
||||
if (reverse)
|
||||
puts(ANSI_COLOR_REVERSE);
|
||||
|
||||
puts(entry->title);
|
||||
|
||||
if (reverse)
|
||||
puts(ANSI_COLOR_RESET);
|
||||
}
|
||||
|
||||
static void bootmenu_autoboot_loop(struct bootmenu_data *menu,
|
||||
enum bootmenu_key *key, int *esc)
|
||||
{
|
||||
int i, c;
|
||||
|
||||
if (menu->delay > 0) {
|
||||
printf(ANSI_CURSOR_POSITION, menu->count + 5, 1);
|
||||
printf(" Hit any key to stop autoboot: %2d ", menu->delay);
|
||||
}
|
||||
|
||||
while (menu->delay > 0) {
|
||||
for (i = 0; i < 100; ++i) {
|
||||
if (!tstc()) {
|
||||
WATCHDOG_RESET();
|
||||
mdelay(10);
|
||||
continue;
|
||||
}
|
||||
|
||||
menu->delay = -1;
|
||||
c = getc();
|
||||
|
||||
switch (c) {
|
||||
case '\e':
|
||||
*esc = 1;
|
||||
*key = KEY_NONE;
|
||||
break;
|
||||
case '\r':
|
||||
*key = KEY_SELECT;
|
||||
break;
|
||||
default:
|
||||
*key = KEY_NONE;
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if (menu->delay < 0)
|
||||
break;
|
||||
|
||||
--menu->delay;
|
||||
printf("\b\b\b%2d ", menu->delay);
|
||||
}
|
||||
|
||||
printf(ANSI_CURSOR_POSITION, menu->count + 5, 1);
|
||||
puts(ANSI_CLEAR_LINE);
|
||||
|
||||
if (menu->delay == 0)
|
||||
*key = KEY_SELECT;
|
||||
}
|
||||
|
||||
static void bootmenu_loop(struct bootmenu_data *menu,
|
||||
enum bootmenu_key *key, int *esc)
|
||||
{
|
||||
int c;
|
||||
|
||||
while (!tstc()) {
|
||||
WATCHDOG_RESET();
|
||||
mdelay(10);
|
||||
}
|
||||
|
||||
c = getc();
|
||||
|
||||
switch (*esc) {
|
||||
case 0:
|
||||
/* First char of ANSI escape sequence '\e' */
|
||||
if (c == '\e') {
|
||||
*esc = 1;
|
||||
*key = KEY_NONE;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
/* Second char of ANSI '[' */
|
||||
if (c == '[') {
|
||||
*esc = 2;
|
||||
*key = KEY_NONE;
|
||||
} else {
|
||||
*esc = 0;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
/* Third char of ANSI (number '1') - optional */
|
||||
if (*esc == 2 && c == '1') {
|
||||
*esc = 3;
|
||||
*key = KEY_NONE;
|
||||
break;
|
||||
}
|
||||
|
||||
*esc = 0;
|
||||
|
||||
/* ANSI 'A' - key up was pressed */
|
||||
if (c == 'A')
|
||||
*key = KEY_UP;
|
||||
/* ANSI 'B' - key down was pressed */
|
||||
else if (c == 'B')
|
||||
*key = KEY_DOWN;
|
||||
/* other key was pressed */
|
||||
else
|
||||
*key = KEY_NONE;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
/* enter key was pressed */
|
||||
if (c == '\r')
|
||||
*key = KEY_SELECT;
|
||||
}
|
||||
|
||||
static char *bootmenu_choice_entry(void *data)
|
||||
{
|
||||
struct bootmenu_data *menu = data;
|
||||
struct bootmenu_entry *iter;
|
||||
enum bootmenu_key key = KEY_NONE;
|
||||
int esc = 0;
|
||||
int i;
|
||||
|
||||
while (1) {
|
||||
if (menu->delay >= 0) {
|
||||
/* Autoboot was not stopped */
|
||||
bootmenu_autoboot_loop(menu, &key, &esc);
|
||||
} else {
|
||||
/* Some key was pressed, so autoboot was stopped */
|
||||
bootmenu_loop(menu, &key, &esc);
|
||||
}
|
||||
|
||||
switch (key) {
|
||||
case KEY_UP:
|
||||
if (menu->active > 0)
|
||||
--menu->active;
|
||||
/* no menu key selected, regenerate menu */
|
||||
return NULL;
|
||||
case KEY_DOWN:
|
||||
if (menu->active < menu->count - 1)
|
||||
++menu->active;
|
||||
/* no menu key selected, regenerate menu */
|
||||
return NULL;
|
||||
case KEY_SELECT:
|
||||
iter = menu->first;
|
||||
for (i = 0; i < menu->active; ++i)
|
||||
iter = iter->next;
|
||||
return iter->key;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* never happens */
|
||||
debug("bootmenu: this should not happen");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void bootmenu_destroy(struct bootmenu_data *menu)
|
||||
{
|
||||
struct bootmenu_entry *iter = menu->first;
|
||||
struct bootmenu_entry *next;
|
||||
|
||||
while (iter) {
|
||||
next = iter->next;
|
||||
free(iter->title);
|
||||
free(iter->command);
|
||||
free(iter);
|
||||
iter = next;
|
||||
}
|
||||
free(menu);
|
||||
}
|
||||
|
||||
static struct bootmenu_data *bootmenu_create(int delay)
|
||||
{
|
||||
unsigned short int i = 0;
|
||||
const char *option;
|
||||
struct bootmenu_data *menu;
|
||||
struct bootmenu_entry *iter = NULL;
|
||||
|
||||
int len;
|
||||
char *sep;
|
||||
struct bootmenu_entry *entry;
|
||||
|
||||
menu = malloc(sizeof(struct bootmenu_data));
|
||||
if (!menu)
|
||||
return NULL;
|
||||
|
||||
menu->delay = delay;
|
||||
menu->active = 0;
|
||||
menu->first = NULL;
|
||||
|
||||
while ((option = bootmenu_getoption(i))) {
|
||||
sep = strchr(option, '=');
|
||||
if (!sep) {
|
||||
printf("Invalid bootmenu entry: %s\n", option);
|
||||
break;
|
||||
}
|
||||
|
||||
entry = malloc(sizeof(struct bootmenu_entry));
|
||||
if (!entry)
|
||||
goto cleanup;
|
||||
|
||||
len = sep-option;
|
||||
entry->title = malloc(len + 1);
|
||||
if (!entry->title) {
|
||||
free(entry);
|
||||
goto cleanup;
|
||||
}
|
||||
memcpy(entry->title, option, len);
|
||||
entry->title[len] = 0;
|
||||
|
||||
len = strlen(sep + 1);
|
||||
entry->command = malloc(len + 1);
|
||||
if (!entry->command) {
|
||||
free(entry->title);
|
||||
free(entry);
|
||||
goto cleanup;
|
||||
}
|
||||
memcpy(entry->command, sep + 1, len);
|
||||
entry->command[len] = 0;
|
||||
|
||||
sprintf(entry->key, "%d", i);
|
||||
|
||||
entry->num = i;
|
||||
entry->menu = menu;
|
||||
entry->next = NULL;
|
||||
|
||||
if (!iter)
|
||||
menu->first = entry;
|
||||
else
|
||||
iter->next = entry;
|
||||
|
||||
iter = entry;
|
||||
++i;
|
||||
|
||||
if (i == MAX_COUNT - 1)
|
||||
break;
|
||||
}
|
||||
|
||||
/* Add U-Boot console entry at the end */
|
||||
if (i <= MAX_COUNT - 1) {
|
||||
entry = malloc(sizeof(struct bootmenu_entry));
|
||||
if (!entry)
|
||||
goto cleanup;
|
||||
|
||||
entry->title = strdup("U-Boot console");
|
||||
if (!entry->title) {
|
||||
free(entry);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
entry->command = strdup("");
|
||||
if (!entry->command) {
|
||||
free(entry->title);
|
||||
free(entry);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
sprintf(entry->key, "%d", i);
|
||||
|
||||
entry->num = i;
|
||||
entry->menu = menu;
|
||||
entry->next = NULL;
|
||||
|
||||
if (!iter)
|
||||
menu->first = entry;
|
||||
else
|
||||
iter->next = entry;
|
||||
|
||||
iter = entry;
|
||||
++i;
|
||||
}
|
||||
|
||||
menu->count = i;
|
||||
return menu;
|
||||
|
||||
cleanup:
|
||||
bootmenu_destroy(menu);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void bootmenu_show(int delay)
|
||||
{
|
||||
int init = 0;
|
||||
void *choice = NULL;
|
||||
char *title = NULL;
|
||||
char *command = NULL;
|
||||
struct menu *menu;
|
||||
struct bootmenu_data *bootmenu;
|
||||
struct bootmenu_entry *iter;
|
||||
char *option, *sep;
|
||||
|
||||
/* If delay is 0 do not create menu, just run first entry */
|
||||
if (delay == 0) {
|
||||
option = bootmenu_getoption(0);
|
||||
if (!option) {
|
||||
puts("bootmenu option 0 was not found\n");
|
||||
return;
|
||||
}
|
||||
sep = strchr(option, '=');
|
||||
if (!sep) {
|
||||
puts("bootmenu option 0 is invalid\n");
|
||||
return;
|
||||
}
|
||||
run_command(sep+1, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
bootmenu = bootmenu_create(delay);
|
||||
if (!bootmenu)
|
||||
return;
|
||||
|
||||
menu = menu_create(NULL, bootmenu->delay, 1, bootmenu_print_entry,
|
||||
bootmenu_choice_entry, bootmenu);
|
||||
if (!menu) {
|
||||
bootmenu_destroy(bootmenu);
|
||||
return;
|
||||
}
|
||||
|
||||
for (iter = bootmenu->first; iter; iter = iter->next) {
|
||||
if (!menu_item_add(menu, iter->key, iter))
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Default menu entry is always first */
|
||||
menu_default_set(menu, "0");
|
||||
|
||||
puts(ANSI_CURSOR_HIDE);
|
||||
puts(ANSI_CLEAR_CONSOLE);
|
||||
printf(ANSI_CURSOR_POSITION, 1, 1);
|
||||
|
||||
init = 1;
|
||||
|
||||
if (menu_get_choice(menu, &choice)) {
|
||||
iter = choice;
|
||||
title = strdup(iter->title);
|
||||
command = strdup(iter->command);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
menu_destroy(menu);
|
||||
bootmenu_destroy(bootmenu);
|
||||
|
||||
if (init) {
|
||||
puts(ANSI_CURSOR_SHOW);
|
||||
puts(ANSI_CLEAR_CONSOLE);
|
||||
printf(ANSI_CURSOR_POSITION, 1, 1);
|
||||
}
|
||||
|
||||
if (title && command) {
|
||||
debug("Starting entry '%s'\n", title);
|
||||
free(title);
|
||||
run_command(command, 0);
|
||||
free(command);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_POSTBOOTMENU
|
||||
run_command(CONFIG_POSTBOOTMENU, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
void menu_display_statusline(struct menu *m)
|
||||
{
|
||||
struct bootmenu_entry *entry;
|
||||
struct bootmenu_data *menu;
|
||||
|
||||
if (menu_default_choice(m, (void *)&entry) < 0)
|
||||
return;
|
||||
|
||||
menu = entry->menu;
|
||||
|
||||
printf(ANSI_CURSOR_POSITION, 1, 1);
|
||||
puts(ANSI_CLEAR_LINE);
|
||||
printf(ANSI_CURSOR_POSITION, 2, 1);
|
||||
puts(" *** U-Boot Boot Menu ***");
|
||||
puts(ANSI_CLEAR_LINE_TO_END);
|
||||
printf(ANSI_CURSOR_POSITION, 3, 1);
|
||||
puts(ANSI_CLEAR_LINE);
|
||||
|
||||
/* First 3 lines are bootmenu header + 2 empty lines between entries */
|
||||
printf(ANSI_CURSOR_POSITION, menu->count + 5, 1);
|
||||
puts(ANSI_CLEAR_LINE);
|
||||
printf(ANSI_CURSOR_POSITION, menu->count + 6, 1);
|
||||
puts(" Press UP/DOWN to move, ENTER to select");
|
||||
puts(ANSI_CLEAR_LINE_TO_END);
|
||||
printf(ANSI_CURSOR_POSITION, menu->count + 7, 1);
|
||||
puts(ANSI_CLEAR_LINE);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MENU_SHOW
|
||||
int menu_show(int bootdelay)
|
||||
{
|
||||
bootmenu_show(bootdelay);
|
||||
return -1; /* -1 - abort boot and run monitor code */
|
||||
}
|
||||
#endif
|
||||
|
||||
int do_bootmenu(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
|
||||
{
|
||||
char *delay_str = NULL;
|
||||
int delay = 10;
|
||||
|
||||
#if defined(CONFIG_BOOTDELAY) && (CONFIG_BOOTDELAY >= 0)
|
||||
delay = CONFIG_BOOTDELAY;
|
||||
#endif
|
||||
|
||||
if (argc >= 2)
|
||||
delay_str = argv[1];
|
||||
|
||||
if (!delay_str)
|
||||
delay_str = getenv("bootmenu_delay");
|
||||
|
||||
if (delay_str)
|
||||
delay = (int)simple_strtol(delay_str, NULL, 10);
|
||||
|
||||
bootmenu_show(delay);
|
||||
return 0;
|
||||
}
|
||||
|
||||
U_BOOT_CMD(
|
||||
bootmenu, 2, 1, do_bootmenu,
|
||||
"ANSI terminal bootmenu",
|
||||
"[delay]\n"
|
||||
" - show ANSI terminal bootmenu with autoboot delay"
|
||||
);
|
117
common/cmd_fdc.c
117
common/cmd_fdc.c
@ -39,13 +39,6 @@
|
||||
#define PRINTF(fmt,args...)
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
/*#if defined(CONFIG_CMD_DATE) */
|
||||
/*#include <rtc.h> */
|
||||
/*#endif */
|
||||
@ -214,9 +207,9 @@ int wait_for_fdc_int(void)
|
||||
timeout--;
|
||||
udelay(10);
|
||||
if(timeout==0) /* timeout occured */
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* reads a byte from the FIFO of the FDC and checks direction and RQM bit
|
||||
@ -244,7 +237,7 @@ int fdc_need_more_output(void)
|
||||
c=(unsigned char)read_fdc_byte();
|
||||
printf("Error: more output: %x\n",c);
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -260,10 +253,10 @@ int write_fdc_byte(unsigned char val)
|
||||
udelay(10);
|
||||
fdc_need_more_output();
|
||||
if(timeout==0) /* timeout occured */
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
write_fdc_reg(FDC_FIFO,val);
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* sets up all FDC commands and issues it to the FDC. If
|
||||
@ -344,9 +337,9 @@ int fdc_issue_cmd(FDC_COMMAND_STRUCT *pCMD,FD_GEO_STRUCT *pFG)
|
||||
}
|
||||
for(i=0;i<pCMD->cmdlen;i++) {
|
||||
/* PRINTF("write cmd%d = 0x%02X\n",i,pCMD->cmd[i]); */
|
||||
if(write_fdc_byte(pCMD->cmd[i])==FALSE) {
|
||||
if (write_fdc_byte(pCMD->cmd[i]) == false) {
|
||||
PRINTF("Error: timeout while issue cmd%d\n",i);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
timeout=FDC_TIME_OUT;
|
||||
@ -355,12 +348,12 @@ int fdc_issue_cmd(FDC_COMMAND_STRUCT *pCMD,FD_GEO_STRUCT *pFG)
|
||||
timeout--;
|
||||
if(timeout==0) {
|
||||
PRINTF(" timeout while reading result%d MSR=0x%02X\n",i,read_fdc_reg(FDC_MSR));
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
pCMD->result[i]=(unsigned char)read_fdc_byte();
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* selects the drive assigned in the cmd structur and
|
||||
@ -391,9 +384,10 @@ void stop_fdc_drive(FDC_COMMAND_STRUCT *pCMD)
|
||||
int fdc_recalibrate(FDC_COMMAND_STRUCT *pCMD,FD_GEO_STRUCT *pFG)
|
||||
{
|
||||
pCMD->cmd[COMMAND]=FDC_CMD_RECALIBRATE;
|
||||
if(fdc_issue_cmd(pCMD,pFG)==FALSE)
|
||||
return FALSE;
|
||||
while(wait_for_fdc_int()!=TRUE);
|
||||
if (fdc_issue_cmd(pCMD, pFG) == false)
|
||||
return false;
|
||||
while (wait_for_fdc_int() != true);
|
||||
|
||||
pCMD->cmd[COMMAND]=FDC_CMD_SENSE_INT;
|
||||
return(fdc_issue_cmd(pCMD,pFG));
|
||||
}
|
||||
@ -403,9 +397,10 @@ int fdc_recalibrate(FDC_COMMAND_STRUCT *pCMD,FD_GEO_STRUCT *pFG)
|
||||
int fdc_seek(FDC_COMMAND_STRUCT *pCMD,FD_GEO_STRUCT *pFG)
|
||||
{
|
||||
pCMD->cmd[COMMAND]=FDC_CMD_SEEK;
|
||||
if(fdc_issue_cmd(pCMD,pFG)==FALSE)
|
||||
return FALSE;
|
||||
while(wait_for_fdc_int()!=TRUE);
|
||||
if (fdc_issue_cmd(pCMD, pFG) == false)
|
||||
return false;
|
||||
while (wait_for_fdc_int() != true);
|
||||
|
||||
pCMD->cmd[COMMAND]=FDC_CMD_SENSE_INT;
|
||||
return(fdc_issue_cmd(pCMD,pFG));
|
||||
}
|
||||
@ -421,7 +416,7 @@ int fdc_terminate(FDC_COMMAND_STRUCT *pCMD)
|
||||
for(i=0;i<7;i++) {
|
||||
pCMD->result[i]=(unsigned char)read_fdc_byte();
|
||||
}
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* reads data from FDC, seek commands are issued automatic */
|
||||
@ -440,18 +435,18 @@ int fdc_read_data(unsigned char *buffer, unsigned long blocks,FDC_COMMAND_STRUCT
|
||||
retriesrw=0;
|
||||
retriescal=0;
|
||||
offset=0;
|
||||
if(fdc_seek(pCMD,pFG)==FALSE) {
|
||||
if (fdc_seek(pCMD, pFG) == false) {
|
||||
stop_fdc_drive(pCMD);
|
||||
if (flags)
|
||||
enable_interrupts();
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if((pCMD->result[STATUS_0]&0x20)!=0x20) {
|
||||
printf("Seek error Status: %02X\n",pCMD->result[STATUS_0]);
|
||||
stop_fdc_drive(pCMD);
|
||||
if (flags)
|
||||
enable_interrupts();
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
/* now determine the next seek point */
|
||||
/* lastblk=pCMD->blnr + blocks; */
|
||||
@ -466,11 +461,11 @@ int fdc_read_data(unsigned char *buffer, unsigned long blocks,FDC_COMMAND_STRUCT
|
||||
retryrw:
|
||||
len=sect_size * readblk;
|
||||
pCMD->cmd[COMMAND]=FDC_CMD_READ;
|
||||
if(fdc_issue_cmd(pCMD,pFG)==FALSE) {
|
||||
if (fdc_issue_cmd(pCMD, pFG) == false) {
|
||||
stop_fdc_drive(pCMD);
|
||||
if (flags)
|
||||
enable_interrupts();
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
for (i=0;i<len;i++) {
|
||||
timeout=FDC_TIME_OUT;
|
||||
@ -492,15 +487,15 @@ retryrw:
|
||||
stop_fdc_drive(pCMD);
|
||||
if (flags)
|
||||
enable_interrupts();
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
PRINTF(" trying to recalibrate Try %d\n",retriescal);
|
||||
if(fdc_recalibrate(pCMD,pFG)==FALSE) {
|
||||
if (fdc_recalibrate(pCMD, pFG) == false) {
|
||||
stop_fdc_drive(pCMD);
|
||||
if (flags)
|
||||
enable_interrupts();
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
retriesrw=0;
|
||||
goto retrycal;
|
||||
@ -512,7 +507,7 @@ retryrw:
|
||||
} /* else >FDC_RW_RETRIES */
|
||||
}/* if output */
|
||||
timeout--;
|
||||
}while(TRUE);
|
||||
} while (true);
|
||||
} /* for len */
|
||||
/* the last sector of a track or all data has been read,
|
||||
* we need to get the results */
|
||||
@ -530,22 +525,22 @@ retryrw:
|
||||
readblk=blocks;
|
||||
retrycal:
|
||||
/* a seek is necessary */
|
||||
if(fdc_seek(pCMD,pFG)==FALSE) {
|
||||
if (fdc_seek(pCMD, pFG) == false) {
|
||||
stop_fdc_drive(pCMD);
|
||||
if (flags)
|
||||
enable_interrupts();
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if((pCMD->result[STATUS_0]&0x20)!=0x20) {
|
||||
PRINTF("Seek error Status: %02X\n",pCMD->result[STATUS_0]);
|
||||
stop_fdc_drive(pCMD);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
}while(TRUE); /* start over */
|
||||
} while (true); /* start over */
|
||||
stop_fdc_drive(pCMD); /* switch off drive */
|
||||
if (flags)
|
||||
enable_interrupts();
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Scan all drives and check if drive is present and disk is inserted */
|
||||
@ -559,20 +554,20 @@ int fdc_check_drive(FDC_COMMAND_STRUCT *pCMD, FD_GEO_STRUCT *pFG)
|
||||
pCMD->drive=drives;
|
||||
select_fdc_drive(pCMD);
|
||||
pCMD->blnr=0; /* set to the 1st block */
|
||||
if(fdc_recalibrate(pCMD,pFG)==FALSE)
|
||||
if (fdc_recalibrate(pCMD, pFG) == false)
|
||||
continue;
|
||||
if((pCMD->result[STATUS_0]&0x10)==0x10)
|
||||
continue;
|
||||
/* ok drive connected check for disk */
|
||||
state|=(1<<drives);
|
||||
pCMD->blnr=pFG->size; /* set to the last block */
|
||||
if(fdc_seek(pCMD,pFG)==FALSE)
|
||||
if (fdc_seek(pCMD, pFG) == false)
|
||||
continue;
|
||||
pCMD->blnr=0; /* set to the 1st block */
|
||||
if(fdc_recalibrate(pCMD,pFG)==FALSE)
|
||||
if (fdc_recalibrate(pCMD, pFG) == false)
|
||||
continue;
|
||||
pCMD->cmd[COMMAND]=FDC_CMD_READ_ID;
|
||||
if(fdc_issue_cmd(pCMD,pFG)==FALSE)
|
||||
if (fdc_issue_cmd(pCMD, pFG) == false)
|
||||
continue;
|
||||
state|=(0x10<<drives);
|
||||
}
|
||||
@ -584,7 +579,7 @@ int fdc_check_drive(FDC_COMMAND_STRUCT *pCMD, FD_GEO_STRUCT *pFG)
|
||||
((state&(0x10<<i))==(0x10<<i)) ? pFG->name : "");
|
||||
}
|
||||
pCMD->flags=state;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@ -611,9 +606,9 @@ int fdc_setup(int drive, FDC_COMMAND_STRUCT *pCMD, FD_GEO_STRUCT *pFG)
|
||||
write_fdc_reg(FDC_CCR,pFG->rate);
|
||||
/* then initialize the DSR */
|
||||
write_fdc_reg(FDC_DSR,pFG->rate);
|
||||
if(wait_for_fdc_int()==FALSE) {
|
||||
if (wait_for_fdc_int() == false) {
|
||||
PRINTF("Time Out after writing CCR\n");
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
/* now issue sense Interrupt and status command
|
||||
* assuming only one drive present (drive 0) */
|
||||
@ -621,7 +616,7 @@ int fdc_setup(int drive, FDC_COMMAND_STRUCT *pCMD, FD_GEO_STRUCT *pFG)
|
||||
for(i=0;i<4;i++) {
|
||||
/* issue sense interrupt for all 4 possible drives */
|
||||
pCMD->cmd[COMMAND]=FDC_CMD_SENSE_INT;
|
||||
if(fdc_issue_cmd(pCMD,pFG)==FALSE) {
|
||||
if (fdc_issue_cmd(pCMD, pFG) == false) {
|
||||
PRINTF("Sense Interrupt for drive %d failed\n",i);
|
||||
}
|
||||
}
|
||||
@ -629,24 +624,24 @@ int fdc_setup(int drive, FDC_COMMAND_STRUCT *pCMD, FD_GEO_STRUCT *pFG)
|
||||
pCMD->drive=drive;
|
||||
select_fdc_drive(pCMD);
|
||||
pCMD->cmd[COMMAND]=FDC_CMD_CONFIGURE;
|
||||
if(fdc_issue_cmd(pCMD,pFG)==FALSE) {
|
||||
if (fdc_issue_cmd(pCMD, pFG) == false) {
|
||||
PRINTF(" configure timeout\n");
|
||||
stop_fdc_drive(pCMD);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
/* issue specify command */
|
||||
pCMD->cmd[COMMAND]=FDC_CMD_SPECIFY;
|
||||
if(fdc_issue_cmd(pCMD,pFG)==FALSE) {
|
||||
if (fdc_issue_cmd(pCMD, pFG) == false) {
|
||||
PRINTF(" specify timeout\n");
|
||||
stop_fdc_drive(pCMD);
|
||||
return FALSE;
|
||||
return false;
|
||||
|
||||
}
|
||||
/* then, we clear the reset in the DOR */
|
||||
/* fdc_check_drive(pCMD,pFG); */
|
||||
/* write_fdc_reg(FDC_DOR,0x04); */
|
||||
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_CMD_FDOS)
|
||||
@ -664,30 +659,30 @@ int fdc_fdos_init (int drive)
|
||||
FDC_COMMAND_STRUCT *pCMD = &cmd;
|
||||
|
||||
/* setup FDC and scan for drives */
|
||||
if(fdc_setup(drive,pCMD,pFG)==FALSE) {
|
||||
if (fdc_setup(drive, pCMD, pFG) == false) {
|
||||
printf("\n** Error in setup FDC **\n");
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if(fdc_check_drive(pCMD,pFG)==FALSE) {
|
||||
if (fdc_check_drive(pCMD, pFG) == false) {
|
||||
printf("\n** Error in check_drives **\n");
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if((pCMD->flags&(1<<drive))==0) {
|
||||
/* drive not available */
|
||||
printf("\n** Drive %d not available **\n",drive);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
if((pCMD->flags&(0x10<<drive))==0) {
|
||||
/* no disk inserted */
|
||||
printf("\n** No disk inserted in drive %d **\n",drive);
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
/* ok, we have a valid source */
|
||||
pCMD->drive=drive;
|
||||
|
||||
/* read first block */
|
||||
pCMD->blnr=0;
|
||||
return TRUE;
|
||||
return true;
|
||||
}
|
||||
/**************************************************************************
|
||||
* int fdc_fdos_seek
|
||||
@ -747,11 +742,11 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
return CMD_RET_USAGE;
|
||||
}
|
||||
/* setup FDC and scan for drives */
|
||||
if(fdc_setup(boot_drive,pCMD,pFG)==FALSE) {
|
||||
if (fdc_setup(boot_drive, pCMD, pFG) == false) {
|
||||
printf("\n** Error in setup FDC **\n");
|
||||
return 1;
|
||||
}
|
||||
if(fdc_check_drive(pCMD,pFG)==FALSE) {
|
||||
if (fdc_check_drive(pCMD, pFG) == false) {
|
||||
printf("\n** Error in check_drives **\n");
|
||||
return 1;
|
||||
}
|
||||
@ -769,7 +764,7 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
pCMD->drive=boot_drive;
|
||||
/* read first block */
|
||||
pCMD->blnr=0;
|
||||
if(fdc_read_data((unsigned char *)addr,1,pCMD,pFG)==FALSE) {
|
||||
if (fdc_read_data((unsigned char *)addr, 1, pCMD, pFG) == false) {
|
||||
printf("\nRead error:");
|
||||
for(i=0;i<7;i++)
|
||||
printf("result%d: 0x%02X\n",i,pCMD->result[i]);
|
||||
@ -801,7 +796,7 @@ int do_fdcboot (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
nrofblk++;
|
||||
printf("Loading %ld Bytes (%d blocks) at 0x%08lx..\n",imsize,nrofblk,addr);
|
||||
pCMD->blnr=0;
|
||||
if(fdc_read_data((unsigned char *)addr,nrofblk,pCMD,pFG)==FALSE) {
|
||||
if (fdc_read_data((unsigned char *)addr, nrofblk, pCMD, pFG) == false) {
|
||||
/* read image block */
|
||||
printf("\nRead error:");
|
||||
for(i=0;i<7;i++)
|
||||
|
@ -164,8 +164,12 @@ static int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
}
|
||||
|
||||
if (strcmp(argv[1], "rescan") == 0) {
|
||||
struct mmc *mmc = find_mmc_device(curr_device);
|
||||
struct mmc *mmc;
|
||||
|
||||
if (argc != 2)
|
||||
return CMD_RET_USAGE;
|
||||
|
||||
mmc = find_mmc_device(curr_device);
|
||||
if (!mmc) {
|
||||
printf("no mmc device at slot %x\n", curr_device);
|
||||
return 1;
|
||||
@ -179,8 +183,12 @@ static int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
return 0;
|
||||
} else if (strncmp(argv[1], "part", 4) == 0) {
|
||||
block_dev_desc_t *mmc_dev;
|
||||
struct mmc *mmc = find_mmc_device(curr_device);
|
||||
struct mmc *mmc;
|
||||
|
||||
if (argc != 2)
|
||||
return CMD_RET_USAGE;
|
||||
|
||||
mmc = find_mmc_device(curr_device);
|
||||
if (!mmc) {
|
||||
printf("no mmc device at slot %x\n", curr_device);
|
||||
return 1;
|
||||
@ -196,6 +204,8 @@ static int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
puts("get mmc type error!\n");
|
||||
return 1;
|
||||
} else if (strcmp(argv[1], "list") == 0) {
|
||||
if (argc != 2)
|
||||
return CMD_RET_USAGE;
|
||||
print_mmc_devices('\n');
|
||||
return 0;
|
||||
} else if (strcmp(argv[1], "dev") == 0) {
|
||||
|
@ -106,6 +106,8 @@
|
||||
#include <onenand_uboot.h>
|
||||
#endif
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
/* special size referring to all the remaining space in a partition */
|
||||
#define SIZE_REMAINING 0xFFFFFFFF
|
||||
|
||||
@ -1537,6 +1539,7 @@ static int parse_mtdparts(const char *const mtdparts)
|
||||
const char *p = mtdparts;
|
||||
struct mtd_device *dev;
|
||||
int err = 1;
|
||||
char tmp_parts[MTDPARTS_MAXLEN];
|
||||
|
||||
debug("\n---parse_mtdparts---\nmtdparts = %s\n\n", p);
|
||||
|
||||
@ -1547,7 +1550,12 @@ static int parse_mtdparts(const char *const mtdparts)
|
||||
}
|
||||
|
||||
/* re-read 'mtdparts' variable, mtd_devices_init may be updating env */
|
||||
p = getenv("mtdparts");
|
||||
if (gd->flags & GD_FLG_ENV_READY) {
|
||||
p = getenv("mtdparts");
|
||||
} else {
|
||||
p = tmp_parts;
|
||||
getenv_f("mtdparts", tmp_parts, MTDPARTS_MAXLEN);
|
||||
}
|
||||
|
||||
if (strncmp(p, "mtdparts=", 9) != 0) {
|
||||
printf("mtdparts variable doesn't start with 'mtdparts='\n");
|
||||
@ -1705,6 +1713,7 @@ int mtdparts_init(void)
|
||||
const char *current_partition;
|
||||
int ids_changed;
|
||||
char tmp_ep[PARTITION_MAXLEN];
|
||||
char tmp_parts[MTDPARTS_MAXLEN];
|
||||
|
||||
debug("\n---mtdparts_init---\n");
|
||||
if (!initialized) {
|
||||
@ -1718,7 +1727,17 @@ int mtdparts_init(void)
|
||||
|
||||
/* get variables */
|
||||
ids = getenv("mtdids");
|
||||
parts = getenv("mtdparts");
|
||||
/*
|
||||
* The mtdparts variable tends to be long. If we need to access it
|
||||
* before the env is relocated, then we need to use our own stack
|
||||
* buffer. gd->env_buf will be too small.
|
||||
*/
|
||||
if (gd->flags & GD_FLG_ENV_READY) {
|
||||
parts = getenv("mtdparts");
|
||||
} else {
|
||||
parts = tmp_parts;
|
||||
getenv_f("mtdparts", tmp_parts, MTDPARTS_MAXLEN);
|
||||
}
|
||||
current_partition = getenv("partition");
|
||||
|
||||
/* save it for later parsing, cannot rely on current partition pointer
|
||||
|
@ -137,7 +137,8 @@ static inline int str2long(const char *p, ulong *num)
|
||||
return *p != '\0' && *endptr == '\0';
|
||||
}
|
||||
|
||||
static int get_part(const char *partname, int *idx, loff_t *off, loff_t *size)
|
||||
static int get_part(const char *partname, int *idx, loff_t *off, loff_t *size,
|
||||
loff_t *maxsize)
|
||||
{
|
||||
#ifdef CONFIG_CMD_MTDPARTS
|
||||
struct mtd_device *dev;
|
||||
@ -160,6 +161,7 @@ static int get_part(const char *partname, int *idx, loff_t *off, loff_t *size)
|
||||
|
||||
*off = part->offset;
|
||||
*size = part->size;
|
||||
*maxsize = part->size;
|
||||
*idx = dev->id->num;
|
||||
|
||||
ret = set_dev(*idx);
|
||||
@ -173,10 +175,11 @@ static int get_part(const char *partname, int *idx, loff_t *off, loff_t *size)
|
||||
#endif
|
||||
}
|
||||
|
||||
static int arg_off(const char *arg, int *idx, loff_t *off, loff_t *maxsize)
|
||||
static int arg_off(const char *arg, int *idx, loff_t *off, loff_t *size,
|
||||
loff_t *maxsize)
|
||||
{
|
||||
if (!str2off(arg, off))
|
||||
return get_part(arg, idx, off, maxsize);
|
||||
return get_part(arg, idx, off, size, maxsize);
|
||||
|
||||
if (*off >= nand_info[*idx].size) {
|
||||
puts("Offset exceeds device limit\n");
|
||||
@ -184,36 +187,35 @@ static int arg_off(const char *arg, int *idx, loff_t *off, loff_t *maxsize)
|
||||
}
|
||||
|
||||
*maxsize = nand_info[*idx].size - *off;
|
||||
*size = *maxsize;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int arg_off_size(int argc, char *const argv[], int *idx,
|
||||
loff_t *off, loff_t *size)
|
||||
loff_t *off, loff_t *size, loff_t *maxsize)
|
||||
{
|
||||
int ret;
|
||||
loff_t maxsize = 0;
|
||||
|
||||
if (argc == 0) {
|
||||
*off = 0;
|
||||
*size = nand_info[*idx].size;
|
||||
*maxsize = *size;
|
||||
goto print;
|
||||
}
|
||||
|
||||
ret = arg_off(argv[0], idx, off, &maxsize);
|
||||
ret = arg_off(argv[0], idx, off, size, maxsize);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (argc == 1) {
|
||||
*size = maxsize;
|
||||
if (argc == 1)
|
||||
goto print;
|
||||
}
|
||||
|
||||
if (!str2off(argv[1], size)) {
|
||||
printf("'%s' is not a number\n", argv[1]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (*size > maxsize) {
|
||||
if (*size > *maxsize) {
|
||||
puts("Size exceeds partition or device limit\n");
|
||||
return -1;
|
||||
}
|
||||
@ -307,7 +309,8 @@ int do_nand_env_oob(cmd_tbl_t *cmdtp, int argc, char *const argv[])
|
||||
if (argc < 3)
|
||||
goto usage;
|
||||
|
||||
if (arg_off(argv[2], &idx, &addr, &maxsize)) {
|
||||
/* We don't care about size, or maxsize. */
|
||||
if (arg_off(argv[2], &idx, &addr, &maxsize, &maxsize)) {
|
||||
puts("Offset or partition name expected\n");
|
||||
return 1;
|
||||
}
|
||||
@ -426,7 +429,7 @@ static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
{
|
||||
int i, ret = 0;
|
||||
ulong addr;
|
||||
loff_t off, size;
|
||||
loff_t off, size, maxsize;
|
||||
char *cmd, *s;
|
||||
nand_info_t *nand;
|
||||
#ifdef CONFIG_SYS_NAND_QUIET
|
||||
@ -551,7 +554,8 @@ static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
|
||||
printf("\nNAND %s: ", cmd);
|
||||
/* skip first two or three arguments, look for offset and size */
|
||||
if (arg_off_size(argc - o, argv + o, &dev, &off, &size) != 0)
|
||||
if (arg_off_size(argc - o, argv + o, &dev, &off, &size,
|
||||
&maxsize) != 0)
|
||||
return 1;
|
||||
|
||||
nand = &nand_info[dev];
|
||||
@ -619,7 +623,7 @@ static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
if (s && !strcmp(s, ".raw")) {
|
||||
raw = 1;
|
||||
|
||||
if (arg_off(argv[3], &dev, &off, &size))
|
||||
if (arg_off(argv[3], &dev, &off, &size, &maxsize))
|
||||
return 1;
|
||||
|
||||
if (argc > 4 && !str2long(argv[4], &pagecount)) {
|
||||
@ -635,7 +639,7 @@ static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
rwsize = pagecount * (nand->writesize + nand->oobsize);
|
||||
} else {
|
||||
if (arg_off_size(argc - 3, argv + 3, &dev,
|
||||
&off, &size) != 0)
|
||||
&off, &size, &maxsize) != 0)
|
||||
return 1;
|
||||
|
||||
rwsize = size;
|
||||
@ -645,9 +649,11 @@ static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
!strcmp(s, ".e") || !strcmp(s, ".i")) {
|
||||
if (read)
|
||||
ret = nand_read_skip_bad(nand, off, &rwsize,
|
||||
NULL, maxsize,
|
||||
(u_char *)addr);
|
||||
else
|
||||
ret = nand_write_skip_bad(nand, off, &rwsize,
|
||||
NULL, maxsize,
|
||||
(u_char *)addr, 0);
|
||||
#ifdef CONFIG_CMD_NAND_TRIMFFS
|
||||
} else if (!strcmp(s, ".trimffs")) {
|
||||
@ -655,8 +661,8 @@ static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
printf("Unknown nand command suffix '%s'\n", s);
|
||||
return 1;
|
||||
}
|
||||
ret = nand_write_skip_bad(nand, off, &rwsize,
|
||||
(u_char *)addr,
|
||||
ret = nand_write_skip_bad(nand, off, &rwsize, NULL,
|
||||
maxsize, (u_char *)addr,
|
||||
WITH_DROP_FFS);
|
||||
#endif
|
||||
#ifdef CONFIG_CMD_NAND_YAFFS
|
||||
@ -665,9 +671,9 @@ static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
printf("Unknown nand command suffix '%s'.\n", s);
|
||||
return 1;
|
||||
}
|
||||
ret = nand_write_skip_bad(nand, off, &rwsize,
|
||||
(u_char *)addr,
|
||||
WITH_INLINE_OOB);
|
||||
ret = nand_write_skip_bad(nand, off, &rwsize, NULL,
|
||||
maxsize, (u_char *)addr,
|
||||
WITH_YAFFS_OOB);
|
||||
#endif
|
||||
} else if (!strcmp(s, ".oob")) {
|
||||
/* out-of-band data */
|
||||
@ -775,7 +781,8 @@ static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||
if (s && !strcmp(s, ".allexcept"))
|
||||
allexcept = 1;
|
||||
|
||||
if (arg_off_size(argc - 2, argv + 2, &dev, &off, &size) < 0)
|
||||
if (arg_off_size(argc - 2, argv + 2, &dev, &off, &size,
|
||||
&maxsize) < 0)
|
||||
return 1;
|
||||
|
||||
if (!nand_unlock(&nand_info[dev], off, size, allexcept)) {
|
||||
@ -873,7 +880,8 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
|
||||
printf("\nLoading from %s, offset 0x%lx\n", nand->name, offset);
|
||||
|
||||
cnt = nand->writesize;
|
||||
r = nand_read_skip_bad(nand, offset, &cnt, (u_char *) addr);
|
||||
r = nand_read_skip_bad(nand, offset, &cnt, NULL, nand->size,
|
||||
(u_char *)addr);
|
||||
if (r) {
|
||||
puts("** Read error\n");
|
||||
bootstage_error(BOOTSTAGE_ID_NAND_HDR_READ);
|
||||
@ -905,7 +913,8 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
|
||||
}
|
||||
bootstage_mark(BOOTSTAGE_ID_NAND_TYPE);
|
||||
|
||||
r = nand_read_skip_bad(nand, offset, &cnt, (u_char *) addr);
|
||||
r = nand_read_skip_bad(nand, offset, &cnt, NULL, nand->size,
|
||||
(u_char *)addr);
|
||||
if (r) {
|
||||
puts("** Read error\n");
|
||||
bootstage_error(BOOTSTAGE_ID_NAND_READ);
|
||||
|
@ -62,9 +62,10 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
!defined(CONFIG_ENV_IS_IN_ONENAND) && \
|
||||
!defined(CONFIG_ENV_IS_IN_SPI_FLASH) && \
|
||||
!defined(CONFIG_ENV_IS_IN_REMOTE) && \
|
||||
!defined(CONFIG_ENV_IS_IN_UBI) && \
|
||||
!defined(CONFIG_ENV_IS_NOWHERE)
|
||||
# error Define one of CONFIG_ENV_IS_IN_{EEPROM|FLASH|DATAFLASH|ONENAND|\
|
||||
SPI_FLASH|NVRAM|MMC|FAT|REMOTE} or CONFIG_ENV_IS_NOWHERE
|
||||
SPI_FLASH|NVRAM|MMC|FAT|REMOTE|UBI} or CONFIG_ENV_IS_NOWHERE
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -273,6 +274,10 @@ int setenv(const char *varname, const char *varvalue)
|
||||
{
|
||||
const char * const argv[4] = { "setenv", varname, varvalue, NULL };
|
||||
|
||||
/* before import into hashtable */
|
||||
if (!(gd->flags & GD_FLG_ENV_READY))
|
||||
return 1;
|
||||
|
||||
if (varvalue == NULL || varvalue[0] == '\0')
|
||||
return _do_env_set(0, 2, (char * const *)argv);
|
||||
else
|
||||
|
@ -1280,7 +1280,8 @@ static struct menu *pxe_menu_to_menu(struct pxe_menu *cfg)
|
||||
/*
|
||||
* Create a menu and add items for all the labels.
|
||||
*/
|
||||
m = menu_create(cfg->title, cfg->timeout, cfg->prompt, label_print);
|
||||
m = menu_create(cfg->title, cfg->timeout, cfg->prompt, label_print,
|
||||
NULL, NULL);
|
||||
|
||||
if (!m)
|
||||
return NULL;
|
||||
|
@ -110,7 +110,7 @@ void scsi_scan(int mode)
|
||||
scsi_dev_desc[i].vendor[0]=0;
|
||||
scsi_dev_desc[i].product[0]=0;
|
||||
scsi_dev_desc[i].revision[0]=0;
|
||||
scsi_dev_desc[i].removable=FALSE;
|
||||
scsi_dev_desc[i].removable = false;
|
||||
scsi_dev_desc[i].if_type=IF_TYPE_SCSI;
|
||||
scsi_dev_desc[i].dev=i;
|
||||
scsi_dev_desc[i].part_type=PART_TYPE_UNKNOWN;
|
||||
@ -125,7 +125,7 @@ void scsi_scan(int mode)
|
||||
pccb->pdata=(unsigned char *)&tempbuff;
|
||||
pccb->datalen=512;
|
||||
scsi_setup_inquiry(pccb);
|
||||
if(scsi_exec(pccb)!=TRUE) {
|
||||
if (scsi_exec(pccb) != true) {
|
||||
if(pccb->contr_stat==SCSI_SEL_TIME_OUT) {
|
||||
debug ("Selection timeout ID %d\n",pccb->target);
|
||||
continue; /* selection timeout => assuming no device present */
|
||||
@ -139,7 +139,7 @@ void scsi_scan(int mode)
|
||||
continue; /* skip unknown devices */
|
||||
}
|
||||
if((modi&0x80)==0x80) /* drive is removable */
|
||||
scsi_dev_desc[scsi_max_devs].removable=TRUE;
|
||||
scsi_dev_desc[scsi_max_devs].removable=true;
|
||||
/* get info for this device */
|
||||
scsi_ident_cpy((unsigned char *)&scsi_dev_desc[scsi_max_devs].vendor[0],
|
||||
&tempbuff[8], 8);
|
||||
@ -152,8 +152,8 @@ void scsi_scan(int mode)
|
||||
|
||||
pccb->datalen=0;
|
||||
scsi_setup_test_unit_ready(pccb);
|
||||
if(scsi_exec(pccb)!=TRUE) {
|
||||
if(scsi_dev_desc[scsi_max_devs].removable==TRUE) {
|
||||
if (scsi_exec(pccb) != true) {
|
||||
if (scsi_dev_desc[scsi_max_devs].removable == true) {
|
||||
scsi_dev_desc[scsi_max_devs].type=perq;
|
||||
goto removable;
|
||||
}
|
||||
@ -404,7 +404,7 @@ static ulong scsi_read(int device, ulong blknr, lbaint_t blkcnt, void *buffer)
|
||||
debug("scsi_read_ext: startblk " LBAF
|
||||
", blccnt %x buffer %lx\n",
|
||||
start, smallblks, buf_addr);
|
||||
if(scsi_exec(pccb)!=TRUE) {
|
||||
if (scsi_exec(pccb) != true) {
|
||||
scsi_print_error(pccb);
|
||||
blkcnt-=blks;
|
||||
break;
|
||||
@ -458,7 +458,7 @@ static ulong scsi_write(int device, ulong blknr,
|
||||
}
|
||||
debug("%s: startblk " LBAF ", blccnt %x buffer %lx\n",
|
||||
__func__, start, smallblks, buf_addr);
|
||||
if (scsi_exec(pccb) != TRUE) {
|
||||
if (scsi_exec(pccb) != true) {
|
||||
scsi_print_error(pccb);
|
||||
blkcnt -= blks;
|
||||
break;
|
||||
@ -521,7 +521,7 @@ int scsi_read_capacity(ccb *pccb, lbaint_t *capacity, unsigned long *blksz)
|
||||
pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
|
||||
|
||||
pccb->datalen = 8;
|
||||
if (scsi_exec(pccb) != TRUE)
|
||||
if (scsi_exec(pccb) != true)
|
||||
return 1;
|
||||
|
||||
*capacity = ((lbaint_t)pccb->pdata[0] << 24) |
|
||||
@ -547,7 +547,7 @@ int scsi_read_capacity(ccb *pccb, lbaint_t *capacity, unsigned long *blksz)
|
||||
pccb->msgout[0] = SCSI_IDENTIFY; /* NOT USED */
|
||||
|
||||
pccb->datalen = 16;
|
||||
if (scsi_exec(pccb) != TRUE)
|
||||
if (scsi_exec(pccb) != true)
|
||||
return 1;
|
||||
|
||||
*capacity = ((uint64_t)pccb->pdata[0] << 56) |
|
||||
|
@ -5,8 +5,8 @@
|
||||
* Licensed under the GPL-2 or later.
|
||||
*/
|
||||
|
||||
#include <div64.h>
|
||||
#include <common.h>
|
||||
#include <div64.h>
|
||||
#include <malloc.h>
|
||||
#include <spi_flash.h>
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user