Ivaylo Ivanov 3e61800372 lib: nanoprintf: let the compiler use division instructions for divmod
Due to divmod performing division by subtracting in a linear loop,
it's *really* slow. When performing division with larger numbers (like
32-bit addresses), it goes thru massive amounts of iterations and causes
a stall-like appearance.

Instead, let the compiler handle it by using cpu instructions like
UDIV/MSUB for armv8.

Fixes #86.
2026-05-12 15:33:16 +03:00
2025-02-24 10:19:17 +02:00
2022-06-12 17:09:32 +03:00

uniLoader

uniLoader is a minimalistic loader, capable of booting Linux kernels. It can be used as an intermediate bootloader, providing a clean booting environment in case of a forced and buggy bootloader.


Supported Architectures

  • ARMv7
  • ARMv8

Supported Devices

Apple

  • N61AP

Amazon

  • PW3

Google

  • Taimen

Huawei

  • Agassi2

itel

  • P682LPN

Infinix

  • X6710

Nokia

  • Essential

Nothing

  • Tetris

QEMU

  • Virt

Realme

  • RMX3511

Samsung

  • A3XELTE
  • A10
  • A12S
  • A30
  • A33X
  • BEYOND1LTE
  • C1S
  • DREAMLTE
  • G0S
  • GTA4XL
  • HEROLTE
  • J4LTE
  • J5LTE
  • JACKPOTLTE
  • LUCKY7
  • NOBLELTE
  • R0Q
  • R8S
  • STARLTE
  • X1S
  • ZEROFLTE

Sony

  • PSVITA

Volla

  • Algiz

Xiaomi

  • Begonia
  • Blossom
  • Camellia

Make Syntax

make ARCH=$(arch) CROSS_COMPILE=$(toolchain)

Building Example

sudo apt install aarch64-linux-gnu
git clone https://github.com/ivoszbg/uniLoader
cd uniLoader
cp /home/user/linux/arch/arm64/boot/Image blob/Image
cp /home/user/linux/arch/arm64/boot/dts/exynos/exynos8895-dreamlte.dtb blob/dtb
cp /home/user/ramdisk.gz blob/ramdisk
make ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu- dreamlte_defconfig
make ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu-

License

This project is licensed under GPLv2.

Description
No description provided
Readme GPL-2.0 12 MiB
Languages
C 82.6%
C++ 6.1%
Makefile 4.3%
Assembly 2.9%
Yacc 1.8%
Other 2.3%