Jump to content

    
Sign in to follow this  
embddr

Полный little-endian на ядре e500 (Freescale QorIQ)

Recommended Posts

Скажите пожалуйста, есть ли в природе LE ядро Linux для PowerPC e500 (Freescale 85хх, QorIQ)? Или никто не заморачивается? Просто есть много софта, зависящего от LE, а переписывать не очень хочется. Переписывать ядро под LE еще больше не хочется (ядро делаю я, а софт не я :rolleyes: ), поэтому ищу готовый вариант.

Share this post


Link to post
Share on other sites

Я думаю, что софту глубоко безразлично в какой ендиановости работает ядро, т.е. другими словами можно запускать ядро Big Endian, а софт в Little Endian. Плюс есть возможность в MMU настраивать выбранные странички на трансляцию LE -> BE.

 

И вот еще презентуха на тему, правда сам не смотрел еще,

http://www.power.org/devcon/07/Session_Dow...nz_20070910.pdf

 

UPD: Посмотрел эту презентуху, ну вобщем все правильные слова там вроде бы сказаны, т.е. проблема ендиановости обычно возникает только при обращении к памяти и только если размер транзакции больше чем 1 байт. Для коры e500 решается средствами MMU (слайд 22).

Edited by _SY_

Share this post


Link to post
Share on other sites
Я думаю, что софту глубоко безразлично в какой ендиановости работает ядро, т.е. другими словами можно запускать ядро Big Endian, а софт в Little Endian. Плюс есть возможность в MMU настраивать выбранные странички на трансляцию LE -> BE.

 

Про это я в курсе, только в ядре я не нашел поддержки комбинирования страниц LE и BE, там все жестко на BE. Может не там смотрел?

 

И мне кажется, что софту вовсе не безразлично, BE ядро или LE. Хотя, применительно к e500 с поддержкой переключения "ендиановости" в ядре ОС, таки да, действительно все равно (я надеюсь).

Edited by embddr

Share this post


Link to post
Share on other sites
Про это я в курсе, только в ядре я не нашел поддержки комбинирования страниц LE и BE, там все жестко на BE. Может не там смотрел?

Я попробовал спросить у линуксоидов, только четкого ответа они мне пока дали. По моему мнению, врядли программа сама будет настраивать себе странички, т.е. это должно быть в ядре.

Но с другой стороны ядро которое есть - оно чисто BE и никаких там LE никто не положил. Вобщем, надо подумать как это сделать. Напишу может автору презентухи письмо.

 

И мне кажется, что софту вовсе не безразлично, BE ядро или LE. Хотя, применительно к e500 с поддержкой переключения "ендиановости" в ядре ОС, таки да, действительно все равно (я надеюсь).

Еще раз - "ендиановость" имеет смысл обсуждать только при обращении к памяти и только в некоторых конкретных случаях. В какой моде работает с памятью само ядро - софту должно быть безразлично, в моем понимании. Главное чтобы сам софт понимал, что байты в память сохраняются не в той последовательности, в которой это обычно бывает в случае LE. В некоторых случаях софт вообще может не заменить, в какой ендиановости работает.

Если конкретно говорить, то допустим какой-нибудь драйвер PCI карточки просто будет работать и все, без всяких заморочек.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this