Hi there Nicholas,

Recently I've provided a lot of instructions for you at Biostar AM1ML
thread on Reddit. Below, for the archival purposes, is a repost from
https://www.reddit.com/r/coreboot/comments/u4ncpe/biostar_am1ml/ :

1) Biostar AM1ML seems to have a socket'ed DIP8 chip, so it is
possible to flash just by a USB CH341A (preferably with a green PCB)
to get it done. You also need a DIP8 or PLCC extraction tool, to be
able to safely remove a DIP8 chip from a socket without bending its'
pins. In addition, maybe order a USB extension cable for convenience.
There are also DIP8 test clips, but they are expensive compared to
SOIC8 ones - and, since the chip is socket'ed - are not essential. Any
cheapest DIP8 or PLCC extraction tool from AliExpress - still should
be good enough. Usually I'm using a PLCC one even for DIP8 chips,
slightly more convenient IMHO, but you can get both considering their
dirt cheap price.

2) It's quite easy to build a coreboot for AM1ML, also because it's
AMD so you don't need to extract / use any parts of your original BIOS
(like the people often need to do for their Intels). You could follow
use the instructions at Lenovo G505S hacking page
(http://dangerousprototypes.com/docs/Lenovo_G505S_hacking) : these
not-merged-yet patches can benefit any AMD, and although I don't
provide an example config for AM1ML, you can take an example config of
AM1I-A (very similar board from the same AMD family) as the base for
your own config.

3) You don't need to change anything in this ./csb_patcher.sh script
for your AM1ML board (well, unless you'd like to help me by improving
some code ;-) ). Just use a script as-is and reply N when it asks to
apply the G505S / A88XM-E / AM1I-A configs.

coreboot uses a hidden ./coreboot/.config file as a place for storing
the configuration, and "apply" in that context - means copying a
board's example config from ./coreboot/configs/filename to
./coreboot/.config

Each of the primary patches - either does a small improvement for you,
or no improvement but no harm too: i.e. there's no IRQ improvement for
your board in "AMD good irq" (if you'd like - do a similar one by
yourself). So you could reply Y to all the other patches.

After the launch of a script, you need to somehow get a good config
for your board and put to ./coreboot/.config . To produce a good
config for your AM1ML, I propose to do the following:

*) Look at this diff
(https://github.com/mikebdp2/temp_4friend/commit/cbc0885faa9b5a338153c44ba5ec15c413089d99)
between the default AM1I-A config VS my improved version, research
about these changed options and decide by yourself if you'd like to
add any of these changes on top of your default AM1ML config. To avoid
the error-prone manual text editing, open "make menuconfig" while at
./coreboot/ directory, figure out the menu location of any particular
config by pressing / key, then go there and enable it manually.

*) Also check this diff
(https://github.com/mikebdp2/temp_4friend/commit/3ddc6cc095ce19aba007fe4e8747d3b479c74975)
between the default AM1ML config VS the latest known good AM1ML config
which has been "refreshed" by putting it into the coreboot directory,
running "make menuconfig" and saving the changes (some config options
appear, some disappear, etc.) and also review it.

In addition, for the working integrated graphics, you will need to get
the AtomBIOS blob. I provide some of these blobs by one of the
unofficial patches installed by a script above -
https://review.coreboot.org/c/coreboot/+/58748 - including
pci1002,9830.rom for the iGPU of Athlon 5370 on AM1I-A; but this
top-of-the-line CPU for AM1 socket is rare (many people only have
5350) and I don't know if "extracted_on_AM1I-A" AtomBIOS will be
compatible for your board since it may have different internal
configuration values. To get your own AtomBIOS, first of all update
your UEFI to the latest version - so that AtomBIOS may be also fresher
- and I recommend you to use a "Retrieval via Linux kernel" method;
there's also a more advanced "Ultimate" method described at my post
here (https://mail.coreboot.org/pipermail/coreboot/2017-July/084660.html)
but it's more time consuming and I hope you won't need it.

After getting the AtomBIOS rom, rename it to pciXXXX,YYYY.rom where
XXXX and YYYY are PCI vendor ID / device ID of your iGPU (could be
found with lspci -vvvnn), put to your ./coreboot/ directory and choose
the CONFIG_VGA_BIOS_ID="XXXX,YYYY" ,
CONFIG_VGA_BIOS_FILE="pciXXXX,YYYY.rom" in your config.

Then you could go ahead, build your coreboot, and maybe run
"./csb_patcher.sh flop" if you'd like to add some awesome floppy-based
OS which will be available as the SeaBIOS boot entries.

Advanced:

To improve the irqs for your AMD board, you may look at the source
code improvements I did for g505s / a88xm-e / am1i-a boards, and try
to do something similar for your am1ml by trial and error. Although
the sophisticated OS like Linux works fine even with the "bad irq
routing" (unless it is seriously messed up, in which case it will
freeze while booting), the floppy-based hobby OS like KolibriOS may
have a trouble accessing some peripheral devices (i.e. network card)
if you don't fix your IRQs. So, if you'd have some free time after
successfully coreboot'ing your board, you may try improving your IRQs.
And, if you do some unofficial patches (good IRQs, AtomBIOS ROM,
custom config, etc) after a review I may include them to my collection
above, for everyone's benefit and a speedy future coreboot builds for
AM1ML.

With the latest version of a proprietary UEFI is installed, run these
tools (getpir / mptable)
(https://review.coreboot.org/c/coreboot/+/48322) - their output is
partially wrong, but for a starting point it's better than nothing.
Then you copy-paste the "AMD good IRQs" code for i.e. AM1I-A which is
fam16h platform like your board (although I spent more time on G505S
fam15h so it could be higher quality) - and try to adjust it for your
board by trial and error.

> When do I know when I've got it right?

When a Linux is still able to boot fine (it freezes while booting if
seriously messed up), and KolibriOS correctly assigns the IRQs to your
PCI devices (you can check it in KolibriOS GUI utility available at
Control Panel) : so as result i.e. your network card is accessible to
Kolibri and you could browse the Internet or use IRCC for online
chatting (provided that an Ethernet driver is available for your
controller). Being able to do this - was my primary reason for
creating the "good IRQ" patches.

Hope this helps, if any questions I'll be glad to help you further ;-)

On Thu, Apr 21, 2022 at 12:56 PM Nicholas C. L. Ipsen via coreboot
<coreboot@coreboot.org> wrote:
>
> Hi everyone,
>
> I recently managed to find a Biostar AM1ML, primarily purchasing it because I 
> thought it would be a good board for a router with coreboot to make it 100% 
> open source. However, even though the board is listed as supported, I can 
> find no flashing instructions anywhere.
>
> Does anyone on this mailing list have experience flashing this board? I don't 
> need anyone to hold my hand, but I would appreciate knowing what flashing 
> method works, at least. Would hate to fry the chip.
>
>
> --
> Nicholas C. L. Ipsen
> _______________________________________________
> coreboot mailing list -- coreboot@coreboot.org
> To unsubscribe send an email to coreboot-le...@coreboot.org



--
Best regards, Mike Banon
Open Source Community Manager of 3mdeb - https://3mdeb.com/
_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org

Reply via email to