So I tried it with the HD card. So, the first s2. When I run the vga_init and the sata patch, it crashes: Without the vga_init patch and with sata patch it works. The system boots normally to the Workbench.
Loader:elf Filesys:amigafs Dev:ide0.0 File:vga_init.elf Options:(null)
Loading: 0x0000000000100000/110988 0x000000000011B18C/6083 0x000000000011C950/2148 0x000000000011D1B4/527904 Entry at 0x0000000000100000
Starting program at 0x0000000000100000
[RUN!]
=== VGA Init v1 ===
Standalone BIOS emulator for PA6T/X1000
Using U-Boot's X86EMU (fast path)
=== PXP Workaround ===
PXP_IGNORE_PCIE_ERRORS: already set
POST hook installed. Now run:
vga init -fb -keep
set console pcconsole0
=== VGA Init complete ===
Boot chaining: installed
VGA BIOS has already been initialized.
*** command status = 0
CFE> f d sata
Loader:elf Filesys:amigafs Dev:ide0.0 File:sata_fix.elf Options:(null)
Loading: 0x0000000000100000/11224 0x0000000000102BD8/2753 0x0000000000103699/43 Entry at 0x0000000000100000
Starting program at 0x0000000000100000
[RUN!]=== SATA FIX v22 ===
Both channels + dynamic BARs + ATAPI + UDMA
Finding CFE API...
Seal at 0x7FD1F458, dispatch at 0x7FD206A4
Boot chaining: already active
BAR0=0x00001031 (Ch0 cmd=0x00001030)
BAR2=0x00001049 (Ch1 cmd=0x00001048)
Step 0: UDMA read patch
BAR4=0x00001021 -> BMDMA I/O 0x00001020
DMA trampoline installed (796 bytes), UDMA active
Step 1: AHCI port status
BAR5=0xA0209000 -> AHCI=0xA0209000 PI=0x0000000F
Port 0: PRESENT SIG=0x00000101 (ATA)
Port 1: PRESENT SIG=0x00000101 (ATA)
Port 2: PRESENT SIG=0xEB140101 (ATAPI)
Port 3: PRESENT SIG=0x00000101 (ATA)
IDE signature check:
Port 0: LBAmid=0xFD LBAhi=0x27
Port 1: LBAmid=0x00 LBAhi=0x00
Port 2: LBAmid=0xFD LBAhi=0x27 -> triggering ATAPI sig... LBAmid=0x14 LBAhi=0xEB FIXED
Port 3: LBAmid=0x00 LBAhi=0x00
Ch0 probe bitmask: 0x00000000
Ch1 probe bitmask: 0x000000FF
Step 2: Verify patch points
All 8 patch points verified OK
Step 3: Applying common patches
5 common patches applied (P2+P3+PB+PC+PE)
PA applied per-channel (only when master empty)
Step 4a: Channel 0 -- boot already found both, skipped
Step 4b: Probing Channel 1 (BAR2)...
P1+PD applied (BAR2, instance 1, master present)
IDE unit 0: Disk, "OCZ-AGILITY3", Capacity:55GB (lba48)
IDE unit 1: Disk, "Intenso SSD SATAIII", Capacity:447GB (lba48)
PCIIDE: 2 controllers found
Ch1 probe returned!
Step 7: Device tree nodes
pci@12 at 0x7FE1DF20
KMALLOC(512) = 0xFFBF43E8
Method dispatch from existing node: 0x7FDF7BEC
Creating node "ide1.0" at 0xFFBF43E8
props: name="ide1.0", device_type="block"
Creating node "ide1.1" at 0xFFBF44E8
props: name="ide1.1", device_type="block"
Appended after existing child at 0x7FE1E4D8
Verify: pci@12 children: "ide0.0" "atapi0.1"
=== SATA FIX v22 DONE ===
Try: show devices ; show devtree
*** command status = 0
Loader:elf Filesys:amigafs Dev:ide0.0 File:amigaboot.of Options:(null)
Loading: 0x0000000000200000/61536 Entry at 0x0000000000200000
Starting program at 0x0000000000200000
[RUN!];0HJ1mAmigaOS 4.x OpenFirmware Bootloader V53.21m
;1H
Please choose a configuration to boot (Default choice is green):
1: AmigaOS_4.1_Final_Edition_RX_CDm (Volume BOOT)
2: 2mAmigaOS_4.1_Final_Edition_RX_SD0m (Volume SD0)
3m[RETURN]m Boot default 3m[SPACE]m Stop Countdown
Move default 3m[UP]m or 3m[DOWN]m with arrows
3m[12]m Boot appropriate config
(5 sec. until autoboot)> (4 sec. until autoboot)>
[HELO][DRAM]SDRAM: ECC off, Non-ECC DIMM used on channel 0.
SDRAM: ECC off, Non-ECC DIMM used on channel 1.
[RELO][L1CF][GOLO][GOT ][ZBSS][INIT][MAIN][KMEM][EXCP][CONS][CIOK][AREN][PCIH][PCIB][PCIS][DEVI]
So far, I've only tested the new s3_2 with vga_init and the rx. Everything freezes when loading sata_fix
Loader:elf Filesys:amigafs Dev:ide0.0 File:sata_fix.elf Options:(null)
Loading: 0x0000000000100000/11168 0x0000000000102BA0/2717 0x000000000010363D/35 Entry at 0x0000000000100000
Starting program at 0x0000000000100000
Wait wait, forget about s2 :) S2 - go to trash. Use s3_2.zip ONLY now (this will cope with vga_init issue too). And i really mean s3_2.zip (as in previous post), not pure s3.zip (i delete it from server already so no one else will).
@TearsOfMe Ok, good. Can you then check without vga_init it all over the places, on all bugs you may find. Just without vga_init patch. Can be radeonrx or radeonhd doesn't matter if you will do all from serial, just so i know there no more bugs in this patch exactly and all boots and works ,and detects on all ports.
It's a bit mess when there lots of different ones, so probably after we deal with all this, i better start to combine everything in one single patch (in general that was a plan as well, by small ones test small fixes and combine in one big).
vice connected to bus 0 hub 2 port 3 (low speed)[K
USB bus 0 device 4: vendor 5543 product 0004 class 03: Human-Interface Device
USBHID: Mouse Configured.[K
USB: New device connected to bus 0 hub 2 port 4 (full speed)[K
USB bus 0 device 5: vendor 040B product 0A67 class 03: Human-Interface Device
USBHID: Keyboard Configured.[K
To get back into the menu, type 'menu' on the CFE command prompt
[CFE ]CFE> sata
Loader:elf Filesys:amigafs Dev:ide0.0 File:sata_fix.elf Options:(null)
Loading: 0x0000000000100000/11168 0x0000000000102BA0/2717 0x000000000010363D/35 Entry at 0x0000000000100000
Starting program at 0x0000000000100000
[RUN!]=== SATA FIX v22 ===
Step 4a: Channel 0 -- boot already found both, skipped
Step 4b: Probing Channel 1 (BAR2)...
P1+PD applied (BAR2, instance 1, master present)
IDE unit 0: Disk, "OCZ-AGILITY3", Capacity:55GB (lba48)
IDE unit 1: Disk, "Intenso SSD SATAIII", Capacity:447GB (lba48)
PCIIDE: 2 controllers found
Ch1 probe returned!
*** command status = 0
CFE> kez ycon
Loader:elf Filesys:amigafs Dev:ide0.0 File:KEYCON.ELF Options:(null)
Loading: 0x0000000000100000/5732 0x0000000000101664/1354 Entry at 0x0000000000100000
Starting program at 0x0000000000100000
[RUN!]
=== CFE KEY REPEAT PATCH v8 ===
66.6 MHz TBR, 500ms delay, 30ms repeat
VGA backspace cross-line fix
Boot chaining: already active
Verifying patch sites...
0x7FD54160 (readkey bl): 0x4BFFFB75 OK
0x7FD54130 (POLL bl): 0x48001D75 OK
0x7FD6F0A8 (HID cb end): 0x4BFFFEB4 OK
Copying hook code (1360 bytes) to 0x7FC00000...
readkey_hook at: 0x7FC00000
poll_hook at: 0x7FC00090
hid_hook at: 0x7FC002C4
Patching readkey bl: 0x4BEABEA1
Patching POLL bl: 0x4BEABF61
Patching HID cb b: 0x4BE9121C
VT100 queue ptr @0x7FDD6C84: 0x7FDFDB8C -> 0x7FDFF128 OK
Jump table base (GOT 0x7FDD6C24): 0x7FDBC804
Old BS entry: off=0xFFF8A7AC -> 0x7FD46FB0
bs_crossline_hook at: 0x7FC0044C
New BS entry: off=0xFFE43C48
Verify: off=0xFFE43C48 -> 0x7FC0044C OK
ESC cmd table (GOT 0x7FDD6C28): 0x7FDBC854
Old K entry [10]: off=0xFFF8A734 -> 0x7FD46F88
esck_hook at: 0x7FC004CC
New K entry: off=0xFFE43C78
Verify: off=0xFFE43C78 -> 0x7FC004CC OK
*** KEY REPEAT ACTIVE ***
Hold any key: 500ms wait, then ~33 repeats/sec.
Arrows + BS + Del repeat. Home=BOL, End=EOL.
ESC[K erase-to-EOL active (fixes ghost chars).
To undo: reboot or power cycle.
*** command status = 0
CFE> cmfs fds ds
Loader:elf Filesys:amigafs Dev:ide0.0 File:CMDS.ELF Options:(null)
Loading: 0x0000000000100000/6660 0x0000000000101A04/1034 Entry at 0x0000000000100000
Starting program at 0x0000000000100000
[RUN!]
=== CFE CUSTOM COMMANDS PATCH v1 ===
Commands: cls, version, help
0x7FD5B504 (cmd_exec): 0x7C0802A6 OK (mfspr r0, LR)
Copying hook code (1108 bytes) to 0x7FC02000...
VT100 ptr1 @0x7FDD6C84: 0x7FDFDB8C
dev_softc: 0x7FDFF128
vga_ctx: 0x7FDFE8D0 ncols=00000064 OK
CFE version: PAS-00000002.00000000.0000001E
Version string: 364 bytes at 0x7FC03010
cmd_hook at: 0x7FC02000
Patching cmd_exec: 0x4BEA6AFC
Verify: 0x4BEA6AFC OK
Boot chaining: already active
*** CUSTOM COMMANDS ACTIVE ***
cls, version, help (extended)
*** command status = 0
CFE> ls d dir -fs=amigadfs fs - oi ide0.0:
Directory
Emulation dir ------------rwed
Utilities.info 14774 ------------rw-d
Internet dir ------------rwed
Devs dir ------------rwed
Trashcan dir ------------rwed
Libs dir ------------rwed
Emulation.info 15444 ------------rw-d
sata.elf 8112 ------------rwed
this_is_ide0.0 1 ------------rwed
cmds.elf 10320 ------------rwed
MUI.info 16828 ------------rw-d
System.info 15366 ------------rw-d
Amigaos4boot.img.000 276267008 ------------rwed
C dir ------------rwed
L dir ------------rwed
S dir ------------rwed
Trashcan.info 12218 ------------rw-d
MUI dir ------------rwed
Fonts dir ------------rwed
sata_fix.elf 18896 ------------rwed
Utilities dir ------------rwed
Documentation.info 15728 ------------rw-d
Classes dir ------------rwed
amigaboot.of 62100 ------------rwed
Prefs.info 15944 ------------rw-d
Documentation dir ------------rwed
Storage dir ------------rwed
Kickstart dir rwedrwed----rwed
System dir ------------rwed
Locale dir ------------rwed
Devs.info 15912 ------------rw-d
Prefs dir ------------rwed
keycon.elf 9796 ------------rwed
vga_init.elf 177028 ------------rwed
Storage.info 15384 ------------rw-d
Internet.info 16456 ------------rw-d
Disk.info 13678 ------------rw-d
SObjs dir ------------rwed
Amigaos4boot.img.sii 251 ------------rwed
276721244 bytes in 20 files
19 directories
*** command status = 0
CFE> cls
[H[2J*** command status = 0
CFE> printenv
Variable Name Value
-------------------- --------------------------------------------------
ETH0_HWADDR 00:50:c2:20:d9:e2
MENU_0_LABEL AmigaOS
MENU_1_LABEL AmigaOS CD Boot
MENU_DEFAULT 0
Okay, tryed with a different card. An rx570 card and the patches working all with this card. In case it helps this is a polaris 10 card, the rx550 is polaris 12.
Step 7: Device tree nodes
pci@12 at 0x7FE1EAF0
Node memory at 0x7FDD0000 (512 bytes)
Method dispatch from existing node: 0x7FDF7BEC
Creating node "ide1.0" at 0x7FDD0000
props: name="ide1.0", device_type="block"
Creating node "ide1.1" at 0x7FDD0100
props: name="ide1.1", device_type="block"
Appended after existing child at 0x7FE1F0A8
Verify: pci@12 children: "ide0.0" "atapi0.1" "ide1.0" "ide1.1"
=== SATA FIX v22 DONE ===
Try: show devices ; show devtree
*** command status = 0
All devices found:
CFE> show devices
Device Name Description
------------------- ---------------------------------------------------------
uart0 NS16550 UART at 0xFCFF03F8
pcconsole0 PC Console (USB/VESA)
eeprom0 Microchip 24LC128 EEPROM on SMBus channel 0 dev 0x57
eth0 PA Semi Ethernet (ge3) at 0xE00A3000 (02-00-E0-0A-30-00)
flash0.os SPI flash at FFE00000 offset 00000000 size 1024KB
flash0.boot SPI flash at FFE00000 offset 00100000 size 1024KB
therm0 TI TMP423 Thermal Sensor on SMBus channel 0 dev 0x4C
cf0 CompactFlash ATA disk unit 0 at 0xF0000000
ide0.0 PCI IDE disk unit 0 at I/O 1040 (PCI:E0590000)
atapi0.1 PCI IDE disk unit 1 at I/O 1040 (PCI:E0590000)
usbdisk0 USB Disk unit 0
usbdisk1 USB Disk unit 1
ide1.0 PCI IDE disk unit 0 at I/O 1048 (PCI:E0590000)
ide1.1 PCI IDE disk unit 1 at I/O 1048 (PCI:E0590000)
*** command status = 0
Thanks for perfect upgrades!
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
@Sailor That cool :) You can also test even by single CD to be on anything like ide1.1 or ide 1.0 and boot from, all cases should work fine, i tested many. Of course something still can be missing, but so far i tried to cover all possible cases (even with 2 cddrives at one time, etc).
@All
So, if that was not enough, there is what i work last 2 days on : udb_fix !!
Grab it while it hot, and test it the same without evertyhing, or, at least with only sata_patch:
- add hooks on USB attach/detach to dynamically create/remove device tree nodes with necessary methods enabling USB boot through amigaboot.of ! - supports both usbdisk0 and usbdisk1 simultaneously: you can have 2 sticks at the same time, both can be bootable. but you still need them be reinserted. - added support for USB CD/DVD (SubClass 2): - originally only SubClass 5-6 (flash drives) were accepted, and anything else were simple rejected. - also added EHCI read-splitting hook: originally CFE's EHCI driver rejects transfers larger than ~20KB , but USB CD-ROM doing ~90kb at once, so hook split large reads into 16kb chunks, made USB CD-ROM working (i tested on some ASUS USB CD-DVD Rom).
Try this out ! But remember, you should "reinsert" sticks/drives still, i didnt' want add enumeration in patch as it will take ~3-4 seconds on enumerating attached devices.. At least in form as i were able to do it, if it can be reduced to 1 sec, then probably that can be added (so to not slow loading down).. That to be seen, but for now, have fun with !
@kas1e I just tried usb_fix, but please, can you explain more detailed what to test?
- I can boot amigaboot.of from ext2 usb stick, both with and without usb_fix.elf - I cannot boot amigaboot.of from fat usb stick, both with and without usb_fix.elf - it allways stops with missed interrupt after loading modules and splashscreen:
@Sailor Main point of this fix is : 1) AmigaOS can boot from amiga usb stick on x1000 2) USB CD-Drive booting.
That mean that stick should be of course not a fat one, but ffs one, due to all sort of differences.
Edit: you say you can boot amigaboot.of even without fix from ex2fs : you can load amigaboot.of if vourse, but it will not find usb stick as bootable media without fix, thats main point.
I can confirm boot AmigaOS4 from usb stick on x1000 is working. Testet with usb and SATA fix.
Good ! Thanks for tests !
Did i understand correctly from all our binary patches of latest versions, that the only issue now is when we combine them with vga_init fix, and issue is _only_ on RX card, and only on one of them (polaris12) and not on another one (polaris10) ? Can you confirm it plz ?
And without vga_init all patchs works together fine ?
Okay did some testing. Tried usb and sata fix. Then tried to load amigaboot.of from USB stick. Couldn't load for some reason, couldn't init the filesystem. USB stick had been imaged with OS4 install ISO. I've loaded amigaboot.of before I'm sure from CD formatted USB.
So just ran menu to load it from HD. AmigaBoot could then see all my volumes including USB. Was strange to see all volumes, including USB and my SSD. It messed up the order of my menu, lol. The USB was at the top, but instead of device name, it had volume name of OS CD.
So picked USB and could see it was loading modules of USB. Took about 15 seconds. But then AmigaOS didn't load up. I had serial connected also and the last thing listed was a message about loaded modules in 15 seconds. No evidence the kernel had loaded. I applied the usb and then sata fix after if it matters.
So reset and reloaded sata patch. Ran menu and booted OS4. Modules loaded in 0.545 seconds, could hardly see it move!