https://discuss.haiku-os.org/t/my-progress-on-real-risc-v-hardware/10963/31 Haiku Community My progress on real RISC-V hardware Development OS X512 July 15, 2021, 8:07pm #26 After adding some hack to cache prefetch and adding radeon_hd driver to image, it now runs userland and attempts to initialize graphics card, but fails. Something seems wrong with PCI register allocation. radeon_hd: device_open: open(name = graphics/radeon_hd_050000) radeon_hd: card(0): radeon_hd_init: called radeon_hd: radeon_hd_init: card(0): Radeon Cape Verde 1002:683F radeon_hd: radeon_hd_init: Error: found 0MB video ram, using PCI bar size... radeon_hd: radeon_hd_init: mapping a frame buffer of 256MB out of 0MB video ram radeon_hd: card(0): radeon_hd_getbios: called radeon_hd: radeon_hd_getbios: ACPI ATRM AtomBIOS TODO radeon_hd: radeon_hd_getbios: AtomBIOS not found using active method 0 at 0x0 radeon_hd: radeon_hd_getbios: No base found at PCI FB BAR radeon_hd: radeon_hd_getbios: AtomBIOS not found using active method 1 at 0x0 radeon_hd: radeon_hd_getbios: PCI ROM decode enabled radeon_hd: mapAtomBIOS: seeking AtomBIOS @ 0x70440000 [size: 0x20000] radeon_hd: mapAtomBIOS: AtomBIOS verified and locked radeon_hd: radeon_hd_getbios: AtomBIOS found using active method 2 at 0x70440000 radeon_hd: card(0): radeon_hd_init didn't find VESA EDID modes. radeon_hd: card(0): radeon_hd_init completed successfully! radeon_hd: card(0): GPU thermal status: 40C radeon_hd: device_ioctl: accelerant: radeon_hd.accelerant 8 Likes tialaramex July 15, 2021, 8:11pm #27 Subclass 0x80 (for that "mystery" element of the Radeon chipset) is vendor defined. so it is likely to be fine to entirely ignore this mysterious PCI device entry, especially this early in the bring-up. 2 Likes X512 July 15, 2021, 8:52pm #28 Video driver progressed a bit. Now it traps because of attempt to write to illegal physical address. radeon_hd: init_hardware radeon_hd: init_driver radeon_hd: init_driver: GPU(0) Radeon HD 7750, revision = 0x87 radeon_hd: publish_devices radeon_hd: find_device loaded driver /boot/system/add-ons/kernel/drivers/dev/graphics/radeon_hd vesa: init_hardware() radeon_hd: device_open: open(name = graphics/radeon_hd_050000) radeon_hd: card(0): radeon_hd_init: called radeon_hd: radeon_hd_init: card(0): Radeon Cape Verde 1002:683F radeon_hd: radeon_hd_init: Error: found 0MB video ram, using PCI bar size... radeon_hd: radeon_hd_init: mapping a frame buffer of 256MB out of 0MB video ram radeon_hd: card(0): radeon_hd_getbios: called radeon_hd: radeon_hd_getbios: ACPI ATRM AtomBIOS TODO radeon_hd: radeon_hd_getbios: AtomBIOS not found using active method 0 at 0x0 radeon_hd: radeon_hd_getbios: No base found at PCI FB BAR radeon_hd: radeon_hd_getbios: AtomBIOS not found using active method 1 at 0x0 radeon_hd: radeon_hd_getbios: PCI ROM decode enabled radeon_hd: mapAtomBIOS: seeking AtomBIOS @ 0x70440000 [size: 0x20000] radeon_hd: mapAtomBIOS: AtomBIOS verified and locked radeon_hd: radeon_hd_getbios: AtomBIOS found using active method 2 at 0x70440000 radeon_hd: card(0): radeon_hd_init didn't find VESA EDID modes. radeon_hd: card(0): radeon_hd_init completed successfully! radeon_hd: card(0): GPU thermal status: 41C radeon_hd: device_ioctl: accelerant: radeon_hd.accelerant radeon_hd: radeon_init_accelerant enter radeon_hd: radeon_dump_bios: Dumping AtomBIOS as ATOM_DEBUG is set... radeon_hd: radeon_dump_bios: AtomBIOS dumped to /boot/system/cache/tmp/radeon_hd_bios_1002_683f_0.bin radeon_hd: radeon_init_bios: init AtomBIOS for this card as it is not not posted radeon_hd: atom_op_calltable: table: unknown (80) Last message repeated 4 times. radeon_hd: radeon_gpu_probe: table 2.2 radeon_hd: gpio_general_populate: general GPIO @ 0, valid: true, hwPin: 0x1 radeon_hd: gpio_general_populate: general GPIO @ 1, valid: true, hwPin: 0x2 radeon_hd: gpio_general_populate: general GPIO @ 2, valid: true, hwPin: 0x3 radeon_hd: gpio_general_populate: general GPIO @ 3, valid: true, hwPin: 0x4 radeon_hd: gpio_general_populate: general GPIO @ 4, valid: true, hwPin: 0x5 radeon_hd: gpio_general_populate: general GPIO @ 5, valid: true, hwPin: 0x6 radeon_hd: gpio_i2c_populate: i2c GPIO @ 6, valid: true, hwPin: 0x90 radeon_hd: gpio_i2c_populate: i2c GPIO @ 7, valid: true, hwPin: 0x91 radeon_hd: gpio_i2c_populate: i2c GPIO @ 8, valid: true, hwPin: 0x92 radeon_hd: gpio_i2c_populate: i2c GPIO @ 9, valid: true, hwPin: 0x93 radeon_hd: gpio_i2c_populate: i2c GPIO @ 10, valid: true, hwPin: 0x94 radeon_hd: gpio_i2c_populate: i2c GPIO @ 11, valid: true, hwPin: 0x95 radeon_hd: gpio_i2c_populate: i2c GPIO @ 12, valid: true, hwPin: 0x96 radeon_hd: gpio_i2c_populate: i2c GPIO @ 13, valid: true, hwPin: 0x97 radeon_hd: connector_probe: found 3 potential display paths. radeon_hd: pll_limit_probe: table 2.2 radeon_hd: pll_limit_probe: referenceFreq: 27000; pllOutMin: 600000; pllOutMax: 1200000; pllInMin: 6750;pllInMax: 27000 radeon_hd: pll_limit_probe: table 2.2 radeon_hd: pll_limit_probe: referenceFreq: 27000; pllOutMin: 600000; pllOutMax: 1200000; pllInMin: 6750;pllInMax: 27000 radeon_hd: pll_limit_probe: table 2.2 radeon_hd: pll_limit_probe: referenceFreq: 27000; pllOutMin: 600000; pllOutMax: 1200000; pllInMin: 6750;pllInMax: 27000 radeon_hd: Currently detected connectors============= radeon_hd: Connector #0) radeon_hd: + connector: HDMI A radeon_hd: + i2c gpio table id: 7 radeon_hd: - gpio hw pin: 0x91 radeon_hd: - gpio valid: true radeon_hd: - i2c valid: true radeon_hd: + hpd gpio table id: 0 radeon_hd: - gpio hw pin: 0x1 radeon_hd: - gpio valid: true radeon_hd: + encoder: TMDS radeon_hd: - id: 30 radeon_hd: - type: Internal Kaleidoscope UNIPHY radeon_hd: - capabilities: 0x0 radeon_hd: - enumeration: 1 radeon_hd: - is bridge: false radeon_hd: + external encoder: none radeon_hd: + flags: radeon_hd: * device DFP1 support radeon_hd: Connector #1) radeon_hd: + connector: DVI-D (Digital Only) radeon_hd: + i2c gpio table id: 6 radeon_hd: - gpio hw pin: 0x90 radeon_hd: - gpio valid: true radeon_hd: - i2c valid: true radeon_hd: + hpd gpio table id: 1 radeon_hd: - gpio hw pin: 0x2 radeon_hd: - gpio valid: true radeon_hd: + encoder: TMDS radeon_hd: - id: 30 radeon_hd: - type: Internal Kaleidoscope UNIPHY radeon_hd: - capabilities: 0x0 radeon_hd: - enumeration: 2 radeon_hd: - is bridge: false radeon_hd: + external encoder: none radeon_hd: + flags: radeon_hd: * device DFP2 support radeon_hd: Connector #2) radeon_hd: + connector: VGA radeon_hd: + i2c gpio table id: 10 radeon_hd: - gpio hw pin: 0x94 radeon_hd: - gpio valid: true radeon_hd: - i2c valid: true radeon_hd: + hpd gpio table id: 0 radeon_hd: - gpio hw pin: 0x1 radeon_hd: - gpio valid: true radeon_hd: + encoder: TV DAC radeon_hd: - id: 21 radeon_hd: - type: Internal Kaleidoscope DAC1 radeon_hd: - capabilities: 0x0 radeon_hd: - enumeration: 1 radeon_hd: - is bridge: false radeon_hd: + external encoder: none radeon_hd: + flags: radeon_hd: * device CRT1 support radeon_hd: ========================================== radeon_hd: encoder_init: called radeon_hd: transmitter_dig_setup: connector 0, pixelClock: 0 radeon_hd: transmitter_dig_setup: table 1.5 radeon_hd: encoder_pick_dig: connector 0 radeon_hd: transmitter_dig_setup: connector 1, pixelClock: 0 radeon_hd: transmitter_dig_setup: table 1.5 radeon_hd: encoder_pick_dig: connector 1 radeon_hd: pll_set_external: set external pll clock to 600000 radeon_hd: pll_set_external: table 1.6 radeon_hd: dp_setup_connectors radeon_hd: detect_displays: connector(0): bit-banging ddc for EDID. DDC: ddc2_read: DDC information read failure Last message repeated 3 times. radeon_hd: detect_displays: connector(1): bit-banging ddc for EDID. radeon_hd: connector_read_edid: found edid monitor on connector #1 radeon_hd: detect_displays: connector(1): found EDID data. radeon_hd: init_registers, registers for ATI chipset Cape Verde crt #0 loaded radeon_hd: detect_displays: connector(2): bit-banging ddc for EDID. DDC: ddc2_read: DDC information read failure Last message repeated 3 times. radeon_hd: Currently detected monitors=============== radeon_hd: Display #0 attached = true radeon_hd: + connector ID: 1 radeon_hd: + connector type: DVI-D (Digital Only) radeon_hd: + encoder type: TMDS radeon_hd: + limits: Vert Min/Max: 56/75 radeon_hd: + limits: Horz Min/Max: 30/80 radeon_hd: Display #1 attached = false radeon_hd: ========================================== radeon_hd: radeon_gpu_mc_setup: vramStart: 0x0, vramEnd: 0xFFFFFFF radeon_hd: radeon_gpu_ring_setup called radeon_hd: RingQueue: Requested 1048576 bytes for GFX RingQueue. radeon_hd: RingQueue: Allocating 1048576 bytes for GFX RingQueue. radeon_hd: radeon_gpu_ring_boot called radeon_hd: radeon_gpu_ring_boot: TODO radeon_hd: radeon_init_accelerant done radeon_hd: radeon_get_edid_info radeon_hd: encoder_output_lock: true radeon_hd: display_crtc_lock radeon_hd: encoder_dpms_set: display 0, power: false radeon_hd: encoder_dpms_set_dig: display 0, power: false radeon_hd: transmitter_dig_setup: connector 1, pixelClock: 0 radeon_hd: transmitter_dig_setup: table 1.5 radeon_hd: encoder_pick_dig: connector 1 radeon_hd: display_crtc_dpms: crtc 0 dpms powerdown radeon_hd: display_crtc_blank radeon_hd: display_crtc_power radeon_hd: encoder_assign_crtc radeon_hd: encoder_assign_crtc: table 1.2 radeon_hd: encoder_pick_dig: connector 1 radeon_hd: encoder_crtc_scratch: display 0 radeon_hd: radeon_set_display_mode: pll 0 selected for connector 1 radeon_hd: pll_asic_ss_probe: ss match found radeon_hd: pll_setup_flags: CRTC: 0, PLL: 0 radeon_hd: pll_adjust: table 1.3 radeon_hd: pll_adjust: was: 64996, now: 64990 radeon_hd: pll_compute_post_divider: vco = 600000 radeon_hd: pll_compute_post_divider: postDiv = 9 radeon_hd: pll_compute: using minimum reference divider radeon_hd: pll_compute: performing fractional feedback calculations radeon_hd: pll_compute: Calculated pixel clock of 65000 based on: radeon_hd: pll_compute: referenceFrequency: 27000; referenceDivider: 3 radeon_hd: pll_compute: feedbackDivider: 65; feedbackDividerFrac: 0 radeon_hd: pll_compute: postDivider: 9 radeon_hd: pll_compute: pixel clock 64990 was changed to 65000 radeon_hd: pll_set: table 1.6 radeon_hd: pll_set: set adjusted pixel clock 65000 (was 64996) radeon_hd: atom_op_jump: Error: AtomBIOS stuck in loop for more then 5 seconds. (404531 identical jmp op's) radeon_hd: atom_execute_table_locked: AtomBIOS parser aborted calling operation DELAY_MICROSEC (0x51) @ 0xC2D9 radeon_hd: atom_execute_table: AtomBIOS parser was aborted in table SetPixelClock (0xC) radeon_hd: display_crtc_ss radeon_hd: display_crtc_ss: external SS, ignoring SS request radeon_hd: display_crtc_set_dtd called to do 1024x768 radeon_hd: display_crtc_fb_set: Framebuffer at: 0x0 radeon_hd: display_crtc_fb_set: Set SurfaceAddress High: 0x0 radeon_hd: display_crtc_fb_set: Set SurfaceAddress: 0x0 radeon_hd: display_crtc_fb_set: fb: 1024x768 (32 bpp) radeon_hd: display_crtc_fb_set: fb pitch: 1024 radeon_hd: display_dce45_crtc_load_lut: crtcID 0 radeon_hd: display_crtc_scale radeon_hd: encoder_mode_set: display 0 radeon_hd: encoder_dig_setup radeon_hd: encoder_pick_dig: connector 1 radeon_hd: encoder_dig_setup: table 1.4 radeon_hd: encoder_dig_setup radeon_hd: encoder_pick_dig: connector 1 radeon_hd: encoder_dig_setup: table 1.4 radeon_hd: encoder_apply_quirks: display 0 radeon_hd: display_crtc_dpms: crtc 0 dpms powerup radeon_hd: display_crtc_power radeon_hd: display_crtc_blank radeon_hd: encoder_dpms_set: display 0, power: true radeon_hd: encoder_dpms_set_dig: display 0, power: true radeon_hd: encoder_dig_setup radeon_hd: encoder_pick_dig: connector 1 radeon_hd: encoder_dig_setup: table 1.4 radeon_hd: encoder_dig_setup radeon_hd: encoder_pick_dig: connector 1 radeon_hd: encoder_dig_setup: table 1.4 radeon_hd: transmitter_dig_setup: connector 1, pixelClock: 65000 radeon_hd: transmitter_dig_setup: table 1.5 radeon_hd: encoder_pick_dig: connector 1 radeon_hd: display_crtc_lock radeon_hd: encoder_output_lock: false radeon_hd: Current DisplayPort Info ================= radeon_hd: Connector #0) DP: false radeon_hd: Connector #1) DP: false radeon_hd: Connector #2) DP: false radeon_hd: ========================================== radeon_hd: D1CRTC_STATUS Value: 0x2 radeon_hd: D2CRTC_STATUS Value: 0x0 radeon_hd: D1CRTC_CONTROL Value: 0x0 radeon_hd: D2CRTC_CONTROL Value: 0x0 radeon_hd: D1GRPH_ENABLE Value: 0x0 radeon_hd: D2GRPH_ENABLE Value: 0x0 radeon_hd: D1SCL_ENABLE Value: 0x0 radeon_hd: D2SCL_ENABLE Value: 0x0 radeon_hd: D1CRTC_BLANK_CONTROL Value: 0x0 radeon_hd: D2CRTC_BLANK_CONTROL Value: 0x0 radeon_hd: radeon_get_frame_buffer_config radeon_hd: display_crtc_dpms: crtc 0 dpms powerup radeon_hd: display_crtc_power radeon_hd: display_crtc_blank radeon_hd: encoder_dpms_set: display 0, power: true radeon_hd: encoder_dpms_set_dig: display 0, power: true radeon_hd: encoder_dig_setup radeon_hd: encoder_pick_dig: connector 1 radeon_hd: encoder_dig_setup: table 1.4 radeon_hd: encoder_dig_setup radeon_hd: encoder_pick_dig: connector 1 radeon_hd: encoder_dig_setup: table 1.4 radeon_hd: transmitter_dig_setup: connector 1, pixelClock: 65000 radeon_hd: transmitter_dig_setup: table 1.5 radeon_hd: encoder_pick_dig: connector 1 arch_thread_init_kthread_stack(0xffffffc006aa7e80(create_app_meta_mime (s))) arch_thread_enter_uspace() arch_thread_init_kthread_stack(0xffffffc006aa7e80(input_server)) arch_thread_enter_uspace() STrap(exception storeAccessFault) sstatus: (ie: {}, pie: {s}, spp: u, sum: 0) sie: {sTimer, sExtern} sip: {} stval: 0xffffffc12b802000 tp: 0xffffffc006aa7380(app_server) PANIC: unhandled STrap Welcome to Kernel Debugging Land... Thread 632 "app_server" running on CPU 0 Stack: FP: 0xffffffc002495400 FP: 0xffffffc002495510, PC: 0xffffffc00215a645 arch_debug_call_with_fault_handler + 91 FP: 0xffffffc002495560, PC: 0xffffffc0020d22b1 debug_call_with_fault_handler.localalias.7 + 129 FP: 0xffffffc0024955f0, PC: 0xffffffc0020d38db _ZL20kernel_debugger_loopPKcS0_Pvi + 299 FP: 0xffffffc002495660, PC: 0xffffffc0020d3bc7 _ZL24kernel_debugger_internalPKcS0_Pvi + 135 FP: 0xffffffc0024956a0, PC: 0xffffffc0020d3f0f panic + 101 FP: 0xffffffc0024957d0, PC: 0xffffffc00215b857 STrap + 399 FP: 0xffffffc0024958d0, PC: 0xffffffc0021598dd SVecU + 109 FP: 0x3eb9959830, PC: 0x26f907fc87 0xe7c87 FP: 0x3eb9959880, PC: 0x26f908004f 0xe804f FP: 0x3eb99598e0, PC: 0x26f906796d 0xcf96d FP: 0x3eb9959980, PC: 0x26f908164b 0xe964b FP: 0x3eb99599d0, PC: 0x26f907f6c9 0xe76c9 FP: 0x3eb9959a90, PC: 0x26f9079da9 0xe1da9 FP: 0x3eb9959b00, PC: 0x26f9018351 0x80351 FP: 0x3eb9959bb0, PC: 0x26f901bef7 0x83ef7 FP: 0x3eb9959bf0, PC: 0x26f90109f7 0x789f7 FP: 0x3eb9959ca0, PC: 0x26f9010c0f 0x78c0f FP: 0x3eb9959ef0, PC: 0x22bd968b69 0x141b69 FP: 0x3eb9959f50, PC: 0x22bd96f919 0x148919 FP: 0x3eb9959f70, PC: 0x22bd9660d9 0x13f0d9 FP: 0x3eb9959fa0, PC: 0x26f900fec7 0x77ec7 FP: 0x3eb9959fd0, PC: 0x26f9010239 0x78239 FP: 0x3eb995a000, PC: 0x2dca6fe743 0x12743 FP: 0xffffffc002495900, PC: 0xffffffc00215c177 arch_thread_enter_userspace + 145 FP: 0xffffffc002495a30, PC: 0xffffffc0020aff81 _ZL15enter_userspacePN7BKernel6ThreadEP24UserThreadEntryArguments + 109 FP: 0xffffffc002495a90, PC: 0xffffffc0020b1ac1 thread_enter_userspace_new_team + 57 FP: 0xffffffc002495f80, PC: 0xffffffc0020aa47b _ZL33team_create_thread_start_internalPv + 651 FP: 0xffffffc002495f90, PC: 0xffffffc0020abcc5 _ZL24team_create_thread_startPv + 15 FP: 0xffffffc002495fb0, PC: 0xffffffc0020b4c4d _ZL19common_thread_entryPv + 57 FP: 0x0, PC: 0xffffffc0021597b5 arch_thread_entry + 3 kdebug> If someone (@kallisti5?) knows how radeon_hd driver works, please tell what is happening. 10 Likes kallisti5 July 15, 2021, 10:04pm #29 # X512: If someone (@kallisti5?) knows how radeon_hd driver works, please tell what is happening. heh. This is the first time my radeon_hd driver has run on anything except x86 :slight_smile: Here's a rundown: * AMD cards have something called "atombios". Essentially there is code that executes from the card itself. atombios has it's own simple ISA + opcode design. * Atombios has a data and function area. + data contains important card + state information + function is the list of functions (applications?) available to execute on the card and where they live. The host's driver executes the atombios functions to do various things on the card in a card-specific way. I would enable ATOMBIOS tracing. It will give you a LOT of insight into what Atombios is doing down to the opcodes being issued. https://git.haiku-os.org/haiku/tree/src/add-ons/accelerants/radeon_hd /atombios/atom.cpp#n44 15 Likes X512 July 17, 2021, 9:39am #30 After some obvious fixes such as proper handling of 64 bit PCI BARs and enabling MMIO decoding and also using VGA connector it started to display something. Now it crash in app_server Deskbar thread. "storeAccessFault" is illegal attempt to write to physical memory. STrap(exception storeAccessFault) sstatus: (ie: {}, pie: {s}, spp: u, sum: 0) sie: {sTimer, sExtern} sip: {} stval: 0xffffffc12b802be4 tp: 0xffffffc001468440(w:699:Deskbar) PANIC: unhandled STrap Welcome to Kernel Debugging Land... Thread 721 "w:699:Deskbar" running on CPU 0 Stack: FP: 0xffffffc00252a960 FP: 0xffffffc00252aa70, PC: 0xffffffc00215a645 arch_debug_call_with_fault_handler + 91 FP: 0xffffffc00252aac0, PC: 0xffffffc0020d22b1 debug_call_with_fault_handler.localalias.7 + 129 FP: 0xffffffc00252ab50, PC: 0xffffffc0020d38db _ZL20kernel_debugger_loopPKcS0_Pvi + 299 FP: 0xffffffc00252abc0, PC: 0xffffffc0020d3bc7 _ZL24kernel_debugger_internalPKcS0_Pvi + 135 FP: 0xffffffc00252ac00, PC: 0xffffffc0020d3f0f panic + 101 FP: 0xffffffc00252ad30, PC: 0xffffffc00215b857 STrap + 399 FP: 0xffffffc00252ae30, PC: 0xffffffc0021598dd SVecU + 109 FP: 0x366d9c4cb0, PC: 0x165e8acc87 0xe7c87 FP: 0x366d9c4d00, PC: 0x165e8ad04f 0xe804f FP: 0x366d9c4d60, PC: 0x165e89496d 0xcf96d FP: 0x366d9c4e00, PC: 0x165e8ae64b 0xe964b FP: 0x366d9c4e50, PC: 0x165e8ac6c9 0xe76c9 FP: 0x366d9c4e80, PC: 0x165e87d049 0xb8049 FP: 0x366d9c4f40, PC: 0x165e874fbf 0xaffbf FP: 0x366d9c4fd0, PC: 0x165e86fd3b 0xaad3b FP: 0x366d9c4fe0, PC: 0x165e852b05 0x8db05 FP: 0x366d9c5000, PC: 0x1416808f85 0x3bf85 FP: 0xffffffc00252ae60, PC: 0xffffffc00215c177 arch_thread_enter_userspace + 145 FP: 0xffffffc00252af90, PC: 0xffffffc0020aff81 _ZL15enter_userspacePN7BKernel6ThreadEP24UserThreadEntryArguments + 109 FP: 0xffffffc00252afb0, PC: 0xffffffc0020b4c71 _ZL19common_thread_entryPv + 93 FP: 0x0, PC: 0xffffffc0021597b5 arch_thread_entry + 3 kdebug> CIMG4712 29 Likes X512 July 17, 2021, 4:14pm #31 I finally managed to run desktop. Crashes was caused by unaligned access to framebuffer, access seems to require 16 byte alignment. I made some quick hack to enforce alignment in app_server when copying to front buffer, but it currently introduce artifacts. I don't know why 16 byte alignment is required, radeon_hd driver works fine on Acer W500 tablet without alignment tricks. CIMG4716 48 Likes frankps July 17, 2021, 4:23pm #32 Congratulations. What an achievement! :tada: So looking forward to get a RISC computer dedicated to run Haiku :grinning: 7 Likes Diver July 17, 2021, 4:33pm #33 This is simply astonishing! Hats off and kudos to you for your hard work and mad skills! 13 Likes brunobastardi July 17, 2021, 4:56pm #34 Wow wtf, unbelievable work... Congtats and Nastrowie for the dektop to show. We should consider a prize for your archivement. Just great very fast straight forward process. Nice and it makes me confident to hold on Haiku developement efforts. Like a light in the dark... Fascinating. 3 Likes zuzulo July 17, 2021, 8:46pm #35 @jt15s Maybe you can promote this achievement by a blog post ? 3 Likes X512 July 17, 2021, 8:48pm #36 Maybe fix artifacts first? 10 Likes waddlesplash July 17, 2021, 10:07pm #37 Would enabling write-combining, the way VESA & Framebuffer drivers do, potentially fix this problem? It may get the CPU to write a full cache line at a time instead of unaligned bytes. 2 Likes X512 July 17, 2021, 10:15pm #38 I fixed problem by using 32 bit copy per step. It seems that 64 bit access should use 64 bit (8 byte) aligned pointers. CIMG4717 26 Likes X512 July 17, 2021, 10:25pm #39 # waddlesplash: It may get the CPU to write a full cache line at a time instead of unaligned bytes. Memory types are not yet implemented for RISC-V. 2 Likes X512 July 17, 2021, 11:59pm #40 Another interesting thing is that HDA audio is recognized for video card HDMI port. Maybe audio will work by HDMI. 10 Likes rjzak July 18, 2021, 1:38am #41 I've shared some info on your awesome progress on Reddit, and someone there is asking if there's an SD card image that be used to play with. 6 Likes X512 July 18, 2021, 1:42am #42 I boot from USB disk, SD card is left untouched. I may upload test live USB image later. Note that it have known problems and not yet ready for general use. SD card has 3 problems: 1. It is not yet supported by Haiku. 2. It should include 2 additional partitions with low-level firmware code. 3. It is slow, at least on Linux. 3 Likes rjzak July 18, 2021, 1:45am #43 An image which can be dd-d to a drive should be sufficient, and of course the expectations would be set that this is pre-pre alpha. Also... @X512... I've been on the edge of my seat these past few months reading and waiting for your updates. This is awesome work, and I wish I was at your level. 4 Likes X512 July 18, 2021, 1:46am #44 Also people who want to test should aware that video card is mandatory, there are no text mode. Currently only Radeon graphics are included and tested. 3 Likes X512 July 18, 2021, 1:57am #45 I also posted on SiFive Forum. brucehoult seems also registered on SiFive forum. 6 Likes - previous page next page - * Home * Categories * FAQ/Guidelines * Terms of Service * Privacy Policy Powered by Discourse, best viewed with JavaScript enabled