Skip to content
README.md 1.09 KiB
Newer Older
Rodrigo Arias Mallo's avatar
Rodrigo Arias Mallo committed
# NixOS on RISC-V
Rodrigo Arias Mallo's avatar
Rodrigo Arias Mallo committed
To boot the system in QEMU, first enter the development shell:
Rodrigo Arias Mallo's avatar
Rodrigo Arias Mallo committed
```
$ nix develop
```
Rodrigo Arias Mallo's avatar
Rodrigo Arias Mallo committed
Then run the boot script:

```
$ ./boot.sh
```

In u-boot use the following to boot:

```
=> booti 0x84000000 - ${fdtcontroladdr} 
```
## Use more than 1 CPU
With only 1 CPU some thigs are soo slow to work. For example, the ttyS0 device
doesn't arrive on time and the login fails. Or the SSH daemon doesn't start
until the third try. With -smp 32 seems to work ok.

## Compressed instructions

To see if a binary has compressed instructions or not, you can use objdump:

    hut% nix shell -vL nixpkgs#pkgsCross.riscv64.bintools
    hut% objdump -M no-aliases -D result/u-boot | grep 'c\.' | head -5
        80200000:   822a                    c.mv    tp,a0
        80200002:   84ae                    c.mv    s1,a1
        80200018:   52c1                    c.li    t0,-16
        8020001e:   0356                    c.slli  t1,0x15
        80200024:   850a                    c.mv    a0,sp

To dump a ROM without the ELF header:

    hut% objdump -b binary -m riscv:rv64 -M no-aliases -D result/u-boot.bin