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