From mboxrd@z Thu Jan 1 00:00:00 1970 From: Danny Milosavljevic Subject: Re: ARM: Installation and Booting; was: Re: GuixSD on ARM; Date: Thu, 14 Jul 2016 00:22:13 +0200 Message-ID: <20160714002213.41c4fe2c@scratchpost.org> References: <5f0fbebb97ed071ef040f4bb0e3f046c@d4n1.org> <87vb0a10ys.fsf@elephly.net> <20160713111136.645c3248@scratchpost.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:46703) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNSY1-00022R-Aj for guix-devel@gnu.org; Wed, 13 Jul 2016 18:22:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bNSXv-00006Z-9m for guix-devel@gnu.org; Wed, 13 Jul 2016 18:22:27 -0400 Received: from dd1012.kasserver.com ([85.13.128.8]:57341) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bNSXu-00006B-Vv for guix-devel@gnu.org; Wed, 13 Jul 2016 18:22:23 -0400 In-Reply-To: <20160713111136.645c3248@scratchpost.org> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ricardo Wurmus , Daniel Pimentel , guix-devel@gnu.org Work-in-progress gnu/packages/u-boot.scm : ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2016 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages u-boot) #:use-module (guix download) #:use-module (guix packages) #:use-module ((guix licenses) #:select (gpl2)) #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages python) #:use-module (gnu packages bison) ; for DTC #:use-module (gnu packages flex) ; for DTC #:use-module (srfi srfi-1) #:use-module ((srfi srfi-1) #:select (last))) ;; FIXME move somewhere more fitting ;; FIXME add https://launchpad.net/ubuntu/+archive/primary/+files/device-tr= ee-compiler_1.4.0+dfsg-2ubuntu1.diff.gz (massive amount of patches) (define-public device-tree-compiler (package (name "device-tree-compiler") (version "1.4.0") (source (origin (method url-fetch) ;; or (uri (string-append "https://launchpad.net/ubuntu/+archive/pri= mary/+files/" "device-tree-compiler_" version "+dfsg.ori= g.tar.gz")) (sha256 (base32 "0hzsqkpbgl73fblpnaiczirgwn0hapa7z478xjy6vvkqljpa3ygm")) (modules '((guix build utils))) (snippet '(substitute* "Makefile" (("/usr/bin/install") "install"))))) (home-page "https://git.kernel.org/cgit/utils/dtc/dtc.git") (synopsis "Compiles Device Tree Source Files (.dts)") (description "dtc compiles Device Tree Source Files to Device Tree Bina= ry Files.=20 These are hardware (board) description files (used by Linux and BSD).") (license gpl2) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) ("flex" ,flex))) (arguments `(#:make-flags `("CC=3Dgcc" ,(string-append "HOME=3D" (assoc-ref %outp= uts "out"))) ; Note: or patch out PREFIX #:phases (modify-phases %standard-phases (delete 'configure)))))) (define u-boot (package (name "u-boot") (version "2016.07") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.denx.de/pub/u-boot/u-boot-" ver= sion ".tar.bz2")) (sha256 (base32 "0lqj4ckmfqiap8mc6z2d5albs3g2h5mzccbn60hsgxhabhibfkwp")))) (home-page "http://www.denx.de/wiki/U-Boot/") (synopsis "ARM Universal Bootloader") (description "FIXME") (license gpl2) (native-inputs `(("python" ,python) ; FIXME required version? ("device-tree-compiler" ,device-tree-compiler))) (build-system gnu-build-system) (arguments ; FIXME #:tests? #f `(#:make-flags '("HOSTCC=3Dgcc") ; ignored? #:phases (modify-phases %standard-phases (replace 'configure (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (parts (string-split (basename out) #\-)) (nameparts (cdddr parts)) (name (string-join nameparts "-")) (configprefix (string-take name (string-index-r= ight name #\-))) (configname (string-append configprefix "_defco= nfig")) #| example: A20-OLinuXino-Lime2_defconfig |#) (system* "echo" configname) (zero? (system* "make" "HOSTCC=3Dgcc" configname)) )))))))) (define-public u-boot-A20-OLinuXino-Lime2 (package (inherit u-boot) (name "u-boot-A20-OLinuXino-Lime2"))) ; something should: ; - create boot.cmd ; - run mkimage -C none -A arm -T script -d boot.cmd boot.scr=20 ; - put boot.scr on the first partition ; - dd if=3Du-boot-sunxi-with-spl.bin of=3D/dev/sdX bs=3D1024 seek=3D8 ; ^^^ better make sure no partition is there (or just a dummy partition)