mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-15 06:33:45 +09:00
![]() A recent gcc added a new unaligned rodata section called '.rodata.str1.1', which needs to be added the the linker script. Instead of just adding this one section, we use a wildcard ".rodata*" to get all rodata linker section gcc has now and might add in the future. However, '*(.rodata*)' by itself will result in sub-optimal section ordering. The sections will be sorted by object file, which causes extra padding between the unaligned rodata.str.1.1 of one object file and the aligned rodata of the next object file. This is easy to fix by using the SORT_BY_ALIGNMENT command. This patch has not be tested one most of the boards modified. Some boards have a linker script that looks something like this: *(.text) . = ALIGN(16); *(.rodata) *(.rodata.str1.4) *(.eh_frame) I change this to: *(.text) . = ALIGN(16); *(.eh_frame) *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) This means the start of rodata will no longer be 16 bytes aligned. However, the boundary between text and rodata/eh_frame is still aligned to 16 bytes, which is what I think the real purpose of the ALIGN call is. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> |
||
---|---|---|
.. | ||
config.mk | ||
flash.c | ||
flash.h | ||
m48t59y.c | ||
m48t59y.h | ||
Makefile | ||
mousse.c | ||
mousse.h | ||
pci.c | ||
README | ||
u-boot.lds | ||
u-boot.lds.ram | ||
u-boot.lds.rom |
U-Boot for MOUSSE/MPC8240 (KAHLUA) ---------------------------------- James Dougherty (jfd@broadcom.com), 09/10/01 The Broadcom/Vooha Mousse board is a 3U Compact PCI system board which uses the MPC8240, a 64MB SDRAM SIMM, and has onboard DEC 21143, NS16550 UART, an SGS M48T59Y TOD, and 4MB FLASH. See also: http://www.vooha.com/ * NVRAM setenv/printenv/savenv supported. * Date Command * Serial Console support * Network support * FLASH of kernel images is supported. * FLASH of U-Boot to onboard and PLCC boot region. * Kernel command line options from NVRAM is supported. * IP PNP options supported. U-Boot Loading... U-Boot 1.0.5 (Sep 10 2001 - 00:22:25) CPU: MPC8240 Revision 1.1 at 198 MHz: 16 kB I-Cache 16 kB D-Cache Board: MOUSSE MPC8240/KAHLUA - CHRP (MAP B) Built: Sep 10 2001 at 01:01:50 MPLD: Revision 127 Local Bus: 33 MHz RTC: M48T589 TOD/NVRAM (8176) bytes Current date/time: 9/10/2001 0:18:52 DRAM: 64 MB FLASH: 1.960 MB PCI: scanning bus0 ... bus dev fn venID devID class rev MBAR0 MBAR1 IPIN ILINE 00 00 00 1057 0003 060000 11 00000008 00000000 01 00 00 0d 00 1011 0019 020000 41 80000001 80000000 01 01 00 0e 00 105a 4d38 018000 01 a0000001 a0001001 01 03 In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => I. Root FileSystem/IP Configuration bootcmd=tftp 100000 vmlinux.img;bootm bootdelay=3 baudrate=9600 ipaddr=<IP ADDRESS> netmask=<NETMASK> hostname=<NAME> serverip=<NFS SERVER IP ADDRESS> ethaddr=00:00:10:20:30:44 nfsroot=<NFS SERVER IP ADDRESS>:/boot/root-fs gateway=<IP ADDRESS> root=/dev/nfs stdin=serial stdout=serial stderr=serial NVRAM environment variables. use the command: setenv <attribute> <value> type "saveenv" to write to NVRAM. II. To boot from a hard drive: setenv root /dev/hda1 III. IP options which configure the network: ipaddr=<IP ADDRESS OF MACHINE> netmask=<NETMASK> hostname=mousse ethaddr=00:00:10:20:30:44 gateway=<IP ADDRESS OF GATEWAY/ROUTER> IV. IP Options which configure NFS Root/Boot Support root=/dev/nfs serverip=<NFS SERVER IP ADDRESS> nfsroot=<NFS SERVER IP ADDRESS>:/boot/root-fs V. U-Boot Image Support The U-Boot boot loader assumes that after you build your kernel (vmlinux), you will create a U-Boot image using the following commands or script: #!/bin/csh /bin/touch vmlinux.img /bin/rm vmlinux.img set path=($TOOLBASE/bin $path) set path=($U_BOOT/tools $path) powerpc-linux-objcopy -S -O binary vmlinux vmlinux.bin gzip -vf vmlinux.bin mkimage -A ppc -O linux -T kernel -C gzip -a 0 -e 0 -n vmlinux.bin.gz -d vmlinux.bin.gz vmlinux.img ls -l vmlinux.img VI. ONBOARD FLASH Support FLASH support is provided for the onboard FLASH chip Bootrom area. U-Boot is loaded into either the ROM boot region of the FLASH chip, after first being boot-strapped from a pre-progammed AMD29F040 PLCC bootrom. The PLCC needs to be programmed with a ROM burner using AMD 29F040 ROM parts and the u-boot.bin or u-boot.hex (S-Record) images. The PLCC overlays this same region of flash as the onboard FLASH, the jumper J100 is a chip-select for which flash chip you want to progam. When jumper J100 is connected to pins 2-3, you boot from PLCC FLASH. To bringup a system, simply flash a flash an AMD29F040 PLCC bootrom, and put this in the PLCC socket. Move jumper J100 to pins 2-3 and boot from the PLCC. Now, while the system is running, move Jumper J100 to pins 1-2 and follow the procedure below to FLASH a bootrom (u-boot.bin) image into the onboard bootrom region (AMD29LV160DB): tftp 100000 u-boot.bin protect off FFF00000 FFF7FFFF erase FFF00000 FFF7FFFF cp.b 100000 FFF00000 \${filesize}\ Here is an example: =>tftp 100000 u-boot.bin eth_halt eth0: DC21143 Ethernet adapter(bus=0, device=13, func=0) DEC Ethernet iobase=0x80000000 ARP broadcast 1 Filename 'u-boot.bin'. Load address: 0x100000 Loading: ######################### done Bytes transferred = 123220 (1e154 hex) eth_halt =>protect off FFF00000 FFF7FFFF Un-Protected 8 sectors =>erase FFF00000 FFF7FFFF Erase Flash from 0xfff00000 to 0xfff7ffff Erase FLASH[PLCC_BOOT] -8 sectors:........ done Erased 8 sectors =>cp.b 100000 FFF00000 1e154 Copy to Flash... FLASH[PLCC_BOOT]:..done => B. FLASH RAMDISK REGION FLASH support is provided for an Onboard 512K RAMDISK region. TThe following commands will FLASH a bootrom (u-boot.bin) image into the onboard FLASH region (AMD29LV160DB 2MB FLASH): tftp 100000 u-boot.bin protect off FFF80000 FFFFFFFF erase FFF80000 FFFFFFFF cp.b 100000 FFF80000 \${filesize}\ C. FLASH KERNEL REGION (960KB) FLASH support is provided for the 960KB onboard FLASH1 segment. This allows flashing of kernel images which U-Boot can load and run (standalone) from the onboard FLASH chip. It also assumes The following commands will FLASH a kernel image to 0xffe10000 tftp 100000 vmlinux.img protect off FFE10000 FFEFFFFF erase FFE10000 FFEFFFFF cp.b 100000 FFE10000 \${filesize}\ reset Here is an example: =>tftp 100000 vmlinux.img eth_halt eth0: DC21143 Ethernet adapter(bus=0, device=13, func=0) DEC Ethernet iobase=0x80000000 ARP broadcast 1 TFTP from server 209.128.93.133; our IP address is 209.128.93.138 Filename 'vmlinux.img'. Load address: 0x100000 Loading: ##################################################################################################################################################### done Bytes transferred = 760231 (b99a7 hex) eth_halt =>protect off FFE10000 FFEFFFFF Un-Protected 15 sectors =>erase FFE10000 FFEFFFFF Erase Flash from 0xffe10000 to 0xffefffff Erase FLASH[F0_SA3(KERNEL)] -15 sectors:............... done Erased 15 sectors =>cp.b 100000 FFE10000 b99a7 Copy to Flash... FLASH[F0_SA3(KERNEL)]:............done => When finished, use the command: bootm ffe10000 to start the kernel. Finally, to make this the default boot command, use the following commands: setenv bootcmd bootm ffe10000 savenv to make it automatically boot the kernel from FLASH. To go back to development mode (NFS boot) setenv bootcmd tftp 100000 vmlinux.img\;bootm savenv =>tftp 100000 vmlinux.img eth0: DC21143 Ethernet adapter(bus=0, device=13, func=0) DEC Ethernet iobase=0x80000000 ARP broadcast 1 Filename 'vmlinux.img'. Load address: 0x100000 Loading: #################################################################################################################################################### done Bytes transferred = 752717 (b7c4d hex) eth_halt =>protect off FFE10000 FFEFFFFF Un-Protected 15 sectors =>erase FFE10000 FFEFFFFF Erase Flash from 0xffe10000 to 0xffefffff Erase FLASH[F0_SA3(KERNEL)] -15 sectors:............... done Erased 15 sectors =>cp.b 100000 FFE10000 b7c4d Copy to Flash... FLASH[F0_SA3(KERNEL)]:............done =>bootm ffe10000 ## Booting image at ffe10000 ... Image Name: vmlinux.bin.gz Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 752653 Bytes = 735 kB = 0 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Total memory = 64MB; using 0kB for hash table (at 00000000) Linux version 2.4.2_hhl20 (jfd@atlantis) (gcc version 2.95.2 19991024 (release)) #597 Wed Sep 5 23:23:23 PDT 2001 cpu0: MPC8240/KAHLUA : MOUSSE Platform : 64MB RAM: MPLD Rev. 7f Sandpoint port (C) 2000, 2001 MontaVista Software, Inc. (source@mvista.com) IP PNP: 802.3 Ethernet Address=<0:0:10:20:30:44> NOTICE: mounting root file system via NFS On node 0 totalpages: 16384 zone(0): 16384 pages. zone(1): 0 pages. zone(2): 0 pages. time_init: decrementer frequency = 16.665914 MHz time_init: MPC8240 PCI Bus frequency = 33.331828 MHz Calibrating delay loop... 133.12 BogoMIPS Memory: 62436k available (1336k kernel code, 500k data, 88k init, 0k highmem) Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes) Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes) Page-cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 4096 (order: 3, 32768 bytes) POSIX conformance testing by UNIFIX PCI: Probing PCI hardware Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd v1.8 pty: 256 Unix98 ptys configured block: queued sectors max/low 41394kB/13798kB, 128 slots per queue Uniform Multi-Platform E-IDE driver Revision: 6.31 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx PDC20262: IDE controller on PCI bus 00 dev 70 PDC20262: chipset revision 1 PDC20262: not 100% native mode: will probe irqs later PDC20262: ROM enabled at 0x000d0000 PDC20262: (U)DMA Burst Bit DISABLED Primary PCI Mode Secondary PCI Mode. PDC20262: FORCING BURST BIT 0x00 -> 0x01 ACTIVE PDC20262: irq=3 dev->irq=3 ide0: BM-DMA at 0xbfff00-0xbfff07, BIOS settings: hda:DMA, hdb:DMA ide1: BM-DMA at 0xbfff08-0xbfff0f, BIOS settings: hdc:pio, hdd:pio hda: WDC WD300AB-00BVA0, ATA DISK drive hdc: SONY CD-RW CRX160E, ATAPI CD/DVD-ROM drive ide0 at 0xbfff78-0xbfff7f,0xbfff76 on irq 3 ide1 at 0xbfff68-0xbfff6f,0xbfff66 on irq 3 hda: 58633344 sectors (30020 MB) w/2048KiB Cache, CHS=58168/16/63, UDMA(66) hdc: ATAPI 32X CD-ROM CD-R/RW drive, 4096kB Cache Uniform CD-ROM driver Revision: 3.12 Partition check: /dev/ide/host0/bus0/target0/lun0: p1 p2 hd: unable to get major 3 for hard disk udf: registering filesystem loop: loaded (max 8 devices) Serial driver version 5.02 (2000-08-09) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled ttyS00 at 0xffe08080 (irq = 4) is a ST16650 Linux Tulip driver version 0.9.13a (January 20, 2001) eth0: Digital DS21143 Tulip rev 65 at 0xbfff80, EEPROM not present, 00:00:10:20:30:44, IRQ 1. eth0: MII transceiver #0 config 3000 status 7829 advertising 01e1. NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 4096 bind 4096) NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. devfs: v0.102 (20000622) Richard Gooch (rgooch@atnf.csiro.au) devfs: boot_options: 0x0 VFS: Mounted root (nfs filesystem). Mounted devfs on /dev Freeing unused kernel memory: 88k init 4k openfirmware eth0: Setting full-duplex based on MII#0 link partner capability of 45e1. INIT: version 2.78 booting INIT: Entering runlevel: 2 Welcome to Linux/PPC MPC8240/MOUSSE mousse login: root Password: PAM_unix[13]: (login) session opened for user root by LOGIN(uid=0) Last login: Thu Sep 6 00:16:51 2001 on console Welcome to Linux/PPC MPC8240/MOUSSE mousse#