PandaBoard A4 Boot Up

Hello, I have been following this tutorial to put Ubuntu on a Pandaboard Rev A4:

PandaBoard

I followed the tutorial however when I plug the sd card into the pandaboard and give it power through the 5V power jack nothing appears through the HDMI.

Is this a problem with my setup or am I missing a step? In order to do the initial boot up is it done through the hdmi or through a serial terminal?

@dcruzer231,

Couple questions, on your version of the A4, does the POP memory on top of the omap4 show “ELPIDA” or have a large “M” with a circle on it on the right side (aka Micron).

Shortly after the closing of the omap4 group at TI and the shutdown of the PandaBoard project, there was a last run done on both the PandaBoard and PandaBoard ES. You need to make one more change shown here:

https://www.digikey.com/eewiki/display/linuxonarm/PandaBoard#PandaBoard-PandaBoardA4(with"M"Micronmemory)

Change: ./include/configs/ti_omap4_common.h

/* Comment out next line for ES Rev B3 or A4 with new "M" Micron memory... */
#define CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
#ifndef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
#define CONFIG_SYS_AUTOMATIC_SDRAM_DETECTION
#define CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
#endif

To: ./include/configs/ti_omap4_common.h

/* Comment out next line for ES Rev B3 or A4 with new "M" Micron memory... */
/* #define CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS */
#ifndef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
#define CONFIG_SYS_AUTOMATIC_SDRAM_DETECTION
#define CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
#endif

Then make sure you are using the “HDMI-1080p” connector, and you should see ubuntu bootup on the video device:

Regards,

I appreciate your quick response. My board has an ELPIDA

I have tried both HDMI and neither produce an output. If this is the case is this a problem with creating the bootable SD?
If this is the case I’m not sure which step is causing this problem. My two suspects are building the kernel or partitioning the SD card. When building the kernel only the 4.9 version worked as the others responded with an error stating an unknown deb based system. I was able to compile the 4.9 version supposedly. If there’s any information I should include to assist please let me know. My apologies for any ignorance on my end, I am very new at this.

@dcruzer231, okay, i have a few ELPIDA based PandaBoard’s in the lab, i’ll give them a quick test tomorrow. Another issue I’ve had in the past, edid detection failure over the hdmi cable. As a work around, my work monitor has a usb hub, that i always plug back into the board i’m testing to provide a GND path return.

Please provide a dump from ./build_kernel.sh with the log message from your “unknown deb based system” then we can fix the build script. (There are quite a few debian based distro’s we miss…)

Regards,

I’ll see if I can add extra grounding to my board tomorrow. Only the status 2 LED turns on when powering the board if that helps troubleshooting. I’ll post the dump of the build script when I can get back to it. The computer I’m using is running Ubuntu 18.04.1 LTS but I’ll post the full dump later.

@dcruzer231, at power plug-in, D2 just indicates power, even without the mmc media plugged in. Does anything show up on the serial port? D1/D2 Led’s don’t start blinking till the kernel loads. D1: heartbeat, D2: mmc access. There is a chance the bootloader wasn’t written correctly.

You should see something like shown:

U-Boot SPL 2017.03-dirty (Sep 25 2018 - 14:25:52)
OMAP4430-GP ES2.3
Trying to boot from MMC1
SPL: Please implement spl_start_uboot() for your board
SPL: Direct Linux boot not active!


U-Boot 2017.03-dirty (Sep 25 2018 - 14:25:52 -0500)

CPU  : OMAP4430-GP ES2.3
Board: OMAP4 Panda
I2C:   ready
DRAM:  1 GiB
MMC:   OMAP SD/MMC: 0

** Unable to use mmc 0:1 for loading the env **
Using default environment

Net:   No ethernet found.
Press SPACE to abort autoboot in 2 seconds
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
** File not found boot.scr **
** Unrecognized filesystem type **
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
switch to partitions #0, OK
mmc0 is current device
SD/MMC found on device 0
Checking for: /uEnv.txt ...
Checking for: /boot/uEnv.txt ...
50 bytes read in 20 ms (2 KiB/s)
Loaded environment from /boot/uEnv.txt
Using: dtb=omap4-panda-a4.dtb ...
Checking if uname_r is set in /boot/uEnv.txt...
Running uname_boot ...
loading /boot/vmlinuz-4.16.17-armv7-x0.1 ...
6652416 bytes read in 359 ms (17.7 MiB/s)
loading /boot/dtbs/4.16.17-armv7-x0.1/omap4-panda-a4.dtb ...
80277 bytes read in 112 ms (699.2 KiB/s)
debug: [console=ttyO2,115200n8 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait] ...
debug: [bootz 0x82000000 - 0x88000000] ...
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 8ffe9000, end 8ffff994 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.16.17-armv7-x0.1 (voodoo@work-i7) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05)) #5 SMP PREEMPT Tue Sep 25 16:32:09 CDT 2018
[    0.000000] CPU: ARMv7 Processor [411fc093] revision 3 (ARMv7), cr=10c5387d

Regards,

I spent some more time debugging this yesterday, i was seeing a random hardlock on bootup. (it also might have been a bad usb-serial adapter, as i ended up swapping the pc i used for serial logging)… But i upgraded u-boot to v2018.09, and thus we also now have the Spectre workarounds enabled in u-boot.

Regards,

So rebuilding the kernel now seems to be working without a hitch. I built version 4.10 without the “unknown deb based system.”

Now the problem I’m running into is building the uboot. Specifically compiling it. Here is the error log:

netlab@netlab-Vostro-460:~/u-boot$ make ARCH=arm CROSS_COMPILE=${CC} distclean
netlab@netlab-Vostro-460:~/u-boot$ make ARCH=arm CROSS_COMPILE=${CC} omap4_panda_defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  YACC    scripts/kconfig/zconf.tab.c
  LEX     scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
netlab@netlab-Vostro-460:~/u-boot$ make ARCH=arm CROSS_COMPILE=${CC}
scripts/kconfig/conf  --syncconfig Kconfig
  CHK     include/config.h
  UPD     include/config.h
  CFG     u-boot.cfg
  GEN     include/autoconf.mk
  GEN     include/autoconf.mk.dep
  CFG     spl/u-boot.cfg
  GEN     spl/include/autoconf.mk
  CHK     include/config/uboot.release
  UPD     include/config/uboot.release
  CHK     include/generated/version_autogenerated.h
  UPD     include/generated/version_autogenerated.h
  CHK     include/generated/timestamp_autogenerated.h
  UPD     include/generated/timestamp_autogenerated.h
  CC      lib/asm-offsets.s
cc1: error: bad value (‘armv5’) for ‘-march=’ switch
cc1: note: valid arguments to ‘-march=’ switch are: nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 bonnell atom silvermont slm knl x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 btver1 btver2
Kbuild:43: recipe for target 'lib/asm-offsets.s' failed
make[1]: *** [lib/asm-offsets.s] Error 1
Makefile:1434: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2

I used v2018.09 and I applied the ompa4 patch.

cc1: error: bad value (‘armv5’) for ‘-march=’ switch
cc1: note: valid arguments to ‘-march=’ switch are: nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 bonnell atom silvermont slm knl x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 z

This just means, you export’ed CC in another terminal…

https://www.digikey.com/eewiki/display/linuxonarm/PandaBoard#PandaBoard-ARMCrossCompiler:GCC

Regards,

Thanks. I got it compiled. I compiled kernel 4.10 and built uboot v2018.09. However when running it still nothing appears through the HDMI. I’ve ran both power jack and usb cord at the same time and still nothing.

To answer a previous question I have not checked the serial port because I do not have a serial to usb cord with me and I would need to order one.

Maybe it could be that I’m building the SD card incorrectly?

For reference I am using export DISK=/dev/sdb. I’m not sure if that change will mess with any of the later code.

As long as your aren’t creating the microSD cards thru VMware/VirtualBox/etc, aka running off a native linux system, the SD card should be built correctly.

Is D1 LED blinking? If so i’d next try to just plug in an ethernet jack, you should be able to ssh in, both led’s should light up on the interface to give you a connection status.

Regards,

LED 2 was not blinking. I just plugged an ethernet jack into the board. That seems to have set off the board now. Both LEDs are on and I’m getting a display.

@dcruzer231 that’s crazy!!! It sounds like; the 5volt supply, hdmi monitor and usb connection all have a faulty ground. Thus by plugging in an Ethernet cable, a proper GND level was finally setup.

Regards,

I was just going to ask you if you know why this is the case! I’m trying it again and now the LEDs blink and I get a flashing cursor but it doesn’t prompt for login until an ethernet jack is connected to it. Same behaviour on two different pandaboards.

To just be safe, I’d grab one of those 3 LED outlet testers from a local hardware store and test the outlet’s in your lab…

Regards,

Thanks, If I find out that it’s anything on the pandaboard’s end I’ll report back.

Thanks again for troubleshooting this and updating the guide for the pandaboard. I really appreciate it.