@All Want to play with CFE and is there anyone who flash their x1000 with hardware programmer ? Just if you can share model, etc. I just need to be on safe side to be able to dump current and to flash it back to not have a brick :)
I am thinkin about CH341A with sop8 , will that one be ok ?
Also can someone share if it just one single slot for flash or there some "save" one in case first one flashed bad ? In trm i read: Quote:
Dual serial flash EPROM chips are provided to hold the BIOS code. Jumpers are used to choose between them
So there 2 of same copy of cfe and if one die you simple set jumper to boot from second one ?
Thanks!
Edited by kas1e on 2026/3/25 11:42:13 Edited by kas1e on 2026/3/29 13:27:00
So there 2 of same copy of cfe and if one die you simple set jumper to boot from second one ?
You've seen the "Nemo revision 2.1 Motherboard Firmware re-flash guide", right? (Per this post you have a copy.) It has details on the rescue flash chip and how to use it to restore the main chip if it gets corrupted.
Also interested in this having purchased a CH341 off eBay for another purpose.
But...
Quote:
So there 2 of same copy of cfe and if one die you simple set jumper to boot from second one ?
No not always, it depends on your hardware setup. That is the copies. For example my CFE has the factory original on my backup bank still and I boot the current one.
In theory, if one CFE goes corrupt, yes you can boot the other. But if it dies I don't know if it affects the other.
I'm interested in doing a test for CFE. Apparently years ago OS4 could boot off USB but it's not possible now. There was some AmigaBoot update to support USB booting but it doesn't work for me. So I wonder, given AmigaBoot relies on CFE, if it uses a feature of the old firmware that was removed later. One of those annoying "functionality replacements" excuses for breaking things common in AmigaOS. Looking in the device tree of CFE I can find no evidence of any USB block devices which would explain AmigaBoot not being able to boot off USB. It would also explain why AmigaBoot can only boot off one HDD as only two SATA units are on the tree. But, and here's the caveat as always; CFE can boot off USB. So how come CFE can boot off USB without USB being in the device tree?! Lol. There's lots of strange hackery in that CFE.
Also interested in this having purchased a CH341 off eBay for another purpose.
There is also Bus Pirate which should did the job too, and which kind of better than those cheap CH341 ones, but maybe CH one more than enough for read/write flash into.
Quote:
I'm interested in doing a test for CFE. Apparently years ago OS4 could boot off USB but it's not possible now. There was some AmigaBoot update to support USB booting but it doesn't work for me
So USB boot working before for sure in x1000 with older amigaboot ? Currently USB boot surely works with fat16 + linux: i surely can load up a initrd from usb and boot vmlinux from.. Don't you remember with what version of amigaboot it stopped working ? At least from release notes can be find what were changed and at least BZ with proper report can be created.. Or maybe it was instead after CFE update ?
There is also Bus Pirate which should did the job too, and which kind of better than those cheap CH341 ones, but maybe CH one more than enough for read/write flash into.
Yes likely way better. The CH341 has some flaws as older models have bugs that supplied power when they shouldn't have, something about 3.3v and 5v. I had trouble with mine, which worked over a USB2 hub, but went dead plugged directly into a USB port. Then it failed to write firmware but could read it. Turned out the devices I was using with it, advertised as new on Ebay, were really refurbished and had faulty flash chips.
Quote:
So USB boot working before for sure in x1000 with older amigaboot ?
I can't confirm that personally as I don't recall ever having it working. It was a few years ago I had a red hot go at it with both FFS and CDFS formatted USB and couldn't crack it.
The only thing I know is Andy Broad confirmed he managed to do it on his X1000 at some show. If only there were eye witnesses that watched it boot and could see what method was used to boot off USB. Or a video.
Quote:
Currently USB boot surely works with fat16 + linux: i surely can load up a initrd from usb and boot vmlinux from..
And also FAT32 yes. Why that works is CFE loads it in directly. With no middle man boot loader. Same as how it can load in amigaboot.of from USB but AmigaBoot then has no knowledge or access of USB. So CFE is hiding the secret of loading from USB.
Quote:
Don't you remember with what version of amigaboot it stopped working ? At least from release notes can be find what were changed and at least BZ with proper report can be created..
I can't answer that either as I've never seen it working myself. I do recall reading about USB from the release notes but I don't know when it would have stopped working. I found the release notes for the one I noticed had mentioned USB.
amigaboot 53.11 (18.9.2015) <sbauer>
- Added support for iso9660 filesystem on 512 bytes block devices. This, for
instance, allows to boot from iso images that have been raw-copied to a
USB stick. <sbauer>
Quote:
Or maybe it was instead after CFE update ?
I'm wondering if that was the case. Don't know if some early device trees are online anywhere. It's been years since I booted my backup bank with older CFE and it cannot boot up my system now since AmigaBoot is too new.
Did i understand right, that CFE can't simple list any other SATA/HDD device but only first one ? I mean, i just connect SSD to first port, do "show devices" and there are ide0.0, all fine (through why it called ide0.0 if it sata0.0, but ok). But connecting the same disk to _any_ other SATA port of remain 3 ones, in "show devices" show nothing , like there is none..
But, Linux for sure works when i boot from USB and use exactly SSD on second port, simple mean that CFE just set/see only single first port and that all ?
Edited by kas1e on 2026/3/29 11:47:22 Edited by kas1e on 2026/3/29 12:09:04 Edited by kas1e on 2026/3/29 12:23:46
Did i understand right, that CFE can't simple list any other SATA/HDD device but only first one ?
Yes that would be right. I have an optical on unit 0 and HDD on unit 1 as per the default recommended setting. I've also had an optical on unit 2 and just recently added an SSD on unit 3 for Linux around a couple years back.
Only the first optical and HDD show up in CFE boot scan. In fact, this was also confirmed when I installed a fresh OS4 for testing to the SSD, that didn't show up in AmigaBoot. I soon found out that AmigaBoot couldn't see the SSD because CFE only includes atapi0.0 and ide0.1.
Quote:
But, Linux for sure works when i boot from USB and use exactly SSD on second port, simple mean that CFE just set/see only single first port and that all ?
Yes it would. Because when Linux boots it boots the kernel and the kernel has all the drivers built in so it can see all drives. As a comparison it's like how after Kickstart loads that AmigaDOS can see everything that CFE can.
Are you sure ? I tested 4 ports, and only can see ide0.0 always and only on one of them (first one).. Maybe second port start to works only when first port is filled by CD, and then second port start to work as ide0.1, but only if first one is busy with something ? Because simple connecting ssd to any port didn't work anywhere but only in port 0.
Yes I'm sure, I'll post my CFE output. If I understand it the meaning of 0.1 in ide0.1 is controller 0, unit 1. And so atapi0.0 would mean controller 0, unit 0. I see what you mean about using sata as label. It tends to name ports as ide or atapi with the device address appended.
But it's confusing as I checked the CFE guide again. According to that only ports 0 and 2 are supported. So that would confuse what the 0.0 or 0.1 means as it would be a virtual device assignment.
Although SATA is simpler and doesn't need the IDE master/slave jumpers it is based on IDE so I would expect it may need device pairs plugged in. Since it is pairs of bus and unit. Or two busses with two units supported.
ATAPI unit 0: Optical Drive, "HL-DT-ST BD-RE GGW-H20L" SATA unit 1: Disk, "SAMSUNG HD103SJ", Capacity:931GB (lba48) PCIIDE: 2 controllers found
atapi0.0 PCI IDE disk unit 0 at I/O 0000 (PCI:E0590000) ide0.1 PCI IDE disk unit 1 at I/O 0000 (PCI:E0590000)
@Hypex So it seems that CFE have dumbest way of handle sata ports : it's emulate old IDE legacy way, where if no "master" present, then no "Slave" working. That explain issue #1 : if you just put hdd to the port 2, and have nothing in port 0 (both from channel 0), then you have nothing.
Second issue, is that seems CFE simple don't probe anything from channel1 absolutely : by disassembly CFE binary via Gidra i see that it simple don't probe channel 1.
Then, checking original sources of Broadcom (those which on github, and which have no changes from pasemi and hyperion), there seems all handled correctly in "ide" based sources, but seems someone at PaSemi just go hardcore way back then, and just set to query "master" for everything, and if there none, simple not query anything else. I mean, code to query all correctly even in "IDE" way were in broadcom's CFE, they just were changed in PASemi/Hyperion's one.
Edited by kas1e on 2026/3/29 22:37:44 Edited by kas1e on 2026/3/29 22:43:40
I'm not sure of the reason and thought it may have been a hardware limitation. I actually wonder if those port assignments for port 0 and port 2 mean anything at all. They always looked confusing to me. Did they a mistake on the board sata labels and decide to "fix" it in the manual?
So it takes the time to scan IDE but ignores the other SATA bus? Doesn't really make sense. But the X1000 was rigid compared to A1/XE and UBoot.
I saw red flags when I read from the Broadcom CFE source that it was not designed for anything other than a MIPS CPU and should not run on anything else. So, whoever patched the Electra firmware it seems, the reference design for Nemo, not only went against that warning but took it further and hacked an OF backend into it for whatever reason. Presumably because Linux supports OF out of the box. Although UBoot would have been a cleaner choice.
So CFE is a big hack. Apparently bugs like running a binary that exits, which causes a crash is due to OF design, because it corrupts the runtime or similar and is designed to jump into client code and never come back. It's a wonder the CFE commands work at all without crashing. But somehow, when testing real CFE compiled binaries based on the actual CFE SDK, they didn't crash for me.
Anyway, for USB booting, regardless of how it happened in the past, I can only see one way of doing it now. Be it a good or bad news kind of way. It would need a usbboot.of binary chain loader that combines a loader with all the Kickstart files in one binary. Good news is that it could load from FFS, ISO or any supported filesystem in CFE. Bad news is it would directly load kernel in and would not give any boot menu to chose layout or any options. It would allow to compress the kernel however, even if using older GZip.
I'm not sure of the reason and thought it may have been a hardware limitation. I actually wonder if those port assignments for port 0 and port 2 mean anything at all. They always looked confusing to me. Did they a mistake on the board sata labels and decide to "fix" it in the manual?
I do some test, and can say for sure that:
SATA Port 0 -> Channel 0 master SATA Port 2 -> Channel 0 slave SATA Port 1 -> Channel 1 master SATA Port 3 -> Channel 1 slave
And they more or less logical on the motherboard : first line 0 and 2 (channel0) , and second line on motherboard is ports 3 and 1 (channel1).
Quote:
So it takes the time to scan IDE but ignores the other SATA bus? Doesn't really make sense. But the X1000 was rigid compared to A1/XE and UBoot.
It hits on Master and query everything from Master, if there no Master, then it simple idle timeout further.
Quote:
So, whoever patched the Electra firmware it seems
Electra have U-Boot instead, dunno how buggy it was for them, and if it works for them at all at first and if they later switch to CFE with it too or not ..