Commit Graph

136 Commits

Author SHA1 Message Date
8a123d93bf Place environment in U-Boot 2024-08-30 13:03:46 +02:00
93014c68b8 Disable PLIC test for now
Let's focus on the rest of the boot process.
2024-08-30 11:35:32 +02:00
ebcef525ba Update bitstream to try to fix delegation (again) 2024-08-29 13:44:11 +02:00
2371ac2fda Switch to rbootrom 2024-08-23 16:06:21 +02:00
44de310116 Switch to ox_u55c_f6b4a076 bitstream 2024-08-23 16:06:21 +02:00
Rodrigo Arias Mallo
b7287bd4df Port supervisor PLIC test to OpenSBI 2024-08-21 09:25:07 +02:00
Rodrigo Arias Mallo
60631ec37f Enable SEIE in MIE directly from machine mode 2024-08-21 08:00:31 +02:00
Rodrigo Arias Mallo
05eed3af94 Disable MEIE bit in MIE register 2024-08-21 07:56:17 +02:00
Rodrigo Arias Mallo
1419473a08 Dump machine registers in OpenSBI 2024-08-21 07:14:23 +02:00
Rodrigo Arias Mallo
19dbb857c8 Enable MEIP in OpenSBI 2024-08-03 14:55:35 +02:00
Rodrigo Arias Mallo
98f794e52d Enable timer command in U-Boot 2024-08-02 15:27:20 +02:00
Rodrigo Arias Mallo
33fb07481a Add exception enable U-Boot command 2024-08-02 13:49:12 +02:00
Rodrigo Arias Mallo
055f03980c Add exception sregs command to U-Boot 2024-08-02 13:18:18 +02:00
Rodrigo Arias Mallo
995b1e3848 Delegate external interrupts to U-Boot 2024-08-02 12:15:47 +02:00
Rodrigo Arias Mallo
038d2e7156 Try opensbi without supervisor ext delegation 2024-08-01 20:22:57 +02:00
eee26f2b4d More experiments with OpenSBI 1.5 with debug 2024-07-15 11:02:27 +02:00
9fac87a00e Move FDT to 0xc0000000 2024-07-12 18:59:48 +02:00
8725d04533 Switch OpenSBI to generic 2024-07-12 18:53:16 +02:00
fc7bfddd64 Switch to openpiton configuration 2024-07-12 18:47:48 +02:00
80c93613d2 Try FDT address 0x80013000 2024-07-12 18:40:39 +02:00
d3779d0f95 Revert serial address and move FDT 2024-07-12 18:28:43 +02:00
9a7b230b5b Rollback to OpenSBI 1.4 2024-07-12 18:07:25 +02:00
983dc939ab Move the FDT to 0x80100000 2024-07-12 14:43:09 +02:00
722f185525 Add timer debug patch for OpenSBI 2024-07-12 13:25:03 +02:00
83df8edd28 Switch to fpga/openpiton in OpenSBI 2024-07-12 12:44:21 +02:00
dc8a8c2ce9 Build OpenSBI with the generic platform 2024-07-12 12:20:03 +02:00
8c2b28cf21 Enable systemd debug log and all-in-order 2024-07-12 10:50:28 +02:00
c23d33a51c Update to OpenSBI 1.5 2024-07-12 09:34:45 +02:00
9f6f8bcddc Don't use DTB in U-Boot, read it from OpenSBI 2024-07-11 16:05:05 +02:00
1a15ddc0e7 Restore support for huge pages 2024-07-11 15:37:41 +02:00
b7dba89d63 Reduce RAM to 768 MiB to avoid a memory problem 2024-07-10 18:04:11 +02:00
28efecdbc7 Enable U-Boot mtest command 2024-07-10 17:32:58 +02:00
31f8557799 Open interactive shell on start 2024-07-10 14:20:39 +02:00
b7d02f867a Disable support for huge pages 2024-07-10 14:19:49 +02:00
4c2e21033b Try tracing handle_page_fault 2024-07-10 13:02:43 +02:00
9ee8fb06dc Try again the fill test but with all-in-order 2024-07-10 12:21:24 +02:00
93936cbe14 Trace function graph after a page fault 2024-07-10 11:34:40 +02:00
91080535f8 Add fill mode in memtool 2024-07-10 11:05:20 +02:00
813e7cae2f Increase memtool max block size to 512 K 2024-07-09 20:58:55 +02:00
9ed8f812c8 Make our own init script
The problem with the Stage 1 script is that is spawning another tee
process to forward the output to the console, but this is not required.
So let's only keep the memtool running by creating our own init script.
2024-07-09 20:54:55 +02:00
c6726cce28 Reduce blocksize in memtool to 64K
Let's see if we can hang a bit later on.
2024-07-09 17:58:12 +02:00
4707a8b143 Simplify boot parameters and document options 2024-07-09 17:27:07 +02:00
b8f1ca672f Run the memtool as first program 2024-07-09 17:25:48 +02:00
d488c0b3b7 Always run memtool at the start 2024-07-09 17:06:50 +02:00
f617efdcac Add memtool program to test the memory 2024-07-09 15:16:05 +02:00
82630f3eef Enable CONFIG_BUG again
It doesn't seem to make any difference, and it would be good in case it
catches a bug.
2024-07-09 12:35:53 +02:00
5b34b3b97b Add csrtool to view and change CSR registers 2024-07-08 19:19:05 +02:00
bef5a6eac5 Disable CONFIG_BUG
It may be causing a loop on WARN_ON_ONCE() and page fults trying to
write to the console.
2024-07-08 18:27:29 +02:00
5f90528b51 Add bootrom support 2024-07-08 18:11:11 +02:00
66ec07a0cb Switch to two uarts bitstream 2024-07-08 13:48:20 +02:00
1f0ac64631 Add bitstream to Nix 2024-07-08 13:46:37 +02:00
6721e1e22c Revert "Try to use openpiton based OpenSBI config"
This reverts commit 931244a355.
2024-07-08 10:03:48 +02:00
931244a355 Try to use openpiton based OpenSBI config
The seem to be doing PLIC initialization based on the device tree, which
may be relevant as that is where we are defining the interruptions.
2024-07-08 09:49:34 +02:00
87b4c91813 Dump stack trace on hvc_remove 2024-07-08 08:55:50 +02:00
b903eae7e5 Disable ftrace for now as it hangs the boot 2024-07-05 16:24:51 +02:00
7e6fdff142 Disable proactive compation
I see a lot of kcompactd0 entries in sched_switch log, so disable it for
now.
2024-07-05 15:57:18 +02:00
32f4d117db Only enable sched_switch events
As sched_stat_runtime is flooding the console.
2024-07-05 15:37:50 +02:00
bc05dc2676 Mount debugfs first 2024-07-05 15:36:42 +02:00
934b67ac0b Trace sched events from stage1
Events from the kthread that dumps the buffer to the console are
filtered, otherwise we make an infinite loop.
2024-07-05 15:36:42 +02:00
f509a0a517 Enable ftrace at boot
For now we only show init calls.
2024-07-05 15:36:37 +02:00
504c4aca3c Make the counter silent by spawning another shell 2024-07-05 12:57:10 +02:00
48688594bf Add a heartbeat counter to check the kernel 2024-07-05 12:45:32 +02:00
d541462b4c Stop in the stage 1 debug shell 2024-07-04 17:28:15 +02:00
9b37e2aed0 Use the hvc0 console for the kernel 2024-07-04 17:27:43 +02:00
471207c64a Allow access to all memory from userspace
> If this option is disabled, you allow userspace (root) access to all
> of memory, including kernel and userspace memory

Currently is failing:

    ~ # cat /proc/iomem
    40001000-400010ff : serial
    60000000-7fffffff : Reserved
    80000000-ffefffff : System RAM
      80201000-81fa0b87 : Kernel image
        80201000-80cb177f : Kernel code
        81400000-819fffff : Kernel rodata
        81c00000-81f18747 : Kernel data
        81f19000-81fa0b87 : Kernel bss
    100000000-1bfffffff : namespace0.0

    ~ # devmem 0x40001000
    devmem: mmap: Operation not permitted
2024-07-04 12:45:41 +02:00
4826396962 Try enabling polling in the serial console 2024-07-04 11:39:35 +02:00
b1755354d0 Add support for ftrace at boot time 2024-07-03 19:36:38 +02:00
427859818c Disable SMP
The IPI extension is being used to multiplex IPI interruptions and we
don't need it as we only have one CPU.
2024-07-03 19:31:30 +02:00
30703d1715 Use the ttyS0 device for the console
For now it seems to be outputting the log properly, but it doesn't read
anything in the initrd input console.
2024-07-03 16:09:38 +02:00
d7669671f6 Enable 8250 console driver 2024-07-03 14:09:52 +02:00
7c25f76f8b Bake the git commit inside the uboot env file 2024-07-03 14:09:48 +02:00
2442bdf3f5 Disable lock torture test 2024-07-03 13:44:02 +02:00
93e83f52e8 Add busybox patch to see debug lines: initrd sh ok
The switch_root command seems to hang in the execv() syscall.
2024-07-03 13:43:41 +02:00
109dea5b4e Enable kernel and busybox debug
Continues to hang in switch_root and no luck trying to send a magic
sysrq via serial port.
2024-07-01 18:00:54 +02:00
917cbf3439 Revert to upstream busybox 2024-07-01 14:53:08 +02:00
65c7eca2c8 Fix OpenSBI configuration for newer versions
OpenSBI 1.3 an newer require the heap_size to be specified in the
sbi_platform structure, othewise the default 0 value causes a hangg at
the start. I found the problem after bisecting OpenSBI:

  # Bisect opensbi
  version = src.shortRev;
  src = builtins.fetchGit {
    url = "file:///home/Computational/rarias/riscv/opensbi";
    #rev = "908be1b85c8ff0695ea226fbbf0ff24a779cdece"; #good
    #rev = "6bc02dede86c47f87e65293b7099e9caf3b22c29"; #good
    #rev = "bbff53fe3b6cdd3c9bc084d489640d7ee2a3f831"; #bad
    #rev = "8b99a7f7d8294be29e18a667d51e13755ed2c0e0"; #good
    #rev = "bdde2ecd27af1ac158669809f6658376fb5137ab"; #good
    #rev = "5cf9a540164a018a31a679578a27eb964af0340d"; #good
    #rev = "2a04f7037317c6c5b591b160a074c700de9b3378"; #bad
    rev = "40d36a6673131e36075b1df78af4d7ab92e8cc01"; #bad
  };
2024-07-01 13:28:32 +02:00
14f6528318 Use upstream u-boot and disable debug logs 2024-07-01 12:10:19 +02:00
67fedf4651 Remove unused dtb compilation in OpenSBI 2024-07-01 11:51:20 +02:00
a7e1a6a100 Go back to default gcc for the kernel 2024-07-01 11:30:12 +02:00
33b227f576 Hangs in swtich_root in stage1 2024-07-01 10:14:39 +02:00
2cefcef63d Make busybox static
Now the problem is inside the busybox binary:

[   43.028000] Run /init as init process
[   43.033300]   with arguments:
[   43.037260]     /init
[   43.040000]   with environment:
[   43.044180]     HOME=/
[   43.047600]     TERM=linux
[   43.078020] init[1]: unhandled signal 4 code 0x1 at 0x0000000000010660 in busybox[10000+22d000]
[   43.090080] CPU: 0 PID: 1 Comm: init Not tainted 6.1.62 #1-NixOS
[   43.097580] Hardware name: Barcelona Supercomputing Center - Lagarto Ox (NixOS) (DT)
[   43.106480] epc : 0000000000010660 ra : 0000000000000000 sp : 0000003fd5489db0
[   43.114780]  gp : ffffffff8197ea48 tp : 0000000000000000 t0 : 0000000000000000
[   43.123080]  t1 : 0000000000000000 t2 : 0000000000000000 s0 : 0000000000000000
[   43.131340]  s1 : 0000000000000000 a0 : 0000000000000000 a1 : 0000000000000000
[   43.139620]  a2 : 0000000000000000 a3 : 0000000000000000 a4 : 0000000000000000
[   43.147900]  a5 : 0000000000000000 a6 : 0000000000000000 a7 : 0000000000000000
[   43.156180]  s2 : 0000000000000000 s3 : 0000000000000000 s4 : 0000000000000000
[   43.164860]  s5 : 0000000000000000 s6 : 0000000000000000 s7 : 0000000000000000
[   43.173140]  s8 : 0000000000000000 s9 : 0000000000000000 s10: 0000000000000000
[   43.181420]  s11: 0000000000000000 t3 : 0000000000000000 t4 : 0000000000000000
[   43.189680]  t5 : 0000000000000000 t6 : 0000000000000000
[   43.196040] status: 0000000200004020 badaddr: 00000000034000ef cause: 0000000000000002
[   43.208240] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004
[   43.216340] CPU: 0 PID: 1 Comm: init Not tainted 6.1.62 #1-NixOS
[   43.222940] Hardware name: Barcelona Supercomputing Center - Lagarto Ox (NixOS) (DT)
[   43.231100] Call Trace:
[   43.234000] [<ffffffff800070c4>] dump_backtrace+0x38/0x48
[   43.240140] [<ffffffff809f063c>] show_stack+0x50/0x68
[   43.245900] [<ffffffff809fd1f8>] dump_stack_lvl+0x60/0x84
[   43.252000] [<ffffffff809fd23c>] dump_stack+0x20/0x30
[   43.257740] [<ffffffff809f0918>] panic+0x160/0x390
[   43.263200] [<ffffffff80020184>] do_exit+0xa70/0xa78
[   43.268820] [<ffffffff800203a4>] do_group_exit+0x44/0xb0
[   43.274780] [<ffffffff80031eec>] get_signal+0x9b4/0xa00
[   43.280700] [<ffffffff80005ca0>] do_work_pending+0x18c/0x610
[   43.287020] [<ffffffff80003880>] resume_userspace_slow+0x10/0x14
[   43.293960] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004 ]---
2024-06-28 15:08:53 +02:00
fc4b8126f6 Document memory layout 2024-06-28 10:39:10 +02:00
a8f3234031 Reached working U-Boot prompt
The serial compatible string must be "ns16550" to be recognized by
U-Boot.
2024-06-27 17:58:21 +02:00
72b4788888 Reached U-Boot console with FDT parsing error 2024-06-27 16:08:30 +02:00
1bfc32e91a Working OpenSBI 1.2 2024-06-27 11:29:15 +02:00
c8efa952f9 Add configuration for Lagarto Ox 2024-06-25 11:11:05 +02:00