LinuxQuestions.org
Support LQ: Use code LQ3 and save $3 on Domain Registration
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM
User Name
Password
Slackware - ARM This forum is for the discussion of Slackware ARM.

Notices

Reply
 
Search this Thread
Old 07-01-2014, 02:30 PM   #1
drmozes
Slackware Contributor
 
Registered: Apr 2008
Location: Surrey, England
Distribution: Slackware
Posts: 164

Rep: Reputation: 129Reputation: 129
Slackware ARM -current & 'Kirkwood' devices - must read


In a nut shell, you probably have some work to do if you want your non-(sheeva|guru|openrd) device to work with -current, and the next release of Slackware.

Essentially, the Kernel developers have moved most of the 'built-in' board support from the kernel into the FTDs (Flattened Device Tree) system.
This is good when your device supports it, but given that most of the versions of U-Boot available for the Kirkwood (usually some name about gurus, dreams or fictional martial artist characters) don't actually support FTD, this becomes a new challenge. Even if there is a version of U-Boot for your device, it doesn't mean you fancy risking 'bricking it' (although it's actually pretty easy to recover a bricked Sheevaplug as I found out last weekend when my youngest managed to derail my concentration, which resulted in wiping the firmware and rebooting immediately afterwards).

I'd climbed the mountain of FTD a while ago when I implemented it for the Trimslice, so the ground work is complete. However, the Trimslice has a version of U-Boot that supports supplying FTD to the Kernel.
If your device has not got a suitable U-Boot available, the only other option is to append the DTB to the kernel (cat dtb >> zImage; mkimage ...--> uImage).
This is how I'm currently running -current with Linux 3.15.2 on my SheevaPlug. The approach Debian have taken is to determine (via some platform-specific stuff in /proc) the device and append the appropriate FTD to the zImage.
This I can accommodate in the kernel's 'install/doinst.sh' once I determine a solid way to differentiate devices (/proc/cpuinfo is too generic when using FTD, unfortunately). I should be able to do this for Sheeva, OpenRD and Guruplug (assuming I can convince the owner of the Guru to 'lend' it to me).
The booting of the installer would be set via a 'dialog' script on the x86 after putting 'u-boot-tools' into 'extra' in x86/64.

Does anybody care about any other Kirkwood devices other than those?
Does anybody care about Kirkwood devices at all anymore? ;-)
 
Old 07-02-2014, 11:03 AM   #2
mostlyharmless
Senior Member
 
Registered: Jan 2008
Distribution: Slackware 14.1 (multilib) with kernel 3.15.5
Posts: 1,548
Blog Entries: 12

Rep: Reputation: 177Reputation: 177
I run Slackware ARM on a Kirkwood, a ix2-200; it's my main backup/printserver. I'm running 13.37 on it, though, not -current. I suppose at some point I might need to update the OS, but there has been no need to date. Thanks for the info though.
 
Old 07-03-2014, 09:33 AM   #3
louigi600
Member
 
Registered: Dec 2013
Location: Italy
Distribution: Slackware
Posts: 195

Rep: Reputation: 9
Might be a good thing to have this "Sticky" at the top ... just in case someone misses this important information in the near future.

Stuart: what are the chances that u-boot for the trimslice works for the AC100 ?
 
Old 07-04-2014, 03:15 AM   #4
drmozes
Slackware Contributor
 
Registered: Apr 2008
Location: Surrey, England
Distribution: Slackware
Posts: 164

Original Poster
Rep: Reputation: 129Reputation: 129
Quote:
Originally Posted by louigi600 View Post
Might be a good thing to have this "Sticky" at the top ... just in case someone misses this important information in the near future.

Stuart: what are the chances that u-boot for the trimslice works for the AC100 ?
Each U-Boot is configured specifically for each device. When you build it you specify a board config file.
Therefore the U-Boot binary for the Trimslice will not be of use for anything other than a Trimslice.

The support I added for FDT is around adding the dtb files to the kernel packages, and setting them up to be versionless so a kernel can be upgraded without having to modify the u-boot config (in the same was as the uImage or uinitrd is loaded). The Trimslice needs no further work since its u-boot has support for FDT.

For other devices with U-boot, you may find that they don't boot any kernels past version 3.12 regardless of FDT. I don't recall what the change was in the kernel to cause this, but it affected the 'Plug' computers that had the original Marvell branded u-boot. However, my OpenRD client has the original Marvell branded u-boot and it works fine with Linux 3.15.

If you're not using U-Boot then you'd still need either that alternative boot loader to be upgraded to support FDT (the best choice) or you'd need to append the FDT to the zImage (and in u-boot's case, you'd make the uImage file from the zImage with the appended FDT).

I had what I think is the best idea to handle this. The correct FDT can be supplied as a kernel parameter and the doinst.sh script in the kernel package can handle it correctly without having to rely on some (most likely incorrect) guesses about what the architecture is. I can work around devices that don't need an FDT appending (such as the OpenRD client), and try and guess the device if the kernel parameter isn't present.

I'm not sure this will make a lot of sense if you haven't done any reading about FDT and so on, but it will if you ever upgrade and your kernel spits out that your board isn't supported, or halts at 'Uncompressing Linux.....'.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Slackware ARM 14.1 community supported devices - please update availability info drmozes Slackware - ARM 0 11-23-2013 12:45 AM
Slackware ARM (current) epic mistake: the current Android kernels are kicked out! Darth Vader Slackware 16 08-25-2013 04:36 PM
DVD won't read using slackware-current DonnieP Slackware 3 03-19-2008 08:26 PM
SlackWare-Current & maintenance KenHan Slackware 2 02-08-2003 02:42 PM


All times are GMT -5. The time now is 03:47 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration