Jump to content

ELC Interactive WF8382T (RK3288-based interactive signage)


Recommended Posts

Hello everyone,

 

My university recently purchased a few hundred of these RK3288-based tablets. They're used to display room schedules, control printer confiurations, and control TV inputs throughout our engineering and computer science buildings. The buildings are littered with them; you can't walk 10 feet in any direction without passing one mounted on the wall. Given that they have cameras and microphones, and they run an ancient Android, maybe this wasn't a great idea...

 

Anyway, the no-name eMMC on these things tends to go bad pretty quickly, and the board has no microSD slot, so SD booting is not an option. The university has given me access to a few dozen broken tablets to see if I can get them booting from USB.

 

RK3288 doesn't support USB booting, so my plan is to place a U-Boot on the eMMC that is capable of loading Linux and an Armbian rootfs from USB storage, and mark the eMMC as read-only within Linux. This way, the flash shouldn't wear out any further, and the tablets can remain usable.

 

You can get the tablets into mask ROM mode by grounding the resistors next to the eMMC.

From here, flashing the eMMC is straightforward with rkdeveloptool.

Upstream U-Boot images compiled with the rk3288-firefly and rk3288-vyasa defconfigs will boot on the device! (To build an image that can be flashed to the base of the eMMC, follow the instructions in U-Boot's README.rockchip under the section titled "Booting from an SD card on RK3288 with TPL," but dd into a file instead of a block device, then flash the file.)

 

Here's what the boot output looks like with the firefly defconfig:

U-Boot TPL 2024.04-rc4-00026-g6ec096a711 (Mar 19 2024 - 14:15:48)
Returning to boot ROM...

U-Boot SPL 2024.04-rc4-00026-g6ec096a711 (Mar 19 2024 - 14:15:48 -0400)


U-Boot 2024.04-rc4-00026-g6ec096a711 (Mar 19 2024 - 14:15:48 -0400)

SoC: Rockchip rk3288
Reset cause: RST
Model: Firefly-RK3288
DRAM:  2 GiB
Core:  226 devices, 26 uclasses, devicetree: separate
MMC:   mmc@ff0c0000: 1, mmc@ff0f0000: 0
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial,usbkbd
Out:   serial,vidconsole
Err:   serial,vidconsole
Model: Firefly-RK3288
Net:
Warning: ethernet@ff290000 (eth0) using random MAC address - 8a:21:c0:47:39:e5
eth0: ethernet@ff290000
starting USB...
Bus usb@ff540000: USB DWC2
Bus usb@ff580000: USB DWC2
scanning bus usb@ff540000 for devices... 2 USB Device(s) found
scanning bus usb@ff580000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
Card did not respond to voltage select! : -110
ethernet@ff290000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@ff290000
ethernet@ff290000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
Could not initialize PHY ethernet@ff290000
=>

 

Here's the boot output when booting the vyasa defconfig:

U-Boot TPL 2024.04-rc4-00026-g6ec096a711 (Mar 19 2024 - 14:16:13)
Returning to boot ROM...

U-Boot SPL 2024.04-rc4-00026-g6ec096a711 (Mar 19 2024 - 14:16:13 -0400)
Expected image is not found. Trying to start U-Boot


U-Boot 2024.04-rc4-00026-g6ec096a711 (Mar 19 2024 - 14:16:13 -0400)

SoC: Rockchip rk3288
Reset cause: unknown reset
Model: Amarula Vyasa-RK3288
DRAM:  2 GiB
Core:  210 devices, 22 uclasses, devicetree: separate
MMC:   mmc@ff0c0000: 1, mmc@ff0f0000: 0
Loading Environment from MMC... Card did not respond to voltage select! : -110
*** Warning - No block device, using default environment

In:    serial,usbkbd
Out:   serial,vidconsole
Err:   serial,vidconsole
Model: Amarula Vyasa-RK3288
Net:
Error: ethernet@ff290000 No valid MAC address found.
No ethernet found.

starting USB...
Bus usb@ff540000: USB DWC2
Bus usb@ff580000: USB DWC2
scanning bus usb@ff540000 for devices... 2 USB Device(s) found
scanning bus usb@ff580000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  0
No ethernet found.
No ethernet found.
=>

 

This is promising and exciting, but USB host functionality doesn't work in either of these two builds :(

You can see in the boot output that it scans for USB devices, but doesn't see any storage devices, even though I had a USB flash drive plugged into the board during both of those boot attempts. I have also tried using a micro-USB to USB-A OTG adapter and plugging the flash drive in there, but that doesn't work either.

 

I think it's safe to assume that this USB issue is something to do with either the defconfigs or the device trees for the firefly and vyasa.

 

I would love to hear if anyone has any input on how I can get USB working within U-Boot.

I have extracted the device tree from the Android bootimg that came with the tablet, and have attached it (decompiled), in case that's helpful.

 

Thanks,

Ben

rk3288-noname.dts

Link to comment
Share on other sites

Posted (edited)

That was exactly what I needed to see :)

 

I took the multitool image and burned it to the eMMC (because there's no SD card slot), stuck Armbian on a USB flash drive, plugged it in, and the thing booted from USB! The full-sized USB ports still don't work, but the OTG port does.

 

I'll take a look at the U-Boot config that Armbian is using to try to figure out why it seems to work so much better than what I had. Looks like the Armbian build is using miniloader instead of TPL/SPL, and maybe that matters? I'll post an update here if I ever figure it out.

 

Thanks!!

Edited by Benjamin Kallus
Link to comment
Share on other sites

Posted (edited)

I have now gotten the board booting and running mainline U-Boot with no patches to the source code, and working USB OTG.

It wasn't a miniloader/TPL+SPL problem; it was just missing DTS nodes.

I transplanted some of the USB-relevant portions of the Armbian XT-Q8L-V10 U-Boot device tree into the upstream U-Boot firefly-rk3288 device tree, and that's enough to get U-Boot running with USB OTG support.

I am attaching the patched firefly DTS and DTSI, in case it helps someone in the future.

Next step is getting the display working.

rk3288-firefly.dts rk3288-firefly.dtsi

Edited by Benjamin Kallus
Link to comment
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...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines