This builds. It will not work. But I want this code backed up somewhere, not just on my laptop.I also want other people to see it and add corrections, if needed.
The alix1c will use the fake spd array. A lot of support can come across from the v2 port.
ron
On Sun, Nov 25, 2007 at 12:45:29PM -0800, ron minnich wrote:
This builds.
Not yet:
HOSTCC build/util/kconfig/zconf.tab.o HOSTCC build/util/kconfig/mconf mainboard/Kconfig:61: can't open file "mainboard/pcengines/Kconfig" make: *** [menuconfig] Error 1
The fix should be easy though. You probably forgot to 'svn add' the Kconfig file mainboard/pcengines/Kconfig.
Please repost the full patch.
It also includes some additional posts for geode setup which ought to be useful.
This is unrelated and should probably be in an extra patch.
Index: mainboard/Kconfig
--- mainboard/Kconfig (revision 518) +++ mainboard/Kconfig (working copy) @@ -47,12 +47,18 @@ help Select this option for various system emulators, such as QEMU.
+config VENDOR_PCENGINES
- bool "PC Engines"
- help
Select this option for PC Engines systems
Add a full stop to the help text, please.
endchoice
source "mainboard/adl/Kconfig" source "mainboard/amd/Kconfig" source "mainboard/artecgroup/Kconfig" source "mainboard/emulation/Kconfig" +source "mainboard/pcengines/Kconfig"
choice prompt "ROM chip size" Index: mainboard/pcengines/alix1c/Kconfig =================================================================== --- mainboard/pcengines/alix1c/Kconfig (revision 0) +++ mainboard/pcengines/alix1c/Kconfig (revision 0) @@ -0,0 +1,46 @@ +## +## This file is part of the LinuxBIOS project. +## +## Copyright (C) 2007 coresystems GmbH +## (Written by Stefan Reinauer stepan@coresystems.de for coresystems GmbH)
Ron Minnich?
+## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +##
+config MAINBOARD_NAME
- string
- default pcengines/alix1c
- depends BOARD_PCENGINES_ALIX1C
- help
This is the default mainboard name.
+config MAINBOARD_PCI_SUBSYSTEM_VENDOR_ID
- hex
- # TODO: Fix PCI ID.
- # PC Engines has no PCI vendor ID. Now what?
Good point. I think we need to improve this in LinuxBIOS anyway. In v2 we currently have only one such ID in Options.lb which is then used for _all_ devices in the system (if it's used at all).
The correct thing would be to allow an override of the ID for each PCI device, per-board (via entries in the dts, IMHO).
- default 0x1022
- depends BOARD_AMD_NORWICH
- help
Mainboard specific PCI subsystem vendor ID.
+config MAINBOARD_PCI_SUBSYSTEM_DEVICE_ID
- hex
- # TODO: Fix PCI ID.
- # PC Engines has no PCI vendor ID. Now what?
- default 0x2323
- depends BOARD_AMD_NORWICH
- help
Mainboard specific PCI subsystem device ID.
For now I'd say just drop the entries here, the code checks via #ifdef if they're defined and does nothing if they're not...
+int main(void) +{
- u8 smb_devices[] = {
DIMM0, DIMM1
- };
- post_code(POST_START_OF_MAIN);
POST_START_OF_MAIN, and...
+void hardware_stage1(void) +{
- post_code(POST_START_OF_MAIN);
... POST_START_OF_MAIN again.
Shouldn't those be different?
+/{
- enabled;
- mainboard-vendor = "PC Engines";
- mainboard-name = "Alix 1C";
ALIX1.C
Index: mainboard/pcengines/alix1c/cmos.layout
--- mainboard/pcengines/alix1c/cmos.layout (revision 0) +++ mainboard/pcengines/alix1c/cmos.layout (revision 0)
Add the common license header to this file, please.
Index: arch/x86/geodelx/stage0.S
--- arch/x86/geodelx/stage0.S (revision 518) +++ arch/x86/geodelx/stage0.S (working copy) @@ -183,6 +183,7 @@ movw %ax, %fs movw %ax, %gs
- port80_post(0x02)
Please don't hardcode POST codes, add them aѕ #defines in post_code.h and document them (i.e. in which situation it is supposed to be used).
@@ -364,6 +379,8 @@ outb %al, $0x80
DCacheSetupBad:
movb $0xFF, %al
outb %al, $0x80
Why this?
Uwe.
Add post codes so that we have a better idea where it fails, if it fails.
ron
Oops, ignore this, I missed one of uwe's comments.
ron
On Nov 25, 2007 6:53 PM, ron minnich rminnich@gmail.com wrote:
Add post codes so that we have a better idea where it fails, if it fails.
ron
try again.
On Nov 25, 2007 3:23 PM, Uwe Hermann uwe@hermann-uwe.de wrote:
The fix should be easy though. You probably forgot to 'svn add' the Kconfig file mainboard/pcengines/Kconfig.
fixed.
Add a full stop to the help text, please.
fixed.
+## Copyright (C) 2007 coresystems GmbH +## (Written by Stefan Reinauer stepan@coresystems.de for coresystems GmbH)
Ron Minnich?
I added my name but this is really a copy of an existing Kconfig, so I left Stefan in.
For now I'd say just drop the entries here, the code checks via #ifdef if they're defined and does nothing if they're not...
I deleted those entries .
+int main(void) +{
u8 smb_devices[] = {
DIMM0, DIMM1
};
post_code(POST_START_OF_MAIN);
POST_START_OF_MAIN, and...
+void hardware_stage1(void) +{
post_code(POST_START_OF_MAIN);
... POST_START_OF_MAIN again.
Shouldn't those be different?
It's in every board. We have a problem here. Any ideas welcome, but I would rather not hold up this commit since it just follows the pattern of other boards; we need to fix them all.
+/{
enabled;
mainboard-vendor = "PC Engines";
mainboard-name = "Alix 1C";
ALIX1.C
fixed.
Index: mainboard/pcengines/alix1c/cmos.layout
--- mainboard/pcengines/alix1c/cmos.layout (revision 0) +++ mainboard/pcengines/alix1c/cmos.layout (revision 0)
Add the common license header to this file, please.
no other cmos.layout has it. Let's get a template and apply them all, but I don't want to hold this specific board up when we need a general fix.
Please don't hardcode POST codes, add them aѕ #defines in post_code.h and document them (i.e. in which situation it is supposed to be used).
uh oh. There's only one entry in post_code.h :-)
we need to sync up the doc and post_code.h
how about we commit this and take 3 action items: 1. fix up post_code.h 2. Fix all cmos.layout files with license headers 3. fix all main.c and stage1.c to use diffferent post code entries.
ron
* ron minnich rminnich@gmail.com [071126 04:07]:
Alix 1.C support for v3. Builds.
Signed-off-by: Ronald G. Minnich rminnich@gmail.com
Acked-by: Stefan Reinauer stepan@coresystems.de
Hey too late! I already have a better patch :-). Will send tomorrow.
and a LAR problem: LAR: CHECK normal/initram @ 0xfff93b80 start 0xfff93bc0 len 5092 reallen 5092 compression 0 entry 0x00000000 loadaddre0 where is 0xfff93bc0
OK, it says 'where is fff93bc0' but it appears to be calling fff93b80.
bc0 is main. b80 is spd_read_byte. Not sure what is going on.
I am going to bed but if anyone gets bored :-)
Another question. We need a prototype for spd_read_byte. Where do we declare it? What .h file? spd.h? I am not sure that's right.
Thanks, I figure you will fix all my problems by tomorrow. Off to bed :-)
ron
On 26.11.2007 08:50, ron minnich wrote:
Hey too late! I already have a better patch :-). Will send tomorrow.
and a LAR problem: LAR: CHECK normal/initram @ 0xfff93b80 start 0xfff93bc0 len 5092 reallen 5092 compression 0 entry 0x00000000 loadaddre0 where is 0xfff93bc0
OK, it says 'where is fff93bc0' but it appears to be calling fff93b80.
bc0 is main. b80 is spd_read_byte. Not sure what is going on.
Linker bug I'm currently chasing down. Will update you soon.
Regards, Carl-Daniel
On Sun, Nov 25, 2007 at 07:07:42PM -0800, ron minnich wrote:
try again.
Yep, works now. Committed as r521 with some coding style fixes etc.
+int main(void) +{
u8 smb_devices[] = {
DIMM0, DIMM1
};
post_code(POST_START_OF_MAIN);
POST_START_OF_MAIN, and...
+void hardware_stage1(void) +{
post_code(POST_START_OF_MAIN);
... POST_START_OF_MAIN again.
Shouldn't those be different?
It's in every board. We have a problem here. Any ideas welcome, but I would rather not hold up this commit since it just follows the pattern of other boards; we need to fix them all.
Yep.
I think something line POST_START_OF_MAIN / POST_START_OF_HARDWARE_STAGE1 makes sense? The two values must be different, of course.
Index: mainboard/pcengines/alix1c/cmos.layout
--- mainboard/pcengines/alix1c/cmos.layout (revision 0) +++ mainboard/pcengines/alix1c/cmos.layout (revision 0)
Add the common license header to this file, please.
no other cmos.layout has it. Let's get a template and apply them all, but I don't want to hold this specific board up when we need a general fix.
Is this (or does it have to be) board-specific anyway? Everybody just keeps blindly copying it from board to board... Why not have a common file which each board uses per default, _unless_ it's overridden in dts for a specific board which needs/wants a different setup?
Please don't hardcode POST codes, add them aѕ #defines in post_code.h and document them (i.e. in which situation it is supposed to be used).
uh oh. There's only one entry in post_code.h :-)
Yeah, this is a TODO ;)
we need to sync up the doc and post_code.h
No, post_code.h _is_ the single place for the documentation (or rather it will be).
how about we commit this and take 3 action items:
- fix up post_code.h
Yep.
- Fix all cmos.layout files with license headers
Move one generic file somewhere globally, use that for all boards, unless overridden.
- fix all main.c and stage1.c to use diffferent post code entries.
Yep.
Uwe.
On Mon, Nov 26, 2007 at 10:17:55PM +0000, Uwe Hermann wrote:
On Sun, Nov 25, 2007 at 07:07:42PM -0800, ron minnich wrote:
try again.
Yep, works now. Committed as r521 with some coding style fixes etc.
I will give this a go before FSCONS. I want to demo v3 for sure.
//Peter