The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Проект по созданию открытого компилятора для Qualcomm Hexagon DSP

22.04.2018 22:40

Георг Готз (George Hotz), получивший известность разработкой способов обхода ограничений на установку дополнительного ПО на iPhone и Sony PlayStation 3, основал проект по разработке открытого компилятора и инструментария для современных DSP Hexagon, поставляемых в SoC Snapdragon компании Qualcomm. Для старых моделей Hexagon V4 и V5 доступен открытый инструментарий на базе GCC, но для новых серий Hexagon V60 поставляется только проприетарный Hexagon DSP SDK, основанный на LLVM (в LLVM 6.0 имеется штатный бэкенд генерации кода с поддержкой v60, v62 и v65, но отсутствует runtime и компоновщик).

  1. Главная ссылка к новости (https://github.com/geohot/open...)
  2. OpenNews: Урегулировано судебное разбирательство Sony против исследователя, опубликовавшего закрытые ключи
  3. OpenNews: Sony добилась удаления из сети информации о цифровой подписи Sony PlayStation 3
  4. OpenNews: Sony подала в суд на исследователя, взломавшего цифровую подпись приставки PlayStation 3
  5. OpenNews: Представлен неофициальный метод установки альтернативных ОС на PlayStation 3
  6. OpenNews: Извлечение ключей устройств Qualcomm для атаки на зашифрованные разделы в Android
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/48476-dsp
Ключевые слова: dsp, llvm, qualcomm, hexagon
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (25) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 22:52, 22/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    >основанный на LLVM

    Пермиссивные лицензии просто замечательны.

     
     
  • 2.3, llvm (?), 00:23, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • –7 +/
    угу - поэтому у нас есть (open source, между прочим) кодогенератор для этих dsp, а вы тратьте свое время на reverse engineering того, что нафиг никому не упало.

    (у нас нет opensource версии линкера и рантайма - lld такое не умеет, но мы вполне счастливы не получать ненужных знаний и не поддерживать еще и в нем такую возможность, у нас есть чем заняться)

     
     
  • 3.14, Аноним (-), 09:48, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > у нас есть чем заняться

    типа комменты на опеннете строчить?

     
  • 3.25, Аноним (-), 02:59, 24/04/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >  угу - поэтому у нас есть (open source, между прочим) кодогенератор для этих dsp

    А в новости кое-что другое утверждается.

    > только проприетарный Hexagon DSP SDK, основанный на LLVM

    Собственно причина по которой LLVM тулчейнов следует избегать - никогда не знаешь когда тебя кинут.

    > (у нас нет opensource версии линкера и рантайма

    Мозгов у фанов BSDL нет - нахваливают всяких имельцев.

     
     
  • 4.29, Аноним (-), 10:55, 25/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    чукча не читатель?

    >в LLVM 6.0 имеется штатный бэкенд генерации кода с поддержкой v60, v62 и v65, но отсутствует runtime и компоновщик

     
     
  • 5.30, llvm (?), 15:21, 26/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    тот чукча читатель, но непониматель - ни что такое "SDK", ни что этот самый бэкэнд он и использует, вместе со всем остальным llvm.

     
  • 2.13, Аноним (-), 09:42, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Забыл тег сарказм.
     
     
  • 3.21, Аноним (-), 13:11, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А вот у благородных англичан по дефолту включен этот тег!
     

  • 1.2, Сергей (??), 23:40, 22/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Что это за процессор, зачем он нужен, какая архитектура, первый раз о нем слышу, и мало что понятно, можно, пожалуйста, подробностей?
     
     
  • 2.4, Аноним (-), 00:56, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +12 +/
    VLIW процессор, старые версии не поддерживали (но это не точно) целочисленные вычисления. В современных системах Qualcomm два таких процессора. На одном из них работает код модема. Другой предназначен для приложений. Обычно, правда, неподписанные приложения он не выполняет.

    Самое известное приложение - Google Camera, в которой алгоритмы (склейка панорам, HDR) реализованы для этого процессора. На телефонах, где этот сопроцессор доступен (старшая серия Snapdragon), Google Camera поддерживает режим HDR+, когда одна картинка делается из восьми фото, в итоге без засветов на ярком солнце, и хорошо работает на контрастных сценах ночью. На остальных обычно используется от четырёх до шести кадров, и надо ждать несколько секунд, пока обработается.

    Зачем он нужен - интересный вопрос. У Qualcomm очень быстрый GPU, и если выкинуть DSP и поставить туда дополнительный L2 кэш - можно и на CPU получить достаточную производительность для обработки картинок. Вероятно, развивают по принципу "ну раз уж сделали - не выкидывать же теперь".

    Подробности, в принципе, на официальном сайте доступны.

     
     
  • 3.6, Аноним (-), 02:13, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Обычно, правда, неподписанные приложения он не выполняет.

    Анон, брат, уточни немного как здесь устроено. Или кинь ссылкой где почитать.

     
     
  • 4.7, Аноним (-), 04:08, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +7 +/
    https://www.qualcomm.com/news/onq/2017/01/17/secure-boot-and-image-authenticat

    В теории - код в TrustZone проверяет подпись программы для DSP. По хорошему, он должен сначала замапить эту память, как недоступную для изменения со стороны Linux Kernel, чтобы после проверки подписи нельзя было подменить её.

    Патч от GeoHot патчит кое-что, не связанное с этим - в программе-загрузчике для DSP убирает проверку на тестовый режим, что отключает дальнейшую проверку подписей. А вот почему это вообще возможно - непонятно. Сама программа-загрузчик должна быть подписана, и подпись не совпадёт после патча. Скорее всего, на устройстве, которое он использовал (OnePlus что-то?) проверка подписей отключена в принципе. Или ой.

     
     
  • 5.26, Аноним (-), 03:02, 24/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > В теории - код в TrustZone проверяет подпись программы для DSP. По
    > хорошему, он должен сначала замапить эту память, как недоступную для изменения
    > со стороны Linux Kernel,

    А что квалкому мешает просто проверять подпись kernel и грузить только kernel которые ведут себя правильно? Это слишком просто и логично было?

    Впрочем, снос цифровых загородок от квалкома это вообще фича а не баг.

     

  • 1.11, inferrna (ok), 08:26, 23/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Писать конпелятор для мультимедиа сопроцессора, который суть есть числодробилка  - зачем? NetBSD на нём запускать? Лучше бы нашёлся кто бы под него (да и не тольк под него) открытый hdr алгоритм написал уровня gcam.
     
     
  • 2.12, пох (?), 08:55, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты не поверишь - на нем (на старых версиях) можно (было, по крайней мере) запустить линукс (ведро, во всяком случае).
    (зачем - а хз. "патамушта магу!")

    собственно, основная польза от компилятора в том, что прежде чем переваривать какие-то числа - надо банально суметь прочитать данные и потом их куда-то записать. А для этого нужна какая-никакая примитивная однозадачная операционная система. С поддержкой fs/взаимодействия с внешим миром хотя бы через serial, и т д. Писать ее на асме для dsp - так себе времяпровождение. Поэтому на ассемблерной вставке будет написан только собственно какой-нибудь бпф и то, вероятно, не весь.

    > кто бы под него (да и не тольк под него) открытый hdr алгоритм написал уровня gcam.

    пиши, кто тебе не дает?

     
     
  • 3.18, inferrna (ok), 10:08, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > нужна какая-никакая примитивная однозадачная операционная система

    из педивикии:
    > Both Hexagon (QDSP6) and pre-Hexagon (QDSP5) cores are used in modern Qualcomm SoCs

    там, на этих SoCs, ажно целый многозадачный ведроид запускается, зачем что-то ещё городить? Есть закрытый конпелятор для некой архитектуры, которая, не факт, что не устареет через год-два - нафига тратить время на реверсинг конпелятора под неё? Я ещё понимаю, писать реализацию OpenCL для r600 - всё-таки она крутится у юзеров прямо в рантайме. Но этот-то - нужен только девелоперам: раз сконпелировал и забыл, работать будет у всех. Единственный смысл - если старые версии проприетарного конпелятора не поддерживают новые ведроиды, а новый не поддерживает старое железо, а очень хочется новое на старом - и то теряется после выхода Oreo.
    > пиши, кто тебе не дает?

    Занят. А тут, судя по новости, кому-то заняться явно не чем.

     
     
  • 4.27, пох (?), 14:57, 24/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > там, на этих SoCs, ажно целый многозадачный ведроид запускается, зачем что-то ещё городить?

    срочно высылай cv в квалком - возможно, им нужен ты, в качестве эффективного менеджера, который лучше них знает, что городить.
    А так - в некоторых soc их аж три. (правда, только один доступен извне)

    ведроиды тут совершенно ни с какого боку, компилятор не на них запускается, и результат компилежа тоже, они с ним только через (аппаратный) интерфейс контактируют.

     
  • 2.15, Аноним (-), 09:52, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Писать конпелятор для мультимедиа сопроцессора, который суть есть числодробилка  - зачем?
    >Лучше бы нашёлся кто бы под него (да и не тольк под него) открытый hdr алгоритм написал

    Чудак-человек, ну а этот самый открытый HDR как без конпелятора компелировать?

     
     
  • 3.16, inferrna (ok), 09:54, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Закрытым конпелятором, который вполне себе доступен для скачивания.
     
     
  • 4.17, Аноним (-), 09:57, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нафига тогда тебе открытый алгоритм HDR, если привык блобъём пользоваться?
     
     
  • 5.19, inferrna (ok), 10:12, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Нафига тогда тебе открытый алгоритм HDR, если привык блобъём пользоваться?

    Алгоритм - вещь универсальная, конпелятор - утилитарная. Написанный раз хдр алгоритм будет работать на множестве устройств и позволит копеечным сяоми снимать на уровне пикселя, будет постоянно совершенствоваться и останется в веках. Конпелятор лишь сделает чуть удобнее жизнь паре разработчиков, и то, лишь на год-два, пока квалком не выкатит новую версию DSP.

     
     
  • 6.28, Аноним (-), 04:16, 25/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Алгоритм - вещь универсальная, конпелятор - утилитарная.

    Однако без канпелятора алгоритм не сканпилишь, а когда проприетарная дрянь диктует архитектуру, версию либ и проч - это, извините, булшит и делает жизнь значительно менее удобной. Потому что вместо того чтобы писать алгоритм - приходится строиться под причуды каких-то пропертариев.

     
  • 5.20, Аноним (-), 12:56, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    нафига тебе компьютер - если ты привык блобъем в биосе пользоваться :)
     
     
  • 6.22, Аноним (-), 13:14, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Нафига тебе девка, если ты к мамкиной сиське привык

    (Ставить "тире" вместо запятой - это ж каким надмозгом надо быть!)

     
  • 6.24, Аноним (-), 16:01, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я в Биосе не работаю, не сподручно как-то. Предпочитаю в GNU/Linux + прикладное СПО
     

  • 1.23, Аноним (-), 14:09, 23/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Работает, но под каждый смартфон патч нужно менять (везде код разных версий), и работает только из командной строки - непонятно как сделать хук ioctl() из libc без LD_PRELOAD.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру