327 lines
12 KiB
Diff
327 lines
12 KiB
Diff
From patchwork Wed Mar 7 10:40:41 2018
|
|
Content-Type: text/plain; charset="utf-8"
|
|
MIME-Version: 1.0
|
|
Content-Transfer-Encoding: 7bit
|
|
Subject: [U-Boot,1/4] Add support for BeagleBoard.org PocketBeagle
|
|
X-Patchwork-Submitter: Jason Kridner <jkridner@gmail.com>
|
|
X-Patchwork-Id: 882566
|
|
Message-Id: <20180307104044.4739-2-jdk@ti.com>
|
|
To: u-boot@lists.denx.de
|
|
Cc: Tom Rini <trini@konsulko.com>, Jason Kridner <jdk@ti.com>
|
|
Date: Wed, 7 Mar 2018 05:40:41 -0500
|
|
From: Jason Kridner <jkridner@gmail.com>
|
|
List-Id: U-Boot discussion <u-boot.lists.denx.de>
|
|
|
|
Texas Instruments AM3358 based low-cost board using Octavo Systems OSD3358 SIP
|
|
with built-in TPS65217 PMIC and 512MB DDR3. Board features small 35mm x
|
|
55mm size, high-speed USB OTG, microSD and 72 0.1" expansion header
|
|
pins with 2xSPI, 2xI2C, 2xUART, USB, 8xADC, up-to-44 GPIO, PRU pins and much more.
|
|
|
|
https://beagleboard.org/pocket
|
|
|
|
This was tested using the am335x_evm_usbspl_defconfig.
|
|
|
|
Note that MII pins are enabled despite not having Ethernet on this
|
|
board. This avoids an issue where otherwise many timeout errors would be
|
|
generated. See https://e2e.ti.com/support/arm/sitara_arm/f/791/t/298976
|
|
for some related discussion.
|
|
|
|
Signed-off-by: Jason Kridner <jdk@ti.com>
|
|
Cc: Tom Rini <trini@konsulko.com>
|
|
---
|
|
board/ti/am335x/board.c | 10 ++++++----
|
|
board/ti/am335x/board.h | 7 ++++++-
|
|
board/ti/am335x/mux.c | 3 +++
|
|
include/configs/am335x_evm.h | 2 ++
|
|
4 files changed, 17 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/board/ti/am335x/board.c b/board/ti/am335x/board.c
|
|
index b144fd1821..87bdd2d63d 100644
|
|
--- a/board/ti/am335x/board.c
|
|
+++ b/board/ti/am335x/board.c
|
|
@@ -264,7 +264,7 @@ const struct dpll_params *get_dpll_ddr_params(void)
|
|
|
|
if (board_is_evm_sk())
|
|
return &dpll_ddr3_303MHz[ind];
|
|
- else if (board_is_bone_lt() || board_is_icev2())
|
|
+ else if (board_is_pb() || board_is_bone_lt() || board_is_icev2())
|
|
return &dpll_ddr3_400MHz[ind];
|
|
else if (board_is_evm_15_or_later())
|
|
return &dpll_ddr3_303MHz[ind];
|
|
@@ -295,7 +295,7 @@ const struct dpll_params *get_dpll_mpu_params(void)
|
|
if (bone_not_connected_to_ac_power())
|
|
freq = MPUPLL_M_600;
|
|
|
|
- if (board_is_bone_lt())
|
|
+ if (board_is_pb() || board_is_bone_lt())
|
|
freq = MPUPLL_M_1000;
|
|
|
|
switch (freq) {
|
|
@@ -341,7 +341,7 @@ static void scale_vcores_bone(int freq)
|
|
* Override what we have detected since we know if we have
|
|
* a Beaglebone Black it supports 1GHz.
|
|
*/
|
|
- if (board_is_bone_lt())
|
|
+ if (board_is_pb() || board_is_bone_lt())
|
|
freq = MPUPLL_M_1000;
|
|
|
|
switch (freq) {
|
|
@@ -542,7 +542,7 @@ void sdram_init(void)
|
|
if (board_is_evm_sk())
|
|
config_ddr(303, &ioregs_evmsk, &ddr3_data,
|
|
&ddr3_cmd_ctrl_data, &ddr3_emif_reg_data, 0);
|
|
- else if (board_is_bone_lt())
|
|
+ else if (board_is_pb() || board_is_bone_lt())
|
|
config_ddr(400, &ioregs_bonelt,
|
|
&ddr3_beagleblack_data,
|
|
&ddr3_beagleblack_cmd_ctrl_data,
|
|
@@ -931,6 +931,8 @@ int board_fit_config_name_match(const char *name)
|
|
return 0;
|
|
else if (board_is_bone_lt() && !strcmp(name, "am335x-boneblack"))
|
|
return 0;
|
|
+ else if (board_is_pb() && !strcmp(name, "am335x-pocketbeagle"))
|
|
+ return 0;
|
|
else if (board_is_evm_sk() && !strcmp(name, "am335x-evmsk"))
|
|
return 0;
|
|
else if (board_is_bbg1() && !strcmp(name, "am335x-bonegreen"))
|
|
diff --git a/board/ti/am335x/board.h b/board/ti/am335x/board.h
|
|
index e13fcff02a..bab5b77f34 100644
|
|
--- a/board/ti/am335x/board.h
|
|
+++ b/board/ti/am335x/board.h
|
|
@@ -34,6 +34,11 @@ static inline int board_is_bone_lt(void)
|
|
return board_ti_is("A335BNLT");
|
|
}
|
|
|
|
+static inline int board_is_pb(void)
|
|
+{
|
|
+ return board_ti_is("A335PBGL");
|
|
+}
|
|
+
|
|
static inline int board_is_bbg1(void)
|
|
{
|
|
return board_is_bone_lt() && !strncmp(board_ti_get_rev(), "BBG1", 4);
|
|
@@ -41,7 +46,7 @@ static inline int board_is_bbg1(void)
|
|
|
|
static inline int board_is_beaglebonex(void)
|
|
{
|
|
- return board_is_bone() || board_is_bone_lt() || board_is_bbg1();
|
|
+ return board_is_pb() || board_is_bone() || board_is_bone_lt() || board_is_bbg1();
|
|
}
|
|
|
|
static inline int board_is_evm_sk(void)
|
|
diff --git a/board/ti/am335x/mux.c b/board/ti/am335x/mux.c
|
|
index ad85b3a19a..aa187605d0 100644
|
|
--- a/board/ti/am335x/mux.c
|
|
+++ b/board/ti/am335x/mux.c
|
|
@@ -390,6 +390,9 @@ void enable_board_pin_mux(void)
|
|
#else
|
|
configure_module_pin_mux(mmc1_pin_mux);
|
|
#endif
|
|
+ } else if (board_is_pb()) {
|
|
+ configure_module_pin_mux(mii1_pin_mux);
|
|
+ configure_module_pin_mux(mmc0_pin_mux);
|
|
} else if (board_is_icev2()) {
|
|
configure_module_pin_mux(mmc0_pin_mux);
|
|
configure_module_pin_mux(gpio0_18_pin_mux);
|
|
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
|
|
index 158b7d4e8e..8d45b6fade 100644
|
|
--- a/include/configs/am335x_evm.h
|
|
+++ b/include/configs/am335x_evm.h
|
|
@@ -133,6 +133,8 @@
|
|
"setenv fdtfile am335x-bone.dtb; fi; " \
|
|
"if test $board_name = A335BNLT; then " \
|
|
"setenv fdtfile am335x-boneblack.dtb; fi; " \
|
|
+ "if test $board_name = A335PBGL; then " \
|
|
+ "setenv fdtfile am335x-pocketbeagle.dtb; fi; " \
|
|
"if test $board_name = BBBW; then " \
|
|
"setenv fdtfile am335x-boneblack-wireless.dtb; fi; " \
|
|
"if test $board_name = BBG1; then " \
|
|
|
|
From patchwork Wed Mar 7 10:40:42 2018
|
|
Content-Type: text/plain; charset="utf-8"
|
|
MIME-Version: 1.0
|
|
Content-Transfer-Encoding: 7bit
|
|
Subject: [U-Boot,2/4] am335x_evm: scan more partitions and use uname_r
|
|
X-Patchwork-Submitter: Jason Kridner <jkridner@gmail.com>
|
|
X-Patchwork-Id: 882567
|
|
Message-Id: <20180307104044.4739-3-jdk@ti.com>
|
|
To: u-boot@lists.denx.de
|
|
Cc: Tom Rini <trini@konsulko.com>, Jason Kridner <jdk@ti.com>
|
|
Date: Wed, 7 Mar 2018 05:40:42 -0500
|
|
From: Jason Kridner <jkridner@gmail.com>
|
|
List-Id: U-Boot discussion <u-boot.lists.denx.de>
|
|
|
|
This enables mainline u-boot to boot the BeagleBoard.org Debian
|
|
distribution builds without extensive environment modifications.
|
|
|
|
Some boot layouts only have a single partition on the
|
|
MMC/eMMC. This will scan those partitions after the second
|
|
partition that was already being scanned.
|
|
|
|
Some layouts use uname_r to define the kernel being used for the boot to
|
|
support multiple kernels stored within the boot file system without
|
|
using symlinks.
|
|
|
|
See http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0 for
|
|
more details on the BeagleBoard.org Debian image layout.
|
|
|
|
Signed-off-by: Jason Kridner <jdk@ti.com>
|
|
Cc: Robert Nelson <robertcnelson@gmail.com>
|
|
Cc: Tom Rini <trini@konsulko.com>
|
|
---
|
|
include/configs/am335x_evm.h | 5 ++++-
|
|
include/environment/ti/mmc.h | 13 +++++++++----
|
|
2 files changed, 13 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
|
|
index 8d45b6fade..32fe0e0cd5 100644
|
|
--- a/include/configs/am335x_evm.h
|
|
+++ b/include/configs/am335x_evm.h
|
|
@@ -61,7 +61,10 @@
|
|
#define BOOTENV_DEV_LEGACY_MMC(devtypeu, devtypel, instance) \
|
|
"bootcmd_" #devtypel #instance "=" \
|
|
"setenv mmcdev " #instance"; "\
|
|
- "setenv bootpart " #instance":2 ; "\
|
|
+ "setenv bootpart " #instance":2; "\
|
|
+ "run mmcboot;"\
|
|
+ "setenv mmcdev " #instance"; "\
|
|
+ "setenv bootpart " #instance":1; "\
|
|
"run mmcboot\0"
|
|
|
|
#define BOOTENV_DEV_NAME_LEGACY_MMC(devtypeu, devtypel, instance) \
|
|
diff --git a/include/environment/ti/mmc.h b/include/environment/ti/mmc.h
|
|
index 4305ebdaaf..b803ecccb7 100644
|
|
--- a/include/environment/ti/mmc.h
|
|
+++ b/include/environment/ti/mmc.h
|
|
@@ -23,9 +23,10 @@
|
|
"bootenvfile=uEnv.txt\0" \
|
|
"importbootenv=echo Importing environment from mmc${mmcdev} ...; " \
|
|
"env import -t ${loadaddr} ${filesize}\0" \
|
|
- "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}\0" \
|
|
- "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
|
|
- "loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
|
|
+ "loadbootenv=if fatload mmc ${mmcdev} ${loadaddr} ${bootdir}/${bootenvfile}; then echo Found ${bootdir}/${bootenvfile} in FAT partition; else load mmc ${mmcdev} ${loadaddr} ${bootdir}/${bootenvfile}; fi\0" \
|
|
+ "loadimage=if test -n ${uname_r}; then load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/vmlinuz-${uname_r}; run loadrd; else load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}; fi\0" \
|
|
+ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/initrd.img-${uname_r}; setenv rdsize ${filesize}\0" \
|
|
+ "loadfdt=if test -n ${uname_r}; then load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/dtbs/${uname_r}/${fdtfile}; else load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}; fi;\0" \
|
|
"envboot=mmc dev ${mmcdev}; " \
|
|
"if mmc rescan; then " \
|
|
"echo SD/MMC found on device ${mmcdev};" \
|
|
@@ -45,7 +46,11 @@
|
|
"mmcloados=run args_mmc; " \
|
|
"if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
|
|
"if run loadfdt; then " \
|
|
- "bootz ${loadaddr} - ${fdtaddr}; " \
|
|
+ "if test -n ${uname_r}; then " \
|
|
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr}; " \
|
|
+ "else " \
|
|
+ "bootz ${loadaddr} - ${fdtaddr}; " \
|
|
+ "fi; " \
|
|
"else " \
|
|
"if test ${boot_fdt} = try; then " \
|
|
"bootz; " \
|
|
|
|
From patchwork Wed Mar 7 10:40:43 2018
|
|
Content-Type: text/plain; charset="utf-8"
|
|
MIME-Version: 1.0
|
|
Content-Transfer-Encoding: 7bit
|
|
Subject: [U-Boot,3/4] Handle NETCONSOLE and SPL enabled
|
|
X-Patchwork-Submitter: Jason Kridner <jkridner@gmail.com>
|
|
X-Patchwork-Id: 882568
|
|
Message-Id: <20180307104044.4739-4-jdk@ti.com>
|
|
To: u-boot@lists.denx.de
|
|
Cc: Joe Hershberger <joe.hershberger@ni.com>,
|
|
Jason Kridner <jkridner@beagleboard.org>, Jason Kridner <jdk@ti.com>
|
|
Date: Wed, 7 Mar 2018 05:40:43 -0500
|
|
From: Jason Kridner <jkridner@gmail.com>
|
|
List-Id: U-Boot discussion <u-boot.lists.denx.de>
|
|
|
|
From: Jason Kridner <jkridner@beagleboard.org>
|
|
|
|
NETCONSOLE isn't compiled in with SPL, so the include file needs to recognize that.
|
|
|
|
Signed-off-by: Jason Kridner <jdk@ti.com>
|
|
Cc: Joe Hershberger <joe.hershberger@ni.com>
|
|
---
|
|
include/net.h | 6 +++---
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/include/net.h b/include/net.h
|
|
index 455b48f6c7..3101096e9a 100644
|
|
--- a/include/net.h
|
|
+++ b/include/net.h
|
|
@@ -676,7 +676,7 @@ int net_send_udp_packet(uchar *ether, struct in_addr dest, int dport,
|
|
/* Processes a received packet */
|
|
void net_process_received_packet(uchar *in_packet, int len);
|
|
|
|
-#ifdef CONFIG_NETCONSOLE
|
|
+#if defined(CONFIG_NETCONSOLE) && !defined(CONFIG_SPL_BUILD)
|
|
void nc_start(void);
|
|
int nc_input_packet(uchar *pkt, struct in_addr src_ip, unsigned dest_port,
|
|
unsigned src_port, unsigned len);
|
|
@@ -684,7 +684,7 @@ int nc_input_packet(uchar *pkt, struct in_addr src_ip, unsigned dest_port,
|
|
|
|
static __always_inline int eth_is_on_demand_init(void)
|
|
{
|
|
-#ifdef CONFIG_NETCONSOLE
|
|
+#if defined(CONFIG_NETCONSOLE) && !defined(CONFIG_SPL_BUILD)
|
|
extern enum proto_t net_loop_last_protocol;
|
|
|
|
return net_loop_last_protocol != NETCONS;
|
|
@@ -695,7 +695,7 @@ static __always_inline int eth_is_on_demand_init(void)
|
|
|
|
static inline void eth_set_last_protocol(int protocol)
|
|
{
|
|
-#ifdef CONFIG_NETCONSOLE
|
|
+#if defined(CONFIG_NETCONSOLE) && !defined(CONFIG_SPL_BUILD)
|
|
extern enum proto_t net_loop_last_protocol;
|
|
|
|
net_loop_last_protocol = protocol;
|
|
|
|
From patchwork Wed Mar 7 10:40:44 2018
|
|
Content-Type: text/plain; charset="utf-8"
|
|
MIME-Version: 1.0
|
|
Content-Transfer-Encoding: 7bit
|
|
Subject: [U-Boot,4/4] am335x: am335x_evm_usbspl_defconfig: NETCONSOLE
|
|
X-Patchwork-Submitter: Jason Kridner <jkridner@gmail.com>
|
|
X-Patchwork-Id: 882569
|
|
Message-Id: <20180307104044.4739-5-jdk@ti.com>
|
|
To: u-boot@lists.denx.de
|
|
Cc: Tom Rini <trini@konsulko.com>, Jason Kridner <jdk@ti.com>
|
|
Date: Wed, 7 Mar 2018 05:40:44 -0500
|
|
From: Jason Kridner <jkridner@gmail.com>
|
|
List-Id: U-Boot discussion <u-boot.lists.denx.de>
|
|
|
|
Enable NETCONSOLE by default. Still requires changes to the boot
|
|
environment to enable on the platform.
|
|
|
|
Signed-of-by: Jason Kridner <jdk@ti.com>
|
|
Cc: Tom Rini <trini@konsulko.com>
|
|
---
|
|
configs/am335x_evm_usbspl_defconfig | 7 +++++++
|
|
1 file changed, 7 insertions(+)
|
|
|
|
diff --git a/configs/am335x_evm_usbspl_defconfig b/configs/am335x_evm_usbspl_defconfig
|
|
index e4bf757923..19f7c49951 100644
|
|
--- a/configs/am335x_evm_usbspl_defconfig
|
|
+++ b/configs/am335x_evm_usbspl_defconfig
|
|
@@ -6,7 +6,13 @@ CONFIG_AM33XX=y
|
|
CONFIG_DISTRO_DEFAULTS=y
|
|
# CONFIG_ANDROID_BOOT_IMAGE is not set
|
|
CONFIG_BOOTCOMMAND="if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd"
|
|
+CONFIG_CONSOLE_MUX=y
|
|
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
|
|
+# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
|
|
+CONFIG_SYS_CONSOLE_ENV_OVERWRITE=y
|
|
CONFIG_SYS_CONSOLE_INFO_QUIET=y
|
|
+# CONFIG_SYS_STDIO_DEREGISTER is not set
|
|
+# CONFIG_FIT_EMBED is not set
|
|
CONFIG_VERSION_VARIABLE=y
|
|
CONFIG_ARCH_MISC_INIT=y
|
|
CONFIG_SPL=y
|
|
@@ -50,3 +56,4 @@ CONFIG_USB_ETHER=y
|
|
CONFIG_LZO=y
|
|
CONFIG_OF_LIBFDT=y
|
|
CONFIG_OF_LIBFDT_OVERLAY=y
|
|
+CONFIG_NETCONSOLE=y
|