Login
Username:

Password:

Remember me



Lost Password?

Register now!

Sections

Who's Online
62 user(s) are online (44 user(s) are browsing Forums)

Members: 0
Guests: 62

more...

Support us!

Headlines

 
  Register To Post  

X1000 CFE Patches: Testers Welcome (Fear not: real-time, no reflashing) v.01
Home away from home
Home away from home


See User information
Preface


As we are all aware (or not), we do not have the CFE source code for the X1000 that includes the
changes from PA-Semi and Hyperion. However, we do have the full CFE source code prior to those
specific changes. Combined with Ghidra for PowerPC decompilation and various disassembly tools-plus
the knowledge I gained working on the PA6T network driver regarding CFE binaries and its API-it is
now possible to create CFE patches even without the original source code.

All patches done on "cfe_2012_june_08.lha" version, on the boot you should have:
"Build Date: Fri Jun 8 16:04:49 CEST 2012 (hfrieden@jumpgate)"

or check it from CFE promt:

CFE> d 0x7FDC4028
.


Note that x1000's CFE firmware is the property of A-EON/Trevor, so I cannot distribute a ready-to-use
patched version of x1000's CFE myself (right? or can i?). But what I can distribute later for the brave
is a tool to patch your own CFE. Of course, I will test everything on my own hardware first; I currently
have a hardware programmer, so I can wipe and re-flash at any time without risk.

That is for later, though. Currently, I am making all patches "real-time," meaning you don’t need to
re-flash anything. They reside only in the current CFE memory and will be gone after a reboot or
power-off.

Resized Image

What is the practical use of this in its current form ?

You can add them to CFE and have them run at boot, or manually load them via TFTP. The real goal is to
verify that they fix existing issues without introducing new ones. Once everything is stable enough,
I will start experimenting with my own flash to make them permanent.

In other words: any X1000 user can play with these now without fear. However, if you "burn and die," I
take no responsibility. You should know what you are doing.


Running the patches

Patches should be executed using the boot -elf -noints xxxxxx.elf command. Both flags are necessary
(without -noints, the system will simply reboot after a few seconds).
You can run patches in any way you wish - just one per session, or all 3 at once
(the hooks are placed at different addresses and do not interfere with each other), like:

boot -elf -noints cf0:sata.elf
boot 
-elf -noints cf0:keycon.elf
boot 
-elf -noints cf0:cmds.elf


or via TFTP if you want to test them one by one:

boot -elf -noints 192.168.0.144:sata.elf
boot 
-elf -noints 192.168.0.144:keycon.elf
boot 
-elf -noints 192.168.0.144:cmds.elf


or if you have no CF card, you can simply put the patches on your Amiga FFS BOOT partition alongside
your amigaboot.of, and run them from there. These patches are built in a way that will not crash even
if run from CFE's AmigaFS, which lacks (or has a broken/unimplemented) seek() implementation, so this will
work too:

boot -elf -noints -fs=amigafs ide0.0:sata.elf
boot 
-elf -noints -fs=amigafs ide0.0:keycon.elf
boot 
-elf -noints -fs=amigafs ide0.0:cmds.elf


To make them run automatically (all patches, or just one - which will likely be keycon for most of us),
change your STARTUP label from just set pmu -astate=a4; menu to:

setenv -p STARTUP "set pmu -astate=a4; boot -elf -noints -fs=amigafs ide0.0:keycon.elf; menu"


Now it will run on every boot.

So...

What we have now ?

Patch #1: SATA (sata.elf)

- Added probing for Channel 1, so SATA ports 3 and 1 now work.
- Fixed detection of "slave" devices even if no "master" is present.
- Devices on any port will now be detected. You can have Port 0 (Ch0) and Port 3 (Ch1),
or Port 2 (Ch0) and Port 1 (Ch1) working together, etc.


Patch #2: Keyboard/Console (keycon.elf)

- Key repeat - Holding a key now auto-repeats (500ms delay, ~33/sec repeat)
- Home/End keys - Jump to beginning/end of line
- Delete key - Forward delete with repeat
- VESA cross-line backspace - Backspace at column 0 now wraps to end of previous line
(was moving cursor off-screen to pixel x=-8)
- VESA cross-line left arrow - Left arrow at column 0 also wraps to previous line
- VESA ghost character fix - Up/Down history no longer leaves remnants of longer commands
(VGA's writechar didn't implement it originally)


Patch #3: External commands (cmds.elf)

- "cls" - clear the screen
- "version" - returns the CFE version.


Download them from there:
https://kas1e.mikendezign.com/aos4/x10 ... rmware/cfe_busted_v01.zip

Have fun and let me know how it goes, thanks !


Edited by kas1e on 2026/3/31 5:33:20
Edited by kas1e on 2026/4/2 4:51:08
Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: X1000 CFE Patches: Testers Welcome (Fear not: real-time, no reflashing) v.01
Just popping in
Just popping in


See User information
@kas1e
Very interesting. Nice Work.

Maybe there is a way to change the astate?
200Mhz more can be nice and my procesor temp is always low at around 40 degree Celsius so temp wise ist see no Problem.

Go to top
Re: X1000 CFE Patches: Testers Welcome (Fear not: real-time, no reflashing) v.01
Quite a regular
Quite a regular


See User information
@kas1e
It looks very interesting. Thanks for developement!
I will try on weekend.

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
Go to top
Re: X1000 CFE Patches: Testers Welcome (Fear not: real-time, no reflashing) v.01
Home away from home
Home away from home


See User information
@TearsOfMe
Quote:

Maybe there is a way to change the astate?
200Mhz more can be nice and my procesor temp is always low at around 40 degree Celsius so temp wise ist see no Problem.


Yes, but you probably mean set it right once computer boots, and cfe only starts to load things up to speed up whole CFE booting process? Or you mean to change state when we already have CFE loaded till the prompt/menu ?

Why i ask it's because for now we do real-time patches, mean we need environment of CFE from where we run them. So we already in loaded CFE, where we already can do "set pmu -astate=a4" which as far as i understand (seeing linux's cpu_freq.c and cfe's disassembly) doing exactly that, set it to 1.8ghz

So probably what you mean is to set it to 1800 right at the beginning of reading date from EEPROM so to have 1800 for whole process till menu, which can only be done by permanent patches later, not by real time one.

Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: X1000 CFE Patches: Testers Welcome (Fear not: real-time, no reflashing) v.01
Just popping in
Just popping in


See User information
Ah okay.
I thought it is possible to use modes A5 and A6.
From what i understand, they’ve been removed in linux, but maybe its possible to add them. I have no idea.

*/We support 5(A0-A4) power states excluding turbo(A5-A6) modes */


Edited by TearsOfMe on 2026/3/31 9:43:53
Go to top
Re: X1000 CFE Patches: Testers Welcome (Fear not: real-time, no reflashing) v.01
Home away from home
Home away from home


See User information
@TearsOfMe

Quote:

Ah okay.
I thought it is possible to use modes A5 and A6.
From what i understand, they’ve been removed in linux, but maybe its possible to add them. I have no idea.


At least when i do "show pmu" in CFE, i got that:

show pmu
Current state
A4 (max:A4), 1800MHz
  A0 
-> D93700C5  (500MHz)
  
A1 -> DF3700C8  (800MHz)
  
A2 -> E43700CC  (1200MHz)
  
A3 -> E73700D0  (1600MHz)
A4 -> E73700D2  (1800MHz)
  
A5 -> E73700D2  (1800MHz)
  
A6 -> E73700D2  (1800MHz)
*** 
command status 0
CFE
>


a4/a5/a6 just same, need do dig in to check if this can be changed, and what benefits it will give and where if we will set let's say 2000.


@all




Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: X1000 CFE Patches: Testers Welcome (Fear not: real-time, no reflashing) v.01
Just popping in
Just popping in


See User information
Wow this looks fantastic.

Go to top
Re: X1000 CFE Patches: Testers Welcome (Fear not: real-time, no reflashing) v.01
Home away from home
Home away from home


See User information
@TerasOfME
And now about this A5/A6 thing, i find out how bypass it easy:

CFEset pmu -astate=a0
CFE
set astate 4 -speed=2000
CFE
set pmu -astate=a4
CFE
show pmu


By some reasons we can't set to 5 or to 6 (probably that what they removed, simple you can't use number more than 4), but you simple can set to any of those any value you need, i tried 1900 and 2000, and they both works, there we go:

(press open in new tab for full size):

Resized Image

In other words there maybe worth to patch to have 5 and 6 be 1900 and 2000 or something, just to avoid typing it all manually, but for while being it all can be added right in STARTUP, like:

set pmu -astate=a0set astate 4 -speed=2000set pmu -astate=a4menu


Through i do not know how stable it all and how hot it all, but from what i understand, for the 1200, 1600 and 1800 (i.e. a2, a3 and a4) we have 1:1 the same voltage , and only less for a0 (500 mhz) and a1 (800 mhz). So, everything which we set above to a4, will be of the same voltage (so it shouldn't be hot or anything), just with bigger frequency.

And as i read in the Elektra's uboot code (pre-Nemo board), you can't set more than this voltage programmable, so to not burn it.
What mean that we can test any value until we hit a wall with stability, maybe even 2200 will be ok , who know. 2000 seems fine, but that all need tests of course, especially if it indeed no voltage increase.

EDIT: ok, found:

2600mhz - freeze
2500mhz - freeze
2400mhz - exception (MCE 0x200)
2300mhz - back to CFE prompt OK, but calling "menu" -> freeze
2200mhz - much better, can start OS, but once workbench loads all sorts of freezes
2100mhz - amigaos runs fine, inside run Spencer game and play for a few minutes.


So, our safe limit is 2100. Which is also good enough, just ~16% for free from nothing. Of course that need more stress tests, but even if it will be "just" 2000 in end, that not bad too imho. Need to test some real life apps to measure if it real gain, and not just numbers.

EDIT2:
Actually, Sysmon's RAgemem benchmark on my 2100 over stock 1800 x1000 shows now +13-17% everywhere. Same as sortbench : +17% everywhere. And same as SDL Bench.. Quite cool !


Edited by kas1e on 2026/4/1 22:32:29
Edited by kas1e on 2026/4/1 22:42:21
Edited by kas1e on 2026/4/1 22:44:20
Edited by kas1e on 2026/4/1 22:49:00
Join us to improve dopus5!
AmigaOS4 on youtube
Go to top
Re: X1000 CFE Patches: Testers Welcome (Fear not: real-time, no reflashing) v.01
Just popping in
Just popping in


See User information
Thanks for testing. Looks good. I will look to change tomorrow my Rx card back to a HD for testing.

Go to top

  Register To Post

 




Currently Active Users Viewing This Thread: 1 ( 0 members and 1 Anonymous Users )



Polls
Running AmigaOS 4 on?
AmigaOne SE/XE or microA1 12% (26)
Pegasos2 3% (8)
X5000 22% (48)
X1000 14% (30)
A1222 8% (19)
Sam 440/460 18% (40)
Classic PowerPC Amiga 2% (6)
WinUAE emulation 7% (16)
Qemu emulation 9% (21)
Total Votes: 214
The poll closed at 2025/12/1 12:00
8 Comments


Powered by XOOPS 2.0 © 2001-2024 The XOOPS Project