aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/bootloaders.scm29
-rw-r--r--gnu/packages/patches/u-boot-nintendo-nes-serial.patch14
3 files changed, 43 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 9abaf0cfec..f848a8c61f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1801,6 +1801,7 @@ dist_patch_DATA = \
%D%/packages/patches/tup-unbundle-dependencies.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/twinkle-bcg729.patch \
+ %D%/packages/patches/u-boot-nintendo-nes-serial.patch \
%D%/packages/patches/u-boot-rockchip-inno-usb.patch \
%D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch \
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 2889a90d54..5f7dfa0f8f 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -802,7 +802,34 @@ it fits within common partitioning schemes.")
(make-u-boot-package "A20-OLinuXino_MICRO" "arm-linux-gnueabihf"))
(define-public u-boot-nintendo-nes-classic-edition
- (make-u-boot-package "Nintendo_NES_Classic_Edition" "arm-linux-gnueabihf"))
+ (let ((base (make-u-boot-package "Nintendo_NES_Classic_Edition"
+ "arm-linux-gnueabihf")))
+ (package
+ (inherit base)
+ ;; Starting with 2019.01, FEL doesn't work anymore on A33.
+ (version "2018.11")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://ftp.denx.de/pub/u-boot/"
+ "u-boot-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0znkwljfwwn4y7j20pzz4ilqw8znphrfxns0x1lwdzh3xbr96z3k"))
+ (patches (search-patches
+ "u-boot-nintendo-nes-serial.patch"))))
+ (description "U-Boot is a bootloader used mostly for ARM boards. It
+also initializes the boards (RAM etc).
+
+This version is for the Nintendo NES Classic Edition. It is assumed that
+you have added a serial port to pins PB0 and PB1 as described on
+@url{https://linux-sunxi.org/Nintendo_NES_Classic_Edition}.
+
+In order to use FEL mode on the device, hold the Reset button on the
+device while it's being turned on (and a while longer).")
+ (native-inputs
+ `(("python" ,python-2)
+ ,@(package-native-inputs base))))))
(define-public u-boot-wandboard
(make-u-boot-package "wandboard" "arm-linux-gnueabihf"))
diff --git a/gnu/packages/patches/u-boot-nintendo-nes-serial.patch b/gnu/packages/patches/u-boot-nintendo-nes-serial.patch
new file mode 100644
index 0000000000..3588236803
--- /dev/null
+++ b/gnu/packages/patches/u-boot-nintendo-nes-serial.patch
@@ -0,0 +1,14 @@
+Date: Sun, 5 Sep 2021 23:24:00 +0200
+Author: Danny Milosavljevic <dannym@scratchpost.org>
+Description: Set console UART to use pins PB0 and PB1.
+--- u-boot-2018.11/configs/Nintendo_NES_Classic_Edition_defconfig.orig 2021-09-05 23:09:15.905846467 +0200
++++ u-boot-2018.11/configs/Nintendo_NES_Classic_Edition_defconfig 2021-09-05 23:12:21.562774694 +0200
+@@ -21,7 +21,7 @@
+ CONFIG_SYS_NAND_OOBSIZE=0x40
+ CONFIG_AXP_DLDO1_VOLT=3300
+ CONFIG_AXP_ELDO2_VOLT=1800
+-CONFIG_CONS_INDEX=5
++CONFIG_CONS_INDEX=1
+ CONFIG_USB_MUSB_GADGET=y
+ CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y
+ CONFIG_USB_FUNCTION_MASS_STORAGE=y