Am 09.01.2010 13:29, schrieb joe@settoplinux.org:
Yes you can add Thomson IP1000 and RCA RM4100 to the list. They build fine with Kconfig.
We automatically test builds on commit. The "Kconfig report" mails on the list show that currently all boards build properly. The ones Myles listed are those that boot properly (if I understand him correctly)
In fact they do not build the old way anymore, only with Kconfig.
On our testbuild box, they still build: See http://qa.coreboot.org/log_buildbrd.php?revision=5005&device=ip1000&..., for example.
ok but what needs to be done to use tinybootblock?
Tinybootblock is only a necessary component for fam10 boards (as their romstage doesn't fit in 64kb), so while I propose to move everything over to tinybootblock eventually, we don't have to wait for that before we phase out newconfig.
With that said, what needs to be done for tinybootblock: 1. Figure out if the chipset requires some sequence to map all ROM ("rom enable") 2. If no, skip to 5 3. If yes, figure out how rom mapping can be enabled (it's usually somewhere in the code already) 4. Implement it like in southbridge/amd/amd8111: 4a. Add a new file (I recommend "southbridge/$vendor/$device/bootblock.c") with a static void bootblock_southbridge_init(void) function that enables rom mapping 4b. Set BOOTBLOCK_SOUTHBRIDGE_INIT to point to the file 4c. If necessary do the same for the northbridge (see northbridge/amd/amdfam10 as an example) - shouldn't be necessary except for k8/fam10 5. Enable TINY_BOOTBLOCK in your board's Kconfig 6. Remove a couple of crt0-y and ldscript-y entries in your board's Makefile.inc: entry16, reset16, id.inc, failover 7. Add entry32 to crt0-y and ldscript-y (it's usually not added to ldscript-y yet)
Steps 6 and 7 aren't necessary if your board is using Makefile.romccboard.inc. Steps 3 and 4 are per southbridge work - once a southbridge is supported, moving a board to tinybootblock support is relatively easy.
In theory, that's it (unless I forgot something)
Patrick
-----Original Message----- Am 09.01.2010 13:29, schrieb joe@settoplinux.org:
Yes you can add Thomson IP1000 and RCA RM4100 to the list. They build
fine with
Kconfig.
Have you boot tested them yet?
We automatically test builds on commit. The "Kconfig report" mails on the list show that currently all boards build properly. The ones Myles listed are those that boot properly (if I understand him correctly)
That's what I was saying. I just said to build test it after changing any Kconfig values that needed to be changed.
Thanks, Myles
On January 9, 2010 at 9:11 PM Myles Watson mylesgw@gmail.com wrote:
-----Original Message----- Am 09.01.2010 13:29, schrieb joe@settoplinux.org:
Yes you can add Thomson IP1000 and RCA RM4100 to the list. They build
fine with
Kconfig.
Have you boot tested them yet?
I tried them about a month ago (begining of December) and they were booting fine with filo. Unless something drastic has changed since then???
Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
Patrick Georgi wrote:
- Implement it like in southbridge/amd/amd8111:
4a. Add a new file (I recommend "southbridge/$vendor/$device/bootblock.c") with a static void bootblock_southbridge_init(void) function that enables rom mapping 4b. Set BOOTBLOCK_SOUTHBRIDGE_INIT to point to the file
Please can some of these be renamed?
map_rom.c (or map_full_rom.c or possibly enable_rom_decode.c) southbridge_map_rom() (or similar per filename above)
My reasoning is that the build system is a great place to describe _when_ files are used, but code and filenames need only say _what_ they do - if there is one single convention.
I think 4b. should be made general. I don't know if I prefer always including the file and having an empty function, or allowing the file to be included only for southbridges where it actually exists. Empty functions really suck; source code noise. Automagic build rules do too; rename a file and get a runtime error instead of a buildtime error. I have to go with the lesser evil; the empty function.
//Peter
Am 11.01.2010 23:41, schrieb Peter Stuge:
Patrick Georgi wrote:
- Implement it like in southbridge/amd/amd8111:
4a. Add a new file (I recommend "southbridge/$vendor/$device/bootblock.c") with a static void bootblock_southbridge_init(void) function that enables rom mapping 4b. Set BOOTBLOCK_SOUTHBRIDGE_INIT to point to the file
Please can some of these be renamed?
map_rom.c (or map_full_rom.c or possibly enable_rom_decode.c) southbridge_map_rom() (or similar per filename above)
We already have $chipsetid_enable_rom.c in some directories, which can't easily be reused for tinybootblock (romcc vs. gcc differences). I used such generic names because we might decide that we also want to have serial enable in the bootblock.
My reasoning is that the build system is a great place to describe _when_ files are used, but code and filenames need only say _what_ they do - if there is one single convention.
I think 4b. should be made general. I don't know if I prefer always including the file and having an empty function, or allowing the file to be included only for southbridges where it actually exists. Empty functions really suck; source code noise. Automagic build rules do too; rename a file and get a runtime error instead of a buildtime error. I have to go with the lesser evil; the empty function.
If the config variable and the filename disagree, the compiler fails to find the file. That's a buildtime error, as far as I can see.
Your proposal would mean that there's a default value for BOOTBLOCK_SOUTHBRIDGE_INIT, probably in src/arch/i386/Kconfig, which points to the dummy. You forget to change the value and it uses the empty function, instead of what it actually should use - that's a silent (but instant) runtime error.
Patrick