Jump to content

    

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

Скажите пожалуйста, есть ли в природе 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this