SlideShare a Scribd company logo
Павел Курочкин General R&D, 2017
Запускаем Linux на
sama5d3
“Оживляем” ARM SoC + NAND
Павел Курочкин General R&D, 2017
О чём пойдёт речь?
● Минимальная схема
● Компоненты загрузки ARM-а
● Про NAND и PMECC
● Тулчейн, сборка rootfs
● Прошивка NAND через USB
● Адаптация под плату
2
Павел Курочкин General R&D, 2017
Минимальная схема
3
SAM a5d3NAND SDRAM
UART/
DBGU
USB
Павел Курочкин General R&D, 2017
SAM a5d3
● Atmel, теперь Microchip
● Up to 536 MHz
● Cortex-A5, ARMv7 hard float
● Gigabit Ethernet, USB, UARTs, I2C, etc…
● NAND, SD, etc..
● TRNG, Encryption Engine
4
Павел Курочкин General R&D, 2017
Процесс загрузки
1. Boot rom
2. bootstrap/preloader -- up to 128K
3. u-boot
4. Linux kernel + rootfs
Храним на NAND’е
5
Павел Курочкин General R&D, 2017
NAND + PMECC
● 4016 из 4096 без ошибок
● 2048B + 64B OOB для ECC
● Корр. 4 байта из 2048
● Конфигурируется при
прошивке NAND
6
Корр. биты ECC байты для
блока 512 байт
2 4
4 7
8 13
12 20
24 39
Павел Курочкин General R&D, 2017
Тулчейн
● Debian 8
● gcc-gnueabi-armhf-gcc тулчейн из репозитория
EmDebian
● Make
● Linaro toolchain тоже подходит
7
Павел Курочкин General R&D, 2017
rootfs
● Debian 8
● qemu-debootstrap для сборки rootfs
● mkfs.ubifs + ubinize для сборки ubi-образа
8
Павел Курочкин General R&D, 2017
sam-ba: прошивка NAND (GUI)
● USB
● Sam-ba 2.13
● Помним про PMECC
● at91bootstrap.bin
● at91-sama5d3.dtb
● u-boot.bin
● zImage
● rootfs
9
Павел Курочкин General R&D, 2017
sam-ba: прошивка NAND (CLI)
● https://github.com/linux4sam/meta-atmel
● Shell + tcl
● ~ 1 MB/s
10
Павел Курочкин General R&D, 2017
Адаптируем под плату: bootstrap
● Настройка памяти
● Внутренний/внешний RC-осциллятор
● PMECC
● Тип загрузки: сразу ядро или u-boot
● C
● https://github.com/linux4sam/at91bootstrap
11
Павел Курочкин General R&D, 2017
Адаптируем под плату: u-boot
● Выбираем нужную периферию
● PMECC
● Адреса dtb, zImage
● Адрес u-boot environment’а
● Параметры загрузки ядра
● C
● https://github.com/linux4sam/u-boot-at91
12
Павел Курочкин General R&D, 2017
Адаптируем под плату: kernel
● PMECC
● dts/dtb: за основу берём sama5d3-xplained
● Включаем поддержку UBI
● Стартовый config: sama5-defconfig
● https://github.com/linux4sam/linux-at91
13
Павел Курочкин General R&D, 2017
U-boot enviroment
...
bootargs=console=ttyS0,115200n8 earlyprintk
mtdparts=atmel_nand:256k(bs)ro,512k(uboot)ro,256k(env),256k(env1),
256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs
ubi.mtd=7 root=ubi0:rootfs rw
bootcmd=nand read 0x21000000 0x180000 0x80000;nand read 0x22000000
0x200000 0x600000;bootz 0x22000000 - 0x21000000
...
14
Павел Курочкин General R&D, 2017
Грабли
● Trimffs при прошивке ubi rootfs
● Внутренний/внешний осциллятор
● systemd
15
Павел Курочкин General R&D, 2017
Итого
● Минималистичное окружение (debian forever)
○ apt-get install binfmt-support qemu qemu-user-static mtd-utils
debootstrap
○ apt-get install crossbuild-essential-armhf
○ apt-get install mtd-tools
● sam-ba для прошивки
● PMECC для NAND
16
Павел Курочкин General R&D, 2017
Ссылки
● https://github.com/linux4sam/at91bootstrap
● https://github.com/linux4sam/u-boot-at91
● https://github.com/linux4sam/linux-at91
● http://www.at91.com/linux4sam/bin/view/Linux4SAM/
17

More Related Content

What's hot

Alex Shavtsov - Arch linux installing on Macbook Air.
Alex Shavtsov - Arch linux installing on Macbook Air. Alex Shavtsov - Arch linux installing on Macbook Air.
Alex Shavtsov - Arch linux installing on Macbook Air.
Minsk Linux User Group
 
Docker integration into Badoo
Docker integration into BadooDocker integration into Badoo
Docker integration into Badoo
Anton Turetsky
 
ToroDB (highload++2015)
ToroDB (highload++2015)ToroDB (highload++2015)
ToroDB (highload++2015)
Pavel Alexeev
 
Проникновение в Docker с примерами
Проникновение в Docker с примерамиПроникновение в Docker с примерами
Проникновение в Docker с примерами
Дмитрий Столяров
 
Docker networking
Docker networkingDocker networking
Docker networking
Badoo Development
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Yandex
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демонов
Anton Piskunov
 
Kirill A Korinskiy Rit2010 No Sql Storage
Kirill A  Korinskiy Rit2010 No Sql StorageKirill A  Korinskiy Rit2010 No Sql Storage
Kirill A Korinskiy Rit2010 No Sql Storagerit2010
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Yandex
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
endeveit
 
Rozum robotics release cycle
Rozum robotics release cycleRozum robotics release cycle
Rozum robotics release cycle
Nikolay Lagutko
 
Павел Пушкарев — «Развертывание верстки»
Павел Пушкарев — «Развертывание верстки»Павел Пушкарев — «Развертывание верстки»
Павел Пушкарев — «Развертывание верстки»Yandex
 
Hl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 PantyukhinHl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 PantyukhinHighLoad2009
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Badoo Development
 
С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!
volegg
 
poudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkgpoudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkg
Andrey Fesenko
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Ontico
 
"Великолепный API без Rest", Констатин Якушев (Badoo)
 "Великолепный API без Rest", Констатин Якушев (Badoo) "Великолепный API без Rest", Констатин Якушев (Badoo)
"Великолепный API без Rest", Констатин Якушев (Badoo)
Badoo Development
 

What's hot (20)

Alex Shavtsov - Arch linux installing on Macbook Air.
Alex Shavtsov - Arch linux installing on Macbook Air. Alex Shavtsov - Arch linux installing on Macbook Air.
Alex Shavtsov - Arch linux installing on Macbook Air.
 
Docker integration into Badoo
Docker integration into BadooDocker integration into Badoo
Docker integration into Badoo
 
ToroDB (highload++2015)
ToroDB (highload++2015)ToroDB (highload++2015)
ToroDB (highload++2015)
 
Проникновение в Docker с примерами
Проникновение в Docker с примерамиПроникновение в Docker с примерами
Проникновение в Docker с примерами
 
Docker networking
Docker networkingDocker networking
Docker networking
 
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав БахмутовПлюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
Плюсы и минусы Go для разработчиков на C++, Вячеслав Бахмутов
 
BeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демоновBeeGo для веб приложений, API и демонов
BeeGo для веб приложений, API и демонов
 
Kirill A Korinskiy Rit2010 No Sql Storage
Kirill A  Korinskiy Rit2010 No Sql StorageKirill A  Korinskiy Rit2010 No Sql Storage
Kirill A Korinskiy Rit2010 No Sql Storage
 
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
Илья Биин: Организация совместной работы Go и Python-based сервисов в Ostrovo...
 
Разработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервисаРазработка API для большого, нагруженного сервиса
Разработка API для большого, нагруженного сервиса
 
Rozum robotics release cycle
Rozum robotics release cycleRozum robotics release cycle
Rozum robotics release cycle
 
Павел Пушкарев — «Развертывание верстки»
Павел Пушкарев — «Развертывание верстки»Павел Пушкарев — «Развертывание верстки»
Павел Пушкарев — «Развертывание верстки»
 
Hl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 PantyukhinHl09 Free Bsd2009 Pantyukhin
Hl09 Free Bsd2009 Pantyukhin
 
linux and freebsd monitoring
linux and freebsd monitoringlinux and freebsd monitoring
linux and freebsd monitoring
 
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...
 
С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!С чем едят JS-дебаггур?!
С чем едят JS-дебаггур?!
 
Node.js (RichClient)
 Node.js (RichClient) Node.js (RichClient)
Node.js (RichClient)
 
poudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkgpoudriere или как я перестал волноваться и полюбил pkg
poudriere или как я перестал волноваться и полюбил pkg
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
"Великолепный API без Rest", Констатин Якушев (Badoo)
 "Великолепный API без Rest", Констатин Якушев (Badoo) "Великолепный API без Rest", Констатин Якушев (Badoo)
"Великолепный API без Rest", Констатин Якушев (Badoo)
 

Similar to Sama5d3: how to run linux on it

Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
IBS
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Dmitry Samsonov
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
odnoklassniki.ru
 
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014it-people
 
FreeBSD 2009 — живее всех живых
FreeBSD 2009 — живее всех живыхFreeBSD 2009 — живее всех живых
FreeBSD 2009 — живее всех живыхAndrew Pantyukhin
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
Iosif Itkin
 
Видеохостинг своими руками
Видеохостинг своими рукамиВидеохостинг своими руками
Видеохостинг своими руками
StanislavMalkin
 
PostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimmPostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimm
Дмитрий Васильев
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
ITCrowd Almaty
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest
 
Михаил Белопухов: OpenBSD: Куда катится крипто?
Михаил Белопухов: OpenBSD: Куда катится крипто?Михаил Белопухов: OpenBSD: Куда катится крипто?
Михаил Белопухов: OpenBSD: Куда катится крипто?
Yandex
 
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Ontico
 
Test traffic 100G generator and analyzer
Test traffic 100G generator and analyzerTest traffic 100G generator and analyzer
Test traffic 100G generator and analyzer
ishevchuk
 
презентацияевстафьева
презентацияевстафьевапрезентацияевстафьева
презентацияевстафьеваsasha4334556
 
Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3
eucariot
 
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
CEE-SEC(R)
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
IT-Portfolio
 
Опыт внедрения Docker .
 Опыт внедрения Docker .  Опыт внедрения Docker .
Опыт внедрения Docker .
phpfriendsclub
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai Struct
Positive Hack Days
 

Similar to Sama5d3: how to run linux on it (20)

Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...Тюним память  и сетевой стек в Linux: история перевода высоконагруженных  сер...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных сер...
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
 
FreeBSD 2009 — живее всех живых
FreeBSD 2009 — живее всех живыхFreeBSD 2009 — живее всех живых
FreeBSD 2009 — живее всех живых
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Видеохостинг своими руками
Видеохостинг своими рукамиВидеохостинг своими руками
Видеохостинг своими руками
 
PostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimmPostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimm
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проектаКолёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
 
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
CodeFest 2014. Каплуновский Б. — Использование асинхронного I/O для снижения ...
 
Михаил Белопухов: OpenBSD: Куда катится крипто?
Михаил Белопухов: OpenBSD: Куда катится крипто?Михаил Белопухов: OpenBSD: Куда катится крипто?
Михаил Белопухов: OpenBSD: Куда катится крипто?
 
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
 
Test traffic 100G generator and analyzer
Test traffic 100G generator and analyzerTest traffic 100G generator and analyzer
Test traffic 100G generator and analyzer
 
презентацияевстафьева
презентацияевстафьевапрезентацияевстафьева
презентацияевстафьева
 
Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3Linkmeup v076(2019-06).3
Linkmeup v076(2019-06).3
 
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
Программно-аппаратная разработка с использованием FPGA на примере поддержки п...
 
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
16 декабря, DEV {highload} - конференция о Highload веб-разработке, "Эксплуат...
 
Опыт внедрения Docker .
 Опыт внедрения Docker .  Опыт внедрения Docker .
Опыт внедрения Docker .
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai Struct
 

More from Pavel Kurochkin

lm-sensors in embedded systems: from schematics to management from linux
lm-sensors in embedded systems: from schematics to management from linuxlm-sensors in embedded systems: from schematics to management from linux
lm-sensors in embedded systems: from schematics to management from linux
Pavel Kurochkin
 
Measuring ethernet traffic parameters
Measuring ethernet traffic parametersMeasuring ethernet traffic parameters
Measuring ethernet traffic parameters
Pavel Kurochkin
 
SoC-powered Linux / Linux-powered SoC
SoC-powered Linux / Linux-powered SoCSoC-powered Linux / Linux-powered SoC
SoC-powered Linux / Linux-powered SoC
Pavel Kurochkin
 
Лекция 4: измерения в Е1
Лекция 4: измерения в Е1Лекция 4: измерения в Е1
Лекция 4: измерения в Е1
Pavel Kurochkin
 
Лекция 3: оптические сети. Обзор
Лекция 3: оптические сети. ОбзорЛекция 3: оптические сети. Обзор
Лекция 3: оптические сети. Обзор
Pavel Kurochkin
 
Лекция 2: Ethernet L1, L2. Обзор
Лекция 2: Ethernet L1, L2. ОбзорЛекция 2: Ethernet L1, L2. Обзор
Лекция 2: Ethernet L1, L2. Обзор
Pavel Kurochkin
 
Лекция 1: обзор канала E1
Лекция 1: обзор канала E1Лекция 1: обзор канала E1
Лекция 1: обзор канала E1
Pavel Kurochkin
 
Вводная лекция
Вводная лекцияВводная лекция
Вводная лекция
Pavel Kurochkin
 

More from Pavel Kurochkin (8)

lm-sensors in embedded systems: from schematics to management from linux
lm-sensors in embedded systems: from schematics to management from linuxlm-sensors in embedded systems: from schematics to management from linux
lm-sensors in embedded systems: from schematics to management from linux
 
Measuring ethernet traffic parameters
Measuring ethernet traffic parametersMeasuring ethernet traffic parameters
Measuring ethernet traffic parameters
 
SoC-powered Linux / Linux-powered SoC
SoC-powered Linux / Linux-powered SoCSoC-powered Linux / Linux-powered SoC
SoC-powered Linux / Linux-powered SoC
 
Лекция 4: измерения в Е1
Лекция 4: измерения в Е1Лекция 4: измерения в Е1
Лекция 4: измерения в Е1
 
Лекция 3: оптические сети. Обзор
Лекция 3: оптические сети. ОбзорЛекция 3: оптические сети. Обзор
Лекция 3: оптические сети. Обзор
 
Лекция 2: Ethernet L1, L2. Обзор
Лекция 2: Ethernet L1, L2. ОбзорЛекция 2: Ethernet L1, L2. Обзор
Лекция 2: Ethernet L1, L2. Обзор
 
Лекция 1: обзор канала E1
Лекция 1: обзор канала E1Лекция 1: обзор канала E1
Лекция 1: обзор канала E1
 
Вводная лекция
Вводная лекцияВводная лекция
Вводная лекция
 

Sama5d3: how to run linux on it

  • 1. Павел Курочкин General R&D, 2017 Запускаем Linux на sama5d3 “Оживляем” ARM SoC + NAND
  • 2. Павел Курочкин General R&D, 2017 О чём пойдёт речь? ● Минимальная схема ● Компоненты загрузки ARM-а ● Про NAND и PMECC ● Тулчейн, сборка rootfs ● Прошивка NAND через USB ● Адаптация под плату 2
  • 3. Павел Курочкин General R&D, 2017 Минимальная схема 3 SAM a5d3NAND SDRAM UART/ DBGU USB
  • 4. Павел Курочкин General R&D, 2017 SAM a5d3 ● Atmel, теперь Microchip ● Up to 536 MHz ● Cortex-A5, ARMv7 hard float ● Gigabit Ethernet, USB, UARTs, I2C, etc… ● NAND, SD, etc.. ● TRNG, Encryption Engine 4
  • 5. Павел Курочкин General R&D, 2017 Процесс загрузки 1. Boot rom 2. bootstrap/preloader -- up to 128K 3. u-boot 4. Linux kernel + rootfs Храним на NAND’е 5
  • 6. Павел Курочкин General R&D, 2017 NAND + PMECC ● 4016 из 4096 без ошибок ● 2048B + 64B OOB для ECC ● Корр. 4 байта из 2048 ● Конфигурируется при прошивке NAND 6 Корр. биты ECC байты для блока 512 байт 2 4 4 7 8 13 12 20 24 39
  • 7. Павел Курочкин General R&D, 2017 Тулчейн ● Debian 8 ● gcc-gnueabi-armhf-gcc тулчейн из репозитория EmDebian ● Make ● Linaro toolchain тоже подходит 7
  • 8. Павел Курочкин General R&D, 2017 rootfs ● Debian 8 ● qemu-debootstrap для сборки rootfs ● mkfs.ubifs + ubinize для сборки ubi-образа 8
  • 9. Павел Курочкин General R&D, 2017 sam-ba: прошивка NAND (GUI) ● USB ● Sam-ba 2.13 ● Помним про PMECC ● at91bootstrap.bin ● at91-sama5d3.dtb ● u-boot.bin ● zImage ● rootfs 9
  • 10. Павел Курочкин General R&D, 2017 sam-ba: прошивка NAND (CLI) ● https://github.com/linux4sam/meta-atmel ● Shell + tcl ● ~ 1 MB/s 10
  • 11. Павел Курочкин General R&D, 2017 Адаптируем под плату: bootstrap ● Настройка памяти ● Внутренний/внешний RC-осциллятор ● PMECC ● Тип загрузки: сразу ядро или u-boot ● C ● https://github.com/linux4sam/at91bootstrap 11
  • 12. Павел Курочкин General R&D, 2017 Адаптируем под плату: u-boot ● Выбираем нужную периферию ● PMECC ● Адреса dtb, zImage ● Адрес u-boot environment’а ● Параметры загрузки ядра ● C ● https://github.com/linux4sam/u-boot-at91 12
  • 13. Павел Курочкин General R&D, 2017 Адаптируем под плату: kernel ● PMECC ● dts/dtb: за основу берём sama5d3-xplained ● Включаем поддержку UBI ● Стартовый config: sama5-defconfig ● https://github.com/linux4sam/linux-at91 13
  • 14. Павел Курочкин General R&D, 2017 U-boot enviroment ... bootargs=console=ttyS0,115200n8 earlyprintk mtdparts=atmel_nand:256k(bs)ro,512k(uboot)ro,256k(env),256k(env1), 256k(spare),512k(dtb),6M(kernel)ro,-(rootfs) rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs rw bootcmd=nand read 0x21000000 0x180000 0x80000;nand read 0x22000000 0x200000 0x600000;bootz 0x22000000 - 0x21000000 ... 14
  • 15. Павел Курочкин General R&D, 2017 Грабли ● Trimffs при прошивке ubi rootfs ● Внутренний/внешний осциллятор ● systemd 15
  • 16. Павел Курочкин General R&D, 2017 Итого ● Минималистичное окружение (debian forever) ○ apt-get install binfmt-support qemu qemu-user-static mtd-utils debootstrap ○ apt-get install crossbuild-essential-armhf ○ apt-get install mtd-tools ● sam-ba для прошивки ● PMECC для NAND 16
  • 17. Павел Курочкин General R&D, 2017 Ссылки ● https://github.com/linux4sam/at91bootstrap ● https://github.com/linux4sam/u-boot-at91 ● https://github.com/linux4sam/linux-at91 ● http://www.at91.com/linux4sam/bin/view/Linux4SAM/ 17