- Fix boot issues on Nokia RX-51
- Configure AM6 CPSW for 10Mbps in rgmii mode.
- Minor changes for J721e
This commit is contained in:
Tom Rini 2020-05-11 12:04:54 -04:00
commit bb488ac34d
15 changed files with 122 additions and 116 deletions

View File

@ -119,7 +119,7 @@ config K3_SYSFW_IMAGE_MMCSD_RAW_MODE_PART
config K3_SYSFW_IMAGE_SIZE_MAX
int "Amount of memory dynamically allocated for loading SYSFW blob"
depends on K3_LOAD_SYSFW
default 277000
default 278000
help
Amount of memory (in bytes) reserved through dynamic allocation at
runtime for loading the combined System Firmware and configuration image

View File

@ -1,6 +1,7 @@
RX51 BOARD
M: Pali Rohár <pali.rohar@gmail.com>
M: Pali Rohár <pali@kernel.org>
S: Maintained
F: board/nokia/rx51/
F: include/configs/nokia_rx51.h
F: configs/nokia_rx51_defconfig
F: doc/README.nokia_rx51

View File

@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2011-2012
* Pali Rohár <pali.rohar@gmail.com>
* Pali Rohár <pali@kernel.org>
*/
#include <config.h>
@ -155,7 +155,14 @@ copy_code_end:
mov pc, r2
/* Copy u-boot to address CONFIG_SYS_TEXT_BASE */
/*
* Copy u-boot to address CONFIG_SYS_TEXT_BASE
*
* Nokia X-Loader loading secondary image to address 0x80400000
* NOLO loading boot image to random place, so it doesn't really
* matter what is set in CONFIG_SYS_TEXT_BASE. We have to copy
* u-boot to CONFIG_SYS_TEXT_BASE address.
*/
copy_uboot_start:
/* r0 - start of u-boot before */

View File

@ -4,7 +4,7 @@
* Ивайло Димитров <freemangordon@abv.bg>
*
* (C) Copyright 2011-2012
* Pali Rohár <pali.rohar@gmail.com>
* Pali Rohár <pali@kernel.org>
*
* (C) Copyright 2010
* Alistair Buxton <a.j.buxton@gmail.com>
@ -69,18 +69,12 @@ static struct tag_omap omap[] = {
OMAP_TAG_GPIO_SWITCH_CONFIG("sleep_ind", 0xa2, 0x2, 0x2, 0x0),
OMAP_TAG_GPIO_SWITCH_CONFIG("slide", GPIO_SLIDE, 0x0, 0x0, 0x0),
OMAP_TAG_WLAN_CX3110X_CONFIG(0x25, 0xff, 87, 42, -1),
OMAP_TAG_PARTITION_CONFIG(PART1_NAME, PART1_SIZE * PART1_MULL,
PART1_OFFS, PART1_MASK),
OMAP_TAG_PARTITION_CONFIG(PART2_NAME, PART2_SIZE * PART2_MULL,
PART2_OFFS, PART2_MASK),
OMAP_TAG_PARTITION_CONFIG(PART3_NAME, PART3_SIZE * PART3_MULL,
PART3_OFFS, PART3_MASK),
OMAP_TAG_PARTITION_CONFIG(PART4_NAME, PART4_SIZE * PART4_MULL,
PART4_OFFS, PART4_MASK),
OMAP_TAG_PARTITION_CONFIG(PART5_NAME, PART5_SIZE * PART5_MULL,
PART5_OFFS, PART5_MASK),
OMAP_TAG_PARTITION_CONFIG(PART6_NAME, PART6_SIZE * PART6_MULL,
PART6_OFFS, PART6_MASK),
OMAP_TAG_PARTITION_CONFIG("bootloader", 128 * 1024, 0x00000000, 0x00000003),
OMAP_TAG_PARTITION_CONFIG("config", 384 * 1024, 0x00020000, 0x00000000),
OMAP_TAG_PARTITION_CONFIG("log", 256 * 1024, 0x00080000, 0x00000000),
OMAP_TAG_PARTITION_CONFIG("kernel", 2 * 1024*1024, 0x000c0000, 0x00000000),
OMAP_TAG_PARTITION_CONFIG("initfs", 2 * 1024*1024, 0x002c0000, 0x00000000),
OMAP_TAG_PARTITION_CONFIG("rootfs", 257280 * 1024, 0x004c0000, 0x00000000),
OMAP_TAG_BOOT_REASON_CONFIG("pwr_key"),
OMAP_TAG_VERSION_STR_CONFIG("product", "RX-51"),
OMAP_TAG_VERSION_STR_CONFIG("hw-build", "2101"),
@ -93,6 +87,7 @@ static char *boot_reason_ptr;
static char *hw_build_ptr;
static char *nolo_version_ptr;
static char *boot_mode_ptr;
static int serial_was_console_enabled;
/*
* Routine: init_omap_tags
@ -149,6 +144,13 @@ static void reuse_omap_atags(struct tag_omap *t)
strcpy(boot_mode_ptr, version);
}
break;
case OMAP_TAG_UART:
if (!t->u.uart.enabled_uarts)
serial_was_console_enabled = 1;
break;
case OMAP_TAG_SERIAL_CONSOLE:
serial_was_console_enabled = 1;
break;
default:
break;
}
@ -239,10 +241,17 @@ void setup_board_tags(struct tag **in_params)
return;
str = env_get("setup_console_atag");
if (str && str[0] == '1')
setup_console_atag = 1;
else
setup_console_atag = 0;
if (str && str[0]) {
if (str[0] == '1')
setup_console_atag = 1;
else
setup_console_atag = 0;
} else {
if (serial_was_console_enabled)
setup_console_atag = 1;
else
setup_console_atag = 0;
}
setup_boot_reason_atag = env_get("setup_boot_reason_atag");
setup_boot_mode_atag = env_get("setup_boot_mode_atag");

View File

@ -4,7 +4,7 @@
* Ивайло Димитров <freemangordon@abv.bg>
*
* (C) Copyright 2011-2012
* Pali Rohár <pali.rohar@gmail.com>
* Pali Rohár <pali@kernel.org>
*
* (C) Copyright 2008
* Dirk Behme <dirk.behme@gmail.com>

View File

@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2011-2012
* Pali Rohár <pali.rohar@gmail.com>
* Pali Rohár <pali@kernel.org>
*
* (C) Copyright 2011
* marcel@mesa.nl, Mesa Consulting B.V.
@ -182,7 +182,7 @@ struct omap_em_asic_bb5_config {
* processing omap tag structures
*
* Copyright (C) 2011 marcel@mesa.nl, Mesa Consulting B.V.
* Copyright (C) 2012 Pali Rohár <pali.rohar@gmail.com>
* Copyright (C) 2012 Pali Rohár <pali@kernel.org>
*/
/* TI OMAP specific information */

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2011-2013 Pali Rohár <pali.rohar@gmail.com>
* (C) Copyright 2011-2013 Pali Rohár <pali@kernel.org>
*/
#include <common.h>

View File

@ -6,8 +6,8 @@ CONFIG_TARGET_NOKIA_RX51=y
CONFIG_NR_DRAM_BANKS=2
CONFIG_BOOTDELAY=30
CONFIG_USE_PREBOOT=y
CONFIG_PREBOOT="setenv mmcnum 1; setenv mmcpart 1;setenv mmcscriptfile bootmenu.scr;if run switchmmc; then setenv mmcdone true;setenv mmctype fat;if run scriptload; then true; else setenv mmctype ext2;if run scriptload; then true; else setenv mmctype ext4;if run scriptload; then true; else setenv mmcdone false;fi;fi;fi;if ${mmcdone}; then run scriptboot;fi;fi;if run slide; then true; else setenv bootmenu_delay 0;setenv bootdelay 0;fi"
# CONFIG_CONSOLE_MUX is not set
CONFIG_PREBOOT="run preboot"
CONFIG_CONSOLE_MUX=y
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
CONFIG_HUSH_PARSER=y
CONFIG_SYS_PROMPT="Nokia RX-51 # "
@ -26,6 +26,7 @@ CONFIG_CMD_FAT=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_NET is not set
CONFIG_TWL4030_LED=y
# CONFIG_MMC_HW_PARTITIONING is not set
CONFIG_MMC_OMAP_HS=y
CONFIG_CONS_INDEX=3
CONFIG_SYS_NS16550=y
@ -39,3 +40,25 @@ CONFIG_TWL4030_USB=y
CONFIG_VIDEO=y
CONFIG_CFB_CONSOLE_ANSI=y
# CONFIG_VGA_AS_SINGLE_DEVICE is not set
CONFIG_MTD=y
CONFIG_MTDIDS_DEFAULT="onenand0=onenand"
CONFIG_MTDPARTS_DEFAULT="mtdparts=onenand:128k(bootloader)ro,384k(config),256k(log),2m(kernel),2m(initfs),-(rootfs)"
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_RAW_NAND is not set
CONFIG_CMD_MTD=y
CONFIG_CMD_ONENAND=y
# CONFIG_BOOTM_NETBSD is not set
# CONFIG_BOOTM_PLAN9 is not set
# CONFIG_BOOTM_RTEMS is not set
# CONFIG_BOOTM_VXWORKS is not set
# CONFIG_GZIP is not set
# CONFIG_FIT is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_BOOTD is not set
# CONFIG_CMD_XIMG is not set
# CONFIG_CMD_EXPORTENV is not set
# CONFIG_CMD_IMPORTENV is not set
# CONFIG_CMD_EDITENV is not set
# CONFIG_CMD_ENV_EXISTS is not set
# CONFIG_CMD_FLASH is not set

View File

@ -1,6 +1,6 @@
SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2011-2012 Pali Rohár <pali.rohar@gmail.com>
* (C) Copyright 2011-2012 Pali Rohár <pali@kernel.org>
*/
ANSI terminal bootmenu command

View File

@ -19,7 +19,7 @@ stored ATAGs (see boot order).
There is support for hardware watchdog. Hardware watchdog is started by
NOLO so u-boot must kick watchdog to prevent reboot device (but not very
often, max every 2 seconds). There is also support for framebuffer display
output with ANSI espace codes and the N900 HW keyboard input. USB tty works
output with ANSI escape codes and the N900 HW keyboard input. USB tty works
but is disabled because it prevents the current Maemo kernel from booting.
When U-Boot is starting it enable IBE bit in Auxiliary Control Register,
@ -36,7 +36,7 @@ Boot from SD or eMMC in this order:
* 1.
* 1.1 find boot.scr on first fat partition
* 1.2 find uImage on first fat parition
* 1.2 find uImage on first fat partition
* 1.3 same order for 2. - 4. fat partition
* 2. same as 1. but for ext2/3 partition
* 3. same as 1. but for ext4 partition
@ -62,21 +62,26 @@ Available additional commands/variables:
* run trymmcscriptboot - Try to load and boot script ${mmcscriptfile}
* run trymmckernboot - Try to load and boot kernel image ${mmckernfile}
* run trymmckerninitrdboot - Try to load and boot kernel image ${mmckernfile}
with initrd image ${mmcinitrdfile}
with initrd image ${mmcinitrdfile}
Additional variables for loading files from mmc:
* mmc ${mmcnum} (0 - external, 1 - internal)
* partition number ${mmcpart} (1 - 4)
* parition type ${mmctype} (fat, ext2)
* parition type ${mmctype} (fat, ext2, ext4)
Additional varuables for booting kernel:
Additional variables for booting kernel:
* setup_omap_atag - Add OMAP table into atags structure (needs maemo kernel)
* setup_console_atag - Enable serial console in OMAP table
* setup_boot_reason_atag - Change boot reason in OMAP table
* setup_boot_mode_atag - Change boot mode in OMAP table
Variable setup_omap_atag is automatically set when booting attached kernel.
When variable setup_omap_atag is set, variable setup_console_atag is unset
and u-boot standard output is set to serial then setup_console_atag is
automatically set to 1. So output from Maemo kernel would go to serial port.
USB TTY:
Maemo kernel 2.6.28 will crash if u-boot enable usb tty. So USB TTY is disabled.
@ -85,20 +90,13 @@ USB TTY:
#define CONFIG_USB_TTY
ONENAND support:
ONENAND support is disabled because not working yet and cause linux kernel to
crash or no access to mtd. For enabling ONENAND support add this line at begin
of file include/configs/nokia_rx51.h
#define ONENAND_SUPPORT
UBIFS support:
UBIFS support is disabled, because U-Boot image is too big and cannot be
flashed with attached zImage to RX-51 kernel nand area. For enabling UBIFS
support first enable ONENAND support and then add this line at begin of file
include/configs/nokia_rx51.h
support add following lines into file configs/nokia_rx51_defconfig
#define UBIFS_SUPPORT
CONFIG_CMD_UBI=y
CONFIG_CMD_UBIFS=y
CONFIG_MTD_UBI_FASTMAP=y
CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT=1

View File

@ -61,6 +61,7 @@
#define AM65_CPSW_MACSL_CTL_REG 0x0
#define AM65_CPSW_MACSL_CTL_REG_IFCTL_A BIT(15)
#define AM65_CPSW_MACSL_CTL_EXT_EN BIT(18)
#define AM65_CPSW_MACSL_CTL_REG_GIG BIT(7)
#define AM65_CPSW_MACSL_CTL_REG_GMII_EN BIT(5)
#define AM65_CPSW_MACSL_CTL_REG_LOOPBACK BIT(1)
@ -187,6 +188,9 @@ static int am65_cpsw_update_link(struct am65_cpsw_priv *priv)
AM65_CPSW_MACSL_CTL_REG_GMII_EN;
if (phy->speed == 1000)
mac_control |= AM65_CPSW_MACSL_CTL_REG_GIG;
if (phy->speed == 10 && phy_interface_is_rgmii(phy))
/* Can be used with in band mode only */
mac_control |= AM65_CPSW_MACSL_CTL_EXT_EN;
if (phy->duplex == DUPLEX_FULL)
mac_control |= AM65_CPSW_MACSL_CTL_REG_FULL_DUPLEX;
if (phy->speed == 100)

View File

@ -13,15 +13,15 @@
*/
#include <common.h>
#include <dm.h>
#include <asm/io.h>
#include <asm/arch/hardware.h>
#include <asm/arch/omap.h>
#include <asm/arch/clock.h>
#include <asm/arch/sys_proto.h>
#include <asm/utils.h>
#include <linux/err.h>
#include <lcd.h>
#include <video.h>
#include <asm/arch/clock.h>
#include <asm/arch/hardware.h>
#include <asm/arch/omap.h>
#include <asm/arch/sys_proto.h>
#include <asm/io.h>
#include <asm/utils.h>
#include <linux/err.h>
#include "am335x-fb.h"
#define LCDC_FMAX 200000000

View File

@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2012
* Pali Rohár <pali.rohar@gmail.com>
* Pali Rohár <pali@kernel.org>
*/
/*

View File

@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2011-2012
* Pali Rohár <pali.rohar@gmail.com>
* Pali Rohár <pali@kernel.org>
*
* (C) Copyright 2010
* Alistair Buxton <a.j.buxton@gmail.com>
@ -25,12 +25,6 @@
#define CONFIG_MACH_TYPE MACH_TYPE_NOKIA_RX51
/*
* Nokia X-Loader loading secondary image to address 0x80400000
* NOLO loading boot image to random place, so it doesn't really
* matter what we set this to. We have to copy u-boot to this address
*/
#include <asm/arch/cpu.h> /* get chip and board defs */
#include <asm/arch/omap.h>
#include <asm/arch/mem.h>
@ -97,54 +91,8 @@
* Board ONENAND Info.
*/
#define PART1_NAME "bootloader"
#define PART1_SIZE 128
#define PART1_MULL 1024
#define PART1_SUFF "k"
#define PART1_OFFS 0x00000000
#define PART1_MASK 0x00000003
#define PART2_NAME "config"
#define PART2_SIZE 384
#define PART2_MULL 1024
#define PART2_SUFF "k"
#define PART2_OFFS 0x00020000
#define PART2_MASK 0x00000000
#define PART3_NAME "log"
#define PART3_SIZE 256
#define PART3_MULL 1024
#define PART3_SUFF "k"
#define PART3_OFFS 0x00080000
#define PART3_MASK 0x00000000
#define PART4_NAME "kernel"
#define PART4_SIZE 2
#define PART4_MULL 1024*1024
#define PART4_SUFF "m"
#define PART4_OFFS 0x000c0000
#define PART4_MASK 0x00000000
#define PART5_NAME "initfs"
#define PART5_SIZE 2
#define PART5_MULL 1024*1024
#define PART5_SUFF "m"
#define PART5_OFFS 0x002c0000
#define PART5_MASK 0x00000000
#define PART6_NAME "rootfs"
#define PART6_SIZE 257280
#define PART6_MULL 1024
#define PART6_SUFF "k"
#define PART6_OFFS 0x004c0000
#define PART6_MASK 0x00000000
#ifdef ONENAND_SUPPORT
#define CONFIG_SYS_ONENAND_BASE ONENAND_MAP
#endif
/* Watchdog support */
#define CONFIG_HW_WATCHDOG
@ -169,17 +117,11 @@ int rx51_kp_getc(struct stdio_dev *sdev);
#endif
/* Environment information */
#ifdef CONFIG_MTDPARTS_DEFAULT
#define MTDPARTS "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0"
#else
#define MTDPARTS
#endif
#define CONFIG_EXTRA_ENV_SETTINGS \
MTDPARTS \
"usbtty=cdc_acm\0" \
"stdin=vga\0" \
"stdout=vga\0" \
"stderr=vga\0" \
"stdin=serial,vga\0" \
"stdout=serial,vga\0" \
"stderr=serial,vga\0" \
"setcon=setenv stdin ${con};" \
"setenv stdout ${con};" \
"setenv stderr ${con}\0" \
@ -245,6 +187,28 @@ int rx51_kp_getc(struct stdio_dev *sdev);
"fi\0" \
"emmcboot=setenv mmcnum 1; run trymmcboot\0" \
"sdboot=setenv mmcnum 0; run trymmcboot\0" \
"preboot=setenv mmcnum 1; setenv mmcpart 1;" \
"setenv mmcscriptfile bootmenu.scr;" \
"if run switchmmc; then " \
"setenv mmcdone true;" \
"setenv mmctype fat;" \
"if run scriptload; then true; else " \
"setenv mmctype ext2;" \
"if run scriptload; then true; else " \
"setenv mmctype ext4;" \
"if run scriptload; then true; else " \
"setenv mmcdone false;" \
"fi;" \
"fi;" \
"fi;" \
"if ${mmcdone}; then " \
"run scriptboot;" \
"fi;" \
"fi;" \
"if run slide; then true; else " \
"setenv bootmenu_delay 0;" \
"setenv bootdelay 0;" \
"fi\0" \
"menucmd=bootmenu\0" \
"bootmenu_0=Attached kernel=run attachboot\0" \
"bootmenu_1=Internal eMMC=run emmcboot\0" \

View File

@ -63,7 +63,7 @@
"name_fit=fitImage\0" \
"update_to_fit=setenv loadaddr ${addr_fit}; setenv bootfile ${name_fit}\0" \
"get_overlaystring=" \
"for overlay in $overlay_files;" \
"for overlay in $name_overlays;" \
"do;" \
"setenv overlaystring ${overlaystring}'#'${overlay};" \
"done;\0" \