1 1
martinayotte

Trial to merge UBoot for RK3399 and Rockchip64

Recommended Posts

I've struggled the whole day on that task using v2019.01 ...

It is even worst than my struggling back in early December, even using Method #2 give me headache with Pinctrl not initialize and boot device been garbage :



channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
ch 0 ddrconfig = 0x101, ddrsize = 0x20
ch 1 ddrconfig = 0x101, ddrsize = 0x20
pmugrf_os_reg[2] = 0x3281F281, stride = 0x9
OUT
U-Boot SPL board init
Pinctrl init failed: -19
Trying to boot from m�iYk~Ⱥ�C��+J)H�^J!������wZ��q�+����q����!


 

Share this post


Link to post
Share on other sites
7 hours ago, TonyMac32 said:

wow.  I guess I'll give it a shot too?  Could be a device tree problem?

You can definitively ...

DT problem ? I doubt since I'm using the same we have for ayufan-v2017.09 builds.

Share this post


Link to post
Share on other sites

Here is a summary of my today's struggling ...

 

Looking at v2019.01 defconfig, it seems that it was always defaulting to evb_rk3399 board.

So, I've decided to add patch to create board/rockchip/rockpro64_rk3399/ based from ayufan's branch, along with defconfig tweaks. This brings me this first results: no more Pinctrl init error, but No Serial found ! Grrrr ! :angry:

MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
ch 0 ddrconfig = 0x101, ddrsize = 0x20
ch 1 ddrconfig = 0x101, ddrsize = 0x20
pmugrf_os_reg[2] = 0x3281F281, stride = 0x9
OUT
U-Boot SPL board init
No serial driver found
resetting ...
### ERROR ### Please RESET the board ###

How Serial can't be found if debug is already outputted to serial  ?  Stupid U-Boot, I hate you !!! :angry:

I've found that CONFIG_REQUIRE_SERIAL_CONSOLE=n can skip this error, but I've only come up to that state :

MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
ch 0 ddrconfig = 0x101, ddrsize = 0x20
ch 1 ddrconfig = 0x101, ddrsize = 0x20
pmugrf_os_reg[2] = 0x3281F281, stride = 0x9
OUT
U-Boot SPL board init
U-Boot SPL board init

Stupid U-Boot, I hate you !!! :angry:

Share this post


Link to post
Share on other sites

I was preparing myself to struggle again with this issue ...

But in the meantime, upgrading first all my RK3399 to 5.1.y, I've discovered that we have random eth0 MAC on few ones (I didn't check this in past months, since I mostly running all those on WiFi) :

The discovery is that random MAC are present on v2019.04, but not in Ayufan's v2017.09. It was missing the ethernet0 alias, I've added it, but it didn't fixed the issue...

The sad thing is that is on the wrong side of the fence : if the issue were in v2017.09, I wouldn't bother trying to fix it, but it is under v2019.04 ... :(

I don't have any other idea for now ...

Share this post


Link to post
Share on other sites

This 99-strong patch list is to add lpddr support to mainline

 

 

https://patchwork.ozlabs.org/project/uboot/list/?series=114166

https://patchwork.ozlabs.org/project/uboot/list/?series=115179

 

This is the biggest problem with the RK3399 board families, the LPDDR4 devices are [edit] crap [/edit] when it comes to booting because the code simply isn't there, even the rockchip u-boot acts stupid, and there's something up with the TPL/SPL that I can't remember the details of specifically.

Share this post


Link to post
Share on other sites

@martinayotte I dealt with u-boot long time ago with rk3288 and I confirm it is a real PITA. I remember I had the same serial port error. Be sure to have the "chosen" node in root DTS:

 

/ {
	model = "Tinker-RK3288";
	compatible = "rockchip,rk3288-tinker", "rockchip,rk3288";

	chosen {
		stdout-path = &uart2;
	};
};

Also be sure to have the serial node enabled and with u-boot,dm-pre-reloc (or u-boot,dm-spl/u-boot,dm-tpl) tag:

&uart2 {
	status="okay";
	u-boot,dm-pre-reloc;
};

Then I strongly suggest you to enable the DEBUG logging level that will produce much more verbose. I found it is essential trying to bring up u-boot. I had to manually edit the source code to enable it in some header file because I could not find any documentation about on the internet. Anyway you may take a look in doc/README.log which may suggest the proper way to do it. Beware that it will make the executables much bigger and that could be a problem if there are some size limits.

 

 

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
1 1