HiFive Unmatched board delivered today. I will report progress here about porting and running Haiku on real hardware.
I made some initial tests, preinstalled Linux on SD card is running fine. Power supply is not delivered yet so I currently use power supply from main development PC with Haiku and Linux installed.
I tried to run Haiku from USB. Something is wrong with kernel UART.
It’s a fun board to develop on
Just a reminder for EFI, https://review.haiku-os.org/c/haiku/+/3880 helps the debug output on the UART work. It’s not a good “final” solution, but will get you what you’re looking for
After fixing Sifive UART driver I found that program stops at setting MMU page table. The same code is working fine on QEMU (I made setting SATP register earlier and added additional identity mappings so UART is accessible at physical address).
Testing is currently quite annoying. I need to shutdown development PC, unplug power cable from it, plug it to RISC-V and turn it on. When I want to change code, I need to plug power cable back to development PC. Power supply is ordered at 2021.07.01 at Amazon, but still not delivered. Amazon says that it should come until Friday (2021.07.09).
UART:
kind: sifive
regs: 0x10010000, 0x1000
irq: 39
clock: 0
kernel:
text: 0xffffffc002010000, 0x17e000
data: 0xffffffc00218e000, 0x59000
entry: 0xffffffc0020935ae
Kernel stack at 0xffffffc0025dc000
System provided memory map:
phys: 0x80000000, virt: 0x80000000, size: 0x40000, bootServicesData, attrs: 0x8
phys: 0x80040000, virt: 0x80040000, size: 0x7eb6000, conventionalMemory, attrs: 0x8
phys: 0x87ef6000, virt: 0x87ef6000, size: 0x14000, ACPIReclaimMemory, attrs: 0x8
phys: 0x87f0a000, virt: 0x87f0a000, size: 0x741cc000, conventionalMemory, attrs: 0x8
phys: 0xfc0d6000, virt: 0xfc0d6000, size: 0x25e9000, loaderData, attrs: 0x8
phys: 0xfe6bf000, virt: 0xfe6bf000, size: 0x58000, loaderCode, attrs: 0x8
phys: 0xfe717000, virt: 0xfe717000, size: 0x7000, reservedMemoryType, attrs: 0x8
phys: 0xfe71e000, virt: 0xfe71e000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe71f000, virt: 0xfe71f000, size: 0x1000, runtimeServicesData, attrs: 0x8000000000000008
phys: 0xfe720000, virt: 0xfe720000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe722000, virt: 0xfe722000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe723000, virt: 0xfe723000, size: 0x3000, runtimeServicesData, attrs: 0x8000000000000008
phys: 0xfe726000, virt: 0xfe726000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe727000, virt: 0xfe727000, size: 0x4000, runtimeServicesData, attrs: 0x8000000000000008
phys: 0xfe72b000, virt: 0xfe72b000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe72c000, virt: 0xfe72c000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe72d000, virt: 0xfe72d000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe72e000, virt: 0xfe72e000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe730000, virt: 0xfe730000, size: 0x2000, reservedMemoryType, attrs: 0x8
phys: 0xfe732000, virt: 0xfe732000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe733000, virt: 0xfe733000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe734000, virt: 0xfe734000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe735000, virt: 0xfe735000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe736000, virt: 0xfe736000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe737000, virt: 0xfe737000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe738000, virt: 0xfe738000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe73a000, virt: 0xfe73a000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe73b000, virt: 0xfe73b000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe73d000, virt: 0xfe73d000, size: 0x1826000, loaderData, attrs: 0x8
phys: 0xfff63000, virt: 0xfff63000, size: 0x1000, runtimeServicesCode, attrs: 0x8000000000000008
phys: 0xfff64000, virt: 0xfff64000, size: 0x9c000, loaderData, attrs: 0x8
phys: 0x100000000, virt: 0x100000000, size: 0x380000000, bootServicesData, attrs: 0x8
physMemRange: 0x80040000, 0x7ffc0000
MapRange(0xffffffff80040000 - 0xffffffffffffffff, 0x80040000 - 0xffffffff, 0x7ffc0000)
Boot loader:
MapRange(0xfc0d6000 - 0xfe6befff, 0xfc0d6000 - 0xfe6befff, 0x25e9000)
MapRange(0xfe6bf000 - 0xfe716fff, 0xfe6bf000 - 0xfe716fff, 0x58000)
MapRange(0xfe73d000 - 0xfff62fff, 0xfe73d000 - 0xfff62fff, 0x1826000)
MapRange(0xfff64000 - 0xffffffff, 0xfff64000 - 0xffffffff, 0x9c000)
EFI runtime services:
MapRange(0xfe71f000 - 0xfe71ffff, 0xfe71f000 - 0xfe71ffff, 0x1000)
MapRange(0xfe723000 - 0xfe725fff, 0xfe723000 - 0xfe725fff, 0x3000)
MapRange(0xfe727000 - 0xfe72afff, 0xfe727000 - 0xfe72afff, 0x4000)
MapRange(0xfff63000 - 0xfff63fff, 0xfff63000 - 0xfff63fff, 0x1000)
Regions:
MapRange(0xfc6bf000 - 0xfc6befff, 0x0 - 0xffffffffffffffff, 0x0)
MapRange(0xffffffc0025dc000 - 0xffffffc0025e0fff, 0xfc0d6000 - 0xfc0dafff, 0x5000)
MapRange(0xffffffc0025cc000 - 0xffffffc0025dbfff, 0xfc0db000 - 0xfc0eafff, 0x10000)
MapRange(0xffffffc0025c8000 - 0xffffffc0025cbfff, 0xfc0eb000 - 0xfc0eefff, 0x4000)
MapRange(0xffffffc0025c1000 - 0xffffffc0025c7fff, 0xfc0ef000 - 0xfc0f5fff, 0x7000)
MapRange(0xffffffc0025b4000 - 0xffffffc0025c0fff, 0xfc0f6000 - 0xfc102fff, 0xd000)
MapRange(0xffffffc0025a4000 - 0xffffffc0025b3fff, 0xfc103000 - 0xfc112fff, 0x10000)
MapRange(0xffffffc002593000 - 0xffffffc0025a3fff, 0xfc113000 - 0xfc123fff, 0x11000)
MapRange(0xffffffc00253b000 - 0xffffffc002592fff, 0xfc124000 - 0xfc17bfff, 0x58000)
MapRange(0xffffffc002532000 - 0xffffffc00253afff, 0xfc17c000 - 0xfc184fff, 0x9000)
MapRange(0xffffffc002522000 - 0xffffffc002531fff, 0xfc185000 - 0xfc194fff, 0x10000)
MapRange(0xffffffc00251c000 - 0xffffffc002521fff, 0xfc195000 - 0xfc19afff, 0x6000)
MapRange(0xffffffc0024fc000 - 0xffffffc00251bfff, 0xfc19b000 - 0xfc1bafff, 0x20000)
MapRange(0xffffffc0024ec000 - 0xffffffc0024fbfff, 0xfc1bb000 - 0xfc1cafff, 0x10000)
MapRange(0xffffffc0024c7000 - 0xffffffc0024ebfff, 0xfc1cb000 - 0xfc1effff, 0x25000)
MapRange(0xffffffc0024bf000 - 0xffffffc0024c6fff, 0xfc1f0000 - 0xfc1f7fff, 0x8000)
MapRange(0xffffffc0024a5000 - 0xffffffc0024befff, 0xfc1f8000 - 0xfc211fff, 0x1a000)
MapRange(0xffffffc00249f000 - 0xffffffc0024a4fff, 0xfc212000 - 0xfc217fff, 0x6000)
MapRange(0xffffffc00248f000 - 0xffffffc00249efff, 0xfc218000 - 0xfc227fff, 0x10000)
MapRange(0xffffffc002489000 - 0xffffffc00248efff, 0xfc228000 - 0xfc22dfff, 0x6000)
MapRange(0xffffffc002473000 - 0xffffffc002488fff, 0xfc22e000 - 0xfc243fff, 0x16000)
MapRange(0xffffffc00246e000 - 0xffffffc002472fff, 0xfc244000 - 0xfc248fff, 0x5000)
MapRange(0xffffffc00246b000 - 0xffffffc00246dfff, 0xfc249000 - 0xfc24bfff, 0x3000)
MapRange(0xffffffc002466000 - 0xffffffc00246afff, 0xfc24c000 - 0xfc250fff, 0x5000)
MapRange(0xffffffc002462000 - 0xffffffc002465fff, 0xfc251000 - 0xfc254fff, 0x4000)
MapRange(0xffffffc002452000 - 0xffffffc002461fff, 0xfc255000 - 0xfc264fff, 0x10000)
MapRange(0xffffffc00244c000 - 0xffffffc002451fff, 0xfc265000 - 0xfc26afff, 0x6000)
MapRange(0xffffffc002436000 - 0xffffffc00244bfff, 0xfc26b000 - 0xfc280fff, 0x16000)
MapRange(0xffffffc002427000 - 0xffffffc002435fff, 0xfc281000 - 0xfc28ffff, 0xf000)
MapRange(0xffffffc002417000 - 0xffffffc002426fff, 0xfc290000 - 0xfc29ffff, 0x10000)
MapRange(0xffffffc002403000 - 0xffffffc002416fff, 0xfc2a0000 - 0xfc2b3fff, 0x14000)
MapRange(0xffffffc0023ff000 - 0xffffffc002402fff, 0xfc2b4000 - 0xfc2b7fff, 0x4000)
MapRange(0xffffffc0023f9000 - 0xffffffc0023fefff, 0xfc2b8000 - 0xfc2bdfff, 0x6000)
MapRange(0xffffffc0023f4000 - 0xffffffc0023f8fff, 0xfc2be000 - 0xfc2c2fff, 0x5000)
MapRange(0xffffffc0023f1000 - 0xffffffc0023f3fff, 0xfc2c3000 - 0xfc2c5fff, 0x3000)
MapRange(0xffffffc0023ed000 - 0xffffffc0023f0fff, 0xfc2c6000 - 0xfc2c9fff, 0x4000)
MapRange(0xffffffc0023e4000 - 0xffffffc0023ecfff, 0xfc2ca000 - 0xfc2d2fff, 0x9000)
MapRange(0xffffffc0023d8000 - 0xffffffc0023e3fff, 0xfc2d3000 - 0xfc2defff, 0xc000)
MapRange(0xffffffc0023bc000 - 0xffffffc0023d7ce9, 0xfc2df000 - 0xfc2face9, 0x1bcea)
MapRange(0xffffffc0023ae000 - 0xffffffc0023bb1ff, 0xfc2fb000 - 0xfc3081ff, 0xd200)
MapRange(0xffffffc002350000 - 0xffffffc0023adfff, 0xfc309000 - 0xfc366fff, 0x5e000)
MapRange(0xffffffc002340000 - 0xffffffc00234ffff, 0xfc367000 - 0xfc376fff, 0x10000)
MapRange(0xffffffc00232c000 - 0xffffffc00233ffff, 0xfc377000 - 0xfc38afff, 0x14000)
MapRange(0xffffffc00231f000 - 0xffffffc00232bfff, 0xfc38b000 - 0xfc397fff, 0xd000)
MapRange(0xffffffc00231b000 - 0xffffffc00231efff, 0xfc398000 - 0xfc39bfff, 0x4000)
MapRange(0xffffffc002317000 - 0xffffffc00231afff, 0xfc39c000 - 0xfc39ffff, 0x4000)
MapRange(0xffffffc002314000 - 0xffffffc002316fff, 0xfc3a0000 - 0xfc3a2fff, 0x3000)
MapRange(0xffffffc002311000 - 0xffffffc002313fff, 0xfc3a3000 - 0xfc3a5fff, 0x3000)
MapRange(0xffffffc00230f000 - 0xffffffc002310fff, 0xfc3a6000 - 0xfc3a7fff, 0x2000)
MapRange(0xffffffc0022ff000 - 0xffffffc00230efff, 0xfc3a8000 - 0xfc3b7fff, 0x10000)
MapRange(0xffffffc0022f1000 - 0xffffffc0022fefff, 0xfc3b8000 - 0xfc3c5fff, 0xe000)
MapRange(0xffffffc0022ee000 - 0xffffffc0022f0fff, 0xfc3c6000 - 0xfc3c8fff, 0x3000)
MapRange(0xffffffc0022ec000 - 0xffffffc0022edfff, 0xfc3c9000 - 0xfc3cafff, 0x2000)
MapRange(0xffffffc0022e5000 - 0xffffffc0022ebfff, 0xfc3cb000 - 0xfc3d1fff, 0x7000)
MapRange(0xffffffc0022cf000 - 0xffffffc0022e4fff, 0xfc3d2000 - 0xfc3e7fff, 0x16000)
MapRange(0xffffffc0022bf000 - 0xffffffc0022cefff, 0xfc3e8000 - 0xfc3f7fff, 0x10000)
MapRange(0xffffffc0022b2000 - 0xffffffc0022befff, 0xfc3f8000 - 0xfc404fff, 0xd000)
MapRange(0xffffffc0022b0000 - 0xffffffc0022b1fff, 0xfc405000 - 0xfc406fff, 0x2000)
MapRange(0xffffffc0022ae000 - 0xffffffc0022affff, 0xfc407000 - 0xfc408fff, 0x2000)
MapRange(0xffffffc0022a5000 - 0xffffffc0022ad56b, 0xfc409000 - 0xfc41156b, 0x856c)
MapRange(0xffffffc00226f000 - 0xffffffc0022a4fff, 0xfc412000 - 0xfc447fff, 0x36000)
MapRange(0xffffffc00226b000 - 0xffffffc00226efff, 0xfc448000 - 0xfc44bfff, 0x4000)
MapRange(0xffffffc002261000 - 0xffffffc00226afff, 0xfc44c000 - 0xfc455fff, 0xa000)
MapRange(0xffffffc002255000 - 0xffffffc002260fff, 0xfc456000 - 0xfc461fff, 0xc000)
MapRange(0xffffffc002213000 - 0xffffffc0022541ab, 0xfc462000 - 0xfc4a31ab, 0x411ac)
MapRange(0xffffffc0021e7000 - 0xffffffc00221255f, 0xfc4a4000 - 0xfc4cf55f, 0x2b560)
MapRange(0xffffffc002010000 - 0xffffffc0021e6fff, 0xfc4d0000 - 0xfc6a6fff, 0x1d7000)
MapRange(0xffffffc002000000 - 0xffffffc00200ffff, 0xfc6a7000 - 0xfc6b6fff, 0x10000)
MapRange(0xffffffc0025e1000 - 0xffffffc0025e4fff, 0xfc6b7000 - 0xfc6bafff, 0x4000)
MapRange(0xffffffc0025e5000 - 0xffffffc0025e8fff, 0xfc6bb000 - 0xfc6befff, 0x4000)
Devices:
MapRange(0xffffffc0025e9000 - 0xffffffc0025f8fff, 0x2000000 - 0x200ffff, 0x10000)
MapRange(0xffffffc0025f9000 - 0xffffffc0065f8fff, 0xc000000 - 0xfffffff, 0x4000000)
MapRange(0x10010000 - 0x10010fff, 0x10010000 - 0x10010fff, 0x1000)
MapRange(0xffffffc0065f9000 - 0xffffffc0065f9fff, 0x10010000 - 0x10010fff, 0x1000)
SATP: 0x80000000000fc0d5
Calling ExitBootServices. So long, EFI!
Switched to legacy serial output
[PRE] SetSatp()
I made it work by a bit different way: serial output use UEFI boot services stdout and after switching to “legacy mode”, it switch to Sifive UART using the same driver as in kernel.
I also hacked QEMU “virt” machine to use Sifive UART instead of ns16550a.
Coalesced page table dump:
UART:
kind: sifive
regs: 0x10010000, 0x1000
irq: 39
clock: 0
kernel:
text: 0xffffffc002010000, 0x17e000
data: 0xffffffc00218e000, 0x59000
entry: 0xffffffc0020935ae
Kernel stack at 0xffffffc0025dc000
System provided memory map:
phys: 0x80000000, virt: 0x80000000, size: 0x40000, bootServicesData, attrs: 0x8
phys: 0x80040000, virt: 0x80040000, size: 0x7eb6000, conventionalMemory, attrs: 0x8
phys: 0x87ef6000, virt: 0x87ef6000, size: 0x14000, ACPIReclaimMemory, attrs: 0x8
phys: 0x87f0a000, virt: 0x87f0a000, size: 0x741cb000, conventionalMemory, attrs: 0x8
phys: 0xfc0d5000, virt: 0xfc0d5000, size: 0x25e9000, loaderData, attrs: 0x8
phys: 0xfe6be000, virt: 0xfe6be000, size: 0x59000, loaderCode, attrs: 0x8
phys: 0xfe717000, virt: 0xfe717000, size: 0x7000, reservedMemoryType, attrs: 0x8
phys: 0xfe71e000, virt: 0xfe71e000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe71f000, virt: 0xfe71f000, size: 0x1000, runtimeServicesData, attrs: 0x8000000000000008
phys: 0xfe720000, virt: 0xfe720000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe722000, virt: 0xfe722000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe723000, virt: 0xfe723000, size: 0x3000, runtimeServicesData, attrs: 0x8000000000000008
phys: 0xfe726000, virt: 0xfe726000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe727000, virt: 0xfe727000, size: 0x4000, runtimeServicesData, attrs: 0x8000000000000008
phys: 0xfe72b000, virt: 0xfe72b000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe72c000, virt: 0xfe72c000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe72d000, virt: 0xfe72d000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe72e000, virt: 0xfe72e000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe730000, virt: 0xfe730000, size: 0x2000, reservedMemoryType, attrs: 0x8
phys: 0xfe732000, virt: 0xfe732000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe733000, virt: 0xfe733000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe734000, virt: 0xfe734000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe735000, virt: 0xfe735000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe736000, virt: 0xfe736000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe737000, virt: 0xfe737000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe738000, virt: 0xfe738000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe73a000, virt: 0xfe73a000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe73b000, virt: 0xfe73b000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe73d000, virt: 0xfe73d000, size: 0x1826000, loaderData, attrs: 0x8
phys: 0xfff63000, virt: 0xfff63000, size: 0x1000, runtimeServicesCode, attrs: 0x8000000000000008
phys: 0xfff64000, virt: 0xfff64000, size: 0x9c000, loaderData, attrs: 0x8
phys: 0x100000000, virt: 0x100000000, size: 0x380000000, bootServicesData, attrs: 0x8
physMemRange: 0x80040000, 0x7ffc0000
MapRange(0xffffffff80040000 - 0xffffffffffffffff, 0x80040000 - 0xffffffff, 0x7ffc0000)
Boot loader:
MapRange(0xfc0d5000 - 0xfe6bdfff, 0xfc0d5000 - 0xfe6bdfff, 0x25e9000)
MapRange(0xfe6be000 - 0xfe716fff, 0xfe6be000 - 0xfe716fff, 0x59000)
MapRange(0xfe73d000 - 0xfff62fff, 0xfe73d000 - 0xfff62fff, 0x1826000)
MapRange(0xfff64000 - 0xffffffff, 0xfff64000 - 0xffffffff, 0x9c000)
EFI runtime services:
MapRange(0xfe71f000 - 0xfe71ffff, 0xfe71f000 - 0xfe71ffff, 0x1000)
MapRange(0xfe723000 - 0xfe725fff, 0xfe723000 - 0xfe725fff, 0x3000)
MapRange(0xfe727000 - 0xfe72afff, 0xfe727000 - 0xfe72afff, 0x4000)
MapRange(0xfff63000 - 0xfff63fff, 0xfff63000 - 0xfff63fff, 0x1000)
Regions:
MapRange(0xfc6be000 - 0xfc6bdfff, 0x0 - 0xffffffffffffffff, 0x0)
MapRange(0xffffffc0025dc000 - 0xffffffc0025e0fff, 0xfc0d5000 - 0xfc0d9fff, 0x5000)
MapRange(0xffffffc0025cc000 - 0xffffffc0025dbfff, 0xfc0da000 - 0xfc0e9fff, 0x10000)
MapRange(0xffffffc0025c8000 - 0xffffffc0025cbfff, 0xfc0ea000 - 0xfc0edfff, 0x4000)
MapRange(0xffffffc0025c1000 - 0xffffffc0025c7fff, 0xfc0ee000 - 0xfc0f4fff, 0x7000)
MapRange(0xffffffc0025b4000 - 0xffffffc0025c0fff, 0xfc0f5000 - 0xfc101fff, 0xd000)
MapRange(0xffffffc0025a4000 - 0xffffffc0025b3fff, 0xfc102000 - 0xfc111fff, 0x10000)
MapRange(0xffffffc002593000 - 0xffffffc0025a3fff, 0xfc112000 - 0xfc122fff, 0x11000)
MapRange(0xffffffc00253b000 - 0xffffffc002592fff, 0xfc123000 - 0xfc17afff, 0x58000)
MapRange(0xffffffc002532000 - 0xffffffc00253afff, 0xfc17b000 - 0xfc183fff, 0x9000)
MapRange(0xffffffc002522000 - 0xffffffc002531fff, 0xfc184000 - 0xfc193fff, 0x10000)
MapRange(0xffffffc00251c000 - 0xffffffc002521fff, 0xfc194000 - 0xfc199fff, 0x6000)
MapRange(0xffffffc0024fc000 - 0xffffffc00251bfff, 0xfc19a000 - 0xfc1b9fff, 0x20000)
MapRange(0xffffffc0024ec000 - 0xffffffc0024fbfff, 0xfc1ba000 - 0xfc1c9fff, 0x10000)
MapRange(0xffffffc0024c7000 - 0xffffffc0024ebfff, 0xfc1ca000 - 0xfc1eefff, 0x25000)
MapRange(0xffffffc0024bf000 - 0xffffffc0024c6fff, 0xfc1ef000 - 0xfc1f6fff, 0x8000)
MapRange(0xffffffc0024a5000 - 0xffffffc0024befff, 0xfc1f7000 - 0xfc210fff, 0x1a000)
MapRange(0xffffffc00249f000 - 0xffffffc0024a4fff, 0xfc211000 - 0xfc216fff, 0x6000)
MapRange(0xffffffc00248f000 - 0xffffffc00249efff, 0xfc217000 - 0xfc226fff, 0x10000)
MapRange(0xffffffc002489000 - 0xffffffc00248efff, 0xfc227000 - 0xfc22cfff, 0x6000)
MapRange(0xffffffc002473000 - 0xffffffc002488fff, 0xfc22d000 - 0xfc242fff, 0x16000)
MapRange(0xffffffc00246e000 - 0xffffffc002472fff, 0xfc243000 - 0xfc247fff, 0x5000)
MapRange(0xffffffc00246b000 - 0xffffffc00246dfff, 0xfc248000 - 0xfc24afff, 0x3000)
MapRange(0xffffffc002466000 - 0xffffffc00246afff, 0xfc24b000 - 0xfc24ffff, 0x5000)
MapRange(0xffffffc002462000 - 0xffffffc002465fff, 0xfc250000 - 0xfc253fff, 0x4000)
MapRange(0xffffffc002452000 - 0xffffffc002461fff, 0xfc254000 - 0xfc263fff, 0x10000)
MapRange(0xffffffc00244c000 - 0xffffffc002451fff, 0xfc264000 - 0xfc269fff, 0x6000)
MapRange(0xffffffc002436000 - 0xffffffc00244bfff, 0xfc26a000 - 0xfc27ffff, 0x16000)
MapRange(0xffffffc002427000 - 0xffffffc002435fff, 0xfc280000 - 0xfc28efff, 0xf000)
MapRange(0xffffffc002417000 - 0xffffffc002426fff, 0xfc28f000 - 0xfc29efff, 0x10000)
MapRange(0xffffffc002403000 - 0xffffffc002416fff, 0xfc29f000 - 0xfc2b2fff, 0x14000)
MapRange(0xffffffc0023ff000 - 0xffffffc002402fff, 0xfc2b3000 - 0xfc2b6fff, 0x4000)
MapRange(0xffffffc0023f9000 - 0xffffffc0023fefff, 0xfc2b7000 - 0xfc2bcfff, 0x6000)
MapRange(0xffffffc0023f4000 - 0xffffffc0023f8fff, 0xfc2bd000 - 0xfc2c1fff, 0x5000)
MapRange(0xffffffc0023f1000 - 0xffffffc0023f3fff, 0xfc2c2000 - 0xfc2c4fff, 0x3000)
MapRange(0xffffffc0023ed000 - 0xffffffc0023f0fff, 0xfc2c5000 - 0xfc2c8fff, 0x4000)
MapRange(0xffffffc0023e4000 - 0xffffffc0023ecfff, 0xfc2c9000 - 0xfc2d1fff, 0x9000)
MapRange(0xffffffc0023d8000 - 0xffffffc0023e3fff, 0xfc2d2000 - 0xfc2ddfff, 0xc000)
MapRange(0xffffffc0023bc000 - 0xffffffc0023d7ce9, 0xfc2de000 - 0xfc2f9ce9, 0x1bcea)
MapRange(0xffffffc0023ae000 - 0xffffffc0023bb1ff, 0xfc2fa000 - 0xfc3071ff, 0xd200)
MapRange(0xffffffc002350000 - 0xffffffc0023adfff, 0xfc308000 - 0xfc365fff, 0x5e000)
MapRange(0xffffffc002340000 - 0xffffffc00234ffff, 0xfc366000 - 0xfc375fff, 0x10000)
MapRange(0xffffffc00232c000 - 0xffffffc00233ffff, 0xfc376000 - 0xfc389fff, 0x14000)
MapRange(0xffffffc00231f000 - 0xffffffc00232bfff, 0xfc38a000 - 0xfc396fff, 0xd000)
MapRange(0xffffffc00231b000 - 0xffffffc00231efff, 0xfc397000 - 0xfc39afff, 0x4000)
MapRange(0xffffffc002317000 - 0xffffffc00231afff, 0xfc39b000 - 0xfc39efff, 0x4000)
MapRange(0xffffffc002314000 - 0xffffffc002316fff, 0xfc39f000 - 0xfc3a1fff, 0x3000)
MapRange(0xffffffc002311000 - 0xffffffc002313fff, 0xfc3a2000 - 0xfc3a4fff, 0x3000)
MapRange(0xffffffc00230f000 - 0xffffffc002310fff, 0xfc3a5000 - 0xfc3a6fff, 0x2000)
MapRange(0xffffffc0022ff000 - 0xffffffc00230efff, 0xfc3a7000 - 0xfc3b6fff, 0x10000)
MapRange(0xffffffc0022f1000 - 0xffffffc0022fefff, 0xfc3b7000 - 0xfc3c4fff, 0xe000)
MapRange(0xffffffc0022ee000 - 0xffffffc0022f0fff, 0xfc3c5000 - 0xfc3c7fff, 0x3000)
MapRange(0xffffffc0022ec000 - 0xffffffc0022edfff, 0xfc3c8000 - 0xfc3c9fff, 0x2000)
MapRange(0xffffffc0022e5000 - 0xffffffc0022ebfff, 0xfc3ca000 - 0xfc3d0fff, 0x7000)
MapRange(0xffffffc0022cf000 - 0xffffffc0022e4fff, 0xfc3d1000 - 0xfc3e6fff, 0x16000)
MapRange(0xffffffc0022bf000 - 0xffffffc0022cefff, 0xfc3e7000 - 0xfc3f6fff, 0x10000)
MapRange(0xffffffc0022b2000 - 0xffffffc0022befff, 0xfc3f7000 - 0xfc403fff, 0xd000)
MapRange(0xffffffc0022b0000 - 0xffffffc0022b1fff, 0xfc404000 - 0xfc405fff, 0x2000)
MapRange(0xffffffc0022ae000 - 0xffffffc0022affff, 0xfc406000 - 0xfc407fff, 0x2000)
MapRange(0xffffffc0022a5000 - 0xffffffc0022ad56b, 0xfc408000 - 0xfc41056b, 0x856c)
MapRange(0xffffffc00226f000 - 0xffffffc0022a4fff, 0xfc411000 - 0xfc446fff, 0x36000)
MapRange(0xffffffc00226b000 - 0xffffffc00226efff, 0xfc447000 - 0xfc44afff, 0x4000)
MapRange(0xffffffc002261000 - 0xffffffc00226afff, 0xfc44b000 - 0xfc454fff, 0xa000)
MapRange(0xffffffc002255000 - 0xffffffc002260fff, 0xfc455000 - 0xfc460fff, 0xc000)
MapRange(0xffffffc002213000 - 0xffffffc0022541ab, 0xfc461000 - 0xfc4a21ab, 0x411ac)
MapRange(0xffffffc0021e7000 - 0xffffffc00221255f, 0xfc4a3000 - 0xfc4ce55f, 0x2b560)
MapRange(0xffffffc002010000 - 0xffffffc0021e6fff, 0xfc4cf000 - 0xfc6a5fff, 0x1d7000)
MapRange(0xffffffc002000000 - 0xffffffc00200ffff, 0xfc6a6000 - 0xfc6b5fff, 0x10000)
MapRange(0xffffffc0025e1000 - 0xffffffc0025e4fff, 0xfc6b6000 - 0xfc6b9fff, 0x4000)
MapRange(0xffffffc0025e5000 - 0xffffffc0025e8fff, 0xfc6ba000 - 0xfc6bdfff, 0x4000)
Devices:
MapRange(0xffffffc0025e9000 - 0xffffffc0025f8fff, 0x2000000 - 0x200ffff, 0x10000)
MapRange(0xffffffc0025f9000 - 0xffffffc0065f8fff, 0xc000000 - 0xfffffff, 0x4000000)
MapRange(0x10010000 - 0x10010fff, 0x10010000 - 0x10010fff, 0x1000)
MapRange(0xffffffc0065f9000 - 0xffffffc0065f9fff, 0x10010000 - 0x10010fff, 0x1000)
PageTable:
0x10010000 - 0x10010fff: 0x10010000 - 0x10010fff, 0x1000, {valid, read, write}
0xfc0d5000 - 0xfe716fff: 0xfc0d5000 - 0xfe716fff, 0x2642000, {valid, read, write, exec}
0xfe71f000 - 0xfe71ffff: 0xfe71f000 - 0xfe71ffff, 0x1000, {valid, read, write, exec}
0xfe723000 - 0xfe725fff: 0xfe723000 - 0xfe725fff, 0x3000, {valid, read, write, exec}
0xfe727000 - 0xfe72afff: 0xfe727000 - 0xfe72afff, 0x4000, {valid, read, write, exec}
0xfe73d000 - 0xffffffff: 0xfe73d000 - 0xffffffff, 0x18c3000, {valid, read, write, exec}
0xffffffc002000000 - 0xffffffc00200ffff: 0xfc6a6000 - 0xfc6b5fff, 0x10000, {valid, read, write, exec}
0xffffffc002010000 - 0xffffffc0021e6fff: 0xfc4cf000 - 0xfc6a5fff, 0x1d7000, {valid, read, write, exec}
0xffffffc0021e7000 - 0xffffffc002212fff: 0xfc4a3000 - 0xfc4cefff, 0x2c000, {valid, read, write, exec}
0xffffffc002213000 - 0xffffffc002254fff: 0xfc461000 - 0xfc4a2fff, 0x42000, {valid, read, write, exec}
0xffffffc002255000 - 0xffffffc002260fff: 0xfc455000 - 0xfc460fff, 0xc000, {valid, read, write, exec}
0xffffffc002261000 - 0xffffffc00226afff: 0xfc44b000 - 0xfc454fff, 0xa000, {valid, read, write, exec}
0xffffffc00226b000 - 0xffffffc00226efff: 0xfc447000 - 0xfc44afff, 0x4000, {valid, read, write, exec}
0xffffffc00226f000 - 0xffffffc0022a4fff: 0xfc411000 - 0xfc446fff, 0x36000, {valid, read, write, exec}
0xffffffc0022a5000 - 0xffffffc0022adfff: 0xfc408000 - 0xfc410fff, 0x9000, {valid, read, write, exec}
0xffffffc0022ae000 - 0xffffffc0022affff: 0xfc406000 - 0xfc407fff, 0x2000, {valid, read, write, exec}
0xffffffc0022b0000 - 0xffffffc0022b1fff: 0xfc404000 - 0xfc405fff, 0x2000, {valid, read, write, exec}
0xffffffc0022b2000 - 0xffffffc0022befff: 0xfc3f7000 - 0xfc403fff, 0xd000, {valid, read, write, exec}
0xffffffc0022bf000 - 0xffffffc0022cefff: 0xfc3e7000 - 0xfc3f6fff, 0x10000, {valid, read, write, exec}
0xffffffc0022cf000 - 0xffffffc0022e4fff: 0xfc3d1000 - 0xfc3e6fff, 0x16000, {valid, read, write, exec}
0xffffffc0022e5000 - 0xffffffc0022ebfff: 0xfc3ca000 - 0xfc3d0fff, 0x7000, {valid, read, write, exec}
0xffffffc0022ec000 - 0xffffffc0022edfff: 0xfc3c8000 - 0xfc3c9fff, 0x2000, {valid, read, write, exec}
0xffffffc0022ee000 - 0xffffffc0022f0fff: 0xfc3c5000 - 0xfc3c7fff, 0x3000, {valid, read, write, exec}
0xffffffc0022f1000 - 0xffffffc0022fefff: 0xfc3b7000 - 0xfc3c4fff, 0xe000, {valid, read, write, exec}
0xffffffc0022ff000 - 0xffffffc00230efff: 0xfc3a7000 - 0xfc3b6fff, 0x10000, {valid, read, write, exec}
0xffffffc00230f000 - 0xffffffc002310fff: 0xfc3a5000 - 0xfc3a6fff, 0x2000, {valid, read, write, exec}
0xffffffc002311000 - 0xffffffc002313fff: 0xfc3a2000 - 0xfc3a4fff, 0x3000, {valid, read, write, exec}
0xffffffc002314000 - 0xffffffc002316fff: 0xfc39f000 - 0xfc3a1fff, 0x3000, {valid, read, write, exec}
0xffffffc002317000 - 0xffffffc00231afff: 0xfc39b000 - 0xfc39efff, 0x4000, {valid, read, write, exec}
0xffffffc00231b000 - 0xffffffc00231efff: 0xfc397000 - 0xfc39afff, 0x4000, {valid, read, write, exec}
0xffffffc00231f000 - 0xffffffc00232bfff: 0xfc38a000 - 0xfc396fff, 0xd000, {valid, read, write, exec}
0xffffffc00232c000 - 0xffffffc00233ffff: 0xfc376000 - 0xfc389fff, 0x14000, {valid, read, write, exec}
0xffffffc002340000 - 0xffffffc00234ffff: 0xfc366000 - 0xfc375fff, 0x10000, {valid, read, write, exec}
0xffffffc002350000 - 0xffffffc0023adfff: 0xfc308000 - 0xfc365fff, 0x5e000, {valid, read, write, exec}
0xffffffc0023ae000 - 0xffffffc0023bbfff: 0xfc2fa000 - 0xfc307fff, 0xe000, {valid, read, write, exec}
0xffffffc0023bc000 - 0xffffffc0023d7fff: 0xfc2de000 - 0xfc2f9fff, 0x1c000, {valid, read, write, exec}
0xffffffc0023d8000 - 0xffffffc0023e3fff: 0xfc2d2000 - 0xfc2ddfff, 0xc000, {valid, read, write, exec}
0xffffffc0023e4000 - 0xffffffc0023ecfff: 0xfc2c9000 - 0xfc2d1fff, 0x9000, {valid, read, write, exec}
0xffffffc0023ed000 - 0xffffffc0023f0fff: 0xfc2c5000 - 0xfc2c8fff, 0x4000, {valid, read, write, exec}
0xffffffc0023f1000 - 0xffffffc0023f3fff: 0xfc2c2000 - 0xfc2c4fff, 0x3000, {valid, read, write, exec}
0xffffffc0023f4000 - 0xffffffc0023f8fff: 0xfc2bd000 - 0xfc2c1fff, 0x5000, {valid, read, write, exec}
0xffffffc0023f9000 - 0xffffffc0023fefff: 0xfc2b7000 - 0xfc2bcfff, 0x6000, {valid, read, write, exec}
0xffffffc0023ff000 - 0xffffffc002402fff: 0xfc2b3000 - 0xfc2b6fff, 0x4000, {valid, read, write, exec}
0xffffffc002403000 - 0xffffffc002416fff: 0xfc29f000 - 0xfc2b2fff, 0x14000, {valid, read, write, exec}
0xffffffc002417000 - 0xffffffc002426fff: 0xfc28f000 - 0xfc29efff, 0x10000, {valid, read, write, exec}
0xffffffc002427000 - 0xffffffc002435fff: 0xfc280000 - 0xfc28efff, 0xf000, {valid, read, write, exec}
0xffffffc002436000 - 0xffffffc00244bfff: 0xfc26a000 - 0xfc27ffff, 0x16000, {valid, read, write, exec}
0xffffffc00244c000 - 0xffffffc002451fff: 0xfc264000 - 0xfc269fff, 0x6000, {valid, read, write, exec}
0xffffffc002452000 - 0xffffffc002461fff: 0xfc254000 - 0xfc263fff, 0x10000, {valid, read, write, exec}
0xffffffc002462000 - 0xffffffc002465fff: 0xfc250000 - 0xfc253fff, 0x4000, {valid, read, write, exec}
0xffffffc002466000 - 0xffffffc00246afff: 0xfc24b000 - 0xfc24ffff, 0x5000, {valid, read, write, exec}
0xffffffc00246b000 - 0xffffffc00246dfff: 0xfc248000 - 0xfc24afff, 0x3000, {valid, read, write, exec}
0xffffffc00246e000 - 0xffffffc002472fff: 0xfc243000 - 0xfc247fff, 0x5000, {valid, read, write, exec}
0xffffffc002473000 - 0xffffffc002488fff: 0xfc22d000 - 0xfc242fff, 0x16000, {valid, read, write, exec}
0xffffffc002489000 - 0xffffffc00248efff: 0xfc227000 - 0xfc22cfff, 0x6000, {valid, read, write, exec}
0xffffffc00248f000 - 0xffffffc00249efff: 0xfc217000 - 0xfc226fff, 0x10000, {valid, read, write, exec}
0xffffffc00249f000 - 0xffffffc0024a4fff: 0xfc211000 - 0xfc216fff, 0x6000, {valid, read, write, exec}
0xffffffc0024a5000 - 0xffffffc0024befff: 0xfc1f7000 - 0xfc210fff, 0x1a000, {valid, read, write, exec}
0xffffffc0024bf000 - 0xffffffc0024c6fff: 0xfc1ef000 - 0xfc1f6fff, 0x8000, {valid, read, write, exec}
0xffffffc0024c7000 - 0xffffffc0024ebfff: 0xfc1ca000 - 0xfc1eefff, 0x25000, {valid, read, write, exec}
0xffffffc0024ec000 - 0xffffffc0024fbfff: 0xfc1ba000 - 0xfc1c9fff, 0x10000, {valid, read, write, exec}
0xffffffc0024fc000 - 0xffffffc00251bfff: 0xfc19a000 - 0xfc1b9fff, 0x20000, {valid, read, write, exec}
0xffffffc00251c000 - 0xffffffc002521fff: 0xfc194000 - 0xfc199fff, 0x6000, {valid, read, write, exec}
0xffffffc002522000 - 0xffffffc002531fff: 0xfc184000 - 0xfc193fff, 0x10000, {valid, read, write, exec}
0xffffffc002532000 - 0xffffffc00253afff: 0xfc17b000 - 0xfc183fff, 0x9000, {valid, read, write, exec}
0xffffffc00253b000 - 0xffffffc002592fff: 0xfc123000 - 0xfc17afff, 0x58000, {valid, read, write, exec}
0xffffffc002593000 - 0xffffffc0025a3fff: 0xfc112000 - 0xfc122fff, 0x11000, {valid, read, write, exec}
0xffffffc0025a4000 - 0xffffffc0025b3fff: 0xfc102000 - 0xfc111fff, 0x10000, {valid, read, write, exec}
0xffffffc0025b4000 - 0xffffffc0025c0fff: 0xfc0f5000 - 0xfc101fff, 0xd000, {valid, read, write, exec}
0xffffffc0025c1000 - 0xffffffc0025c7fff: 0xfc0ee000 - 0xfc0f4fff, 0x7000, {valid, read, write, exec}
0xffffffc0025c8000 - 0xffffffc0025cbfff: 0xfc0ea000 - 0xfc0edfff, 0x4000, {valid, read, write, exec}
0xffffffc0025cc000 - 0xffffffc0025dbfff: 0xfc0da000 - 0xfc0e9fff, 0x10000, {valid, read, write, exec}
0xffffffc0025dc000 - 0xffffffc0025e0fff: 0xfc0d5000 - 0xfc0d9fff, 0x5000, {valid, read, write, exec}
0xffffffc0025e1000 - 0xffffffc0025e8fff: 0xfc6b6000 - 0xfc6bdfff, 0x8000, {valid, read, write, exec}
0xffffffc0025e9000 - 0xffffffc0025f8fff: 0x02000000 - 0x0200ffff, 0x10000, {valid, read, write}
0xffffffc0025f9000 - 0xffffffc0065f8fff: 0x0c000000 - 0x0fffffff, 0x4000000, {valid, read, write}
0xffffffc0065f9000 - 0xffffffc0065f9fff: 0x10010000 - 0x10010fff, 0x1000, {valid, read, write}
0xffffffff80040000 - 0xffffffffffffffff: 0x80040000 - 0xffffffff, 0x7ffc0000, {valid, read, write}
SATP: 0x80000000000fc0d4
Calling ExitBootServices. So long, EFI!
Switched to legacy serial output
[PRE] SetSatp()
Maybe EFI stack is not mapped? I am not sure to which EFI memory region it belongs. Boot loader code, data and UART seems mapped.
Yeah, this was my frame of mind trying to generate the Sv39 page tables in https://review.haiku-os.org/c/haiku/+/3733.
I suck at mmu stuff though as others can confirm
Confirmed that stack is not problem. Stack is inside EFI loaderData region.
UART:
kind: sifive
regs: 0x10010000, 0x1000
irq: 39
clock: 0
kernel:
text: 0xffffffc002010000, 0x17e000
data: 0xffffffc00218e000, 0x59000
entry: 0xffffffc0020935ae
Kernel stack at 0xffffffc0025dc000
System provided memory map:
phys: 0x80000000, virt: 0x80000000, size: 0x40000, bootServicesData, attrs: 0x8
phys: 0x80040000, virt: 0x80040000, size: 0x7eb6000, conventionalMemory, attrs: 0x8
phys: 0x87ef6000, virt: 0x87ef6000, size: 0x14000, ACPIReclaimMemory, attrs: 0x8
phys: 0x87f0a000, virt: 0x87f0a000, size: 0x741cb000, conventionalMemory, attrs: 0x8
phys: 0xfc0d5000, virt: 0xfc0d5000, size: 0x25e9000, loaderData, attrs: 0x8
phys: 0xfe6be000, virt: 0xfe6be000, size: 0x59000, loaderCode, attrs: 0x8
phys: 0xfe717000, virt: 0xfe717000, size: 0x7000, reservedMemoryType, attrs: 0x8
phys: 0xfe71e000, virt: 0xfe71e000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe71f000, virt: 0xfe71f000, size: 0x1000, runtimeServicesData, attrs: 0x8000000000000008
phys: 0xfe720000, virt: 0xfe720000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe722000, virt: 0xfe722000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe723000, virt: 0xfe723000, size: 0x3000, runtimeServicesData, attrs: 0x8000000000000008
phys: 0xfe726000, virt: 0xfe726000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe727000, virt: 0xfe727000, size: 0x4000, runtimeServicesData, attrs: 0x8000000000000008
phys: 0xfe72b000, virt: 0xfe72b000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe72c000, virt: 0xfe72c000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe72d000, virt: 0xfe72d000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe72e000, virt: 0xfe72e000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe730000, virt: 0xfe730000, size: 0x2000, reservedMemoryType, attrs: 0x8
phys: 0xfe732000, virt: 0xfe732000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe733000, virt: 0xfe733000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe734000, virt: 0xfe734000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe735000, virt: 0xfe735000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe736000, virt: 0xfe736000, size: 0x1000, bootServicesData, attrs: 0x8
phys: 0xfe737000, virt: 0xfe737000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe738000, virt: 0xfe738000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe73a000, virt: 0xfe73a000, size: 0x1000, reservedMemoryType, attrs: 0x8
phys: 0xfe73b000, virt: 0xfe73b000, size: 0x2000, bootServicesData, attrs: 0x8
phys: 0xfe73d000, virt: 0xfe73d000, size: 0x1826000, loaderData, attrs: 0x8
phys: 0xfff63000, virt: 0xfff63000, size: 0x1000, runtimeServicesCode, attrs: 0x8000000000000008
phys: 0xfff64000, virt: 0xfff64000, size: 0x9c000, loaderData, attrs: 0x8
phys: 0x100000000, virt: 0x100000000, size: 0x380000000, bootServicesData, attrs: 0x8
physMemRange: 0x80040000, 0x7ffc0000
MapRange(0xffffffff80040000 - 0xffffffffffffffff, 0x80040000 - 0xffffffff, 0x7ffc0000)
Boot loader:
MapRange(0xfc0d5000 - 0xfe6bdfff, 0xfc0d5000 - 0xfe6bdfff, 0x25e9000)
MapRange(0xfe6be000 - 0xfe716fff, 0xfe6be000 - 0xfe716fff, 0x59000)
MapRange(0xfe73d000 - 0xfff62fff, 0xfe73d000 - 0xfff62fff, 0x1826000)
MapRange(0xfff64000 - 0xffffffff, 0xfff64000 - 0xffffffff, 0x9c000)
Boot loader stack
SP: 0xff73b1b8
gStackBase: 0xff73b418
MapRange(0xff72b000 - 0xff73bfff, 0xff72b000 - 0xff73bfff, 0x11000)
EFI runtime services:
MapRange(0xfe71f000 - 0xfe71ffff, 0xfe71f000 - 0xfe71ffff, 0x1000)
MapRange(0xfe723000 - 0xfe725fff, 0xfe723000 - 0xfe725fff, 0x3000)
MapRange(0xfe727000 - 0xfe72afff, 0xfe727000 - 0xfe72afff, 0x4000)
MapRange(0xfff63000 - 0xfff63fff, 0xfff63000 - 0xfff63fff, 0x1000)
Regions:
MapRange(0xfc6be000 - 0xfc6bdfff, 0x0 - 0xffffffffffffffff, 0x0)
MapRange(0xffffffc0025dc000 - 0xffffffc0025e0fff, 0xfc0d5000 - 0xfc0d9fff, 0x5000)
MapRange(0xffffffc0025cc000 - 0xffffffc0025dbfff, 0xfc0da000 - 0xfc0e9fff, 0x10000)
MapRange(0xffffffc0025c8000 - 0xffffffc0025cbfff, 0xfc0ea000 - 0xfc0edfff, 0x4000)
MapRange(0xffffffc0025c1000 - 0xffffffc0025c7fff, 0xfc0ee000 - 0xfc0f4fff, 0x7000)
MapRange(0xffffffc0025b4000 - 0xffffffc0025c0fff, 0xfc0f5000 - 0xfc101fff, 0xd000)
MapRange(0xffffffc0025a4000 - 0xffffffc0025b3fff, 0xfc102000 - 0xfc111fff, 0x10000)
MapRange(0xffffffc002593000 - 0xffffffc0025a3fff, 0xfc112000 - 0xfc122fff, 0x11000)
MapRange(0xffffffc00253b000 - 0xffffffc002592fff, 0xfc123000 - 0xfc17afff, 0x58000)
MapRange(0xffffffc002532000 - 0xffffffc00253afff, 0xfc17b000 - 0xfc183fff, 0x9000)
MapRange(0xffffffc002522000 - 0xffffffc002531fff, 0xfc184000 - 0xfc193fff, 0x10000)
MapRange(0xffffffc00251c000 - 0xffffffc002521fff, 0xfc194000 - 0xfc199fff, 0x6000)
MapRange(0xffffffc0024fc000 - 0xffffffc00251bfff, 0xfc19a000 - 0xfc1b9fff, 0x20000)
MapRange(0xffffffc0024ec000 - 0xffffffc0024fbfff, 0xfc1ba000 - 0xfc1c9fff, 0x10000)
MapRange(0xffffffc0024c7000 - 0xffffffc0024ebfff, 0xfc1ca000 - 0xfc1eefff, 0x25000)
MapRange(0xffffffc0024bf000 - 0xffffffc0024c6fff, 0xfc1ef000 - 0xfc1f6fff, 0x8000)
MapRange(0xffffffc0024a5000 - 0xffffffc0024befff, 0xfc1f7000 - 0xfc210fff, 0x1a000)
MapRange(0xffffffc00249f000 - 0xffffffc0024a4fff, 0xfc211000 - 0xfc216fff, 0x6000)
MapRange(0xffffffc00248f000 - 0xffffffc00249efff, 0xfc217000 - 0xfc226fff, 0x10000)
MapRange(0xffffffc002489000 - 0xffffffc00248efff, 0xfc227000 - 0xfc22cfff, 0x6000)
MapRange(0xffffffc002473000 - 0xffffffc002488fff, 0xfc22d000 - 0xfc242fff, 0x16000)
MapRange(0xffffffc00246e000 - 0xffffffc002472fff, 0xfc243000 - 0xfc247fff, 0x5000)
MapRange(0xffffffc00246b000 - 0xffffffc00246dfff, 0xfc248000 - 0xfc24afff, 0x3000)
MapRange(0xffffffc002466000 - 0xffffffc00246afff, 0xfc24b000 - 0xfc24ffff, 0x5000)
MapRange(0xffffffc002462000 - 0xffffffc002465fff, 0xfc250000 - 0xfc253fff, 0x4000)
MapRange(0xffffffc002452000 - 0xffffffc002461fff, 0xfc254000 - 0xfc263fff, 0x10000)
MapRange(0xffffffc00244c000 - 0xffffffc002451fff, 0xfc264000 - 0xfc269fff, 0x6000)
MapRange(0xffffffc002436000 - 0xffffffc00244bfff, 0xfc26a000 - 0xfc27ffff, 0x16000)
MapRange(0xffffffc002427000 - 0xffffffc002435fff, 0xfc280000 - 0xfc28efff, 0xf000)
MapRange(0xffffffc002417000 - 0xffffffc002426fff, 0xfc28f000 - 0xfc29efff, 0x10000)
MapRange(0xffffffc002403000 - 0xffffffc002416fff, 0xfc29f000 - 0xfc2b2fff, 0x14000)
MapRange(0xffffffc0023ff000 - 0xffffffc002402fff, 0xfc2b3000 - 0xfc2b6fff, 0x4000)
MapRange(0xffffffc0023f9000 - 0xffffffc0023fefff, 0xfc2b7000 - 0xfc2bcfff, 0x6000)
MapRange(0xffffffc0023f4000 - 0xffffffc0023f8fff, 0xfc2bd000 - 0xfc2c1fff, 0x5000)
MapRange(0xffffffc0023f1000 - 0xffffffc0023f3fff, 0xfc2c2000 - 0xfc2c4fff, 0x3000)
MapRange(0xffffffc0023ed000 - 0xffffffc0023f0fff, 0xfc2c5000 - 0xfc2c8fff, 0x4000)
MapRange(0xffffffc0023e4000 - 0xffffffc0023ecfff, 0xfc2c9000 - 0xfc2d1fff, 0x9000)
MapRange(0xffffffc0023d8000 - 0xffffffc0023e3fff, 0xfc2d2000 - 0xfc2ddfff, 0xc000)
MapRange(0xffffffc0023bc000 - 0xffffffc0023d7ce9, 0xfc2de000 - 0xfc2f9ce9, 0x1bcea)
MapRange(0xffffffc0023ae000 - 0xffffffc0023bb1ff, 0xfc2fa000 - 0xfc3071ff, 0xd200)
MapRange(0xffffffc002350000 - 0xffffffc0023adfff, 0xfc308000 - 0xfc365fff, 0x5e000)
MapRange(0xffffffc002340000 - 0xffffffc00234ffff, 0xfc366000 - 0xfc375fff, 0x10000)
MapRange(0xffffffc00232c000 - 0xffffffc00233ffff, 0xfc376000 - 0xfc389fff, 0x14000)
MapRange(0xffffffc00231f000 - 0xffffffc00232bfff, 0xfc38a000 - 0xfc396fff, 0xd000)
MapRange(0xffffffc00231b000 - 0xffffffc00231efff, 0xfc397000 - 0xfc39afff, 0x4000)
MapRange(0xffffffc002317000 - 0xffffffc00231afff, 0xfc39b000 - 0xfc39efff, 0x4000)
MapRange(0xffffffc002314000 - 0xffffffc002316fff, 0xfc39f000 - 0xfc3a1fff, 0x3000)
MapRange(0xffffffc002311000 - 0xffffffc002313fff, 0xfc3a2000 - 0xfc3a4fff, 0x3000)
MapRange(0xffffffc00230f000 - 0xffffffc002310fff, 0xfc3a5000 - 0xfc3a6fff, 0x2000)
MapRange(0xffffffc0022ff000 - 0xffffffc00230efff, 0xfc3a7000 - 0xfc3b6fff, 0x10000)
MapRange(0xffffffc0022f1000 - 0xffffffc0022fefff, 0xfc3b7000 - 0xfc3c4fff, 0xe000)
MapRange(0xffffffc0022ee000 - 0xffffffc0022f0fff, 0xfc3c5000 - 0xfc3c7fff, 0x3000)
MapRange(0xffffffc0022ec000 - 0xffffffc0022edfff, 0xfc3c8000 - 0xfc3c9fff, 0x2000)
MapRange(0xffffffc0022e5000 - 0xffffffc0022ebfff, 0xfc3ca000 - 0xfc3d0fff, 0x7000)
MapRange(0xffffffc0022cf000 - 0xffffffc0022e4fff, 0xfc3d1000 - 0xfc3e6fff, 0x16000)
MapRange(0xffffffc0022bf000 - 0xffffffc0022cefff, 0xfc3e7000 - 0xfc3f6fff, 0x10000)
MapRange(0xffffffc0022b2000 - 0xffffffc0022befff, 0xfc3f7000 - 0xfc403fff, 0xd000)
MapRange(0xffffffc0022b0000 - 0xffffffc0022b1fff, 0xfc404000 - 0xfc405fff, 0x2000)
MapRange(0xffffffc0022ae000 - 0xffffffc0022affff, 0xfc406000 - 0xfc407fff, 0x2000)
MapRange(0xffffffc0022a5000 - 0xffffffc0022ad56b, 0xfc408000 - 0xfc41056b, 0x856c)
MapRange(0xffffffc00226f000 - 0xffffffc0022a4fff, 0xfc411000 - 0xfc446fff, 0x36000)
MapRange(0xffffffc00226b000 - 0xffffffc00226efff, 0xfc447000 - 0xfc44afff, 0x4000)
MapRange(0xffffffc002261000 - 0xffffffc00226afff, 0xfc44b000 - 0xfc454fff, 0xa000)
MapRange(0xffffffc002255000 - 0xffffffc002260fff, 0xfc455000 - 0xfc460fff, 0xc000)
MapRange(0xffffffc002213000 - 0xffffffc0022541ab, 0xfc461000 - 0xfc4a21ab, 0x411ac)
MapRange(0xffffffc0021e7000 - 0xffffffc00221255f, 0xfc4a3000 - 0xfc4ce55f, 0x2b560)
MapRange(0xffffffc002010000 - 0xffffffc0021e6fff, 0xfc4cf000 - 0xfc6a5fff, 0x1d7000)
MapRange(0xffffffc002000000 - 0xffffffc00200ffff, 0xfc6a6000 - 0xfc6b5fff, 0x10000)
MapRange(0xffffffc0025e1000 - 0xffffffc0025e4fff, 0xfc6b6000 - 0xfc6b9fff, 0x4000)
MapRange(0xffffffc0025e5000 - 0xffffffc0025e8fff, 0xfc6ba000 - 0xfc6bdfff, 0x4000)
Devices:
MapRange(0xffffffc0025e9000 - 0xffffffc0025f8fff, 0x2000000 - 0x200ffff, 0x10000)
MapRange(0xffffffc0025f9000 - 0xffffffc0065f8fff, 0xc000000 - 0xfffffff, 0x4000000)
MapRange(0x10010000 - 0x10010fff, 0x10010000 - 0x10010fff, 0x1000)
MapRange(0xffffffc0065f9000 - 0xffffffc0065f9fff, 0x10010000 - 0x10010fff, 0x1000)
PageTable:
0x10010000 - 0x10010fff: 0x10010000 - 0x10010fff, 0x1000, {valid, read, write}
0xfc0d5000 - 0xfe716fff: 0xfc0d5000 - 0xfe716fff, 0x2642000, {valid, read, write, exec}
0xfe71f000 - 0xfe71ffff: 0xfe71f000 - 0xfe71ffff, 0x1000, {valid, read, write, exec}
0xfe723000 - 0xfe725fff: 0xfe723000 - 0xfe725fff, 0x3000, {valid, read, write, exec}
0xfe727000 - 0xfe72afff: 0xfe727000 - 0xfe72afff, 0x4000, {valid, read, write, exec}
0xfe73d000 - 0xff72afff: 0xfe73d000 - 0xff72afff, 0xfee000, {valid, read, write, exec}
0xff72b000 - 0xff73bfff: 0xff72b000 - 0xff73bfff, 0x11000, {valid, read, write}
0xff73c000 - 0xffffffff: 0xff73c000 - 0xffffffff, 0x8c4000, {valid, read, write, exec}
0xffffffc002000000 - 0xffffffc00200ffff: 0xfc6a6000 - 0xfc6b5fff, 0x10000, {valid, read, write, exec}
0xffffffc002010000 - 0xffffffc0021e6fff: 0xfc4cf000 - 0xfc6a5fff, 0x1d7000, {valid, read, write, exec}
0xffffffc0021e7000 - 0xffffffc002212fff: 0xfc4a3000 - 0xfc4cefff, 0x2c000, {valid, read, write, exec}
0xffffffc002213000 - 0xffffffc002254fff: 0xfc461000 - 0xfc4a2fff, 0x42000, {valid, read, write, exec}
0xffffffc002255000 - 0xffffffc002260fff: 0xfc455000 - 0xfc460fff, 0xc000, {valid, read, write, exec}
0xffffffc002261000 - 0xffffffc00226afff: 0xfc44b000 - 0xfc454fff, 0xa000, {valid, read, write, exec}
0xffffffc00226b000 - 0xffffffc00226efff: 0xfc447000 - 0xfc44afff, 0x4000, {valid, read, write, exec}
0xffffffc00226f000 - 0xffffffc0022a4fff: 0xfc411000 - 0xfc446fff, 0x36000, {valid, read, write, exec}
0xffffffc0022a5000 - 0xffffffc0022adfff: 0xfc408000 - 0xfc410fff, 0x9000, {valid, read, write, exec}
0xffffffc0022ae000 - 0xffffffc0022affff: 0xfc406000 - 0xfc407fff, 0x2000, {valid, read, write, exec}
0xffffffc0022b0000 - 0xffffffc0022b1fff: 0xfc404000 - 0xfc405fff, 0x2000, {valid, read, write, exec}
0xffffffc0022b2000 - 0xffffffc0022befff: 0xfc3f7000 - 0xfc403fff, 0xd000, {valid, read, write, exec}
0xffffffc0022bf000 - 0xffffffc0022cefff: 0xfc3e7000 - 0xfc3f6fff, 0x10000, {valid, read, write, exec}
0xffffffc0022cf000 - 0xffffffc0022e4fff: 0xfc3d1000 - 0xfc3e6fff, 0x16000, {valid, read, write, exec}
0xffffffc0022e5000 - 0xffffffc0022ebfff: 0xfc3ca000 - 0xfc3d0fff, 0x7000, {valid, read, write, exec}
0xffffffc0022ec000 - 0xffffffc0022edfff: 0xfc3c8000 - 0xfc3c9fff, 0x2000, {valid, read, write, exec}
0xffffffc0022ee000 - 0xffffffc0022f0fff: 0xfc3c5000 - 0xfc3c7fff, 0x3000, {valid, read, write, exec}
0xffffffc0022f1000 - 0xffffffc0022fefff: 0xfc3b7000 - 0xfc3c4fff, 0xe000, {valid, read, write, exec}
0xffffffc0022ff000 - 0xffffffc00230efff: 0xfc3a7000 - 0xfc3b6fff, 0x10000, {valid, read, write, exec}
0xffffffc00230f000 - 0xffffffc002310fff: 0xfc3a5000 - 0xfc3a6fff, 0x2000, {valid, read, write, exec}
0xffffffc002311000 - 0xffffffc002313fff: 0xfc3a2000 - 0xfc3a4fff, 0x3000, {valid, read, write, exec}
0xffffffc002314000 - 0xffffffc002316fff: 0xfc39f000 - 0xfc3a1fff, 0x3000, {valid, read, write, exec}
0xffffffc002317000 - 0xffffffc00231afff: 0xfc39b000 - 0xfc39efff, 0x4000, {valid, read, write, exec}
0xffffffc00231b000 - 0xffffffc00231efff: 0xfc397000 - 0xfc39afff, 0x4000, {valid, read, write, exec}
0xffffffc00231f000 - 0xffffffc00232bfff: 0xfc38a000 - 0xfc396fff, 0xd000, {valid, read, write, exec}
0xffffffc00232c000 - 0xffffffc00233ffff: 0xfc376000 - 0xfc389fff, 0x14000, {valid, read, write, exec}
0xffffffc002340000 - 0xffffffc00234ffff: 0xfc366000 - 0xfc375fff, 0x10000, {valid, read, write, exec}
0xffffffc002350000 - 0xffffffc0023adfff: 0xfc308000 - 0xfc365fff, 0x5e000, {valid, read, write, exec}
0xffffffc0023ae000 - 0xffffffc0023bbfff: 0xfc2fa000 - 0xfc307fff, 0xe000, {valid, read, write, exec}
0xffffffc0023bc000 - 0xffffffc0023d7fff: 0xfc2de000 - 0xfc2f9fff, 0x1c000, {valid, read, write, exec}
0xffffffc0023d8000 - 0xffffffc0023e3fff: 0xfc2d2000 - 0xfc2ddfff, 0xc000, {valid, read, write, exec}
0xffffffc0023e4000 - 0xffffffc0023ecfff: 0xfc2c9000 - 0xfc2d1fff, 0x9000, {valid, read, write, exec}
0xffffffc0023ed000 - 0xffffffc0023f0fff: 0xfc2c5000 - 0xfc2c8fff, 0x4000, {valid, read, write, exec}
0xffffffc0023f1000 - 0xffffffc0023f3fff: 0xfc2c2000 - 0xfc2c4fff, 0x3000, {valid, read, write, exec}
0xffffffc0023f4000 - 0xffffffc0023f8fff: 0xfc2bd000 - 0xfc2c1fff, 0x5000, {valid, read, write, exec}
0xffffffc0023f9000 - 0xffffffc0023fefff: 0xfc2b7000 - 0xfc2bcfff, 0x6000, {valid, read, write, exec}
0xffffffc0023ff000 - 0xffffffc002402fff: 0xfc2b3000 - 0xfc2b6fff, 0x4000, {valid, read, write, exec}
0xffffffc002403000 - 0xffffffc002416fff: 0xfc29f000 - 0xfc2b2fff, 0x14000, {valid, read, write, exec}
0xffffffc002417000 - 0xffffffc002426fff: 0xfc28f000 - 0xfc29efff, 0x10000, {valid, read, write, exec}
0xffffffc002427000 - 0xffffffc002435fff: 0xfc280000 - 0xfc28efff, 0xf000, {valid, read, write, exec}
0xffffffc002436000 - 0xffffffc00244bfff: 0xfc26a000 - 0xfc27ffff, 0x16000, {valid, read, write, exec}
0xffffffc00244c000 - 0xffffffc002451fff: 0xfc264000 - 0xfc269fff, 0x6000, {valid, read, write, exec}
0xffffffc002452000 - 0xffffffc002461fff: 0xfc254000 - 0xfc263fff, 0x10000, {valid, read, write, exec}
0xffffffc002462000 - 0xffffffc002465fff: 0xfc250000 - 0xfc253fff, 0x4000, {valid, read, write, exec}
0xffffffc002466000 - 0xffffffc00246afff: 0xfc24b000 - 0xfc24ffff, 0x5000, {valid, read, write, exec}
0xffffffc00246b000 - 0xffffffc00246dfff: 0xfc248000 - 0xfc24afff, 0x3000, {valid, read, write, exec}
0xffffffc00246e000 - 0xffffffc002472fff: 0xfc243000 - 0xfc247fff, 0x5000, {valid, read, write, exec}
0xffffffc002473000 - 0xffffffc002488fff: 0xfc22d000 - 0xfc242fff, 0x16000, {valid, read, write, exec}
0xffffffc002489000 - 0xffffffc00248efff: 0xfc227000 - 0xfc22cfff, 0x6000, {valid, read, write, exec}
0xffffffc00248f000 - 0xffffffc00249efff: 0xfc217000 - 0xfc226fff, 0x10000, {valid, read, write, exec}
0xffffffc00249f000 - 0xffffffc0024a4fff: 0xfc211000 - 0xfc216fff, 0x6000, {valid, read, write, exec}
0xffffffc0024a5000 - 0xffffffc0024befff: 0xfc1f7000 - 0xfc210fff, 0x1a000, {valid, read, write, exec}
0xffffffc0024bf000 - 0xffffffc0024c6fff: 0xfc1ef000 - 0xfc1f6fff, 0x8000, {valid, read, write, exec}
0xffffffc0024c7000 - 0xffffffc0024ebfff: 0xfc1ca000 - 0xfc1eefff, 0x25000, {valid, read, write, exec}
0xffffffc0024ec000 - 0xffffffc0024fbfff: 0xfc1ba000 - 0xfc1c9fff, 0x10000, {valid, read, write, exec}
0xffffffc0024fc000 - 0xffffffc00251bfff: 0xfc19a000 - 0xfc1b9fff, 0x20000, {valid, read, write, exec}
0xffffffc00251c000 - 0xffffffc002521fff: 0xfc194000 - 0xfc199fff, 0x6000, {valid, read, write, exec}
0xffffffc002522000 - 0xffffffc002531fff: 0xfc184000 - 0xfc193fff, 0x10000, {valid, read, write, exec}
0xffffffc002532000 - 0xffffffc00253afff: 0xfc17b000 - 0xfc183fff, 0x9000, {valid, read, write, exec}
0xffffffc00253b000 - 0xffffffc002592fff: 0xfc123000 - 0xfc17afff, 0x58000, {valid, read, write, exec}
0xffffffc002593000 - 0xffffffc0025a3fff: 0xfc112000 - 0xfc122fff, 0x11000, {valid, read, write, exec}
0xffffffc0025a4000 - 0xffffffc0025b3fff: 0xfc102000 - 0xfc111fff, 0x10000, {valid, read, write, exec}
0xffffffc0025b4000 - 0xffffffc0025c0fff: 0xfc0f5000 - 0xfc101fff, 0xd000, {valid, read, write, exec}
0xffffffc0025c1000 - 0xffffffc0025c7fff: 0xfc0ee000 - 0xfc0f4fff, 0x7000, {valid, read, write, exec}
0xffffffc0025c8000 - 0xffffffc0025cbfff: 0xfc0ea000 - 0xfc0edfff, 0x4000, {valid, read, write, exec}
0xffffffc0025cc000 - 0xffffffc0025dbfff: 0xfc0da000 - 0xfc0e9fff, 0x10000, {valid, read, write, exec}
0xffffffc0025dc000 - 0xffffffc0025e0fff: 0xfc0d5000 - 0xfc0d9fff, 0x5000, {valid, read, write, exec}
0xffffffc0025e1000 - 0xffffffc0025e8fff: 0xfc6b6000 - 0xfc6bdfff, 0x8000, {valid, read, write, exec}
0xffffffc0025e9000 - 0xffffffc0025f8fff: 0x02000000 - 0x0200ffff, 0x10000, {valid, read, write}
0xffffffc0025f9000 - 0xffffffc0065f8fff: 0x0c000000 - 0x0fffffff, 0x4000000, {valid, read, write}
0xffffffc0065f9000 - 0xffffffc0065f9fff: 0x10010000 - 0x10010fff, 0x1000, {valid, read, write}
0xffffffff80040000 - 0xffffffffffffffff: 0x80040000 - 0xffffffff, 0x7ffc0000, {valid, read, write}
SATP: 0x80000000000fc0d4
Calling ExitBootServices. So long, EFI!
Switched to legacy serial output
[PRE] SetSatp()
PC case, power supply, video card, NVMe disk was delivered today. Operation of XFCE desktop on SD card with default Linux image is confirmed.
how about starting to investigate a previously discovered boot problem?
We wanna photos!
I trying to investigate it, but I still can’t solve it. Currently any attempts to set SATP register to non-zero value cause freeze. I tried to set identity mapping with huge level 2 pages. Boot loader is working on all emulators, but not on real hardware. I also tried to set trap handler, but it is not triggered on setting SATP register, operation of trap handler is confirmed on real hardware with illegal instruction.
Linux kernel definitely set SATP register and use MMU so MMU hardware is functional.
I created topic on SiFive forums, but I still have no replies.
Yeah, I solved problem with SATP register. It was caused by generating page faults when dirty and accessed flags are not set in PTEs. Unlike emulators where flags are managed automatically, on HiFive Unmatched flags need to be set by software.
Freedom U740-C000 Manual says:
It is important to note the U74 does not automatically set the accessed ( A ) and dirty ( D ) bits in a
Sv39 Page Table Entry (PTE). Instead, the U74 MMU will raise a page fault exception for a read
to a page with PTE.A=0 or a write to a page with PTE.D=0 .
Now kernel is running: UART log.
After quick fix of MMU problems in kernel caused by the same problem as above, kernel now progress to “did not find any boot partitions!”. UART log.
Next thing need to be done is adapting PCI driver to get access to USB, NVMe and video card.
So you don’t need help from SiFive? can you update that on the forum? I nearly posted that we would like to have some responce . Was good that I kept reading
Done.
I trying to investigate how to work with PCI controller. Board use Synopsys Designware PCIe derived host controller. According to forum post it seems that no public documentation is available. U-boot PCIe code (pcie_dw_common.c, pcie_dw_sifive.c) can be used as reference. Access to PCI configuration space is a bit complicated because it use some kind of IOMMU (ATU (address translation unit)).
PCI device list I get by u-boot console:
00.00.00 0xf15e 0x0000 Bridge device 0x04
01.00.00 0x1b21 0x2824 Bridge device 0x04
02.00.00 0x1b21 0x2824 Bridge device 0x04
02.02.00 0x1b21 0x2824 Bridge device 0x04
02.03.00 0x1b21 0x2824 Bridge device 0x04
02.04.00 0x1b21 0x2824 Bridge device 0x04
02.08.00 0x1b21 0x2824 Bridge device 0x04
04.00.00 0x1b21 0x1142 Serial bus controller 0x03
06.00.00 0x1987 0x5013 Mass storage controller 0x08
07.00.00 0x1002 0x683f Display controller 0x00
07.00.01 0x1002 0xaab0 Multimedia device 0x03
07.00.02 0x1002 0xad18 Multimedia device 0x80
f15e: SiFive, Inc.
1B21: ASMedia Technology Inc.
1b21:1142: ASM1042A USB 3.0 Host Controller
1987: Phison Electronics Corporation
1987:5013: PS5013 E13 NVMe Controller
1002: Advanced Micro Devices, Inc. [AMD/ATI]
1002:683f: Cape Verde PRO [Radeon HD 7750/8740 / R7 250E]
1002:aab0: Oland/Hainan/Cape Verde/Pitcairn HDMI Audio [Radeon HD 7000 Series]
1002:ad18: ?
I can’t find much info about 1002:ad18 either except on this GitHub page it is listed as “AMD Multimedia controller” so maybe something else related to audio.
I uploaded photos with default Linux installed on NVMe disk. Tablet works as UART terminal. Haiku is not yet ready for GUI boot for now.