PDA detection at boot time


Starting with U-boot 2018.07, U-boot can autodetect which PDA screen is connected (if any is connected).

How it works

PDA detection at boot

Since U-boot 2018.07, released with linux4sam_6.0, we have the feature of auto detection of the connected PDA screen

One wire EEPROM

The PDAs have a 512-byte Maxim DS24 1wire EEPROM which is available on the pin 1 of the LCD connector. This memory holds the specific information for the PDA type.

Warning, important Warning, important Warning, important Not all evaluation kits have the pin 1 of the LCD connector properly connected to the SAMA5 SoC. Warning, important Warning, important Warning, important

Please check below table for information and hardware required adjustments:

Board name Hardware changes required
SAMA5D4 Xplained R32 must be moved to position R33
SAMA5D3 Xplained None
SAMA5D2 Xplained None
SAMA5D2 PTC EK R95 must be populated

U-boot behavior

At boot time, U-boot will:

  • Initialize 1wire bus and protocol on the GPIO connected on pin 1 of the LCD connector
  • Read the EEPROM memory of the PDA
  • Copy the contents of the PDA memory at the offset where the screen type is stored into an environment variable called 'pda'
  • Print an information message in the booting log with the detected PDA

TIP Tips: Any potential PDA can be detected, as long as it respects the same memory map for the connected EEPROM. U-boot will automatically copy the information from EEPROM in the pda environment variable.
TIP Tips: By default in Linux4SAM 6.0 and later, U-boot comes with an environment that will take this information into account and select a specific PDA overlay to boot Linux with. For more information visit how to manually select your PDA at boot and how to use FIT image and the U-boot environment explained


U-Boot 2018.07-linux4sam_6.0 (Oct 03 2018 - 16:03:04 +0000)

Crystal frequency:       12 MHz
CPU clock        :      498 MHz
Master clock     :      166 MHz
DRAM:  512 MiB
MMC:   sdio-host@a0000000: 0, sdio-host@b0000000: 1
Loading Environment from SPI Flash... SF: Detected at25df321a with page size 256 Bytes, erase size 4 KiB, total 4 MiB
In:    serial@f8020000
Out:   serial@f8020000
Err:   serial@f8020000
PDA TM5000 detected
Net:   eth0: ethernet@f8008000
Hit any key to stop autoboot:  0

In this example we can see that PDA TM5000 was detected.

Further more, if we inspect the U-boot environment:

=> print
bootargs=console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootfstype=ext4 rootwait atmel.pm_modes=standby,ulp1
bootcmd=ext4load mmc 0 0x24000000 boot/sama5d2_xplained.itb; bootm 0x24000000#kernel_dtb

We can see that the variable 'pda' was configured. This can be used in the booting mechanism to inform the OS that the PDA is connected.