Re: [PATCH v2] board: rockchip: Add the Turing RK1 SoM

2024-04-11 Thread Florian Klink

Hey Sam,

On 24-04-11 16:35:57, Sam Edwards wrote:

On Thu, Apr 11, 2024 at 1:29 AM Florian Klink  wrote:


On 23-12-14 18:46:47, Joshua Riek wrote:
>The Turing RK1 is a Rockchip RK3588 based SoM from Turing Machines.
>
>Specifications:
>
>Rockchip RK3588 SoC
>4x ARM Cortex-A76, 4x ARM Cortex-A55
>8/16/32GB memory LPDDR4x
>Mali G610MC4 GPU
>32GB eMMC HS400
>2x USB 2.0, 2x USB 3.0
>2x MIPI CSI 4x lanes
>1x MIPI-DSI DPHY 2x lanes
>PCIe 2.0 x1, PCIe 3.0 x4
>1x HDMI 2.1 output, 1x DP 1.4 output
>Gigabit Ethernet
>Size: 69.6mm x 45mm (260-pin SO-DIMM connector)
>
>Kernel commit:
>2806a69f3fef ("arm64: dts: rockchip: Add Turing RK1 SoM support")

[…]

>diff --git a/configs/turing-rk1-rk3588_defconfig 
b/configs/turing-rk1-rk3588_defconfig
>new file mode 100644
>index 00..289f2da775
>--- /dev/null
>+++ b/configs/turing-rk1-rk3588_defconfig
>@@ -0,0 +1,133 @@
>+CONFIG_ARM=y
>+CONFIG_SKIP_LOWLEVEL_INIT=y
>+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
>+CONFIG_COUNTER_FREQUENCY=2400
>+CONFIG_ARCH_ROCKCHIP=y
>+CONFIG_TEXT_BASE=0x00a0
>+CONFIG_SPL_LIBCOMMON_SUPPORT=y
>+CONFIG_SPL_LIBGENERIC_SUPPORT=y
>+CONFIG_NR_DRAM_BANKS=2
>+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
>+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc0
>+CONFIG_SF_DEFAULT_SPEED=2400
>+CONFIG_SF_DEFAULT_MODE=0x2000
>+CONFIG_DEFAULT_DEVICE_TREE="rk3588-turing-rk1"
>+CONFIG_ROCKCHIP_RK3588=y
>+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
>+CONFIG_ROCKCHIP_SPI_IMAGE=y



Hi Florian,

Thanks for getting in touch!


Does the RK1 have an SPI chip attached, and is is possible to flash
u-boot into SPI and boot from it?


The answer you want is "no." Though the RK1 does have an unpopulated
pad for SPI flash, actually installing one would be a pretty involved
user modification, and those users almost certainly can/will build the
SPI boot image themselves.


This has sparked some confusion on whether "u-boot-rockchip-spi.bin"
should be provided in a downstream build or not.


Ah yeah the CONFIG_ROCKCHIP_SPI_IMAGE=y might not be a sensible
default given that 99.9% of users don't need it. Is that config entry
the main thing creating the confusion? I think it should be removed
here in U-Boot if so.


Yes, it caused a "u-boot-rockchip-spi.bin" to be produced, and we were
wondering on whether it should be provided as a result of our build to
downstream users [1].

Removing it from the `defconfig` sounds like the best way to prevent
this confusion. If people solder on a SPI Flash manually, they probably
know how to re-add it to the uboot config ;-)

Could you send a patch for that?


Note that the RK1 is a little different from most RK3588 boards in
that UART9 at 115200 baud is the generally-accepted debug UART (due
both to the popularity of pairing it with the Turing Pi 2
clusterboard, and for pin-compatibility with most NVIDIA Jetson SoMs),
and setting this very early in boot requires using Rockchip's
"ddrbin_tool" to change the configuration embedded in the ddrbin/TPL
image. If you're already supporting other targets that require ddrbin
configuration changes, please add these for RK1:

uart id=9
uart iomux=0
uart baudrate=115200

...but if this would require going significantly out of your way,
don't worry about it. IIUC this is only required to get TPL+SPL output
routed correctly: the U-Boot monitor + kernel will still
(re)initialize UART9 appropriately.


We currently simply use
`bin/rk3588_ddr_lp4_2112MHz_lp5_2400MHz_v1.16.bin`
from https://github.com/rockchip-linux/rkbin for all RK3588 targets as
`ROCKCHIP_TPL`.

There doesn't seem to be a RK1-specific blob in the repo, and so far
we're not invoking the closed-source x86_64-linux-only
`tools/ddrbin_tool` binary to produce an alternative version of the SPL
for other targets either.

So if it also works without doing that (maybe with a little bit less
debug serial output during early boot) we'd probably keep it like this
;-)

Thanks,
Florian

[1]: https://github.com/NixOS/nixpkgs/pull/302138#discussion_r1560349114


Re: [PATCH v2] board: rockchip: Add the Turing RK1 SoM

2024-04-11 Thread Florian Klink

On 23-12-14 18:46:47, Joshua Riek wrote:

The Turing RK1 is a Rockchip RK3588 based SoM from Turing Machines.

Specifications:

   Rockchip RK3588 SoC
   4x ARM Cortex-A76, 4x ARM Cortex-A55
   8/16/32GB memory LPDDR4x
   Mali G610MC4 GPU
   32GB eMMC HS400
   2x USB 2.0, 2x USB 3.0
   2x MIPI CSI 4x lanes
   1x MIPI-DSI DPHY 2x lanes
   PCIe 2.0 x1, PCIe 3.0 x4
   1x HDMI 2.1 output, 1x DP 1.4 output
   Gigabit Ethernet
   Size: 69.6mm x 45mm (260-pin SO-DIMM connector)

Kernel commit:
2806a69f3fef ("arm64: dts: rockchip: Add Turing RK1 SoM support")


[…]


diff --git a/configs/turing-rk1-rk3588_defconfig 
b/configs/turing-rk1-rk3588_defconfig
new file mode 100644
index 00..289f2da775
--- /dev/null
+++ b/configs/turing-rk1-rk3588_defconfig
@@ -0,0 +1,133 @@
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_COUNTER_FREQUENCY=2400
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_TEXT_BASE=0x00a0
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=2
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xc0
+CONFIG_SF_DEFAULT_SPEED=2400
+CONFIG_SF_DEFAULT_MODE=0x2000
+CONFIG_DEFAULT_DEVICE_TREE="rk3588-turing-rk1"
+CONFIG_ROCKCHIP_RK3588=y
+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
+CONFIG_ROCKCHIP_SPI_IMAGE=y


Does the RK1 have an SPI chip attached, and is is possible to flash
u-boot into SPI and boot from it?

This has sparked some confusion on whether "u-boot-rockchip-spi.bin"
should be provided in a downstream build or not.

[…]

Thanks,
Florian


Re: [PATCH] rk3399: Add basic support for helios64

2021-06-25 Thread Florian Klink

It boots fine with current Fedora IoT 34 nightlies, but kernel crashes are
very regular (sometimes recoverable, sometimes not), which looks to me like
the same problem that Armbian builds have, logs seem to point to an issue
with the dmc frequency.
I've compiled an excerpt of interesting looking logs from a couple of boots
here (you should be able to comment on the doc as well):
https://hackmd.io/@lorbus/SyXTj0lXu

Please take a look and let me know what you think.


I've been running eb607cd4957fb0ef97beb2a8293478be6a54240a from
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
(which is 5.13-rc1, plus a whole bunch of helios64 and more generic
rk3399 fixes).

The system comes up. I couldn't immediately trigger any of the kernel
crashes (except one that regularly occurs on shutdown/reboot), which I
added to the hackmd document.

I think most of the kernel issues are a concern of refining the dtb in
the kernel itself, though, not an uboot issue per se, so not sure if
this should block the inclusion of this patch into u-boot, which seems
to work file (once there's a version with SPDX headers everywhere)

Florian

On 21-03-08 17:29:23, Christian Glombek wrote:

I've looked into this a bit over the weekend - my current WIP patch can be
found here:
https://src.fedoraproject.org/fork/lorbus/rpms/uboot-tools/blob/helios64/f/0001-arm-Add-support-for-Kobol-Helios64-board.patch

It's essentially the entire devicetree used in Armbian, only that I had to
remove the gpio{1,2,4} initialization since `gpio-hog` doesn't appear to
work with upstream u-boot.
It boots fine with current Fedora IoT 34 nightlies, but kernel crashes are
very regular (sometimes recoverable, sometimes not), which looks to me like
the same problem that Armbian builds have, logs seem to point to an issue
with the dmc frequency.
I've compiled an excerpt of interesting looking logs from a couple of boots
here (you should be able to comment on the doc as well):
https://hackmd.io/@lorbus/SyXTj0lXu

Please take a look and let me know what you think.

Best regards,
Christian


--
Florian Klink


Re: Setting DEVICE_TREE for xilinx_zynq_virt_defconfig?

2020-12-27 Thread Florian Klink

On 20-12-27 17:48:51, Florian Klink wrote:

On 20-06-22 14:12:59, Michal Simek wrote:

I tried building latest master 2b8692bac1e8795cbb87b0d00213fd193409851d,
for a zynq device, and did according to the documentation:

$ export DEVICE_TREE=zynq-zc702
$ make xilinx_zynq_virt_defconfig
$ make

Reading f7c6ee7fe7bcc387de4c92300f46cb725b845b53, I assumed this should
have fixed FDT loading, but for some reason u-boot still tries to look
for a `zynq-zynq.dtb` in FDTDIR.

Could it be this broke in the meantime, or is this expected?


I am not aware about any issue like this. Can you please provide more
logs to see what it is happening?


Sorry for the super radio silence, this is mostly a hobby project, and
now I finally have some time :-)

My main understanding here is that if I build u-boot with
DEVICE_TREE=zynq-zc702, and pass FDTDIR directive in extlinux.conf, it
would try to load `zynq-zc702.dtb` from the FDTDIR on but, but
apparently it always tries to load a "zynq-zynq.dtb" file.


Apparently, this smells like I missed adding the zynq-pynq.dtb to the
Makefile, and some time ago, it silently did fall back to zynq-zynq.dtb.

I ran into a build failure after rebasing this patch earlier today.
"[PATCH] dts: Log name of expected .dtb file" should make such mistakes
easier recognizable.

Regards,
Florian


signature.asc
Description: PGP signature


[PATCH] dts: Log name of expected .dtb file

2020-12-27 Thread Florian Klink
Make it more obvious what .dts file was expected by the build system.

When adding support for a new board, I kept getting this error message,
assuming I passed a wrong DEVICE_TREE parameter.

However, what was really the mistake was that the entry in
`arch/arm/dts/Makefile` was missing, and u-boot didn't like not being
able to find the .dtb file that should have been produced.

Simply logging the expected .dtb file name should make it easier to spot
such mistakes.

Signed-off-by: Florian Klink 
---
 dts/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dts/Makefile b/dts/Makefile
index a20930eb9a..a0347c9d34 100644
--- a/dts/Makefile
+++ b/dts/Makefile
@@ -32,7 +32,7 @@ targets += dt.dtb dt-spl.dtb
 $(DTB): arch-dtbs
$(Q)test -e $@ || ( \
echo >&2;   \
-   echo >&2 "Device Tree Source is not correctly specified.";  \
+   echo >&2 "Device Tree Source ($@) is not correctly specified."; \
echo >&2 "Please define 'CONFIG_DEFAULT_DEVICE_TREE'";  \
echo >&2 "or build with 'DEVICE_TREE=' argument";  \
echo >&2;   \
-- 
2.29.2



[PATCH 1/2] ARM: zynq: add Digilent Zynq PYNQ Board(s)

2020-12-27 Thread Florian Klink
This adds the dts and entry in CONFIG_OF_LIST for the Digilent Zynq PYNQ
Board(s).

They're Zynq 7000 - based boards, the Z1 is from Digilent, the Z2 from
TUL.

They have a slightly different audio system, and a different pin header,
but these aren't really accessible from the PS, only from the PL, so the
DTB is the same.

Co-authored-by: Thomas Heijligen 
Signed-off-by: Florian Klink 
Signed-off-by: Thomas Heijligen 
---
 arch/arm/dts/Makefile  |  1 +
 arch/arm/dts/zynq-pynq.dts | 68 ++
 configs/xilinx_zynq_virt_defconfig |  2 +-
 3 files changed, 70 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/zynq-pynq.dts

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index fd47e408f8..0631404dbd 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -267,6 +267,7 @@ dtb-$(CONFIG_ARCH_ZYNQ) += \
zynq-microzed.dtb \
zynq-minized.dtb \
zynq-picozed.dtb \
+   zynq-pynq.dtb \
zynq-syzygy-hub.dtb \
zynq-topic-miami.dtb \
zynq-topic-miamilite.dtb \
diff --git a/arch/arm/dts/zynq-pynq.dts b/arch/arm/dts/zynq-pynq.dts
new file mode 100644
index 00..04ac0f7cdc
--- /dev/null
+++ b/arch/arm/dts/zynq-pynq.dts
@@ -0,0 +1,68 @@
+// SPDX-License-Identifier: GPL-2.0+
+/dts-v1/;
+#include "zynq-7000.dtsi"
+#include 
+
+/ {
+   model = "Digilent/TUL Zynq PYNQ";
+   compatible = "digilent,zynq-pynq", "digilent,zynq-pynq-z1", 
"tul,zynq-pynq", "tul,zynq-pynq-z2", "xlnx,zynq-7000";
+
+   aliases {
+   ethernet0 = 
+   serial0 = 
+   };
+
+   memory@0 {
+   device_type = "memory";
+   reg = <0x0 0x2000>;
+   };
+
+   chosen {
+   bootargs = "";
+   stdout-path = "serial0:115200n8";
+   };
+
+   gpio-leds {
+   compatible = "gpio-leds";
+
+   ld4 {
+   label = "zynq-pynq:green:ld4";
+   gpios = < 7 GPIO_ACTIVE_HIGH>;
+   };
+   };
+
+   usb_phy0: phy0 {
+   #phy-cells = <0>;
+   compatible = "usb-nop-xceiv";
+   reset-gpios = < 46 GPIO_ACTIVE_LOW>;
+   };
+};
+
+ {
+   ps-clk-frequency = <5000>;
+};
+
+ {
+   status = "okay";
+   phy-mode = "rgmii-id";
+   phy-handle = <_phy>;
+
+   ethernet_phy: ethernet-phy@0 {
+   reg = <0>;
+   device_type = "ethernet-phy";
+   };
+};
+
+ {
+   status = "okay";
+};
+
+ {
+   status = "okay";
+};
+
+ {
+   status = "okay";
+   dr_mode = "host";
+   usb-phy = <_phy0>;
+};
diff --git a/configs/xilinx_zynq_virt_defconfig 
b/configs/xilinx_zynq_virt_defconfig
index 552f1b4dfb..c46f531d4d 100644
--- a/configs/xilinx_zynq_virt_defconfig
+++ b/configs/xilinx_zynq_virt_defconfig
@@ -52,7 +52,7 @@ CONFIG_CMD_MTDPARTS=y
 CONFIG_CMD_MTDPARTS_SPREAD=y
 CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES=y
 CONFIG_CMD_UBI=y
-CONFIG_OF_LIST="zynq-zc702 zynq-zc706 zynq-zc770-xm010 zynq-zc770-xm011 
zynq-zc770-xm011-x16 zynq-zc770-xm012 zynq-zc770-xm013 zynq-cc108 zynq-microzed 
zynq-minized zynq-picozed zynq-zed zynq-zturn zynq-zturn-v5 zynq-zybo 
zynq-zybo-z7 zynq-dlc20-rev1.0"
+CONFIG_OF_LIST="zynq-zc702 zynq-zc706 zynq-zc770-xm010 zynq-zc770-xm011 
zynq-zc770-xm011-x16 zynq-zc770-xm012 zynq-zc770-xm013 zynq-cc108 zynq-microzed 
zynq-minized zynq-picozed zynq-pynq zynq-zed zynq-zturn zynq-zturn-v5 zynq-zybo 
zynq-zybo-z7 zynq-dlc20-rev1.0"
 CONFIG_ENV_OVERWRITE=y
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
-- 
2.29.2



Re: Setting DEVICE_TREE for xilinx_zynq_virt_defconfig?

2020-12-27 Thread Florian Klink

On 20-06-22 14:12:59, Michal Simek wrote:

Hi,


On 20. 06. 20 20:06, Florian Klink wrote:

Hey,

I tried building latest master 2b8692bac1e8795cbb87b0d00213fd193409851d,
for a zynq device, and did according to the documentation:

$ export DEVICE_TREE=zynq-zc702
$ make xilinx_zynq_virt_defconfig
$ make

Reading f7c6ee7fe7bcc387de4c92300f46cb725b845b53, I assumed this should
have fixed FDT loading, but for some reason u-boot still tries to look
for a `zynq-zynq.dtb` in FDTDIR.

Could it be this broke in the meantime, or is this expected?


I am not aware about any issue like this. Can you please provide more
logs to see what it is happening?


Sorry for the super radio silence, this is mostly a hobby project, and
now I finally have some time :-)

My main understanding here is that if I build u-boot with
DEVICE_TREE=zynq-zc702, and pass FDTDIR directive in extlinux.conf, it
would try to load `zynq-zc702.dtb` from the FDTDIR on but, but
apparently it always tries to load a "zynq-zynq.dtb" file.

My hardware currently at hand isn't a zynq-zc702, but a PYNQ - I'll send
the patches for that in a bit and paste a proper log here.

Regards,
Florian


signature.asc
Description: PGP signature


Setting DEVICE_TREE for xilinx_zynq_virt_defconfig?

2020-06-20 Thread Florian Klink

Hey,

I tried building latest master 2b8692bac1e8795cbb87b0d00213fd193409851d,
for a zynq device, and did according to the documentation:

$ export DEVICE_TREE=zynq-zc702
$ make xilinx_zynq_virt_defconfig
$ make

Reading f7c6ee7fe7bcc387de4c92300f46cb725b845b53, I assumed this should
have fixed FDT loading, but for some reason u-boot still tries to look
for a `zynq-zynq.dtb` in FDTDIR.

Could it be this broke in the meantime, or is this expected?

Regards,
Florian


signature.asc
Description: PGP signature


[PATCH] ARM: dts: xilinx: Fix I2C and SPI bus warnings

2019-12-15 Thread Florian Klink
Ported over from https://patchwork.kernel.org/patch/10599941/

Signed-off-by: Florian Klink 
---
 arch/arm/dts/zynq-zc702.dts   | 12 ++--
 arch/arm/dts/zynq-zc770-xm010.dts |  2 +-
 arch/arm/dts/zynq-zc770-xm013.dts |  2 +-
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/arm/dts/zynq-zc702.dts b/arch/arm/dts/zynq-zc702.dts
index d10695740f..b043d341d6 100644
--- a/arch/arm/dts/zynq-zc702.dts
+++ b/arch/arm/dts/zynq-zc702.dts
@@ -181,17 +181,17 @@
#address-cells = <1>;
#size-cells = <0>;
reg = <7>;
-   hwmon@52 {
+   hwmon@34 {
compatible = "ti,ucd9248";
-   reg = <52>;
+   reg = <0x34>;
};
-   hwmon@53 {
+   hwmon@35 {
compatible = "ti,ucd9248";
-   reg = <53>;
+   reg = <0x35>;
};
-   hwmon@54 {
+   hwmon@36 {
compatible = "ti,ucd9248";
-   reg = <54>;
+   reg = <0x36>;
};
};
};
diff --git a/arch/arm/dts/zynq-zc770-xm010.dts 
b/arch/arm/dts/zynq-zc770-xm010.dts
index e1f34653ec..c547d7921d 100644
--- a/arch/arm/dts/zynq-zc770-xm010.dts
+++ b/arch/arm/dts/zynq-zc770-xm010.dts
@@ -72,7 +72,7 @@
status = "okay";
num-cs = <4>;
is-decoded-cs = <0>;
-   flash@0 {
+   flash@1 {
compatible = "sst25wf080", "jedec,spi-nor";
reg = <1>;
spi-max-frequency = <100>;
diff --git a/arch/arm/dts/zynq-zc770-xm013.dts 
b/arch/arm/dts/zynq-zc770-xm013.dts
index 05a49982cc..bdf0c2f956 100644
--- a/arch/arm/dts/zynq-zc770-xm013.dts
+++ b/arch/arm/dts/zynq-zc770-xm013.dts
@@ -67,7 +67,7 @@
status = "okay";
num-cs = <4>;
is-decoded-cs = <0>;
-   eeprom: eeprom@0 {
+   eeprom: eeprom@2 {
at25,byte-len = <8192>;
at25,addr-mode = <2>;
at25,page-size = <32>;
-- 
2.24.1



Re: [U-Boot] arm: mvebu: ClearFog: booting u-boot from ssd?

2018-02-22 Thread Florian Klink

Hey Stefan,


According to the clearfog wiki and uboot-armada38x src tree, there
are separate
images for sd and sata, with the makefile there calling

$(obj)tools/marvell/doimage -T mmc -D 0x0 -E 0x0 -G
$(obj)tools/marvell/bin_hdr/bin_hdr.bin u-boot.bin u-boot.mmc

vs

$(obj)tools/marvell/doimage -T sata -D 0x0 -E 0x0 -G
$(obj)tools/marvell/bin_hdr/bin_hdr.bin u-boot.bin u-boot.sata


Please note that this "should" not be needed when using mainline
U-Boot on A38x. All necessary tools for image generation are
included here.

[…]

Am I missing something completely obvious, or does this mean there
need to be
different image headers depending on boot medium type BootROM tries to load
u-boot from (so it might be desirable to make this configurable)?


You are correct. The image header differs depending on the boot media.
You need to change the BOOT_FROM line in the .cfg file accordingly, if
you want to boot from SATA.


Yes, this was more to find out in which ways the sata image differs from the
sdcard image.
Simply editing `board/solidrun/clearfog/kwbimage.cfg` and changing BOOT_FROM
from `sdio` to `sata` got BootROM into accepting the image :-)


Are there already any efforts being taken on that? Most likely we'd
also need to
enable SATA drivers, so u-boot is able to read the kernel, which
might be on
that disk.


Correct. If the SATA driver is not enabled yet, then this has to be
done for this board. A38x has an AHCI compatible SATA controller, so
this is the controller / driver to use. I suggest to look at the
Marvell
dev-board "db-88f6820-gp" for this.


I'll have a look on that, thanks! My question also aimed into the direction on
how to make this best configurable via `.config`, instead of editing this file
by hand.
Are there any similar places were we set such things dynamically?

Regards,
Florian
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] arm: mvebu: ClearFog: booting u-boot from ssd?

2018-02-16 Thread Florian Klink

Hey,

I tried getting ClearFog to load u-boot from a M.2 SSD (via SATA)

So I built u-boot-spl.kwb


make clearfog_defconfig
make -j4 ARCH=arm CROSS_COMPILE=arm-none-eabi-


dd'ed it on the SSD:

 dd if=u-boot-spl.kwb of=/dev/sdX bs=512 seek=1


changed SW1 dip to 11100, and got this:


BootROM - 1.73
Booting from AHCI
Probing HBA- 0 port 0  SATA device found
BootROM: Bad header at offset 0001
BootROM: Bad header at offset 0022
BootROM: Bad header at offset 1000
BootROM: Bad header at offset 2000
BootROM: Bad header at offset 3000
BootROM: Bad header at offset 4000
BootROM: Bad header at offset 5000
BootROM: Bad header at offset 6000
BootROM: Bad header at offset 7000

Trying Uart


According to the clearfog wiki and uboot-armada38x src tree, there are separate
images for sd and sata, with the makefile there calling

$(obj)tools/marvell/doimage -T mmc -D 0x0 -E 0x0 -G 
$(obj)tools/marvell/bin_hdr/bin_hdr.bin u-boot.bin u-boot.mmc

vs

$(obj)tools/marvell/doimage -T sata -D 0x0 -E 0x0 -G 
$(obj)tools/marvell/bin_hdr/bin_hdr.bin u-boot.bin u-boot.sata


According to uboot-armada38x's tools/marvell/doimage_mv/doimage.c, this seems to
result in different

 hdr->blockID = IBR_HDR_SATA_ID; //0x78
 hdr->blockID = IBR_HDR_MMC_ID; //0xAE

and maybe another hdr->sourceAddr baked into the image header [1]

Mainline u-boot also knows about IBR_HDR_SATA_ID (tools/kwbimage.h),
and has a mapping in tools/kwbimage.c (boot_modes[]), which seems to decide
depending on the 'BOOT_FROM' setting in board/solidrun/clearfog/kwbimage.cfg
This is currently hardcoded to 'sdio' (which will be translated to 0xAE ==
IBR_HDR_MMC_ID).

Am I missing something completely obvious, or does this mean there need to be
different image headers depending on boot medium type BootROM tries to load
u-boot from (so it might be desirable to make this configurable)?

Are there already any efforts being taken on that? Most likely we'd also need to
enable SATA drivers, so u-boot is able to read the kernel, which might be on
that disk.

Regards,
Florian


[1]: 
https://github.com/coreboot/coreboot/blob/master/util/marvell/doimage_mv/doimage.c#L575
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH] arm: mvebu: ClearFog: document boot selection switches, update UART

2017-12-23 Thread Florian Klink
Signed-off-by: Florian Klink <flo...@flokli.de>
---
 board/solidrun/clearfog/README | 21 +
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/board/solidrun/clearfog/README b/board/solidrun/clearfog/README
index ef1e3bf426..a7bc0d4e23 100644
--- a/board/solidrun/clearfog/README
+++ b/board/solidrun/clearfog/README
@@ -17,16 +17,29 @@ $ sudo dd if=u-boot-spl.kwb of=/dev/sdX bs=512 seek=1
 Please use the correct device node for your setup instead
 of "/dev/sdX" here!
 
+Boot selection:
+---
+
+Before powering up the board, boot selection should be done via the SW1 dip
+switch (0: OFF, 1: ON):
+
+ - SPI: 00010
+ - SD/eMMC: 00111
+ - M.2 SSD: 11100
+ - UART:01001 [1]
+
+[1]: According to SolidRun's manual, 0 should be used for UART booting on
+ the ClearFog 'Pro' variant.
+ However, this doesn't work (anymore) at least on Rev. 2.1 (but '01001' as
+ mentionend for the 'Base' variant does).
+
 Boot from UART:
 ---
 
 Connect the on-board micro-USB (CF Pro: CON11, CF Base: CON5)
 to your host.
 
-Set the SW1 DIP switches to UART boot (0: OFF, 1: ON):
-
-  ClearFog Base: 01001
-  ClearFog Pro:  0
+Set the SW1 DIP switches to UART boot (see above).
 
 Run the following command to initiate U-Boot download:
 
-- 
2.15.1

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot