Ok, our dear master.kernel.org seems to be back from the dead, which means
that I can punish it some more and upload stuff to it again.
2.5.46 merges some more stuff (yeah, I still have stuff in my mailbox, but
I'm calmer now that I don't forsee any more huge issues), and is pretty
much all over the map. Merges with Alan, Al and Andrew, and m68k stuff
from Geert. Sysfs from Pat, and ext2/3 updates from Ted.
Linus
----
Summary of changes from v2.5.45 to v2.5.46
============================================
Adam Radford <[email protected]>:
o 3ware driver update for 2.5.46, sync cache, 64-bit, etc
Alan Cox <[email protected]>:
o Alpha escaped pcibios
o kill debug printk we dont need now
o kill pcibios in m6k8
o kill pcibios in m68k pci code
o 32/64bit device mapper ioctl maps for mips64
o kill pcibios in ppc32
o device mapper ioctls for ppc64
o device mapper 64/32bit ioctl maps for S/390x
o fix warnings
o add voyager specific extra key map
o use longer delays on 3c509
o warning fixes
o kill stupid search and destroy error
o without this tulip doesn't build non modular
o move de4x5 to new pci api
o fix filters types on winbond 840
o remove more tqueue.h
o eata update from maintainer
o restore inia100.h abort/reset
o restore missing error handlers for ncr53c8xx
o ditto error handling for qla1280
o ditto for sym53c8xx
o update the u14-34f driver to maintainer updates
o make afs build with gcc 2.9x
o add includes for voyager interrupt chip
o header update to match m68k pci change
o update MAINTAINERS
o make rxrpc build with gcc 2.x
o some trident needs longer delays to power up codecs
o fix i810 printk error
o MAINTAINERS entries for UcLinux platforms
o UCLinux generic memory mapped MTD driver
o UCLINUX ethernet driver for 68360 on board ethernet
o Kconfig and makfile goo for new net drivers
o UCLINUX ethernet driver for Coldfire onboard 100Mbit ethernet
o arch specific files for MMUless NEC v850 port
o add machine ident for the V850 from NEC
o UCLINUX "flat" binary loader
o UCLINUX (forgot one) - header file for binfmt_flat
o 2.5.45 UCLinux merge M680x0 mmuless arch and include/asm
Alexander Viro <[email protected]>:
o fix 2.5.45 initrd breakage
o tape_name() in osst.c
o tape_name() in st.c
o file->private_data in st.c and osst.c
o osst template
o st template
o sr template
o sd template
o sg template
o scsi_get_request_dev() cleanup
o >rq_dev in aacraid
o generic uses of ->rq_dev
o uses of ->rq_dev in printks
o remaining uses of ->rq_dev
o death of ->rq_dev
Andi Kleen <[email protected]>:
o Make x86-64 compile
Andrew Morton <[email protected]>:
o hugetlbpages: factor out some code for hugetlbfs
o Move hugetlb declarations into their own header
o hugetlb fixes andhugetlb fixes and cleanups cleanups
o fix hugetlb thinko
o hugetlbfs file system
o hugetlbfs backing for SYSV shared memory
o Orlov block allocator for ext2
o speedup heuristic for get_unmapped_area
o uninline some things in mm/*.c
o flush_dcache_page in get_user_pages()
o lru_add_active(): for starting pages on the active list
o start anon pages on the active list (properly this time)
o empty the deferred lru-addition buffers in swapin_readahead
o exempt swapcahe pages from "use once" handling
o strip pagecache from to-be-reaped inodes
o sys_remap_file_pages
o tmpfs support for remap_file_pages
o use RCU for IPC locking
o uninlining in ipc/*
o make kernel_stat use per-cpu infrastructure
o additional arch support for per-cpu kernel_stat
o direct-io build fix
o use bd_claim in the raw driver
o faster wakeups in the pipe code
o improved space efficiency in dcache
o disable PF_MEMALLOC for interrupt allocations
o ext3 build fix
o page accounting atomicity fix
o Update/Create core files for DriverFS Topology
o i386 driverfs Topology
o NUMA meminfo for driverfs Topology
o create memblk_online_map
o create node_online_map
o driverfs topology cleanup
Andy Grover <[email protected]>:
o ACPI
o ACPI: Ensure we don't try to sleep when we shouldn't
o ACPI: Interpreter update to (20021101)
Arnaldo Carvalho de Melo <[email protected]>:
o isapnp: fix typo in isapnp_proc_done when CONFIG_PROC_FS is not set
Christoph Hellwig <[email protected]>:
o add CONFIG_MMU and CONFIG_SWAP
o make swap code conditional
o filemap.c bits for uClinux
o page_alloc.c uClinux bits
Daniel Jacobowitz <[email protected]>:
o Factor out common ptrace code and PTRACE_SETOPTIONS Support
PTRACE_O_TRACESYSGOOD on all platforms
o Add CLONE_UNTRACED to the flags forced by kernel_thread
o Add new ptrace event tracing mechanism
o Define CLONE_UNTRACED in more architecture files and correct PA
typo
Dave Jones <[email protected]>:
o Clean up capabilities printing
o max_cpus overflow
o Double x86 initialise fix
Dave Kleikamp <[email protected]>:
o JFS: forced metadata pages were not being flushed to disk
o JFS: add posix acls
David Howells <[email protected]>:
o AFS compile breakage
David Mosberger <[email protected]>:
o ia64: Hook up sys_lookup_dcookie()
o ia64: Sync up with 2.5.45
o ia64: Update defconfig
David S. Miller <[email protected]>:
o Fix partitions build failure
Davide Libenzi <[email protected]>:
o epoll update r3
Dominik Brodowski <[email protected]>:
o cpufreq: update HyperThreading support in p4-clockmod.c driver
o cpufreq: /proc/sys/cpu and /proc/cpufreq can be used simultaneously
Erich Focht <[email protected]>:
o ia64: 2.5.44 NUMA fixups
Geert Uytterhoeven <[email protected]>:
o C99 designated initializers for include/asm-m68k/thread_info.h
o M68k speaker driver can be a modular
o m68k IP checksum fix
o M68k epoll
o Fix dyslexia in Amiga keyboard driver
o M68k misc compile fixes
o M68k dump_stack() updates
o M68k genrtc updates
o vesafb 6x11 font fix
o M68k IDE lock fixes
o HP9000/300 I/O access fixes
o M68k INIT_SIGNALS() update
o Enable console on m68k
o M68k: Fix missing/superfluous includes
o Convert m68k cache macros to inline functions
o M68k ISA DMA update
o M68k: fix init_task section
o M68k irq updates
o m68k asm/kmap_types.h
o M68k *_mksound() prototypes
o M68k local_irq*() updates
o M68k linker file updates
o M68k build fixes
o m68k do_fork() update
o Atari nvram fix
o Export m68k_memoffset
o M68k asm/percpu.h
o Allow to disable macfb
o Q40/Q60 RTC update
o M68k input drivers cleanup
o M68k needs WANT_PAGE_VIRTUAL
o M68k iomap cleanup
o M68k virt/phys fallback removal
o mac8390 Ethernet
o IDE: kill warning
o Amiga serial: static function
o contact update
o Sun-3 ioremap()
o Sun-3 doc updates
o Mac/m68k spelling
o M68k: optimize stacked irq check
o M68k TIF_SYSCALL_TRACE
o Sun-3 SCSI updates
o Z2ram: Add missing closing brace
o Sun-3 vectored interrupts
o Sun-3/3x updates
o Zorro ID update
o Fix rwsemtrace() message
o m68k xtime update
o Sun-3 VME support
o Zorro loff_t
o Sun-3 DVMA debugging
o m68k unused cruft removal
Gerd Knorr <[email protected]>:
o videobuf update
o add v4l2 api
o tv tuner driver update
o bttv documentation update
o bttv update
o new v4l2 driver: saa7134
Ivan Kokshaysky <[email protected]>:
o alpha ISA dma and MAX_DMA_ADDRESS
o more alpha build fixes
o alpha: common ev6/ev7 machine check handler
Jeff Garzik <[email protected]>:
o Fix alpha build
o Minimal initramfs support (based on Al Viro's work)
o Kill stupid bug in initramfs that prevented it from working
John Levon <[email protected]>:
o fix timer_pit.c warning
o oprofile: tiny makefile tidy
o fix sys_lookup_dcookie prototype
o fix APIC errors on oprofile restore
John Stultz <[email protected]>:
o linux-2.5.45_notsc-warning_A0
Jun Nakajima <[email protected]>:
o fixes for building kernel 2.5.45 using Intel compiler
Linus Torvalds <[email protected]>:
o Needs <linux/smp_lock.h> for "in_atomic()" test
o Add a "cmd_len" parameter to the request, so that device drivers
don't have to try to figure it out for themselves.
o Remove last vestiges of ide-cd.c "struct packet_command". It's been
empty for a while now, and nothing uses it.
o Set command length for the START_STOP command
o Missed <linux/init.h> in CONFIG_SWAP changes
o BK ignore kconfig and initramfs files
o Make ide-cd.c use the request command length information
o Move SCSI command size information into <scsi/scsi.h>, where the
commands themselves already are.
o Fix mbcache config dependency: if either EXT2 or EXT3 is
compiled-in, mbcache should be too.
o Make presense of old/style EH routines cause warnings, not a
compile failure.
o Fix compile warning in slab.c
Luca Barbieri <[email protected]>:
o Clear TLS on execve
Maksim Krasnyanskiy <[email protected]>:
o Initialize hw broadcast so that BNEP multicast filter can be
properly initialized.
o Cleanup Bluetooth kernel messages
o Bluetooth HCI UART driver fixes
o Improved support for /proc/bluetooth
Manfred Spraul <[email protected]>:
o complete the move of the LDT code into
Marcel Holtmann <[email protected]>:
o Don't use typedefs for non opaque HCI objects
o Module description cleanup
Matthew Dharm <[email protected]>:
o test for media-change like "popular" OSes
Matthew Wilcox <[email protected]>:
o HPUX emulation updates
o Allocate a personality for HPUX
o drivers/parisc
o binfmt_som
o fix rd.c compilation
o PA-RISC updates
o parport_gsc
o remove *_segments() dummy functions from all other architectures
Patrick Mochel <[email protected]>:
o driver model: convert devices to use kobjects and sysfs
o driver model: convert bus drivers to use kobjects and sysfs
o driver model: convert drivers to use kobject and sysfs
o driver model: convert device classes to use struct kobject and
sysfs
o driver model: convert interfaces to use kobject and sysfs
o driver model: remove remaining driverfs glue
o convert block devices and partitions to use kobject & sysfs
o convert do_mounts.c to use sysfs instead of driverfs
o create firmware subsystem and register it on startup
o acpi: convert to use kobjects and sysfs
o make sure block device_init() is called before part_init()
o driver model: remove few remaining references to driverfs
o convert edd to use kobjects and sysfs
o driverfs: die die die
o turn off kobject debugging by default
o kobject: don't create directory for kobject/subsystem if name is
NULL
Richard Henderson <[email protected]>:
o Fix fallout from oprofile patches
o Save and restore CIA window configuration data
o New file to debug clobbers of "current"
o Fix up Alpha for initramfs changes
o Misc Alpha compilation fixes
o Don't clear pcb.unique if CLONE_SETTLS is not set
o Fill in siginfo_t
o Update clone syscall for TID and TLS arguments
Robert Love <[email protected]>:
o hyper-threading info in /proc/cpuinfo
o decoded wchan in /proc
o fix UP proc.c compile warning
Roman Zippel <[email protected]>:
o check QT only if needed
Russell King <[email protected]>:
o [ARM] Fix init section naming 2.5.44 changed .text.init to
.init.text (and other similar section names). This cset fixes the
ARM parts to work with the new names.
o [ARM] Fix ARM IRQ probe code
o [ARM] Fix another usage of the now defunct 'tick'
o [ARM] Add kallsyms support for ARM This cset adds support for
kallsyms for the ARM kernel, and ensures that we have a reliable
function prolog for backtracing.
o [ARM] Only decend into mach-* if $(MACHINE) is defined
o [ARM] Fix up some ARM PCI handling
o [ARM] Make ARMv5 architecture select ARMv4 rather than ARMv3 IO
o [ARM] Miscellaneous fixes
o [ARM] Re-work L1 pagetable bit handling
o [ARM] Replace __backtrace() with dump_stack()
o [ARM] 2.5.45 updates
o [SERIAL] Rename uart_event() to uart_write_wakeup() uart_event()
only has one purpose, which is to wake up any pending writers via
the line discipline. Rename it to reflect its real functionality,
and drop EVT_WRITE_WAKEUP.
o [SERIAL] Remove struct pci_board from init_fn Traditionally, we
allocated the private array of port parameters based on the
detected board->num_ports, and then called the init_fn with the
board pointer (which points into the global table.) Some init_fn
implementations modify num_ports, which therefore affects the
global table. Unfortunately, this means that if the init_fn
increases num_ports (because we have two almost identical cards,
the first with a smaller number of ports than the second), we will
overwrite memory which hasn't been allocated to us.
o [SERIAL] Fix two incorrect uses of __FUNCTION__
o [SERIAL] Fix up 8250 IRQ chain handling
o [SERIAL] Fix up formatting of serial names The tty layer's tty_name
requires formatting codes in driver->name for the devfs and
non-devfs cases.
o [SERIAL] Make ALPHA_KLUDGE_MCR more generic for bluetooth modems,
etc In addition to the Alpha OUT1/OUT2 kludge, devices like
Bluetooth modems connected to serial ports make use of the modem
control lines in non-standard ways. Therefore, we implement a more
flexible way to allow the modem control outputs to be forced to
particular values irrespective of the normal usage of these
signals.
o [SERIAL] Tidy up 8250 port type detection The original port
detection code was one large function with many tests without any
clear structure.
o [SERIAL] Fix build errors and warnings
o [SERIAL] Set port->type to unknown only when using autoconfig
o [SERIAL] [PARISC] add support for GSC serial Add discovery for
PA-RISC 16550 serial ports.
o [ARM] Fix various build errors in bk-cur
o [ARM PATCH] 1300/1: more efficient irq number retrieval for PXA due
to ARMv5 instructions
o [ARM PATCH] 1301/1: detection of more XScale chips Adds detection
of:
o [ARM PATCH] 1312/1: BadgePAD 4 mach-sa1100 update
o [ARM PATCH] 1310/1: Make SA-1100 IR compile
o [ARM PATCH] 1298/1: display various PXA250 clocks on boot for
better bug diagnosis Since it's easy to overclock that chip we'd
better know why some board is crashing randomly due to signal
integrity problems.
o [ARM PATCH] 1299/1: display various PXA250 clocks (part 2) Patch
#1298/1 will be much more useful if the code is actually called.
Sam Ravnborg <[email protected]>:
o kbuild: Compatible with old bash, fix help, make clean fix
o docbook: *docs targets fixed, clean ok for html
o aic7xxx: Simplified cleaning, fixed firmware build
Steve French <[email protected]>:
o Fix locking of global smb list. Add missing rc checks
o Merge fixes from version 0.58 of cifs vfs
Theodore Ts'o <[email protected]>:
o Fixup Orlov block allocator for ext2
o Orlov block allocator for ext3
o Default mount options from superblock for ext2/3 filesystems
o Ext2/3 forward compatibility: on-line resizing
o Ext2/3 forward compatibility: inode size
o Port of the 0.8.50 xattr-mbcache patch to 2.5. (Shrinker API, hch
cleanups) (now uses struct block_device * to index devices, and
uses hash.h for hash function)
o Port of (bugfixed) 0.8.50 xattr-ext3 to 2.5 (w/ hch cleanups.
mbcache API)
o Port of (bugfixed) 0.8.50 xattr-ext2 to 2.5 (w/ hch cleanups.
mbcache API)
o Port of 0.8.50 acl patch to 2.5
o Port of 0.8.50 acl-ms-posixacl patch to 2.5
o Port 0.8.50 acl-xattr patch to 2.5 (harmonize header file with
SGI/XFS)
o Port of (bugfixed) 0.8.50 acl-ext3 to 2.5
o Port of (bugfixed) 0.8.50 acl-ext2 to 2.5
Trond Myklebust <[email protected]>:
o another kmap imbalance in 2.4.x/2.5.x RPC
On Mon, 4 Nov 2002 15:13:04 -0800 (PST) Linus Torvalds (LT) wrote:
LT> Gerd Knorr <[email protected]>:
LT> o videobuf update
LT> o add v4l2 api
LT> o tv tuner driver update
LT> o bttv documentation update
LT> o bttv update
LT> o new v4l2 driver: saa7134
gcc -Wp,-MD,drivers/media/video/.bttv-cards.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing
-fno-common -pipe -mpreferred-stack-boundary=2 -march=athlon -Iarch/i386/mach-generic
-nostdinc -iwithprefix include -DKBUILD_BASENAME=bttv_cards -c -o
drivers/media/video/bttv-cards.o drivers/media/video/bttv-cards.c
drivers/media/video/bttv-cards.c: In function `miro_pinnacle_gpio':
drivers/media/video/bttv-cards.c:1742: `AUDC_CONFIG_PINNACLE' undeclared (first use in this function)
drivers/media/video/bttv-cards.c:1742: (Each undeclared identifier is reported only once
drivers/media/video/bttv-cards.c:1742: for each function it appears in.)
make[4]: *** [drivers/media/video/bttv-cards.o] Error 1
Does anyone have a fix yet?
Regards,
-Udo.
In article <[email protected]>,
Linus Torvalds <[email protected]> wrote:
>Ok, our dear master.kernel.org seems to be back from the dead, which means
>that I can punish it some more and upload stuff to it again.
Netfilter compilation fails:
net/ipv4/netfilter/ipt_TCPMSS.c: In function `ipt_tcpmss_target':
net/ipv4/netfilter/ipt_TCPMSS.c:88: structure has no member named `pmtu'
net/ipv4/netfilter/ipt_TCPMSS.c:91: structure has no member named `pmtu'
net/ipv4/netfilter/ipt_TCPMSS.c:95: structure has no member named `pmtu'
make[3]: *** [net/ipv4/netfilter/ipt_TCPMSS.o] Error 1
make[2]: *** [net/ipv4/netfilter] Error 2
make[1]: *** [net/ipv4] Error 2
make: *** [net] Error 2
Fortunately, reconfiguring the kernel halfway the compilation
(turn of TCP MSS netfilter options) and resuming the compile
actually works.
Mike.
On Mon, Nov 04, 2002 at 03:13:04PM -0800, Linus Torvalds wrote:
>...
> Summary of changes from v2.5.45 to v2.5.46
> ============================================
>...
> Dave Kleikamp <[email protected]>:
>...
> o JFS: add posix acls
>...
It seems that at least one file is missing:
<-- snip -->
...
gcc -Wp,-MD,fs/jfs/.super.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=k6 -Iarch/i386/mach-generic -nostdinc -iwithprefix include
-D_JFS_4K -DKBUILD_BASENAME=super -c -o fs/jfs/super.o fs/jfs/super.c
fs/jfs/super.c:31: jfs_acl.h: No such file or directory
...
make[2]: *** [fs/jfs/super.o] Error 1
<-- snip -->
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
--- net/ipv4/netfilter/ipt_TCPMSS.c.orig 2002-10-30 22:59:53.000000000 -0500
+++ net/ipv4/netfilter/ipt_TCPMSS.c 2002-10-30 23:08:58.000000000 -0500
@@ -48,6 +48,7 @@
u_int16_t tcplen, newtotlen, oldval, newmss;
unsigned int i;
u_int8_t *opt;
+ struct rtable *rt;
/* raw socket (tcpdump) may have clone of incoming skb: don't
disturb it --RR */
@@ -85,14 +86,16 @@
return NF_DROP; /* or IPT_CONTINUE ?? */
}
- if((*pskb)->dst->pmtu <= (sizeof(struct iphdr) + sizeof(struct tcphdr))) {
+ rt = (struct rtable *)(*pskb)->dst;
+
+ if(dst_pmtu(&rt->u.dst) <= (sizeof(struct iphdr) + sizeof(struct tcphdr))) {
if (net_ratelimit())
printk(KERN_ERR
- "ipt_tcpmss_target: unknown or invalid path-MTU (%d)\n", (*pskb)->dst->pmtu);
+ "ipt_tcpmss_target: unknown or invalid path-MTU (%d)\n", dst_pmtu(&rt->u.dst));
return NF_DROP; /* or IPT_CONTINUE ?? */
}
- newmss = (*pskb)->dst->pmtu - sizeof(struct iphdr) - sizeof(struct tcphdr);
+ newmss = dst_pmtu(&rt->u.dst) - sizeof(struct iphdr) - sizeof(struct tcphdr);
} else
newmss = tcpmssinfo->mss;
Just FYI :
[root@blue1 linux-2.5.46.epoll]# make bzImage
Starting the build. KBUILD_BUILTIN=1 KBUILD_MODULES=
make -f scripts/Makefile.build obj=init
Generating include/linux/compile.h (unchanged)
make -f scripts/Makefile.build obj=usr
objcopy -I binary -O elf32-i386 -B i386 \
--rename-section .data=.init.initramfs \
usr/initramfs_data.cpio.gz usr/initramfs_data.o
objcopy: invalid option -- B
Usage: objcopy <switches> in-file [out-file]
The switches are:
-I --input-target <bfdname> Assume input file is in format
<bfdname>
-O --output-target <bfdname> Create an output file in format
<bfdname>
-F --target <bfdname> Set both input and output format to
<bfdname>
--debugging Convert debugging information, if
possible
-p --preserve-dates Copy modified/access timestamps to the
output
-j --only-section <name> Only copy section <name> into the
output
-R --remove-section <name> Remove section <name> from the output
-S --strip-all Remove all symbol and relocation
information
-g --strip-debug Remove all debugging symbols
--strip-unneeded Remove all symbols not needed by
relocations
-N --strip-symbol <name> Do not copy symbol <name>
-K --keep-symbol <name> Only copy symbol <name>
-L --localize-symbol <name> Force symbol <name> to be marked as a
local
-W --weaken-symbol <name> Force symbol <name> to be marked as a
weak
--weaken Force all global symbols to be marked
as weak
-x --discard-all Remove all non-global symbols
-X --discard-locals Remove any compiler-generated symbols
-i --interleave <number> Only copy one out of every <number>
bytes
-b --byte <num> Select byte <num> in every interleaved
block
--gap-fill <val> Fill gaps between sections with <val>
--pad-to <addr> Pad the last section up to address
<addr>
--set-start <addr> Set the start address to <addr>
{--change-start|--adjust-start} <incr>
Add <incr> to the start address
{--change-addresses|--adjust-vma} <incr>
Add <incr> to LMA, VMA and start
addresses
{--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>
Change LMA and VMA of section <name> by
<val>
--change-section-lma <name>{=|+|-}<val>
Change the LMA of section <name> by
<val>
--change-section-vma <name>{=|+|-}<val>
Change the VMA of section <name> by
<val>
{--[no-]change-warnings|--[no-]adjust-warnings}
Warn if a named section does not exist
--set-section-flags <name>=<flags>
Set section <name>'s properties to
<flags>
--add-section <name>=<file> Add section <name> found in <file> to
output
--change-leading-char Force output format's leading character
style
--remove-leading-char Remove leading character from global
symbols
--redefine-sym <old>=<new> Redefine symbol name <old> to <new>
--srec-len <number> Restrict the length of generated
Srecords
--srec-forceS3 Restrict the type of generated Srecords
to S3
-v --verbose List all object files modified
-V --version Display this program's version number
-h --help Display this output
objcopy: supported targets: elf32-i386 a.out-i386-linux efi-app-ia32
elf32-little elf32-big srec symbolsrec tekhex binary ihex trad-core
make[1]: *** [usr/initramfs_data.o] Error 1
make: *** [usr] Error 2
- Davide
/usr/src/hardhat/devkit/x86/pentium3/bin/pentium3-ld -m
elf_i386 -r -o init/built-in.o init/main.o init/version.o
init/do_mounts.o init/initramfs.o
make -f scripts/Makefile.build obj=usr
gcc -Wp,-MD,usr/.gen_init_cpio.d -Wall -Wstrict-prototypes
-O2 -fomit-frame-pointer -o usr/gen_init_cpio
usr/gen_init_cpio.c
( cd usr ; ./gen_init_cpio | gzip -9c >
initramfs_data.cpio.gz )
/usr/src/hardhat/devkit/x86/pentium3/bin/pentium3-objcopy -I
binary -O elf32-i386 -B i386 \
--rename-section .data=.init.initramfs \
usr/initramfs_data.cpio.gz usr/initramfs_data.o
/usr/src/hardhat/devkit/x86/pentium3/bin/pentium3-objcopy:
invalid option -- B
Usage:
/usr/src/hardhat/devkit/x86/pentium3/bin/pentium3-objcopy
<switches> in-file [out-file]
The switches are:
-I --input-target <bfdname> Assume input file is in
format <bfdname>
-O --output-target <bfdname> Create an output file in
format <bfdname>
-F --target <bfdname> Set both input and output
format to <bfdname>
--debugging Convert debugging
information, if possible
-p --preserve-dates Copy modified/access
timestamps to the output
-j --only-section <name> Only copy section <name>
into the output
-R --remove-section <name> Remove section <name>
from the output
-S --strip-all Remove all symbol and
relocation information
-g --strip-debug Remove all debugging
symbols
--strip-unneeded Remove all symbols not
needed by relocations
-N --strip-symbol <name> Do not copy symbol <name>
-K --keep-symbol <name> Only copy symbol <name>
-L --localize-symbol <name> Force symbol <name> to be
marked as a local
-W --weaken-symbol <name> Force symbol <name> to be
marked as a weak
--weaken Force all global symbols
to be marked as weak
-x --discard-all Remove all non-global
symbols
-X --discard-locals Remove any
compiler-generated symbols
-i --interleave <number> Only copy one out of
every <number> bytes
-b --byte <num> Select byte <num> in
every interleaved block
--gap-fill <val> Fill gaps between
sections with <val>
--pad-to <addr> Pad the last section up
to address <addr>
--set-start <addr> Set the start address to
<addr>
{--change-start|--adjust-start} <incr>
Add <incr> to the start
address
{--change-addresses|--adjust-vma} <incr>
Add <incr> to LMA, VMA
and start addresses
{--change-section-address|--adjust-section-vma}
<name>{=|+|-}<val>
Change LMA and VMA of
section <name> by <val>
--change-section-lma <name>{=|+|-}<val>
Change the LMA of section
<name> by <val>
--change-section-vma <name>{=|+|-}<val>
Change the VMA of section
<name> by <val>
{--[no-]change-warnings|--[no-]adjust-warnings}
Warn if a named section
does not exist
--set-section-flags <name>=<flags>
Set section <name>'s
properties to <flags>
--add-section <name>=<file> Add section <name> found
in <file> to output
--change-leading-char Force output format's
leading character style
--remove-leading-char Remove leading character
from global symbols
--redefine-sym <old>=<new> Redefine symbol name
<old> to <new>
--srec-len <number> Restrict the length of
generated Srecords
--srec-forceS3 Restrict the type of
generated Srecords to S3
-v --verbose List all object files
modified
-V --version Display this program's
version number
-h --help Display this output
/usr/src/hardhat/devkit/x86/pentium3/bin/pentium3-objcopy:
supported targets: elf32-i386 a.out-i386-linux efi-app-ia32
elf32-little elf32-big srec symbolsrec tekhex binary ihex
make[1]: *** [usr/initramfs_data.o] Error 1
make: *** [usr] Error 2
It seems that CONFIG_RAMFS is on and without a prompt string
it can not be changed:
--- /usr/src/linux-2.5.46-hrposix/fs/Kconfig~ Mon Nov 4
16:39:26 2002
+++ /usr/src/linux-2.5.46-hrposix/fs/Kconfig Mon Nov 4
16:34:12 2002
@@ -588,7 +588,7 @@
See <file:Documentation/filesystems/tmpfs.txt> for
details.
config RAMFS
- bool
+ bool "Ram file system"
default y
---help---
Ramfs is a file system which keeps all files in RAM. It
allows
Does NOT fix the problem, but does allow you to side step it
:)
--
George Anzinger [email protected]
High-res-timers:
http://sourceforge.net/projects/high-res-timers/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml
I think we need a newer objcopy :(
-g
Davide Libenzi wrote:
>
> Just FYI :
>
> [root@blue1 linux-2.5.46.epoll]# make bzImage
> Starting the build. KBUILD_BUILTIN=1 KBUILD_MODULES=
> make -f scripts/Makefile.build obj=init
> Generating include/linux/compile.h (unchanged)
> make -f scripts/Makefile.build obj=usr
> objcopy -I binary -O elf32-i386 -B i386 \
> --rename-section .data=.init.initramfs \
> usr/initramfs_data.cpio.gz usr/initramfs_data.o
> objcopy: invalid option -- B
> Usage: objcopy <switches> in-file [out-file]
> The switches are:
> -I --input-target <bfdname> Assume input file is in format
> <bfdname>
> -O --output-target <bfdname> Create an output file in format
> <bfdname>
> -F --target <bfdname> Set both input and output format to
> <bfdname>
> --debugging Convert debugging information, if
> possible
> -p --preserve-dates Copy modified/access timestamps to the
> output
> -j --only-section <name> Only copy section <name> into the
> output
> -R --remove-section <name> Remove section <name> from the output
> -S --strip-all Remove all symbol and relocation
> information
> -g --strip-debug Remove all debugging symbols
> --strip-unneeded Remove all symbols not needed by
> relocations
> -N --strip-symbol <name> Do not copy symbol <name>
> -K --keep-symbol <name> Only copy symbol <name>
> -L --localize-symbol <name> Force symbol <name> to be marked as a
> local
> -W --weaken-symbol <name> Force symbol <name> to be marked as a
> weak
> --weaken Force all global symbols to be marked
> as weak
> -x --discard-all Remove all non-global symbols
> -X --discard-locals Remove any compiler-generated symbols
> -i --interleave <number> Only copy one out of every <number>
> bytes
> -b --byte <num> Select byte <num> in every interleaved
> block
> --gap-fill <val> Fill gaps between sections with <val>
> --pad-to <addr> Pad the last section up to address
> <addr>
> --set-start <addr> Set the start address to <addr>
> {--change-start|--adjust-start} <incr>
> Add <incr> to the start address
> {--change-addresses|--adjust-vma} <incr>
> Add <incr> to LMA, VMA and start
> addresses
> {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>
> Change LMA and VMA of section <name> by
> <val>
> --change-section-lma <name>{=|+|-}<val>
> Change the LMA of section <name> by
> <val>
> --change-section-vma <name>{=|+|-}<val>
> Change the VMA of section <name> by
> <val>
> {--[no-]change-warnings|--[no-]adjust-warnings}
> Warn if a named section does not exist
> --set-section-flags <name>=<flags>
> Set section <name>'s properties to
> <flags>
> --add-section <name>=<file> Add section <name> found in <file> to
> output
> --change-leading-char Force output format's leading character
> style
> --remove-leading-char Remove leading character from global
> symbols
> --redefine-sym <old>=<new> Redefine symbol name <old> to <new>
> --srec-len <number> Restrict the length of generated
> Srecords
> --srec-forceS3 Restrict the type of generated Srecords
> to S3
> -v --verbose List all object files modified
> -V --version Display this program's version number
> -h --help Display this output
> objcopy: supported targets: elf32-i386 a.out-i386-linux efi-app-ia32
> elf32-little elf32-big srec symbolsrec tekhex binary ihex trad-core
> make[1]: *** [usr/initramfs_data.o] Error 1
> make: *** [usr] Error 2
>
> - Davide
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
George Anzinger [email protected]
High-res-timers:
http://sourceforge.net/projects/high-res-timers/
Preemption patch:
http://www.kernel.org/pub/linux/kernel/people/rml
On Mon, 4 Nov 2002, george anzinger wrote:
> I think we need a newer objcopy :(
I'm just fetching 2.13 ... but it's kind-of-busy. I guess many of us had
the same idea ;)
- Davide
On Mon, 4 Nov 2002, george anzinger wrote:
> I think we need a newer objcopy :(
Alternatively, use this patch. (It's not really needed to force people to
upgrade binutils when ld can do the job, as it e.g. does in
arch/i386/boot/compressed/Makefile already).
--Kai
Pull from http://linux-isdn.bkbits.net/linux-2.5.make
(Merging changesets omitted for clarity)
-----------------------------------------------------------------------------
[email protected], 2002-11-04 16:04:44-06:00, [email protected]
kbuild: initramfs updates
Use ld to link the cpio archive into the image, build was broken
due to requiring a recent version of objcopy before, plus assorted
cleanups:
o Don't include arch/$(ARCH)/Makefile, export the needed arch-specific
flags instead.
o Name the generated section consistently .init.ramfs everywhere.
----------------------------------------------------------------------------
Makefile | 2 +-
arch/i386/Makefile | 2 +-
arch/i386/vmlinux.lds.S | 2 +-
usr/Makefile | 14 ++++++--------
usr/initramfs_data.scr | 4 ++++
5 files changed, 13 insertions(+), 11 deletions(-)
=============================================================================
unified diffs follow for reference
=============================================================================
-----------------------------------------------------------------------------
[email protected], 2002-11-04 16:04:44-06:00, [email protected]
kbuild: initramfs updates
Use ld to link the cpio archive into the image, build was broken
due to requiring a recent version of objcopy before, plus assorted
cleanups:
o Don't include arch/$(ARCH)/Makefile, export the needed arch-specific
flags instead.
o Name the generated section consistently .init.ramfs everywhere.
---------------------------------------------------------------------------
diff -Nru a/Makefile b/Makefile
--- a/Makefile Mon Nov 4 16:05:19 2002
+++ b/Makefile Mon Nov 4 16:05:19 2002
@@ -175,7 +175,7 @@
export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH \
CONFIG_SHELL TOPDIR HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \
- HOSTCXX HOSTCXXFLAGS
+ HOSTCXX HOSTCXXFLAGS LDFLAGS_BLOB
export CPPFLAGS NOSTDINC_FLAGS OBJCOPYFLAGS LDFLAGS
export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
diff -Nru a/arch/i386/Makefile b/arch/i386/Makefile
--- a/arch/i386/Makefile Mon Nov 4 16:05:19 2002
+++ b/arch/i386/Makefile Mon Nov 4 16:05:19 2002
@@ -18,8 +18,8 @@
LDFLAGS := -m elf_i386
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
-ARCHBLOBLFLAGS := -I binary -O elf32-i386 -B i386
LDFLAGS_vmlinux := -e stext
+LDFLAGS_BLOB := --format binary --oformat elf32-i386
CFLAGS += -pipe
diff -Nru a/arch/i386/vmlinux.lds.S b/arch/i386/vmlinux.lds.S
--- a/arch/i386/vmlinux.lds.S Mon Nov 4 16:05:19 2002
+++ b/arch/i386/vmlinux.lds.S Mon Nov 4 16:05:19 2002
@@ -79,7 +79,7 @@
__initcall_end = .;
. = ALIGN(4096);
__initramfs_start = .;
- .init.ramfs : { *(.init.initramfs) }
+ .init.ramfs : { *(.init.ramfs) }
__initramfs_end = .;
. = ALIGN(32);
__per_cpu_start = .;
diff -Nru a/usr/Makefile b/usr/Makefile
--- a/usr/Makefile Mon Nov 4 16:05:19 2002
+++ b/usr/Makefile Mon Nov 4 16:05:19 2002
@@ -1,18 +1,16 @@
-include arch/$(ARCH)/Makefile
-
obj-y := initramfs_data.o
host-progs := gen_init_cpio
clean-files := initramfs_data.cpio.gz
-$(obj)/initramfs_data.o: $(obj)/initramfs_data.cpio.gz
- $(OBJCOPY) $(ARCHBLOBLFLAGS) \
- --rename-section .data=.init.initramfs \
- $(obj)/initramfs_data.cpio.gz $(obj)/initramfs_data.o
- $(STRIP) -s $(obj)/initramfs_data.o
+LDFLAGS_initramfs_data.o := $(LDFLAGS_BLOB) -r -T
+
+$(obj)/initramfs_data.o: $(src)/initramfs_data.scr $(obj)/initramfs_data.cpio.gz FORCE
+ $(call if_changed,ld)
$(obj)/initramfs_data.cpio.gz: $(obj)/gen_init_cpio
- ( cd $(obj) ; ./gen_init_cpio | gzip -9c > initramfs_data.cpio.gz )
+ ( cd $(obj) ; ./$< | gzip -9c > $@ )
+
diff -Nru a/usr/initramfs_data.scr b/usr/initramfs_data.scr
--- /dev/null Wed Dec 31 16:00:00 1969
+++ b/usr/initramfs_data.scr Mon Nov 4 16:05:19 2002
@@ -0,0 +1,4 @@
+SECTIONS
+{
+ .init.ramfs : { *(.data) }
+}
Kai Germaschewski wrote:
> On Mon, 4 Nov 2002, george anzinger wrote:
>
> > I think we need a newer objcopy :(
>
> Alternatively, use this patch. (It's not really needed to force people to
> upgrade binutils when ld can do the job, as it e.g. does in
> arch/i386/boot/compressed/Makefile already).
>
> - ( cd $(obj) ; ./gen_init_cpio | gzip -9c > initramfs_data.cpio.gz )
> + ( cd $(obj) ; ./$< | gzip -9c > $@ )
I get errors with your patch. I had to remove the 'cd $(obj)' above
from usr/Makefile.
--
Skip
On Mon, 4 Nov 2002, Skip Ford wrote:
> Kai Germaschewski wrote:
> > On Mon, 4 Nov 2002, george anzinger wrote:
> >
> > > I think we need a newer objcopy :(
> >
> > Alternatively, use this patch. (It's not really needed to force people to
> > upgrade binutils when ld can do the job, as it e.g. does in
> > arch/i386/boot/compressed/Makefile already).
> >
> > - ( cd $(obj) ; ./gen_init_cpio | gzip -9c > initramfs_data.cpio.gz )
> > + ( cd $(obj) ; ./$< | gzip -9c > $@ )
>
> I get errors with your patch. I had to remove the 'cd $(obj)' above
> from usr/Makefile.
With the latest binutils it works flawlessy w/out any patches ...
- Davide
Davide Libenzi wrote:
> On Mon, 4 Nov 2002, Skip Ford wrote:
> > Kai Germaschewski wrote:
> > > On Mon, 4 Nov 2002, george anzinger wrote:
> > >
> > > > I think we need a newer objcopy :(
> > >
> > > Alternatively, use this patch. (It's not really needed to force people to
> > > upgrade binutils when ld can do the job, as it e.g. does in
> > > arch/i386/boot/compressed/Makefile already).
> > >
> > > - ( cd $(obj) ; ./gen_init_cpio | gzip -9c > initramfs_data.cpio.gz )
> > > + ( cd $(obj) ; ./$< | gzip -9c > $@ )
> >
> > I get errors with your patch. I had to remove the 'cd $(obj)' above
> > from usr/Makefile.
>
> With the latest binutils it works flawlessy w/out any patches ...
His patch is intended to negate the need for a recent binutils. I
already have binutils 2.13 and had no trouble building. But with his
patch that I assume Linus will apply, it errors out no matter which
binutils you have.
--
Skip
On Mon, 2002-11-04 at 18:37, Kai Germaschewski wrote:
> On Mon, 4 Nov 2002, george anzinger wrote:
>
> > I think we need a newer objcopy :(
>
> Alternatively, use this patch. (It's not really needed to force people to
> upgrade binutils when ld can do the job, as it e.g. does in
> arch/i386/boot/compressed/Makefile already).
Does not work for me at all on sparc64, it complains that *.gz has an
unknown file format.
Why not just hexdump the thing into an array of char foo.c file,
then compile that.
after issuing a "make bzImage":
gcc -Wp,-MD,drivers/message/i2o/.i2o_pci.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=i686 -malign-functions=4 -Iarch/i386/mach-generic -nostdinc
-iwithprefix include -DKBUILD_BASENAME=i2o_pci -c -o
drivers/message/i2o/i2o_pci.o drivers/message/i2o/i2o_pci.c
drivers/message/i2o/i2o_pci.c: In function `i2o_pci_core_attach':
drivers/message/i2o/i2o_pci.c:371: warning: implicit declaration of
function `i2o_sys_init'
gcc -Wp,-MD,drivers/message/i2o/.i2o_core.o.d -D__KERNEL__ -Iinclude
-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=i686 -malign-functions=4 -Iarch/i386/mach-generic -nostdinc
-iwithprefix include -DKBUILD_BASENAME=i2o_core -c -o
drivers/message/i2o/i2o_core.o drivers/message/i2o/i2o_core.c
gcc -Wp,-MD,drivers/message/i2o/.i2o_config.o.d -D__KERNEL__ -Iinclude
-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=i686 -malign-functions=4 -Iarch/i386/mach-generic -nostdinc
-iwithprefix include -DKBUILD_BASENAME=i2o_config -c -o
drivers/message/i2o/i2o_config.o drivers/message/i2o/i2o_config.c
gcc -Wp,-MD,drivers/message/i2o/.i2o_block.o.d -D__KERNEL__ -Iinclude
-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=i686 -malign-functions=4 -Iarch/i386/mach-generic -nostdinc
-iwithprefix include -DKBUILD_BASENAME=i2o_block -c -o
drivers/message/i2o/i2o_block.o drivers/message/i2o/i2o_block.c
drivers/message/i2o/i2o_block.c: In function `i2o_block_init':
drivers/message/i2o/i2o_block.c:1672: warning: implicit declaration of
function `BLK_DEFAULT_QUEUE'
drivers/message/i2o/i2o_block.c:1672: warning: passing arg 1 of
`blk_cleanup_queue' makes pointer from integer without a cast
gcc -Wp,-MD,drivers/message/i2o/.i2o_lan.o.d -D__KERNEL__ -Iinclude
-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=i686 -malign-functions=4 -Iarch/i386/mach-generic -nostdinc
-iwithprefix include -DKBUILD_BASENAME=i2o_lan -c -o
drivers/message/i2o/i2o_lan.o drivers/message/i2o/i2o_lan.c
drivers/message/i2o/i2o_lan.c:28: #error Please convert me to
Documentation/DMA-mapping.txt
drivers/message/i2o/i2o_lan.c:119: parse error before `struct'
drivers/message/i2o/i2o_lan.c: In function `i2o_lan_receive_post_reply':
drivers/message/i2o/i2o_lan.c:385: `run_i2o_post_buckets_task' undeclared
(first use in this function)
drivers/message/i2o/i2o_lan.c:385: (Each undeclared identifier is reported
only once
drivers/message/i2o/i2o_lan.c:385: for each function it appears in.)
drivers/message/i2o/i2o_lan.c: In function `i2o_lan_register_device':
drivers/message/i2o/i2o_lan.c:1406: structure has no member named `list'
drivers/message/i2o/i2o_lan.c:1406: structure has no member named `list'
drivers/message/i2o/i2o_lan.c:1406: structure has no member named `list'
drivers/message/i2o/i2o_lan.c:1406: structure has no member named `list'
drivers/message/i2o/i2o_lan.c:1407: structure has no member named `sync'
make[3]: *** [drivers/message/i2o/i2o_lan.o] Error 1
make[2]: *** [drivers/message/i2o] Error 2
make[1]: *** [drivers/message] Error 2
make: *** [drivers] Error 2
-----------
Reading specs from /usr/lib/gcc-lib/i386-slackware-linux/2.95.3/specs
gcc version 2.95.3 20010315 (release)
GNU Make 3.80
binutils-2.13.90.0.10
--
best regards
Michael Kummer
--
Michael Kummer - [A]ustrian [E]lite [S]printer
Lieferinger-Hauptstrasse 47 - A 5020 Salzburg
Mobile: +43 664 3333995
EMail: [email protected]
Web: http://www.sprinter.cc
while compiling without i2c:
make -f scripts/Makefile.build obj=drivers/video/riva
gcc -Wp,-MD,drivers/video/riva/.fbdev.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=i686 -malign-functions=4 -Iarch/i386/mach-generic -nostdinc
-iwithprefix include -DKBUILD_BASENAME=fbdev -c -o
drivers/video/riva/fbdev.o drivers/video/riva/fbdev.c
drivers/video/riva/fbdev.c: In function `riva_set_dispsw':
drivers/video/riva/fbdev.c:665: structure has no member named `type'
drivers/video/riva/fbdev.c:666: structure has no member named `type_aux'
drivers/video/riva/fbdev.c:667: structure has no member named `ypanstep'
drivers/video/riva/fbdev.c:668: structure has no member named `ywrapstep'
drivers/video/riva/fbdev.c:677: structure has no member named
`line_length'
drivers/video/riva/fbdev.c:678: structure has no member named `visual'
drivers/video/riva/fbdev.c:686: structure has no member named
`line_length'
drivers/video/riva/fbdev.c:687: structure has no member named `visual'
drivers/video/riva/fbdev.c:695: structure has no member named
`line_length'
drivers/video/riva/fbdev.c:696: structure has no member named `visual'
drivers/video/riva/fbdev.c: In function `rivafb_get_fix':
drivers/video/riva/fbdev.c:1294: structure has no member named `type'
drivers/video/riva/fbdev.c:1295: structure has no member named `type_aux'
drivers/video/riva/fbdev.c:1296: structure has no member named `visual'
drivers/video/riva/fbdev.c:1302: structure has no member named
`line_length'
drivers/video/riva/fbdev.c: In function `rivafb_pan_display':
drivers/video/riva/fbdev.c:1611: structure has no member named
`line_length'
drivers/video/riva/fbdev.c:1586: warning: `base' might be used
uninitialized in this function
drivers/video/riva/fbdev.c: At top level:
drivers/video/riva/fbdev.c:1748: unknown field `fb_get_fix' specified in
initializer
drivers/video/riva/fbdev.c:1748: warning: initialization from incompatible
pointer type
drivers/video/riva/fbdev.c:1749: unknown field `fb_get_var' specified in
initializer
drivers/video/riva/fbdev.c:1749: warning: initialization from incompatible
pointer type
make[3]: *** [drivers/video/riva/fbdev.o] Error 1
make[2]: *** [drivers/video/riva] Error 2
make[1]: *** [drivers/video] Error 2
make: *** [drivers] Error 2
--
best regards
Michael Kummer
--
Michael Kummer - [A]ustrian [E]lite [S]printer
Lieferinger-Hauptstrasse 47 - A 5020 Salzburg
Mobile: +43 664 3333995
EMail: [email protected]
Web: http://www.sprinter.cc
On Tue, 2002-11-05 at 09:35, Michael Kummer wrote:
> drivers/message/i2o/i2o_block.o drivers/message/i2o/i2o_block.c
> drivers/message/i2o/i2o_block.c: In function `i2o_block_init':
> drivers/message/i2o/i2o_block.c:1672: warning: implicit declaration of
> function `BLK_DEFAULT_QUEUE'
Fixed in -ac
> gcc -Wp,-MD,drivers/message/i2o/.i2o_lan.o.d -D__KERNEL__ -Iinclude
> -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
> -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
> -march=i686 -malign-functions=4 -Iarch/i386/mach-generic -nostdinc
> -iwithprefix include -DKBUILD_BASENAME=i2o_lan -c -o
> drivers/message/i2o/i2o_lan.o drivers/message/i2o/i2o_lan.c
Anyone who wants i2o_lan will be fixing it themselves. I don't have any
usable i2o_lan hardware any more. nor in truth was there much ever in
existance.
On Tue, Nov 05, 2002 at 12:44:11AM +0100, Udo A. Steinberg wrote:
> drivers/media/video/bttv-cards.o drivers/media/video/bttv-cards.c
> drivers/media/video/bttv-cards.c: In function `miro_pinnacle_gpio':
> drivers/media/video/bttv-cards.c:1742: `AUDC_CONFIG_PINNACLE' undeclared (first use in this function)
This patch is missing (adds the tda9887 module, needed by some TV cards
to tune TV stations).
Gerd
--- linux-2.5.46/drivers/media/video/Makefile 2002-11-05 10:53:41.000000000 +0100
+++ linux/drivers/media/video/Makefile 2002-11-05 10:56:39.000000000 +0100
@@ -15,7 +15,7 @@
obj-$(CONFIG_VIDEO_DEV) += videodev.o v4l2-common.o
obj-$(CONFIG_VIDEO_BT848) += bttv.o msp3400.o tvaudio.o \
- tda7432.o tda9875.o tuner.o video-buf.o
+ tda7432.o tda9875.o tuner.o video-buf.o tda9887.o
obj-$(CONFIG_SOUND_TVMIXER) += tvmixer.o
obj-$(CONFIG_VIDEO_ZR36120) += zoran.o
--- linux-2.5.46/drivers/media/video/audiochip.h 2002-11-05 10:53:34.000000000 +0100
+++ linux/drivers/media/video/audiochip.h 2002-11-05 10:56:39.000000000 +0100
@@ -67,4 +67,8 @@
#define AUDC_SWITCH_MUTE _IO('m',16) /* turn on mute */
#endif
+
+/* misc stuff to pass around config info to i2c chips */
+#define AUDC_CONFIG_PINNACLE _IOW('m',32,int)
+
#endif /* AUDIOCHIP_H */
--- linux-2.5.46/drivers/media/video/tda9887.c 2002-11-05 10:56:39.000000000 +0100
+++ linux/drivers/media/video/tda9887.c 2002-11-05 10:56:39.000000000 +0100
@@ -0,0 +1,493 @@
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/i2c.h>
+#include <linux/types.h>
+#include <linux/videodev.h>
+#include <linux/init.h>
+#include <linux/errno.h>
+#include <linux/slab.h>
+
+#include "id.h"
+#include "audiochip.h"
+
+/* Chips:
+ TDA9885 (PAL, NTSC)
+ TDA9886 (PAL, SECAM, NTSC)
+ TDA9887 (PAL, SECAM, NTSC, FM Radio)
+
+ found on:
+ - Pinnacle PCTV (Jul.2002 Version with MT2032, bttv)
+ TDA9887 (world), TDA9885 (USA)
+ Note: OP2 of tda988x must be set to 1, else MT2032 is disabled!
+ - KNC One TV-Station RDS (saa7134)
+*/
+
+
+/* Addresses to scan */
+static unsigned short normal_i2c[] = {I2C_CLIENT_END};
+static unsigned short normal_i2c_range[] = {0x86>>1,0x86>>1,I2C_CLIENT_END};
+static unsigned short probe[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
+static unsigned short probe_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
+static unsigned short ignore[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
+static unsigned short ignore_range[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
+static unsigned short force[2] = { I2C_CLIENT_END, I2C_CLIENT_END };
+static struct i2c_client_address_data addr_data = {
+ normal_i2c, normal_i2c_range,
+ probe, probe_range,
+ ignore, ignore_range,
+ force
+};
+
+/* insmod options */
+static int debug = 0;
+static char *pal = "b";
+static char *secam = "l";
+MODULE_PARM(debug,"i");
+MODULE_PARM(pal,"s");
+MODULE_PARM(secam,"s");
+MODULE_LICENSE("GPL");
+
+/* ---------------------------------------------------------------------- */
+
+#define dprintk if (debug) printk
+
+struct tda9887 {
+ struct i2c_client client;
+ int radio,tvnorm;
+ int pinnacle_id;
+};
+
+static struct i2c_driver driver;
+static struct i2c_client client_template;
+
+/* ---------------------------------------------------------------------- */
+
+//
+// TDA defines
+//
+
+//// first reg
+#define cVideoTrapBypassOFF 0x00 // bit b0
+#define cVideoTrapBypassON 0x01 // bit b0
+
+#define cAutoMuteFmInactive 0x00 // bit b1
+#define cAutoMuteFmActive 0x02 // bit b1
+
+#define cIntercarrier 0x00 // bit b2
+#define cQSS 0x04 // bit b2
+
+#define cPositiveAmTV 0x00 // bit b3:4
+#define cFmRadio 0x08 // bit b3:4
+#define cNegativeFmTV 0x10 // bit b3:4
+
+
+#define cForcedMuteAudioON 0x20 // bit b5
+#define cForcedMuteAudioOFF 0x00 // bit b5
+
+#define cOutputPort1Active 0x00 // bit b6
+#define cOutputPort1Inactive 0x40 // bit b6
+
+#define cOutputPort2Active 0x00 // bit b7
+#define cOutputPort2Inactive 0x80 // bit b7
+
+
+//// second reg
+#define cDeemphasisOFF 0x00 // bit c5
+#define cDeemphasisON 0x20 // bit c5
+
+#define cDeemphasis75 0x00 // bit c6
+#define cDeemphasis50 0x40 // bit c6
+
+#define cAudioGain0 0x00 // bit c7
+#define cAudioGain6 0x80 // bit c7
+
+
+//// third reg
+#define cAudioIF_4_5 0x00 // bit e0:1
+#define cAudioIF_5_5 0x01 // bit e0:1
+#define cAudioIF_6_0 0x02 // bit e0:1
+#define cAudioIF_6_5 0x03 // bit e0:1
+
+
+#define cVideoIF_58_75 0x00 // bit e2:4
+#define cVideoIF_45_75 0x04 // bit e2:4
+#define cVideoIF_38_90 0x08 // bit e2:4
+#define cVideoIF_38_00 0x0C // bit e2:4
+#define cVideoIF_33_90 0x10 // bit e2:4
+#define cVideoIF_33_40 0x14 // bit e2:4
+#define cRadioIF_45_75 0x18 // bit e2:4
+#define cRadioIF_38_90 0x1C // bit e2:4
+
+
+#define cTunerGainNormal 0x00 // bit e5
+#define cTunerGainLow 0x20 // bit e5
+
+#define cGating_18 0x00 // bit e6
+#define cGating_36 0x40 // bit e6
+
+#define cAgcOutON 0x80 // bit e7
+#define cAgcOutOFF 0x00 // bit e7
+
+static int tda9887_miro(struct tda9887 *t)
+{
+ int rc;
+ u8 bData[4] = { 0 };
+ u8 bVideoIF = 0;
+ u8 bAudioIF = 0;
+ u8 bDeEmphasis = 0;
+ u8 bDeEmphVal = 0;
+ u8 bModulation = 0;
+ u8 bCarrierMode = 0;
+ u8 bOutPort1 = cOutputPort1Inactive;
+#if 0
+ u8 bOutPort2 = cOutputPort2Inactive & mbTADState; // store i2c tuner state
+#else
+ u8 bOutPort2 = cOutputPort2Inactive;
+#endif
+ u8 bVideoTrap = cVideoTrapBypassOFF;
+#if 0
+ u8 bTopAdjust = mbAGC;
+#else
+ u8 bTopAdjust = 0;
+#endif
+
+#if 0
+ if (mParams.fVideoTrap)
+ bVideoTrap = cVideoTrapBypassON;
+#endif
+
+ if (t->radio) {
+ bVideoTrap = cVideoTrapBypassOFF;
+ bCarrierMode = cQSS;
+ bModulation = cFmRadio;
+ bOutPort1 = cOutputPort1Inactive;
+ bDeEmphasis = cDeemphasisON;
+ if (3 == t->pinnacle_id) {
+ /* ntsc */
+ bDeEmphVal = cDeemphasis75;
+ bAudioIF = cAudioIF_4_5;
+ bVideoIF = cRadioIF_45_75;
+ } else {
+ /* pal */
+ bAudioIF = cAudioIF_5_5;
+ bVideoIF = cRadioIF_38_90;
+ bDeEmphVal = cDeemphasis50;
+ }
+
+ } else if (t->tvnorm == VIDEO_MODE_PAL) {
+ bDeEmphasis = cDeemphasisON;
+ bDeEmphVal = cDeemphasis50;
+ bModulation = cNegativeFmTV;
+ bOutPort1 = cOutputPort1Inactive;
+ if (1 == t->pinnacle_id) {
+ bCarrierMode = cIntercarrier;
+ } else {
+ // stereo boards
+ bCarrierMode = cQSS;
+ }
+ switch (pal[0]) {
+ case 'b':
+ case 'g':
+ case 'h':
+ bVideoIF = cVideoIF_38_90;
+ bAudioIF = cAudioIF_5_5;
+ break;
+ case 'd':
+ bVideoIF = cVideoIF_38_00;
+ bAudioIF = cAudioIF_6_5;
+ break;
+ case 'i':
+ bVideoIF = cVideoIF_38_90;
+ bAudioIF = cAudioIF_6_0;
+ break;
+ case 'm':
+ case 'n':
+ bVideoIF = cVideoIF_45_75;
+ bAudioIF = cAudioIF_4_5;
+ bDeEmphVal = cDeemphasis75;
+ if ((5 == t->pinnacle_id) || (6 == t->pinnacle_id)) {
+ bCarrierMode = cIntercarrier;
+ } else {
+ bCarrierMode = cQSS;
+ }
+ break;
+ }
+
+ } else if (t->tvnorm == VIDEO_MODE_SECAM) {
+ bAudioIF = cAudioIF_6_5;
+ bDeEmphasis = cDeemphasisON;
+ bDeEmphVal = cDeemphasis50;
+ bModulation = cNegativeFmTV;
+ bCarrierMode = cQSS;
+ bOutPort1 = cOutputPort1Inactive;
+ switch (secam[0]) {
+ case 'd':
+ bVideoIF = cVideoIF_38_00;
+ break;
+ case 'k':
+ bVideoIF = cVideoIF_38_90;
+ break;
+ case 'l':
+ bVideoIF = cVideoIF_38_90;
+ bDeEmphasis = cDeemphasisOFF;
+ bDeEmphVal = cDeemphasis75;
+ bModulation = cPositiveAmTV;
+ break;
+ case 'L' /* L1 */:
+ bVideoIF = cVideoIF_33_90;
+ bDeEmphasis = cDeemphasisOFF;
+ bDeEmphVal = cDeemphasis75;
+ bModulation = cPositiveAmTV;
+ break;
+ }
+
+ } else if (t->tvnorm == VIDEO_MODE_NTSC) {
+ bVideoIF = cVideoIF_45_75;
+ bAudioIF = cAudioIF_4_5;
+ bDeEmphasis = cDeemphasisON;
+ bDeEmphVal = cDeemphasis75;
+ bModulation = cNegativeFmTV;
+ bOutPort1 = cOutputPort1Inactive;
+ if ((5 == t->pinnacle_id) || (6 == t->pinnacle_id)) {
+ bCarrierMode = cIntercarrier;
+ } else {
+ bCarrierMode = cQSS;
+ }
+ }
+
+ bData[1] = bVideoTrap | // B0: video trap bypass
+ cAutoMuteFmInactive | // B1: auto mute
+ bCarrierMode | // B2: InterCarrier for PAL else QSS
+ bModulation | // B3 - B4: positive AM TV for SECAM only
+ cForcedMuteAudioOFF | // B5: forced Audio Mute (off)
+ bOutPort1 | // B6: Out Port 1
+ bOutPort2; // B7: Out Port 2
+ bData[2] = bTopAdjust | // C0 - C4: Top Adjust 0 == -16dB 31 == 15dB
+ bDeEmphasis | // C5: De-emphasis on/off
+ bDeEmphVal | // C6: De-emphasis 50/75 microsec
+ cAudioGain0; // C7: normal audio gain
+ bData[3] = bAudioIF | // E0 - E1: Sound IF
+ bVideoIF | // E2 - E4: Video IF
+ cTunerGainNormal | // E5: Tuner gain (normal)
+ cGating_18 | // E6: Gating (18%)
+ cAgcOutOFF; // E7: VAGC (off)
+
+ dprintk("tda9885/6/7: 0x%02x 0x%02x 0x%02x [pinnacle_id=%d]\n",
+ bData[1],bData[2],bData[3],t->pinnacle_id);
+ if (4 != (rc = i2c_master_send(&t->client,bData,4)))
+ printk("tda9885/6/7: i2c i/o error: rc == %d (should be 4)\n",rc);
+ return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#if 0
+/* just for reference: old knc-one saa7134 stuff */
+static unsigned char buf_pal_bg[] = { 0x00, 0x16, 0x70, 0x49 };
+static unsigned char buf_pal_i[] = { 0x00, 0x16, 0x70, 0x4a };
+static unsigned char buf_pal_dk[] = { 0x00, 0x16, 0x70, 0x4b };
+static unsigned char buf_pal_l[] = { 0x00, 0x06, 0x50, 0x4b };
+static unsigned char buf_fm_stereo[] = { 0x00, 0x0e, 0x0d, 0x77 };
+#endif
+
+static unsigned char buf_pal_bg[] = { 0x00, 0x96, 0x70, 0x49 };
+static unsigned char buf_pal_i[] = { 0x00, 0x96, 0x70, 0x4a };
+static unsigned char buf_pal_dk[] = { 0x00, 0x96, 0x70, 0x4b };
+static unsigned char buf_pal_l[] = { 0x00, 0x86, 0x50, 0x4b };
+static unsigned char buf_fm_stereo[] = { 0x00, 0x8e, 0x0d, 0x77 };
+static unsigned char buf_ntsc[] = { 0x00, 0x96, 0x70, 0x44 };
+static unsigned char buf_ntsc_jp[] = { 0x00, 0x96, 0x70, 0x40 };
+
+static int tda9887_configure(struct tda9887 *t)
+{
+ unsigned char *buf = NULL;
+ int rc;
+
+ printk("tda9887_configure\n");
+
+ if (t->radio) {
+ dprintk("tda9885/6/7: FM Radio mode\n");
+ buf = buf_fm_stereo;
+
+ } else if (t->tvnorm == VIDEO_MODE_PAL) {
+ dprintk("tda9885/6/7: PAL-%c mode\n",pal[0]);
+ switch (pal[0]) {
+ case 'b':
+ case 'g':
+ buf = buf_pal_bg;
+ break;
+ case 'i':
+ buf = buf_pal_i;
+ break;
+ case 'd':
+ case 'k':
+ buf = buf_pal_dk;
+ break;
+ case 'l':
+ buf = buf_pal_l;
+ break;
+ }
+
+ } else if (t->tvnorm == VIDEO_MODE_NTSC) {
+ dprintk("tda9885/6/7: NTSC mode\n");
+ buf = buf_ntsc;
+
+ } else if (t->tvnorm == VIDEO_MODE_SECAM) {
+ dprintk("tda9885/6/7: SECAM mode\n");
+ buf = buf_pal_l;
+
+ } else if (t->tvnorm == 6 /* BTTV hack */) {
+ dprintk("tda9885/6/7: NTSC-Japan mode\n");
+ buf = buf_ntsc_jp;
+ }
+
+ if (NULL == buf) {
+ printk("tda9885/6/7 unknown norm=%d\n",t->tvnorm);
+ return 0;
+ }
+
+ dprintk("tda9885/6/7: 0x%02x 0x%02x 0x%02x\n",
+ buf[1],buf[2],buf[3]);
+ if (4 != (rc = i2c_master_send(&t->client,buf,4)))
+ printk("tda9885/6/7: i2c i/o error: rc == %d (should be 4)\n",rc);
+ return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int tda9887_attach(struct i2c_adapter *adap, int addr,
+ unsigned short flags, int kind)
+{
+ struct tda9887 *t;
+
+ client_template.adapter = adap;
+ client_template.addr = addr;
+
+ printk("tda9887: chip found @ 0x%x\n", addr<<1);
+
+ if (NULL == (t = kmalloc(sizeof(*t), GFP_KERNEL)))
+ return -ENOMEM;
+ memset(t,0,sizeof(*t));
+ t->client = client_template;
+ t->client.data = t;
+ t->pinnacle_id = -1;
+ i2c_attach_client(&t->client);
+
+ MOD_INC_USE_COUNT;
+ return 0;
+}
+
+static int tda9887_probe(struct i2c_adapter *adap)
+{
+ int rc;
+
+ switch (adap->id) {
+ case I2C_ALGO_BIT | I2C_HW_B_BT848:
+ case I2C_ALGO_BIT | I2C_HW_B_RIVA:
+ case I2C_ALGO_SAA7134:
+ printk("tda9887: probing %s i2c adapter [id=0x%x]\n",
+ adap->name,adap->id);
+ rc = i2c_probe(adap, &addr_data, tda9887_attach);
+ break;
+ default:
+ printk("tda9887: ignoring %s i2c adapter [id=0x%x]\n",
+ adap->name,adap->id);
+ rc = 0;
+ /* nothing */
+ }
+ return rc;
+}
+
+static int tda9887_detach(struct i2c_client *client)
+{
+ struct tda9887 *t = (struct tda9887*)client->data;
+
+ i2c_detach_client(client);
+ kfree(t);
+ MOD_DEC_USE_COUNT;
+ return 0;
+}
+
+static int
+tda9887_command(struct i2c_client *client, unsigned int cmd, void *arg)
+{
+ struct tda9887 *t = (struct tda9887*)client->data;
+
+ switch (cmd) {
+
+ /* --- configuration --- */
+ case AUDC_SET_RADIO:
+ t->radio = 1;
+ if (-1 != t->pinnacle_id)
+ tda9887_miro(t);
+ else
+ tda9887_configure(t);
+ break;
+
+ case AUDC_CONFIG_PINNACLE:
+ {
+ int *i = arg;
+
+ t->pinnacle_id = *i;
+ break;
+ }
+ /* --- v4l ioctls --- */
+ /* take care: bttv does userspace copying, we'll get a
+ kernel pointer here... */
+ case VIDIOCSCHAN:
+ {
+ struct video_channel *vc = arg;
+
+ t->radio = 0;
+ t->tvnorm = vc->norm;
+ if (-1 != t->pinnacle_id)
+ tda9887_miro(t);
+ else
+ tda9887_configure(t);
+ break;
+ }
+ default:
+ /* nothing */
+ break;
+ }
+ return 0;
+}
+
+/* ----------------------------------------------------------------------- */
+
+static struct i2c_driver driver = {
+ name: "i2c tda9887 driver",
+ id: -1, /* FIXME */
+ flags: I2C_DF_NOTIFY,
+ attach_adapter: tda9887_probe,
+ detach_client: tda9887_detach,
+ command: tda9887_command,
+};
+static struct i2c_client client_template =
+{
+ name: "tda9887",
+ flags: I2C_CLIENT_ALLOW_USE,
+ driver: &driver,
+};
+
+static int tda9887_init_module(void)
+{
+ i2c_add_driver(&driver);
+ return 0;
+}
+
+static void tda9887_cleanup_module(void)
+{
+ i2c_del_driver(&driver);
+}
+
+module_init(tda9887_init_module);
+module_exit(tda9887_cleanup_module);
+
+/*
+ * Overrides for Emacs so that we follow Linus's tabbing style.
+ * ---------------------------------------------------------------------------
+ * Local variables:
+ * c-basic-offset: 8
+ * End:
+ */
--
You can't please everybody. And usually if you _try_ to please
everybody, the end result is one big mess.
-- Linus Torvalds, 2002-04-20
On 4 Nov 2002, David S. Miller wrote:
> On Mon, 2002-11-04 at 18:37, Kai Germaschewski wrote:
> > On Mon, 4 Nov 2002, george anzinger wrote:
> >
> > > I think we need a newer objcopy :(
> >
> > Alternatively, use this patch. (It's not really needed to force people to
> > upgrade binutils when ld can do the job, as it e.g. does in
> > arch/i386/boot/compressed/Makefile already).
>
> Does not work for me at all on sparc64, it complains that *.gz has an
> unknown file format.
I suppose that's because sparc64 doesn't properly define LDFLAGS_BLOB (nor
did it define ARCHBLOBFLAGS, which is replaced by the former now). Look
at arch/i386/Makefile::LDFLAGS_BLOB and adapt accordingly ;)
> Why not just hexdump the thing into an array of char foo.c file,
> then compile that.
Well, I wouldn't think there's any toolchain which doesn't support the
current way when given the right flags, so that looks faster and cleaner
to me.
--Kai
On Mon, 4 Nov 2002, Skip Ford wrote:
> > On Mon, 4 Nov 2002, george anzinger wrote:
> >
> > > I think we need a newer objcopy :(
> >
> > Alternatively, use this patch. (It's not really needed to force people to
> > upgrade binutils when ld can do the job, as it e.g. does in
> > arch/i386/boot/compressed/Makefile already).
> >
> > - ( cd $(obj) ; ./gen_init_cpio | gzip -9c > initramfs_data.cpio.gz )
> > + ( cd $(obj) ; ./$< | gzip -9c > $@ )
>
> I get errors with your patch. I had to remove the 'cd $(obj)' above
> from usr/Makefile.
Right, I shouldn't do these last minute changes without re-testing...
Will send a follow-up patch.
--Kai
From: Kai Germaschewski <[email protected]>
Date: Tue, 5 Nov 2002 10:02:26 -0600 (CST)
I suppose that's because sparc64 doesn't properly define LDFLAGS_BLOB (nor
did it define ARCHBLOBFLAGS, which is replaced by the former now). Look
at arch/i386/Makefile::LDFLAGS_BLOB and adapt accordingly ;)
Precisely, I have it working now. Thanks!
On Tue, 5 Nov 2002, Kai Germaschewski wrote:
>
> > Why not just hexdump the thing into an array of char foo.c file,
> > then compile that.
>
> Well, I wouldn't think there's any toolchain which doesn't support the
> current way when given the right flags, so that looks faster and cleaner
> to me.
Especially since we expect the array to be potentially megabytes in the
end (especially if somebody wants to make a bootable CD using this), and
at least traditional gcc's would do horrible O(n^2) things with big
initialized arrays.
Much better to just tell the tools it is a blob.
Linus
On Tue, 2002-11-05 at 16:08, Linus Torvalds wrote:
> Especially since we expect the array to be potentially megabytes in the
> end (especially if somebody wants to make a bootable CD using this), and
> at least traditional gcc's would do horrible O(n^2) things with big
> initialized arrays.
Newer gcc is much saner, but there are other ways to do it - gas is
quite happy to chew a 10Mb .byte file 8)
On Mon, 2002-11-04 at 18:13, Linus Torvalds wrote:
> Robert Love <[email protected]>:
> ...
> o decoded wchan in /proc
> ...
Just an fyi, the procps changes to support this new feature are now in
CVS.
CVS information, as well as CVS snapshots with the support, are
available from: http://tech9.net/rml/procps/
Note old procps packages will still work as the old wchan field is still
exported in stat.
Large machines using ps or top with the WCHAN field should see a
difference. Also, procps no longer requires System.map.
Robert Love
Next driver to port to the new api. I did it some time ago. It will be in
the next fbdev pull.