kisgezenguz Posted February 3 Posted February 3 (edited) Hi Armbian community I have a Giada DN74 media player and would like to install Armbian on the box. First I try (through SD card) some community maintained images like the Orange Pi RK3399 or the Firefly RK3399, but none of them worked. Some google search teach me the Rockchip SoCs have fixed boot order (SPI->eMMC->SD card), and this cause my boot issue. Then search again how boot from SD card, the only solution which I find is to erase eMMC, so I erase the eMMC using: "rkdeveloptool ef". Unfortunately the box still not want to boot, so I open the box and try to identify the UART to see what is happening during the boot. I find a 4 pin connector (see images) which I assume this is the UART console, have a label "MCU_D" (Micro Controller Units Debug?) and have 3,3V on first pin and GND on the last pin. I try to use this connector whit some USB-to-UART (PL2303 and FT232RL) with multiple baud rate (115200, 1500000) without output. At this point was able still connect the box through USB and recover Android because MaskRom mode work fine. After some reading on https://opensource.rock-chips.com/wiki_Boot_option I deiced to build u-boot using evb-rk3399_defconfig and flash to the eMMC (which wan was a big mistake). I assume the box is try to boot from eMMC, but stuck there because is only u-boot on the eMMC nothing else. Unfortunately still no UART output (maybe is not UART connector) but also no Maskrom mode. If I understand right jock guide Unbrick Part, the only option to recover the box if I short EMMC CLK pin to GND. So my question is somebody could help me identify the eMMC CLK pin? Some extra info: According the rk3399 hardware design guide, I need to find a 22 ohm resistor near to the CLK pin. The eMMC is a Kingstone EMMC32G-TX29, and the manual write different CLK frequency's, I am don't know what I need to look. I have a Fnirsi dst-210 3in1 (sure not the best), which I could use measurements but I do not know how to set the oscilloscope parameters to find the CLK. Edited February 3 by kisgezenguz Add extra info 0 Quote
kisgezenguz Posted February 6 Author Posted February 6 Take some time but I was able to identify the CLK pin. Shorting the marked pins (CLK and GND in this case) was able to switch MaskRom mode. Note: in early boot stages the eMMC CLK only working in legacy mode (24Mhz). 1 Quote
BigDi Posted February 13 Posted February 13 I own the same box. Do you unbrick your box in the meanwhile? 0 Quote
kisgezenguz Posted February 16 Author Posted February 16 Yes, shorting the pins I was switch the device into MaskRom mode and install Android. Now I trying to identify and use the debug console, not much success so far 0 Quote
BigDi Posted February 17 Posted February 17 (edited) Which DTB did you use? I extracted the Android files and found a resource file named ENTRrk-kernel.dtb. The file began with "Rockchip RK3399 Excavator Board edp (Android)". Could it be possible that the device is compatible with this board? Edited February 17 by BigDi 0 Quote
BigDi Posted February 17 Posted February 17 I tried Armbian_26.2.1_Nanopim4v2_trixie_current_6.18.8_minimal.img.xz, wrote it on TF card and it booted into Linux without any changes. 0 Quote
kisgezenguz Posted Tuesday at 06:42 PM Author Posted Tuesday at 06:42 PM Thank you for the update, good to hear there is possible to run Linux on the box. In other hand, little bit is surprising, I try Nanopi M4 image and many other images, but non of work for me. Far as I know Rockchip have fixed boot order (emmc -> sd cadr ... ). Do you have a working Android on emmc and Armbian on sd card? On the weekend I will try also again the SD card boot. To answer your questions: I did not use any DTB at yet I only try rkbin boot loaders which not need to build. I was also able to extract the Android 11 Image there was model name "Giada JHS558" entered, I assume you have older Android version where the vendor use the Excavator Board as basis for the device tree. 0 Quote
BigDi Posted Wednesday at 07:07 AM Posted Wednesday at 07:07 AM (edited) The Nanopi M4 (not V2) has only 2GB of RAM. It could also possible that my device has an other (or older) Android. And you have to use the HDMI port 1 in the "middle". Not the HDMI under the TF slot! Edited Wednesday at 08:41 AM by BigDi 0 Quote
jock Posted Wednesday at 09:14 PM Posted Wednesday at 09:14 PM On 2/16/2026 at 12:32 PM, kisgezenguz said: Now I trying to identify and use the debug console, not much success so far I see there is a "UART" on the front board image, but I guess it does not work for you. Check the sorroundings for possibile missing resistors, sometimes they remove some small SMD resistors to make the UART non-functional. Also note that you must use an adapter that is capable of 1.5Mbps; not all of them can reach such baud rates (AFAIR pl2303 can't, but CH301 should work) 0 Quote
kisgezenguz Posted yesterday at 01:10 PM Author Posted yesterday at 01:10 PM @BigDi I was able flash the Image Armbian_26.2.1_Nanopim4v2_trixie_current_6.18.8_minimal.img.xz to the emmc and start Armbian on the device. Interesting that Wifi (Realtek RTL8821CU) is work well but Ethernet not. 0 Quote
kisgezenguz Posted yesterday at 02:37 PM Author Posted yesterday at 02:37 PM @jock Than you for the hints. Quote Check the sorroundings for possibile missing resistors, sometimes they remove some small SMD resistors to make the UART non-functional. If I measure on all (except GND) UART Pin 3.3V is not indicate that all resistor in place? Regarding the rk3399 schematic design, there should be some 100 ohm resistors there. To be honest for me was also very difficult to find the MaskRom pins, search something what is not there is a bit challenging. I measure all black SMD item (far as I know they are resistors), but non of them 100 ohm. (The board other side I do not see any missing resistor) Could you please advise me what I need to look? There is 3 point where possible to solder resistor, how to identify which one I need? 0 Quote
jock Posted yesterday at 05:26 PM Posted yesterday at 05:26 PM @kisgezenguz you're welcome. You can check the UART RX/TX paths with the multimeter in diode/continuity mode and checking the continuity against RX (or TX) and the various SMD components. But anyway, if you read 3.3v on all the UART pins, I can guess there are three other hypothesis: * the UART RX/TX pins are correctly connected, but not to the usual debug UART. rk3399 has several uarts, so perhaps that exposed UART is not the same configured in software to be used to log the debug. * MCU_D makes me think that UART is used for the little MCU embedded into rk3399. rk3399 has two small Cortex-M0 cores for very low power tasks. So again that UART is not what you are looking for. * the RX/TX pins are just shorted to high voltage level/pulled ups on purpose (improbable) edit: I just paid attention to the schematic you posted, but it looks it does not match what you've discovered: the schematic says you should read 5.0v on the VCC pin, instead you read 3.3v. Perhaps that MCU_D connector it's definitely not the one you are looking for. 0 Quote
BigDi Posted 11 hours ago Posted 11 hours ago I tried it with a desktop PC, but couldn't select a resolution higher than 1024x768. I read that there's a bug in newer kernel versions that's already been fixed. However, I couldn't find out if the fix is included in the downloaded image. Then I tried an older imager with kernel 4.4, and with that one, I was able to select higher resolutions. @jock I only tested it with Wi-Fi. You could also try a version with an older kernel. 0 Quote
kisgezenguz Posted 1 hour ago Author Posted 1 hour ago @jock The schematic is maybe was a wrong example (I just search for rk3399 schematic, and take the first) in this case Leez P710, but I also look at the RK3399_Design_Guide and find a interesting point, UART2 based on the sd card pins!!! I already read a bit regarding the ddrbin_tool.py (which is part of the rkbin), which one could be used to manipulate the rockchip boot loader, but until now I not really understood how this work, then I find this in the Rockpi4 schematic I became enlightened. In the ddrbin_tool_user_guide is the following: * UART info uart id: uart number. 0 for uart0, 1 for uart1, 2 for uart2..., 0xf will disable uart. uart iomux: uart iomux info, 0 for uartn_m0, 1 for uartn_m1, 2 for uartn_m2...(like uart2_m0, uart2_m1,uart2_m2), or 1 for uartn_a, 2 for uartn_b, 3 for uartn_c.(like uar2a, uart2b, uart2c). uart baudrate: uart baudrate should be 115200 or 1500000. I still don't understanding what the iomux (io multiplexing) is, but in theory if I change the uart iomux parameter to 1 then this should means that UART2A is used, which is SD card D0,D1 pins. (Similar concept I see in Amlogic SoCs. ) So I read out the ddrbin parameters from rk3399_ddr_800MHz_v1.27.bin ./tools/ddrbin_tool.py RK3399 -g ddrbin_param.txt ./bin/rk33/rk3399_ddr_800MHz_v1.27.bin then I change the UART parameters in the file ddrbin_param.txt like this: uart id=2 uart iomux=1 uart baudrate=115200 then I write the parameters back ./tools/ddrbin_tool.py RK3399 ddrbin_param.txt ./bin/rk33/rk3399_ddr_800MHz_v1.27.bin Then I build a new loader based on the rk3399_ddr_800MHz_v1.27.bin ./tools/boot_merger ./RKBOOT/RK3399MINIALL_1.27.ini Content of the ./RKBOOT/RK3399MINIALL_1.27.ini [CHIP_NAME] NAME=RK330C [VERSION] MAJOR=1 MINOR=30 [CODE471_OPTION] NUM=1 Path1=bin/rk33/rk3399_ddr_800MHz_v1.27.bin Sleep=1 [CODE472_OPTION] NUM=1 Path1=bin/rk33/rk3399_usbplug_v1.26.bin [LOADER_OPTION] NUM=2 LOADER1=FlashData LOADER2=FlashBoot FlashData=bin/rk33/rk3399_ddr_800MHz_v1.27.bin FlashBoot=bin/rk33/rk3399_miniloader_v1.26.bin [OUTPUT] PATH=rk3399_loader_v1.27.126.bin The result was uploaded in the emmc rkdeveloptool db rk3399_loader_v1.27.126.bin rkdeveloptool ul rk3399_loader_v1.27.126.bin the I connected my microsd sniffer and after some praying I reset the device ... Then the magic is happened 🤩 DDR Version 1.27 20211018 In channel 0 CS = 0 MR0=0x18 MR4=0x1 MR5=0x1 MR8=0x10 MR12=0x72 MR14=0x72 MR18=0x0 MR19=0x0 MR24=0x8 MR25=0x0 channel 1 CS = 0 MR0=0x18 MR4=0x1 MR5=0x1 MR8=0x10 MR12=0x72 MR14=0x72 MR18=0x0 MR19=0x0 MR24=0x8 MR25=0x0 channel 0 training pass! channel 1 training pass! change freq to 416MHz 0,1 Channel 0: LPDDR4,416MHz Bus Width=32 Col=10 Bank=8 Row=16 CS=1 Die Bus-Width=16 Size=2048MB Channel 1: LPDDR4,416MHz Bus Width=32 Col=10 Bank=8 Row=16 CS=1 Die Bus-Width=16 Size=2048MB 256B stride channel 0 CS = 0 MR0=0x18 MR4=0x1 MR5=0x1 MR8=0x10 MR12=0x72 MR14=0x72 MR18=0x0 MR19=0x0 MR24=0x8 MR25=0x0 channel 1 CS = 0 MR0=0x18 MR4=0x1 MR5=0x1 MR8=0x10 MR12=0x72 MR14=0x72 MR18=0x0 MR19=0x0 MR24=0x8 MR25=0x0 channel 0 training pass! channel 1 training pass! channel 0, cs 0, advanced training done channel 1, cs 0, advanced training done change freq to 856MHz 1,0 ch 0 ddrconfig = 0x101, ddrsize = 0x40 ch 1 ddrconfig = 0x101, ddrsize = 0x40 pmugrf_os_reg[2] = 0x32C1F2C1, stride = 0xD ddr_set_rate to 328MHZ ddr_set_rate to 666MHZ ddr_set_rate to 416MHZ, ctl_index 0 ddr_set_rate to 856MHZ, ctl_index 1 support 416 856 328 666 MHz, current 856MHz OUT Boot1 Release Time: May 29 2020 17:36:36, version: 1.26 CPUId = 0x0 ChipType = 0x10, 645 SdmmcInit=2 0 BootCa Yes, is working, I have debug output 😁 this is maybe not the best solution but I could start working running Armbian on this device. The key point was: Quote Perhaps that MCU_D connector it's definitely not the one you are looking for. So thanks again the advise. 0 Quote
Recommended Posts
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.