Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ver 1.0.0 #48

Merged
merged 156 commits into from
Sep 29, 2024
Merged

Ver 1.0.0 #48

merged 156 commits into from
Sep 29, 2024

Conversation

Alignof
Copy link
Owner

@Alignof Alignof commented Sep 29, 2024

  • Support IOMMU.
  • Support PCI devices.
  • Update VirtIO structure.
  • Update README.md.
  • Linux successfully booted.

Boot logs

[    0.000000] Linux version 6.9.0 (takana@archlinux) (riscv64-unknown-linux-gnu-gcc (g2ee5e430018) 12.2.0, GNU ld (GNU Binutils) 2.39) #1 SMP Mon Jul  8 20:24:52 JST 2024
[    0.000000] random: crng init done
[    0.000000] Machine model: riscv-virtio,qemu
[    0.000000] SBI specification v2.0 detected
[    0.000000] SBI implementation ID=0x4 Version=0x400
[    0.000000] SBI TIME extension detected
[    0.000000] SBI IPI extension detected
[    0.000000] SBI RFENCE extension detected
[    0.000000] SBI DBCN extension detected
[    0.000000] efi: UEFI not found.
[    0.000000] INITRD: 0x88000000+0x0ff68000 is not a memory region - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000090000000-0x000000009fffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000090000000-0x000000009fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000090000000-0x000000009fffffff]
[    0.000000] riscv: base ISA extensions acdfhim
[    0.000000] riscv: ELF capabilities acdfim
[    0.000000] percpu: Embedded 22 pages/cpu s49400 r8192 d32520 u90112
[    0.000000] Kernel command line: root=/dev/vda rw console=ttyS0
[    0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64512
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] Virtual kernel memory layout:
[    0.000000]       fixmap : 0xff1bfffffea00000 - 0xff1bffffff000000   (6144 kB)
[    0.000000]       pci io : 0xff1bffffff000000 - 0xff1c000000000000   (  16 MB)
[    0.000000]      vmemmap : 0xff1c000000000000 - 0xff20000000000000   (1024 TB)
[    0.000000]      vmalloc : 0xff20000000000000 - 0xff60000000000000   (16384 TB)
[    0.000000]      modules : 0xffffffff01587000 - 0xffffffff80000000   (2026 MB)
[    0.000000]       lowmem : 0xff60000000000000 - 0xff60000010000000   ( 256 MB)
[    0.000000]       kernel : 0xffffffff80000000 - 0xffffffffffffffff   (2047 MB)
[    0.000000] Memory: 218596K/262144K available (9600K kernel code, 4955K rwdata, 4096K rodata, 2249K init, 499K bss, 43548K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=1.
[    0.000000] rcu: 	RCU debug extended QS entry/exit.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] RCU Tasks Trace: Setting shift to 0 and lim to 1 rcu_task_cb_adjust=1.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] riscv-intc: 64 local interrupts mapped
[    0.000000] riscv: providing IPIs using SBI IPI extension
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[    0.000098] sched_clock: 64 bits at 10MHz, resolution 100ns, wraps every 4398046511100ns
[    0.000251] riscv-timer: Timer interrupt in S-mode is available via sstc extension
[    0.010865] Console: colour dummy device 80x25
[    0.012775] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=40000)
[    0.012941] pid_max: default: 32768 minimum: 301
[    0.014329] LSM: initializing lsm=capability
[    0.016377] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.016417] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.052169] riscv: ELF compat mode supported
[    0.052944] ASID allocator using 16 bits (65536 entries)
[    0.054472] rcu: Hierarchical SRCU implementation.
[    0.054520] rcu: 	Max phase no-delay instances is 1000.
[    0.059274] EFI services will not be available.
[    0.061540] smp: Bringing up secondary CPUs ...
[    0.062814] smp: Brought up 1 node, 1 CPU
[    0.075678] devtmpfs: initialized
[    0.086079] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.086277] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.088605] pinctrl core: initialized pinctrl subsystem
[    0.095311] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.104536] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.105012] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.105374] audit: initializing netlink subsys (disabled)
[    0.109495] thermal_sys: Registered thermal governor 'step_wise'
[    0.110399] audit: type=2000 audit(0.096:1): state=initialized audit_enabled=0 res=1
[    0.111093] cpuidle: using governor menu
[    0.135530] cpu0: Ratio of byte access time to unaligned word access is 7.56, unaligned accesses are fast
[    0.156970] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.157023] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    0.162348] ACPI: Interpreter disabled.
[    0.162917] iommu: Default domain type: Translated
[    0.162968] iommu: DMA domain TLB invalidation policy: strict mode
[    0.165582] SCSI subsystem initialized
[    0.167816] usbcore: registered new interface driver usbfs
[    0.168088] usbcore: registered new interface driver hub
[    0.168327] usbcore: registered new device driver usb
[    0.170051] Advanced Linux Sound Architecture Driver Initialized.
[    0.183055] vgaarb: loaded
[    0.187096] clocksource: Switched to clocksource riscv_clocksource
[    0.190502] pnp: PnP ACPI: disabled
[    0.214299] NET: Registered PF_INET protocol family
[    0.215303] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.220563] tcp_listen_portaddr_hash hash table entries: 128 (order: 0, 4096 bytes, linear)
[    0.220667] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.220735] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.220892] TCP bind hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    0.221194] TCP: Hash tables configured (established 2048 bind 2048)
[    0.222383] UDP hash table entries: 256 (order: 2, 24576 bytes, linear)
[    0.222672] UDP-Lite hash table entries: 256 (order: 2, 24576 bytes, linear)
[    0.223894] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.227775] RPC: Registered named UNIX socket transport module.
[    0.227842] RPC: Registered udp transport module.
[    0.227857] RPC: Registered tcp transport module.
[    0.227869] RPC: Registered tcp-with-tls transport module.
[    0.227882] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.228045] PCI: CLS 0 bytes, default 64
[    0.236108] workingset: timestamp_bits=46 max_order=16 bucket_order=0
[    0.240770] NFS: Registering the id_resolver key type
[    0.241769] Key type id_resolver registered
[    0.241808] Key type id_legacy registered
[    0.242232] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.242342] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.243123] 9p: Installing v9fs 9p2000 file system support
[    0.244818] NET: Registered PF_ALG protocol family
[    0.245163] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.245299] io scheduler mq-deadline registered
[    0.245368] io scheduler kyber registered
[    0.245477] io scheduler bfq registered
[    0.252150] riscv-plic c000000.plic: mapped 95 interrupts with 1 handlers for 2 contexts.
[    0.256083] pci-host-generic 30000000.pci: host bridge /soc/pci@30000000 ranges:
[    0.256758] pci-host-generic 30000000.pci:       IO 0x0003000000..0x000300ffff -> 0x0000000000
[    0.257203] pci-host-generic 30000000.pci:      MEM 0x0040000000..0x007fffffff -> 0x0040000000
[    0.257272] pci-host-generic 30000000.pci:      MEM 0x0400000000..0x07ffffffff -> 0x0400000000
[    0.257928] pci-host-generic 30000000.pci: Memory resource size exceeds max for 32 bits
[    0.258567] pci-host-generic 30000000.pci: ECAM at [mem 0x30000000-0x3fffffff] for [bus 00-ff]
[    0.260105] pci-host-generic 30000000.pci: PCI host bridge to bus 0000:00
[    0.260372] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.260461] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    0.260511] pci_bus 0000:00: root bus resource [mem 0x40000000-0x7fffffff]
[    0.260529] pci_bus 0000:00: root bus resource [mem 0x400000000-0x7ffffffff]
[    0.262002] pci 0000:00:00.0: [1b36:0008] type 00 class 0x060000 conventional PCI endpoint
[    0.265808] pci 0000:00:01.0: [1af4:1042] type 00 class 0x010000 conventional PCI endpoint
[    0.266019] pci 0000:00:01.0: BAR 1 [mem 0x00000000-0x00000fff]
[    0.266178] pci 0000:00:01.0: BAR 4 [mem 0x00000000-0x00003fff 64bit pref]
[    0.266868] pci 0000:00:02.0: [1b36:0014] type 00 class 0x080600 PCIe Root Complex Integrated Endpoint
[    0.267263] pci 0000:00:02.0: BAR 0 [mem 0x40000000-0x40000fff 64bit]
[    0.271178] pci 0000:00:01.0: BAR 4 [mem 0x400000000-0x400003fff 64bit pref]: assigned
[    0.271442] pci 0000:00:01.0: BAR 1 [mem 0x40000000-0x40000fff]: assigned
[    0.271496] pci 0000:00:02.0: BAR 0 [mem 0x400004000-0x400004fff 64bit]: assigned
[    0.277840] SBI CPPC extension NOT detected!!
[    0.285176] OF: /soc/pci@30000000: no iommu-map translation for id 0x8 on (null)
[    0.287871] virtio-pci 0000:00:01.0: enabling device (0000 -> 0002)
[    0.394463] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.406680] printk: legacy console [ttyS0] disabled
[    0.410435] 10000000.serial: ttyS0 at MMIO 0x10000000 (irq = 13, base_baud = 230400) is a 16550A
[    0.411998] printk: legacy console [ttyS0] enabled
[    0.446282] SuperH (H)SCI(F) driver initialized
[    0.462969] loop: module loaded
[    0.464606] virtio_blk virtio0: 1/0/0 default/read/poll queues
[    0.469163] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks (1.07 GB/1.00 GiB)
[    0.495650] e1000e: Intel(R) PRO/1000 Network Driver
[    0.495925] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.499400] usbcore: registered new interface driver uas
[    0.499785] usbcore: registered new interface driver usb-storage
[    0.500978] mousedev: PS/2 mouse device common for all mice
[    0.504514] goldfish_rtc 101000.rtc: registered as rtc0
[    0.505313] goldfish_rtc 101000.rtc: setting system clock to 2024-09-29T05:55:37 UTC (1727589337)
[    0.509856] suspend: HSM suspend not available
[    0.510845] sdhci: Secure Digital Host Controller Interface driver
[    0.511091] sdhci: Copyright(c) Pierre Ossman
[    0.511563] Synopsys Designware Multimedia Card Interface Driver
[    0.512248] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.513438] usbcore: registered new interface driver usbhid
[    0.513738] usbhid: USB HID core driver
[    0.518903] NET: Registered PF_INET6 protocol family
[    0.526387] Segment Routing with IPv6
[    0.526791] In-situ OAM (IOAM) with IPv6
[    0.527393] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    0.531454] NET: Registered PF_PACKET protocol family
[    0.532923] 9pnet: Installing 9P2000 support
[    0.533402] Key type dns_resolver registered
[    0.573960] debug_vm_pgtable: [debug_vm_pgtable         ]: Validating architecture page table helpers
[    0.583507] Legacy PMU implementation is available
[    0.585018] clk: Disabling unused clocks
[    0.585409] PM: genpd: Disabling unused power domains
[    0.585715] ALSA device list:
[    0.585924]   No soundcards found.
[    1.090951] EXT4-fs (vda): recovery complete
[    1.092302] EXT4-fs (vda): mounted filesystem 31499121-730e-4798-b85b-a8e3f2a323f8 r/w with ordered data mode. Quota mode: disabled.
[    1.093424] VFS: Mounted root (ext4 filesystem) on device 254:0.
[    1.185213] devtmpfs: mounted
[    1.227951] Freeing unused kernel image (initmem) memory: 2248K
[    1.229094] Run /sbin/init as init process
mount: mounting none on /sys failed: No such file or directory
mdev: /sys/dev: No such file or directory

Please press Enter to activate this console.
~ #

Alignof and others added 30 commits September 4, 2024 18:18
Refactor VirtIO implementation
@Alignof Alignof self-assigned this Sep 29, 2024
@Alignof Alignof merged commit 27a1567 into master Sep 29, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant