When cross-compiling ppc64 from ppc (native larger than host),
%llx cell format leads to warnings.
The cell format depends solely on the cell type definition,
not on pointer sizes. Under the present assumption that native
smaller than host bitwidth occurs when cross-compiling a 32-bit
target from 64-bit host, we can reuse the definitions from the
equality path for all bitwidths.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@940 f158a5a8-5612-0410-a976-696ce0be7e32
The base_address for native bitwidth smaller than host bitwidth
is available only in kernel/bootstrap.c and thus cannot be used
elsewhere.
The bitwidth equality code path will have to be enhanced
for different cell sizes instead.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@939 f158a5a8-5612-0410-a976-696ce0be7e32
Do the double-dereference in two cell2pointer steps
to avoid garbage in the high 32 address bits on ppc64.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@930 f158a5a8-5612-0410-a976-696ce0be7e32
On ppc64, cell size is 32 bits but pointers are 64-bit.
Thus, direct casts result in warnings, treated as errors.
Use [u]intptr_t cast or cell2pointer and pointer2cell macros as necessary.
v2:
* Drop changes related to physical addresses since physical addresses may be
wider than pointers (e.g., 36 bits on sparc32, as pointed out by Blue).
* Drop changes to cell2pointer() and pointer2cell() for now.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@922 f158a5a8-5612-0410-a976-696ce0be7e32
These will be needed elsewhere for ppc64.
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@917 f158a5a8-5612-0410-a976-696ce0be7e32
wrapper means that the debugger now works correctly under PPC.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@822 f158a5a8-5612-0410-a976-696ce0be7e32
Fix clang warnings:
../kernel/dict.c:289:2: warning: Value stored to 'len' is never read
len -= sizeof(dictionary_header_t);
../packages/cmdline.c:181:8: warning: Value stored to 'buf' during its
initialization is never read
char *buf = ci->buf;
../libopenbios/elf_info.c:126:2: warning: Value stored to 'name' is never read
name = addr;
../libopenbios/elf_load.c:277:5: warning: Value stored to 'addr' is never read
addr += pad;
../drivers/ide.c:209:3: warning: Value stored to 'err' is never read
err = ob_ide_pio_readb(drive, IDEREG_ERROR);
../drivers/ide.c:219:17: warning: Value stored to 'old_cdb' during its initialization is never read
unsigned char old_cdb = cmd->cdb[0];
../drivers/ide.c:222:4: warning: Value stored to 'old_cdb' is never read
old_cdb = cmd->old_cdb;
../drivers/pci.c:103:2: warning: Value stored to 'ss' is never read
ss = 0;
../drivers/pci.c:100:2: warning: Value stored to 'dev' is never read
dev = 0;
../drivers/pci.c:212:2: warning: Value stored to 'bus' is never read
bus = (hi >> 16) & 0xFF;
../drivers/pci.c:953:4: warning: Value stored to 'rev' is never read
rev = pci_config_read8(addr, PCI_REVISION_ID);
../packages/video.c:331:2: warning: Value stored to 's' is never read
s = video.fb.mphys - s;
../packages/video.c:330:2: warning: Value stored to 'size' is never read
size = ((video.fb.h * video.fb.rb + s) + 0xfff) & ~0xfff;
../fs/hfsplus/btree.c:229:5: warning: Value stored to 'p' is never read
p = btree_readhead(&bt->head, p);
../fs/hfsplus/volume.c:149:2: warning: Value stored to 'p' is never read
p = volume_readfork(p, &vh->start_file );
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@751 f158a5a8-5612-0410-a976-696ce0be7e32
buffer allocated for them.
Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@741 f158a5a8-5612-0410-a976-696ce0be7e32
required. Update forthstrap to add a new -c option that when specified will direct the Forth kernel console output to a file
and integrate this into the build system. By default, when a dictionary is built using a base dictionary then a new log file
called <dict>-console.log will be generated to help debugging if the build fails.
Also update the exception handler in kernel/bootstrap.c so that it matches the entire range of error codes in
forth/bootstrap/interpreter.fs.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@706 f158a5a8-5612-0410-a976-696ce0be7e32
for the task in hand; in particular it allows us to distinguish between an error that occurs when attempting to execute a base dictionary, and an error that
occurs when interpreting source.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@705 f158a5a8-5612-0410-a976-696ce0be7e32
build@zeno:~/src/openbios/openbios-devel.pre$ ./config/scripts/switch-arch cross-ppc; make
Configuring OpenBIOS on amd64 for cross-ppc
Initializing build tree obj-ppc...ok.
Creating target Makefile...ok.
Creating config files...ok.
Building OpenBIOS for ppc
Building...error:
HOSTCC host/kernel/stack.o
HOSTCC forthstrap
GEN bootstrap.dict
bootstrap.fs:339 - foo is not defined.
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@704 f158a5a8-5612-0410-a976-696ce0be7e32
This patch corrects a couple of (minor) bugs in the Forth source
debugger; firstly the number of wordlists is held in #order, rather than
#vocs which is the total number of wordlists which can be held
simultaneously.
Secondly, the initial interruptforth setting in kernel/bootstrap.c is
actually wrong, but since this is reset by enterforth() it is not needed
anyway. Hence this line can simply be removed.
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@623 f158a5a8-5612-0410-a976-696ce0be7e32
This patch implements the following Forth words:
debug <xt> - Mark word for debugging
debug-off - Unmark all words for debugging
resume - Return from subordinate Forth interpreter
The source debugger also implements the following commands when it has
been activated:
Up - Unmark current word for debugging, mark parent and continue
Down - Mark next word for debugging
Trace - Continue execution until end of word displaying
debug information
Rstack - Display contents of the Rstack
Forth - Launch subordinate Forth interpreter
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@611 f158a5a8-5612-0410-a976-696ce0be7e32
Make forthstrap quiet by default. Use generic rules when possible, unify
the rules and cleanup white space. Use ld flag --whole-archive to avoid
some local rule use. We can also remove some hacks introduced to avoid
missing symbols.
Fix problems brought in by ld flag --whole-archive:
* x86: fix missing nvram symbols
* PPC: disable misc.S build for qemu (conflicts with our libgcc)
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@556 f158a5a8-5612-0410-a976-696ce0be7e32
Fix warnings that would be caused by gcc flag -Wwrite-strings and
-Wmissing-prototypes. Also fix most PPC specific warnings.
git-svn-id: svn://coreboot.org/openbios/openbios-devel@288 f158a5a8-5612-0410-a976-696ce0be7e32
General 64-bit fixes and a hack for x86 to Sparc64 crosscompiling problem,
where x86 misses 128-bit types.
git-svn-id: svn://coreboot.org/openbios/openbios-devel@68 f158a5a8-5612-0410-a976-696ce0be7e32
Detect cross-compiling flags (CROSSCFLAGS) automatically based on endian
and word size differences.
git-svn-id: svn://coreboot.org/openbios/openbios-devel@66 f158a5a8-5612-0410-a976-696ce0be7e32