I do not know from where you got that idea that we did ? All we have is source code of ORIGINAL broadcoms's CFE , WITHOUT Pa-Semi/Hyperions's changes. If i have sources, why should i guess anything , i simple can know for sure how it all works.
I meant AmigaKit or AEON. Or whoever had the source. I thought it has been announced in a news report that the CFE sources were reclaimed. Upon checking I see references to it on forums but no official report. It was reported here on Amiga news but it's a comment on bottom of a report where Steven Solie spoke about it at AmiWest 2022.
We HAVE NO SOURCE CODE OF x1000 CFE :) How can we compile it, if we have no source ?
Sorry, I said compile, but I meant assemble. Or reassemble. From a source disassembly.
Quote:
Broadcom's CFE just have nothing about amigafs, or about any rendering to framebuffer, or anything else which is X1000 related, this is all walking in the dark of assembly.
Given it was written for routers it makes sense the original would have no support for framebuffers.
Quote:
I need to add, that decompiled .c files from cfe.bin (with of course many functions simple missing instead of raw data with ????, with missing functions names totally as CFE.bin sripped down of debug symbols) are alone 2 mb of size, and plain disassmbly 48 (!!!) MEGABYTES of size. To compile back anything from that is near to impossible, so all what i can do, is to write a PATCHER, which will patch current CFE.bin which then, we can reflash back. But we can't build a shit because we have no sources of x1000 cfe
Just as well the firmware image is raw data. Nightmare if they included compressed binary data in there. Then again, I did a search for "RTAS" and nothing showed up. So there could be some other secrets hidden inside. Patching would likely be easier than reassembling, even combining binary blobs with object files. Though if the image could be split into different blobs and mapped out replacing and recombining could be possible.
The next question is how may flashes are safe on the chips. And, given there are two banks, to keep current release on backup or keep original? Suppose flashing current to backup and testing on main bank could work best. If the flash chips are still available and replaceable this will be less of a risk.
I can see it now. You spend all this work getting CFE up to scratch. Then Solie comes out with an updated CFE a month later.
The next question is how may flashes are safe on the chips. And, given there are two banks, to keep current release on backup or keep original? Suppose flashing current to backup and testing on main bank could work best.
That the hardest part. Because some users for sure can't risk to have a brick. This need careful planning and testing-retesting.
Quote:
If the flash chips are still available and replaceable this will be less of a risk.
Imho even with bad reflashing CH341A should help without replacing chips (it have some clips you attach right on top of chip without needs of resolder it, so to read/write data to).
Quote:
I can see it now. You spend all this work getting CFE up to scratch. Then Solie comes out with an updated CFE a month later.
Ahah :) At least, i should't post exactly self-explained full details of how things done, so he can't copy it saying that he do it all : ) But , seeing how SSolie working on X5000 firmware, and how he for 2 or more years wasn't able to simple compile it , i have big doubts anything will be out from them ever if they will not change the managment/devs/etc. But who care, we can do it our way.
In end of all my plan is:
1). fix real annoying issues with CFE via realtime patches (as it now). Maybe combine everything just to one single patch.
2). thinking carefull and plan how to do real reflashing , so no bricks happens. Or, if someone still do something wrong, how to to be sure he can fix it at home (so should be clear how-to how to fix it , if by any reasson it briks, like light were turned off in process, etc).
3). port fresh u-boot. For that i will create dedicated topic later. I already have some progress in this regards, but hold it until i deal with CFE first and users will have something already instead another promices:
The next question is how may flashes are safe on the chips. And, given there are two banks, to keep current release on backup or keep original? Suppose flashing current to backup and testing on main bank could work best.
That the hardest part. Because some users for sure can't risk to have a brick. This need careful planning and testing-retesting.
I think you can look up the datasheet of the flash chip on your motherboard and it should say something about that. For older chips maybe you can do about 1000 reflashes.
@kas1e I try to boot from the Amigaos4 CD but with the SATA fix it gives an error. Here the serial output:
20:19:54.041 Initializing PCI. []
[PCIH]PCI bus 0 slot 17/1: PCIe: 20:19:54.046 port 5 could not be activated
PCI bus 0 slot 17/2: PCIe: port20:19:54.051 6 could not be activated
PCI bus 0 slot 17/3: PCIe: port 7 c20:19:54.067 ould not be activated
20:19:55.123 [PCIB]SB600 revision A21 in Intel P4 mode
[PCIS]20:19:55.128 PCI bus 1 slot 0/0: ATI Technologies product 0x699f (VGA displ20:19:55.133 ay, rev 0xc7)
PCI bus 1 slot 0/1: ATI Technologies product 0x20:19:55.139 aae0 (multimedia subclass 0x03)
PCI bus 5 slot 18/0: ATI Tech20:19:55.145 nologies product 0x4380 (IDE mass storage, interface 0x8f)
PC20:19:55.150 I bus 5 slot 19/0: ATI Technologies product 0x4387 (USB serial20:19:55.156 bus, interface 0x10)
PCI bus 5 slot 19/1: ATI Technologies p20:19:55.161 roduct 0x4388 (USB serial bus, interface 0x10)
PCI bus 5 slot20:19:55.167 19/2: ATI Technologies product 0x4389 (USB serial bus, interf20:19:55.171 ace 0x10)
PCI bus 5 slot 19/3: ATI Technologies product 0x43820:19:55.177 a (USB serial bus, interface 0x10)
PCI bus 5 slot 19/4: ATI T20:19:55.182 echnologies product 0x438b (USB serial bus, interface 0x10)
P20:19:55.188 CI bus 5 slot 19/5: ATI Technologies product 0x4386 (USB seria20:19:55.193 l bus, interface 0x20)
PCI bus 5 slot 20/0: ATI Technologies 20:19:55.198 product 0x4385 (SMBus serial bus, rev 0x14)
PCI bus 5 slot 2020:19:55.204 /1: ATI Technologies product 0x438c (IDE mass storage, interfa20:19:55.210 ce 0x83)
PCI bus 5 slot 20/2: ATI Technologies product 0x438320:19:55.215 (multimedia subclass 0x03)
PCI bus 5 slot 20/3: ATI Technolo20:19:55.220 gies product 0x438d (ISA bridge)
PCI bus 5 slot 20/4: ATI Tec20:19:55.228 hnologies product 0x4384 (PCI bridge)
[DEVI]Initializing Devi20:19:55.234 ces.
GPIOLV10 Jumper: Fitted (forced serial console)
GPIOLV120:19:55.241 1 Jumper: Not fitted (default ?)
PHY: mb, addr 0x00, vendor 20:19:55.257 03f1 device 15 (1)
20:19:57.399 SATA unit 0: Disk, "Samsung SSD 840 EVO 120GB", Capacity:111GB20:19:57.413 (lba48)
20:19:59.573 ATAPI unit 1: Optical Drive,20:19:59.577 "HL-DT-ST BD-RE BH16NS40"
Disk inserted (capacity 26845745020:19:59.592 blocks)
20:20:01.750 PCIIDE: 2 controllers found
Initializing USB.
PCI 20:20:01.755 bus 5 slot 19/5: EHCI USB controller found at A0409800
USB bu20:20:01.761 s 0 device 1: vendor 0000 product 0000 class 09: USB Hub
PCI 20:20:01.776 bus 5 slot 19/0: OHCI USB controller found at A0407000
20:20:02.345 USB bus 1 device 1: vendor 0000 product 0000 class 09: USB Hub20:20:02.351
PCI bus 5 slot 19/1: OHCI USB controller found at A0406000
20:20:02.939 USB bus 2 device 1: vendor 0000 product 0000 class 09: USB Hub20:20:02.945
PCI bus 5 slot 19/2: OHCI USB controller found at A0408000
20:20:03.533 USB bus 3 device 1: vendor 0000 product 0000 class 09: USB Hub20:20:03.539
PCI bus 5 slot 19/3: OHCI USB controller found at A0405000
20:20:04.128 USB bus 4 device 1: vendor 0000 product 0000 class 09: USB Hub20:20:04.134
PCI bus 5 slot 19/4: OHCI USB controller found at A0404000
20:20:04.721 USB bus 5 device 1: vendor 0000 product 0000 class 09: USB Hub20:20:04.731
CPU type 0x900102: 500MHz
Total memory: 0x100000000 bytes (20:20:04.736 4096MB)
Total memory used by CFE: 0x7FD1DF60 - 0x80000000 20:20:04.741 (3023008)
Initialized Data: 0x7FDD8420 - 0x7FDF8B00 20:20:04.747 (132832)
BSS Area: 0x7FDF8B00 - 0x7FDFF000 (20:20:04.752 25856)
Local Heap: 0x7FDFF000 - 0x7FFFF000 (2020:20:04.757 97152)
Stack Area: 0x7FFFF000 - 0x80000000 (4020:20:04.763 96)
Text (code) segment: 0x7FD1DF60 - 0x7FDCBE60 (7124420:20:04.768 8)
Relocation Factor: I:7FE1DF60 - D:7FE1DF60
[ENVI]20:20:04.784
[OFW ][UI ]20:20:04.812 AState 4 now configured for 2000MHz
Requested state A4 (2000M20:20:04.828 Hz)
20:20:04.844 port 0:1/1 enabled (high speed)
20:20:04.858 USB bus 0 device 2: vendor 05E3 product 0610 class 09: USB Hub20:20:04.873
20:20:06.210
USB: New device connected to bus 0 hub 2 port 2 (low speed)[20:20:06.224 K
20:20:06.231 USB bus 0 device 3: vendor 30FA product 0400 class 03: Human-I20:20:06.247 nterface Device
USBHID: Mouse Configured.[K
20:20:06.998
USB: New device connected to bu20:20:07.014 s 0 hub 2 port 3 (low speed)[K
20:20:07.025 USB bus 0 device 4: vendor 5543 product 0004 class 03: Human-I20:20:07.040 nterface Device
USBHID: Mouse Configured.[K
20:20:07.791
USB: New device connected to bus 0 hub 2 port20:20:07.808 4 (full speed)[K
20:20:07.818 USB bus 0 device 5: vendor 040B product 0A67 class 03: Human-I20:20:07.833 nterface Device
USBHID: Keyboard Configured.[K
20:20:07.842 Loader:elf Filesys:amigafs Dev:ide0.0 File:sata_fix.elf Option20:20:07.857 s:(null)
Loading: 0x0000000000100000/8376 20:20:07.866 0x00000000001020B8/2100 0x00000000001028EC/32 Entry at 0x0000020:20:07.881 00000100000
Starting program at 0x000000000010000020:20:07.993
20:20:08.184 [RUN!]=SLoader:elf Filesys:amigafs D20:20:08.192 ev:ide0.0 File:vga_init.elf Options:(null)
Loading: 0x000000020:20:08.203 000100000/110988 0x000000000011B18C/6083 0x000000000011C950/2120:20:08.211 48 0x000000000011D1B4/527904 Entry at 0x0000000000100000
Star20:20:08.226 ting program at 0x000000000010000020:20:08.389
20:20:08.579 [RUN!]20:20:08.585
=== VGA Init v1 ===
Standalone BIOS emulator for PA6T/X1020:20:08.590 00
Using U-Boot's X86EMU (fast path)
=== PXP Workaround 20:20:08.595 ===
PXP_IGNORE_PCIE_ERRORS: already set
=== Step 4: Run BIOS POST ===20:20:09.099
20:20:10.695 BIOS POST complete!
=== Step 5: Set VBE mode 0x103 ===
20:20:10.699 20 VBE modes available
Required VESA mode 0x103 not found
20:20:10.704
=== Step 5: Set VBE mode 0x100 ===
20 VBE modes availabl20:20:10.709 e
Required VESA mode 0x100 not found
No 8bpp modes avail20:20:10.716 able
Patched CFE mode search: bpp=32 (0x2f940020 at 0x7fd7820:20:10.720 6f0)
Settings are okay, but it not working so good here. I am only able to connect with my phone, pc works not. I buyed 2 adapter but anyway this is an other story....
Okay here my startup: set astate 4 -speed=2000; set pmu -astate=a4; boot -elf -noints -fs=amigafs ide0.0:sata_fix.elf; boot -elf -noints -fs=amigafs ide0.0:vga_init.elf; vga init; set console pcconsole0; menu
Removed the RX560, reinstalled the R7 250 and reverted the GPIOLV10 to its original state.
Whenever I access the CFE command line it crashes with an exception. I don't even have time to type anyhing.
I removed everything (old RT8139 card and SATA SII3114 card) and CFE command line still crashes (if I hold the statup menu with the space bar: no crash. It crashes only on the CFE command line).
If I let AmigaOS 4.1 start : no problem at all, all working flawlessly.
So for the moment, I'm stuck without any idea of why the CFE command line produces an exception within a few seconds and crashes.
I tried 4 different keyboards (without the mouse connected nor the network).
I even changed the CR2032 battery.
-- AmigaONE X1000 and Radeon RX 560 Sam460 and Radeon RX 560 MiST FPGA Replay + 060 DB
@K-L GPIOLV10 should be not in original state, but in state "closed", i.e. "enabled". So to NOT initalize card by CFE at start. Then, as you already have STARTUP working and running os4, you need to hit "Ctrl+C" after you start in serial console quite offten, so to break STARTUP execution.
That all should happens in serial console , not on monitor/keyboard of x1000 of course. "space bar" there will play no role, it's just for menu on monitor/x1000's keyboard.
Then when you will be able to type anything you can continue :)
Also, if you run ANYTHING from STARTUP (and didn't break it's execution) which have running anything , without -noints options, you will simple crashes after 30 seconds (that the CFE timer, which disables for any running command by -noints param).
Just to be clear: everything MUST be done via serial and not from the CFE command line?
Yes, all from serial, if you want RadeonRX patch. No need to remove RX card. At least for now, from serial, until you got it all working, and then can cookie up STARTUP line to not use serial.
But if you want any other patch to test, like sata one, console one, then you can go without serial, but only with RadeonHD, because with RadeonRX you will see nothing on screen, so with RadeonRX serial in any case. Just with HD can be and serial and console (and with HD jumper can be open, if you don't need to interrupt video initialization).
Quote:
To go further: just the speed setting must be done via serial too?
You just do that : you break execution of STARTUP entry, all what in you break. Then from console (on serial) you simple do everything you need : set the speed, run the patches, switch to console if need it, or switch back from console to serial, etc. Doesn't matter from where you run commands , from serial or from console, they executes in any way, just from serial it's more easy to paste / copy / delete big lines, etc. And also with RadeonRX its the only way to make it all works.
So steps: you break execution of STARTUP via ctrl+c (not let it run amigaboot, because then you will crash after some seconds). The break by "space bar" on monitor is break of amigaboot.of , that mean crash after in CFE.
Quote:
Is there something modified to explain why my CFE command line crashes (it should not be the case since I haven't loaded anything)?
All i can say is that CFE have some "timer" enabled, which simple let it die after 30 seconds in favor of any other program running from , i.e. it redirect the rights to. When running program continue its execution you just see no crash, but if you run anything , and return to CFE, then after short time timer fire-up and you crashes. The only exception to not crash, is to run any command with -noints param (as i show in first post).
You may think you not run anything, but what your STARTUP line are ? If it run some binary , like , amigaboot.of, and then you return from (by space bar), then of course it will crashes after 30 secs (or even faster, because amigaboot.of take some time after it runs and before you exit to CFE, so visually it may looks like you simple crash right away once go to console back).
So my X1000 has a problem. When entering CFE command line, it crashes and reboots after 3 or sometimes 6 seconds (I can see a really fast message with the word "exception" in it).
I have to rule out this problem if I want to test anything.
-- AmigaONE X1000 and Radeon RX 560 Sam460 and Radeon RX 560 MiST FPGA Replay + 060 DB
@K-L Not sure x1000 have problem, because amigaos4 runs fine you says. It only mean something with CFE settings IMHO.
Just first thing to try later is to attach serial cable, set jumper to be closed (enabled), and when things start loads up on serial (and you see data coming through serial) , you start hit like a madman Ctrl+c (on PC in the putty's screen, of course) many many times until it stops. And you should see something like :
That mean you interrupt STARTUP execution and you in console on serial. So that the main test first. Once you will be able to do so, mean that it all can be done.
If you can't interrupt via CTRL-C, then it mean settings of terminal wrong. In putty you should have : 115200, 8, 1 , None, None.
Quote:
(I can see a really fast message with the word "exception" in it).
That how this timer crashes, exactly with exception. I am on 99% sure that it.
Exactly the same. I told you need to interrupt STARTUP execution :) Its just you crash after 3-5 seconds maybe because you set CPU in STARTUP to 2000 already, or "speed" , etc.
@K-L How you cookie up before your STARTUP line btw ? I mean, you were able to change it somehow , right ? So you already before interrupt it and change. Or you never change it , and RadeonRX simple works for you only by jumper-hack and you change nothing in STARTUP ?
I changed it wih the CFE command line when I installed my Radon RX card. But now I can't access it since it reboots after the "Exception message" even after having hit CTRL C multiple times.
My command line is : setenv -p STARTUP 'speed ; setenv os4_bootdevice "auto" ; boot -fs=amigafs ide0.0:amigaboot.of'
-- AmigaONE X1000 and Radeon RX 560 Sam460 and Radeon RX 560 MiST FPGA Replay + 060 DB