Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
- Loading branch information
1 parent
4d8358e
commit 97996e9
Showing
3 changed files
with
619 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
Flashing the NAND using SAM-BA | ||
============================== | ||
|
||
This document explains how to flash a system on various Atmel boards. | ||
Additional details can also be found on the Linux4SAM website, in particular | ||
here: http://www.at91.com/linux4sam/bin/view/Linux4SAM/GettingStarted | ||
|
||
Connect the board: | ||
o at91sam9g45m10ek: DBGU: J10, USB sam-ba: J14 | ||
o at91sam9rlek: DBGU: J19, USB sam-ba: J21 | ||
o at91sam9x5ek: DBGU: J11, USB sam-ba: J20 | ||
o sama5d3xek: DBGU: J14, USB sam-ba: J20 | ||
o sama5d3 Xplained: DBGU: J23, USB sam-ba: J6 | ||
o sama5d4ek: DBGU: J22 or J24, USB sam-ba: J1 | ||
o sama5d4 Xplained: DBGU: J1, USB sam-ba: J11 | ||
|
||
Start the board in RomBOOT: | ||
o at91sam9g45m10ek: | ||
1. open JP8, JP10 and JP12 | ||
2. start the board | ||
3. close JP8, JP10 and JP12 | ||
|
||
o at91sam9rlek: | ||
1. J11 on 1-2 (BMS=1), open J12 and J13 | ||
2. start the board | ||
3. close J12 and J13 | ||
|
||
o at91sam9x5ek: | ||
1. open JP9 and: | ||
- Cogent: open *NCS jumper | ||
- Embest: open SW1 | ||
- Ronetix: open J1 and J2 | ||
2. start the board | ||
3. close JP9 and: | ||
- Cogent: close *NCS jumper | ||
- Embest: close SW1 (ON position) | ||
- Ronetix: close J1 and J2 | ||
|
||
o sama5d3xek: | ||
1. start the board | ||
2. push BP4 and BP1 | ||
3. release BP1 | ||
4. release BP4 | ||
|
||
o sama5d3 Xplained: | ||
1. open JP5 (NANDCS) and JP6 (SPICS) | ||
2. start the board | ||
3. close JP5 ans JP6 | ||
|
||
o sama5d4ek: | ||
1. start the board | ||
2. push BP3 and BP4 | ||
3. release BP4 | ||
4. release BP3 | ||
|
||
o sama5d4 Xplained: | ||
1. close JP7 (BOOT_DIS) | ||
2. start the board | ||
3. open JP7 | ||
|
||
"RomBOOT" should appear on your console (this should be ttyUSBx or ttyACMx) | ||
|
||
Now locate the USB sam-ba interface it should be ttyACMx, usually ttyACM0 | ||
dmesg on your machine should give: | ||
usb 1-2.1.4: New USB device found, idVendor=03eb, idProduct=6124 | ||
usb 1-2.1.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0 | ||
cdc_acm 1-2.1.4:1.0: ttyACM0: USB ACM device | ||
|
||
Look for idVendor=03eb, idProduct=6124, this is the interface you want to use. | ||
|
||
You can then flash the board using the provided flasher.sh script in board/atmel: | ||
|
||
../source/meta-atmel/scripts/flasher.sh <image_name> <interface> <board> [lcd] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
#!/bin/bash | ||
|
||
IMAGE=$1 | ||
TTY=$2 | ||
BOARD=$3 | ||
LCD=${4:-none} | ||
|
||
family_at91sam9g45m10ek="at91sam9m10g45ek" | ||
mach_at91sam9g45m10ek="at91sam9m10-g45-ek" | ||
dtb_at91sam9g45m10ek="at91sam9m10g45ek.dtb" | ||
|
||
family_at91sam9rlek="at91sam9rlek" | ||
mach_at91sam9rlek="at91sam9rl64-ek" | ||
dtb_at91sam9rlek="at91sam9rlek.dtb" | ||
|
||
family_at91sam9g15ek="at91sam9x5ek" | ||
mach_at91sam9g15ek="at91sam9g15-ek" | ||
dtb_at91sam9g15ek="at91sam9g15ek.dtb" | ||
|
||
family_at91sam9g25ek="at91sam9x5ek" | ||
mach_at91sam9g25ek="at91sam9g25-ek" | ||
dtb_at91sam9g25ek="at91sam9g25ek.dtb" | ||
|
||
family_at91sam9g35ek="at91sam9x5ek" | ||
mach_at91sam9g35ek="at91sam9g35-ek" | ||
dtb_at91sam9g35ek="at91sam9g35ek.dtb" | ||
|
||
family_at91sam9x25ek="at91sam9x5ek" | ||
mach_at91sam9x25ek="at91sam9x25-ek" | ||
dtb_at91sam9x25ek="at91sam9x25ek.dtb" | ||
|
||
family_at91sam9x35ek="at91sam9x5ek" | ||
mach_at91sam9x35ek="at91sam9x35-ek" | ||
dtb_at91sam9x35ek="at91sam9x35ek.dtb" | ||
|
||
family_sama5d31ek="sama5d3xek" | ||
mach_sama5d31ek="at91sama5d3x-ek" | ||
dtb_sama5d31ek="sama5d31ek.dtb" | ||
dtb_sama5d31ek_pda4="sama5d31ek_pda4.dtb" | ||
dtb_sama5d31ek_pda7="sama5d31ek_pda7.dtb" | ||
|
||
family_sama5d31ek_revc="sama5d3xek" | ||
mach_sama5d31ek_revc="at91sama5d3x-ek" | ||
dtb_sama5d31ek_revc="sama5d31ek_revc.dtb" | ||
dtb_sama5d31ek_revc_pda4="sama5d31ek_revc_pda4.dtb" | ||
dtb_sama5d31ek_revc_pda7="sama5d31ek_revc_pda7.dtb" | ||
|
||
family_sama5d33ek="sama5d3xek" | ||
mach_sama5d33ek="at91sama5d3x-ek" | ||
dtb_sama5d33ek="sama5d33ek.dtb" | ||
dtb_sama5d33ek_pda4="sama5d33ek_pda4.dtb" | ||
dtb_sama5d33ek_pda7="sama5d33ek_pda7.dtb" | ||
|
||
family_sama5d33ek_revc="sama5d3xek" | ||
mach_sama5d33ek_revc="at91sama5d3x-ek" | ||
dtb_sama5d33ek_revc="sama5d33ek_revc.dtb" | ||
dtb_sama5d33ek_revc_pda4="sama5d33ek_revc_pda4.dtb" | ||
dtb_sama5d33ek_revc_pda7="sama5d33ek_revc_pda7.dtb" | ||
|
||
family_sama5d34ek="sama5d3xek" | ||
mach_sama5d34ek="at91sama5d3x-ek" | ||
dtb_sama5d34ek="sama5d34ek.dtb" | ||
dtb_sama5d34ek_pda4="sama5d34ek_pda4.dtb" | ||
dtb_sama5d34ek_pda7="sama5d34ek_pda7.dtb" | ||
|
||
family_sama5d34ek_revc="sama5d3xek" | ||
mach_sama5d34ek_revc="at91sama5d3x-ek" | ||
dtb_sama5d34ek_revc="sama5d34ek_revc.dtb" | ||
dtb_sama5d34ek_revc_pda4="sama5d34ek_revc_pda4.dtb" | ||
dtb_sama5d34ek_revc_pda7="sama5d34ek_revc_pda7.dtb" | ||
|
||
family_sama5d35ek="sama5d3xek" | ||
mach_sama5d35ek="at91sama5d3x-ek" | ||
dtb_sama5d35ek="sama5d35ek.dtb" | ||
|
||
family_sama5d35ek_revc="sama5d3xek" | ||
mach_sama5d35ek_revc="at91sama5d3x-ek" | ||
dtb_sama5d35ek_revc="sama5d35ek_revc.dtb" | ||
|
||
family_sama5d36ek="sama5d3xek" | ||
mach_sama5d36ek="at91sama5d3x-ek" | ||
dtb_sama5d36ek="sama5d36ek.dtb" | ||
dtb_sama5d36ek_pda4="sama5d36ek_pda4.dtb" | ||
dtb_sama5d36ek_pda7="sama5d36ek_pda7.dtb" | ||
|
||
family_sama5d36ek_revc="sama5d3xek" | ||
mach_sama5d36ek_revc="at91sama5d3x-ek" | ||
dtb_sama5d36ek_revc="sama5d36ek_revc.dtb" | ||
dtb_sama5d36ek_revc_pda4="sama5d36ek_revc_pda4.dtb" | ||
dtb_sama5d36ek_revc_pda7="sama5d36ek_revc_pda7.dtb" | ||
|
||
family_sama5d3_xplained="sama5d3_xplained" | ||
mach_sama5d3_xplained="at91sama5d3x-xplained" | ||
dtb_sama5d3_xplained="at91-sama5d3_xplained.dtb" | ||
dtb_sama5d3_xplained_pda4="at91-sama5d3_xplained_pda4.dtb" | ||
dtb_sama5d3_xplained_pda7="at91-sama5d3_xplained_pda7.dtb" | ||
|
||
family_sama5d4ek="sama5d4ek" | ||
mach_sama5d4ek="at91sama5d4x-ek" | ||
dtb_sama5d4ek="at91-sama5d4ek.dtb" | ||
|
||
family_sama5d4_xplained="sama5d4_xplained" | ||
mach_sama5d4_xplained="at91sama5d4x-ek" | ||
dtb_sama5d4_xplained="at91-sama5d4_xplained.dtb" | ||
dtb_sama5d4_xplained_pda4="at91-sama5d4_xplained_pda4.dtb" | ||
|
||
usage() { | ||
cat << EOF | ||
Usage: | ||
$0 <image_name> <interface> <board> [lcd] | ||
Available boards: | ||
at91sam9g45m10ek | ||
at91sam9rlek | ||
at91sam9g15ek | ||
at91sam9g25ek | ||
at91sam9x25ek | ||
at91sam9g35ek | ||
at91sam9x35ek | ||
sama5d31ek | ||
sama5d33ek | ||
sama5d34ek | ||
sama5d35ek | ||
sama5d36ek | ||
sama5d31ek_revc (Until rev. C) | ||
sama5d33ek_revc (Until rev. C) | ||
sama5d34ek_revc (Until rev. C) | ||
sama5d35ek_revc (Until rev. C) | ||
sama5d36ek_revc (Until rev. C) | ||
sama5d3_xplained | ||
sama5d4ek | ||
sama5d4_xplained | ||
Example: | ||
$0 atmel-qt5-demo-image /dev/ttyACM0 at91sam9g45m10ek | ||
EOF | ||
} | ||
|
||
F="family_$BOARD" | ||
M="mach_$BOARD" | ||
D="dtb_$BOARD" | ||
|
||
if [[ $# < 3 || -z ${!F} ]]; then | ||
usage | ||
exit 1 | ||
fi | ||
|
||
case $LCD in | ||
pda4) | ||
video_mode="video=LVDS-1:480x272-16" | ||
D="$D_$LCD" | ||
;; | ||
pda7) | ||
video_mode="video=LVDS-1:800x480-16" | ||
D="${D}_${LCD}" | ||
;; | ||
*) | ||
video_mode="video=LVDS-1:800x480-16" | ||
;; | ||
esac | ||
|
||
if [[ -z ${!D} ]]; then | ||
echo "unknown board and LCD combination" | ||
exit 1 | ||
fi | ||
|
||
if [[ -z $(which bitbake) ]]; then | ||
echo "bitbake not in path please setup the environment" | ||
exit 1 | ||
fi | ||
|
||
eval $(MACHINE=${!F/_/-} bitbake -e $IMAGE | grep -E "(^DEPLOY_DIR_IMAGE|^IMAGE_LINK_NAME|^STAGING_BINDIR_NATIVE)") | ||
|
||
SAMBA=$(which sam-ba) | ||
if [[ -z $SAMBA ]]; then | ||
SAMBA=${STAGING_BINDIR_NATIVE}/sam-ba_cdc_linux/sam-ba | ||
fi | ||
|
||
if [[ ! -f $SAMBA ]]; then | ||
echo "Couldn't find sam-ba. Add it to your path or bitbake sam-ba-native" | ||
exit 1 | ||
fi | ||
|
||
echo "Executing: O=${DEPLOY_DIR_IMAGE}/ $SAMBA $TTY ${!M} $(dirname $0)/nandflash.tcl -- ${!F} zImage-${!D} $rootfs $video_mode" | ||
export O=${DEPLOY_DIR_IMAGE}/ | ||
$SAMBA $TTY ${!M} $(dirname $0)/nandflash.tcl -- ${!F} zImage-${!D} ${IMAGE_LINK_NAME}.ubi $video_mode |
Oops, something went wrong.