各位大牛,你们好!
这边手头上有一个板子,不是TI的demo板,因此板子上没有EEPROM,MLO和u-boot文件一个是TI这边生成的,另一套MLO和U-BOOT是之前一个没有使用EEPROM的开发板上使用的文件,但是在挂装文件系统的时候,都有出现错误。
不知道各位有没有详细点的资料关于没有EEPROM的板子上MLO和U-boot需要修改哪些地方?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你是想问,怎么修改MLO和U-BOOT去解决识别EEPROM带来的问题是么。
之前在帮个客户做uniflash移植的时候搞过这个问题,参考一下这个链接:http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/52381.aspx
“2014.2.18更新内容” 条目里面的
3.1 对于EEPROM操作的修改:由于在官方的开发板上,都会有EEPROM来进行板子的型号辨识,不同板子资源不同,配置也就不同,因此该处的配置会影响到DDR的配置以及NAND flash的配置;一般来说客户自己的开发板上没有eeprom,所以要对此处进行修改。文件位置:uboot的根目录/board/ti/am335x/board.c文件中搜索"eeprom“既可找到配置的地方。
现在使用的是其他公司做的开发板,其中MLO,u-boot,root这三个文件是使用开发板配套文件,从TI这边生成的Image文件放到一起烧录,不成功,不知道哪里需要修改,希望大牛能指点下。
下面是串口输出数据:
boot from NAND...
##### EmbedSky BIOS for TQ3358 #####
This Board: SDRAM is 512MB; LCD display size is: 800X480
Hit any key to stop autoboot: 0
##### Boot for TQ3358 Main Menu #####
##### EmbedSky SD download mode #####
[1] Download u-boot.bin to Nand Flash
[2] Download MLO to Nand Flash
[3] Download Linux Kernel (uImage.bin) to Nand Flash
[4] Download LOGO Picture (logo.bin) to Nand Flash
[5] Download UBIFS image (root.bin) to Nand Flash
[6] Download YAFFS image (root.bin) to Nand Flash
[7] Download Program to SDRAM and Run it
[8] Boot the system
[9] Format the Nand Flash
[0] Set the boot parameters
[a] Download User Program
[n] Enter TFTP download mode menu
[r] Reboot u-boot
[t] Test kernel Image (uImage)
Enter your selection: 0
##### Parameter Menu #####
[1] Set NFS boot parameter
[2] Set Yaffs boot parameter for Android or Standard Linux
[3] Set UBIfs boot parameter for Android or Standard Linux
[4] Set EXT4fs boot parameter for Android or Standard Linux
[5] Set boot parameter
[6] Set parameter
[7] View the parameters
[c] Choice lcd type.
[d] select driver and init
[s] Save the parameters to Nand Flash
[q] Return main Menu
Enter your selection: 3
bootargs=console=ttyO0,115200n8 androidboot.console=ttySAC0 root=ubi0:rootfs rw
ubi.mtd=7,2048 rootfstype=ubifs rootwait=1 init=/init ip=off
##### Parameter Menu #####
[1] Set NFS boot parameter
[2] Set Yaffs boot parameter for Android or Standard Linux
[3] Set UBIfs boot parameter for Android or Standard Linux
[4] Set EXT4fs boot parameter for Android or Standard Linux
[5] Set boot parameter
[6] Set parameter
[7] View the parameters
[c] Choice lcd type.
[d] select driver and init
[s] Save the parameters to Nand Flash
[q] Return main Menu
Enter your selection: s
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x260000 -- 100% complete.
Writing to Nand... done
##### Parameter Menu #####
[1] Set NFS boot parameter
[2] Set Yaffs boot parameter for Android or Standard Linux
[3] Set UBIfs boot parameter for Android or Standard Linux
[4] Set EXT4fs boot parameter for Android or Standard Linux
[5] Set boot parameter
[6] Set parameter
[7] View the parameters
[c] Choice lcd type.
[d] select driver and init
[s] Save the parameters to Nand Flash
[q] Return main Menu
Enter your selection: 5
Enter (console=) for bootargs
ttyO0,115200n8 androidboot.console=ttySAC0
Enter (mem=) for bootargs
512M
Enter (root=) for bootargs
/dev/mtdblock7 rw
Enter (rootfstype=) for bootargs
ubifs rootwait=1
bootargs=console=ttyO0,115200n8 androidboot.console=ttySAC0 root=/dev/mtdblock7
rw noinitrd rootfstype=ubifs rootwait=1 init=/init ip=none
##### Parameter Menu #####
[1] Set NFS boot parameter
[2] Set Yaffs boot parameter for Android or Standard Linux
[3] Set UBIfs boot parameter for Android or Standard Linux
[4] Set EXT4fs boot parameter for Android or Standard Linux
[5] Set boot parameter
[6] Set parameter
[7] View the parameters
[c] Choice lcd type.
[d] select driver and init
[s] Save the parameters to Nand Flash
[q] Return main Menu
Enter your selection: q
##### Boot for TQ3358 Main Menu #####
##### EmbedSky SD download mode #####
[1] Download u-boot.bin to Nand Flash
[2] Download MLO to Nand Flash
[3] Download Linux Kernel (uImage.bin) to Nand Flash
[4] Download LOGO Picture (logo.bin) to Nand Flash
[5] Download UBIFS image (root.bin) to Nand Flash
[6] Download YAFFS image (root.bin) to Nand Flash
[7] Download Program to SDRAM and Run it
[8] Boot the system
[9] Format the Nand Flash
[0] Set the boot parameters
[a] Download User Program
[n] Enter TFTP download mode menu
[r] Reboot u-boot
[t] Test kernel Image (uImage)
Enter your selection: 8
Start Linux ...
NAND read: device 0 offset 0x280000, size 0x300000
3145728 bytes read: OK
setting bootargs ...
bootargs=console=ttyO0,115200n8 androidboot.console=ttySAC0 root=/dev/mtdblock7
rw noinitrd rootfstype=ubifs rootwait=1 init=/init ip=none lcd=X800Y480 uart1_d_
can=uart1 uart2_i2c2=uart2
NAND read: device 0 offset 0x580000, size 0x500000
5242880 bytes read: OK
## Booting kernel from Legacy Image at 80007fc0 ...
Image Name: Linux-3.2.0
Created: 2014-08-05 6:17:42 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3193936 Bytes = 3 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
XIP Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Linux version 3.2.0 (zhyf@ECU-SERVER) (gcc version 4.7.3 20130226
(prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013
.03) ) #1 Tue Aug 5 13:37:53 CST 2014
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructio
n cache
[ 0.000000] Machine: am335xevm
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] AM335X ES2.1 (sgx neon )
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pag
es: 130048
[ 0.000000] Kernel command line: console=ttyO0,115200n8 androidboot.console=t
tySAC0 root=/dev/mtdblock7 rw noinitrd rootfstype=ubifs rootwait=1 init=/init ip
=none lcd=X800Y480 uart1_d_can=uart1 uart2_i2c2=uart2
[ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Memory: 512MB = 512MB total
[ 0.000000] Memory: 513168k/513168k available, 11120k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0598000 (5696 kB)
[ 0.000000] .init : 0xc0598000 - 0xc05d3000 ( 236 kB)
[ 0.000000] .data : 0xc05d4000 - 0xc063e430 ( 426 kB)
[ 0.000000] .bss : 0xc063e454 - 0xc066d224 ( 188 kB)
[ 0.000000] NR_IRQS:396
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrup
ts
[ 0.000000] Total of 128 interrupts on 1 active controller
[ 0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
[ 0.000000] omap_dm_timer_switch_src: Switching to HW default clocksource(sys
_clkin_ck) for timer1, this may impact timekeeping in low power state
[ 0.000000] OMAP clocksource: GPTIMER1 at 24000000 Hz
[ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 17895
6ms
[ 0.000000] Console: colour dummy device 80x30
[ 0.000224] Calibrating delay loop... 718.02 BogoMIPS (lpj=3590144)
[ 0.057157] pid_max: default: 32768 minimum: 301
[ 0.057292] Security Framework initialized
[ 0.057396] Mount-cache hash table entries: 512
[ 0.057804] CPU: Testing write buffer coherency: ok
[ 0.078282] omap_hwmod: pruss: failed to hardreset
[ 0.079470] print_constraints: dummy:
[ 0.079846] NET: Registered protocol family 16
[ 0.082021] OMAP GPIO hardware version 0.1
[ 0.084604] omap_mux_init: Add partition: #1: core, flags: 0
[ 0.086566] omap_i2c.1: alias fck already exists
[ 0.087505] omap2_mcspi.1: alias fck already exists
[ 0.087733] omap2_mcspi.2: alias fck already exists
[ 0.088675] edma.0: alias fck already exists
[ 0.088695] edma.0: alias fck already exists
[ 0.088712] edma.0: alias fck already exists
[ 0.115571] bio: create slab <bio-0> at 0
[ 0.117879] SCSI subsystem initialized
[ 0.119520] usbcore: registered new interface driver usbfs
[ 0.119829] usbcore: registered new interface driver hub
[ 0.120036] usbcore: registered new device driver usb
[ 0.120349] registerd cppi-dma Intr @ IRQ 17
[ 0.120363] Cppi41 Init Done Qmgr-base(e087a000) dma-base(e0878000)
[ 0.120372] Cppi41 Init Done
[ 0.120401] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
[ 0.120698] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
[ 0.121828] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
[ 0.123676] tps65910 1-002d: JTAGREVNUM 0x0
[ 0.126079] print_constraints: VRTC:
[ 0.127539] print_constraints: VIO: at 1500 mV
[ 0.129863] print_constraints: VDD1: 600 <--> 1500 mV at 1262 mV normal
[ 0.132154] print_constraints: VDD2: 600 <--> 1500 mV at 1137 mV normal
[ 0.133150] print_constraints: VDD3: 5000 mV
[ 0.134563] print_constraints: VDIG1: at 1800 mV
[ 0.135990] print_constraints: VDIG2: at 1800 mV
[ 0.137421] print_constraints: VPLL: at 1800 mV
[ 0.138857] print_constraints: VDAC: at 1800 mV
[ 0.140292] print_constraints: VAUX1: at 1800 mV
[ 0.141731] print_constraints: VAUX2: at 3300 mV
[ 0.143150] print_constraints: VAUX33: at 3300 mV
[ 0.144558] print_constraints: VMMC: at 3300 mV
[ 0.145068] tps65910 1-002d: No interrupt support, no core IRQ
[ 0.146453] Advanced Linux Sound Architecture Driver Version 1.0.24.
[ 0.147693] Switching to clocksource gp timer
[ 0.163075] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[ 0.163273] musb-hdrc musb-hdrc.0: dma type: dma-cppi41
[ 0.163618] MUSB0 controller's USBSS revision = 4ea20800
[ 0.163656] musb0: Enabled SW babble control
[ 0.164580] musb-hdrc musb-hdrc.0: USB OTG mode controller at e083c000 using
DMA, IRQ 18
[ 0.164749] musb-hdrc musb-hdrc.1: dma type: dma-cppi41
[ 0.165071] MUSB1 controller's USBSS revision = 4ea20800
[ 0.165101] musb1: Enabled SW babble control
[ 0.165540] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[ 0.165636] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus numbe
r 1
[ 0.165774] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.165788] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=
1
[ 0.165802] usb usb1: Product: MUSB HDRC host driver
[ 0.165812] usb usb1: Manufacturer: Linux 3.2.0 musb-hcd
[ 0.165822] usb usb1: SerialNumber: musb-hdrc.1
[ 0.166643] hub 1-0:1.0: USB hub found
[ 0.166684] hub 1-0:1.0: 1 port detected
[ 0.167251] musb-hdrc musb-hdrc.1: USB Host mode controller at e083e800 using
DMA, IRQ 19
[ 0.167700] NET: Registered protocol family 2
[ 0.167975] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.168287] TCP established hash table entries: 16384 (order: 5, 131072 bytes
)
[ 0.168583] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.168758] TCP: Hash tables configured (established 16384 bind 16384)
[ 0.168771] TCP reno registered
[ 0.168783] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.168806] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.169012] NET: Registered protocol family 1
[ 0.169278] RPC: Registered named UNIX socket transport module.
[ 0.169289] RPC: Registered udp transport module.
[ 0.169298] RPC: Registered tcp transport module.
[ 0.169306] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.169561] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.189673] VFS: Disk quotas dquot_6.5.2
[ 0.189747] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.190304] msgmni has been set to 1002
[ 0.193529] alg: No test for stdrng (krng)
[ 0.194247] io scheduler noop registered
[ 0.194262] io scheduler deadline registered
[ 0.194331] io scheduler cfq registered (default)
[ 0.195530] Could not set LED4 to fully on
[ 0.208850] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[ 0.881568] console [ttyO0] enabled
[ 0.885843] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[ 0.893700] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[ 0.901513] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[ 0.909298] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
[ 0.917073] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
[ 0.925362] omap4_rng omap4_rng: OMAP4 Random Number Generator ver. 2.00
[ 0.941870] brd: module loaded
[ 0.950027] loop: module loaded
[ 0.953484] i2c-core: driver [tsl2550] using legacy suspend method
[ 0.959965] i2c-core: driver [tsl2550] using legacy resume method
[ 0.966387] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[ 0.980308] Detected a daughter card on AM335x EVM..
[ 0.985307] Unknown CPLD version found
[ 0.989451] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[ 1.067738] AM335X: EVM Config read fail: -110
[ 1.074364] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 1.081544] omap2-nand driver initializing
[ 1.085980] OneNAND driver initializing
[ 1.091292] CAN device driver interface
[ 1.095296] CAN bus driver for Bosch D_CAN controller 1.0
[ 1.101082] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[ 1.108997] usbcore: registered new interface driver zd1201
[ 1.114999] usbcore: registered new interface driver cdc_ether
[ 1.121273] usbcore: registered new interface driver cdc_eem
[ 1.127326] usbcore: registered new interface driver dm9601
[ 1.133200] cdc_ncm: 04-Aug-2011
[ 1.136724] usbcore: registered new interface driver cdc_ncm
[ 1.142643] Initializing USB Mass Storage driver...
[ 1.147954] usbcore: registered new interface driver usb-storage
[ 1.154218] USB Mass Storage support registered.
[ 1.159520] mousedev: PS/2 mouse device common for all mice
[ 1.166224] i2c /dev entries driver
[ 1.170360] Linux video capture interface: v2.00
[ 1.175493] usbcore: registered new interface driver uvcvideo
[ 1.181547] USB Video Class driver (1.1.1)
[ 1.188034] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 1.196608] cpuidle: using governor ladder
[ 1.201416] cpuidle: using governor menu
[ 1.206124] omap4_aes_mod_init: loading AM33X AES driver
[ 1.211808] omap4-aes omap4-aes: AM33X AES hw accel rev: 3.02
[ 1.218341] omap4_aes_probe: probe() done
[ 1.222760] omap4_sham_mod_init: loading AM33X SHA/MD5 driver
[ 1.228925] omap4-sham omap4-sham: AM33X SHA/MD5 hw accel rev: 4.03
[ 1.240668] omap4_sham_probe: probe() done
[ 1.247382] usbcore: registered new interface driver usbhid
[ 1.253237] usbhid: USB HID core driver
[ 1.258433] usb 1-1: New USB device found, idVendor=1a40, idProduct=0101
[ 1.265432] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 1.272903] usb 1-1: Product: USB 2.0 Hub
[ 1.277544] usbcore: registered new interface driver snd-usb-audio
[ 1.286107] ALSA device list:
[ 1.289248] No soundcards found.
[ 1.292793] oprofile: hardware counters not available
[ 1.298071] oprofile: using timer interrupt.
[ 1.302550] nf_conntrack version 0.5.0 (8018 buckets, 32072 max)
[ 1.309398] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 1.315065] TCP cubic registered
[ 1.318468] NET: Registered protocol family 17
[ 1.323112] can: controller area network core (rev 20090105 abi 8)
[ 1.329651] NET: Registered protocol family 29
[ 1.334286] can: raw protocol (rev 20090105)
[ 1.338752] can: broadcast manager protocol (rev 20090105 t)
[ 1.344697] Registering the dns_resolver key type
[ 1.349690] VFP support v0.3: implementor 41 architecture 3 part 30 variant c
rev 3
[ 1.357688] ThumbEE CPU extension supported.
[ 1.362217] mux: Failed to setup hwmod io irq -22
[ 1.367862] Power Management for AM33XX family
[ 1.372726] Trying to load am335x-pm-firmware.bin (60 secs timeout)
[ 1.379411] Copied the M3 firmware to UMEM
[ 1.383762] Cortex M3 Firmware Version = 0x181
[ 1.388900] hub 1-1:1.0: USB hub found
[ 1.392938] hub 1-1:1.0: 4 ports detected
[ 1.398019] sr_init: platform driver register failed
[ 1.406800] clock: disabling unused clocks to save power
[ 1.425446] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 1.432446] Root-NFS: no NFS server address
[ 1.436809] VFS: Unable to mount root fs via NFS, trying floppy.
[ 1.443206] List of all partitions:
[ 1.446856] No filesystem could mount root, tried: ubifs
[ 1.452515] Kernel panic - not syncing: VFS: Unable to mount root fs on unkno
wn-block(2,0)
[ 1.461143] Backtrace:
[ 1.463737] [<c0017dbc>] (dump_backtrace+0x0/0x10c) from [<c04140c0>] (dump_s
tack+0x18/0x1c)
[ 1.472548] r6:00008000 r5:c04f7130 r4:c0641188 r3:c05f7f0c
[ 1.478485] [<c04140a8>] (dump_stack+0x0/0x1c) from [<c04142fc>] (panic+0x64/
0x194)
[ 1.486487] [<c0414298>] (panic+0x0/0x194) from [<c0598cf8>] (mount_block_roo
t+0x1e4/0x228)
[ 1.495207] r3:df02df0c r2:00000020 r1:df02df40 r0:c04f7130
[ 1.501133] r7:c04f7198
[ 1.503783] [<c0598b14>] (mount_block_root+0x0/0x228) from [<c0598ef0>] (moun
t_root+0xc8/0xe8)
[ 1.512782] [<c0598e28>] (mount_root+0x0/0xe8) from [<c059907c>] (prepare_nam
espace+0x16c/0x1c0)
[ 1.521952] r4:c063e4e0
[ 1.524602] [<c0598f10>] (prepare_namespace+0x0/0x1c0) from [<c05988fc>] (ker
nel_init+0xf4/0x120)
[ 1.533861] r5:c05d2644 r4:c05d2644
[ 1.537615] [<c0598808>] (kernel_init+0x0/0x120) from [<c004203c>] (do_exit+0
x0/0x65c)
[ 1.545879] r5:c0598808 r4:00000000
从你上面给出的log信息中,kernel已经起来了,但是文件系统有问题,没有找到,所以出错。
看你前面的选择是ubifs,应该是NAND的文件系统,你确定现在的NAND中有正常的UBIFS文件系统吗?
你好,不知道你这里有debrick-nand.txt的源文件吗?或者这个源文件可以在哪里下载到?这个也是在Linux上SDK工具上生成debrick脚本文件吗?
我是做硬件的,开始接触软件这块,所以不是很清楚。麻烦大牛指点下。
你是想要Uniflash烧写的那个debirck-nand.txt源文件吗?可以从这里下载:http://processors.wiki.ti.com/index.php/Sitara_Linux_AM335x_Flash_Programming_Linux_Development#Debrick_Script_Modification
你好Steven Liu,我们自己做的板子是没有EEPROM的,TI的EVM板子上是有EEPROM的,那在修改u-boot时候需要修改哪里?如何修改,是否是把u-boot里的EEPROM部分内容注释掉?
谢谢,希望大牛能指点下
不仅仅是注释掉这么简单,因为板子会通过EERPOM得到板子ID,从而进行资源的配置。
关于EEPROM这部分的处理,你可以参考这个链接:http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/68813.aspx
你好Steven Liu,链接里面文件我看了,里面有一个修改DDR3的指导,因为我这边自己画的板子使用的是DDR2,那针对DDR这部分u-boot的修改,和上面链接中关于DDR3部分的修改有什么不一样的地方吗?
HI Steven Liu,,,我这边自己的板子使用的DDR2是8位的,链接中的DDR3是16位的,这边配置上U-boot需要如何修改呢?
谢谢,希望大牛指点
DDR2的配置和DDR3的比较类似,用的是一样的工具,一样的流程,只是不用做software leveling。
具体的你可以参考这两个链接:http://processors.wiki.ti.com/index.php/AM335x_DDR_PHY_register_configuration_for_DDR3_using_Software_Leveling
http://processors.wiki.ti.com/index.php/AM335x_EMIF_Configuration_tips#DDR_PHY_Registers
我们的DDR控制器是16位宽度的,你的意思是你板子上使用的是两块DDR2合在一起的设计吧?
UBOOT里面需要修改的内容就是timing的相关参数和SDCONFIG还有PHY相关的寄存器,我们的GPEVM板上也是两个DDR2 8位宽度的设计,你可以参考附件中的配置,基于这个,走我之前说的流程对相关的配置进行修改。
//*******************************************************************
//DDR2 PHY parameters
//*******************************************************************
#define CMD_PHY_CTRL_SLAVE_RATIO 0x80
#define CMD_PHY_INVERT_CLKOUT 0x0
#define DATA_PHY_RD_DQS_SLAVE_RATIO 0x12
#define DATA_PHY_FIFO_WE_SLAVE_RATIO 0x80 //RD_DQS_GATE
#define DATA_PHY_WR_DQS_SLAVE_RATIO 0
#define DATA_PHY_WR_DATA_SLAVE_RATIO 0x40 //WRITE_DATA
#define DDR_IOCTRL_VALUE (0x18B)
//******************************************************************
//EMIF parameters
//******************************************************************
#define DDR2_READ_LATENCY 0x05 //RD_Latency = (CL + 2) - 1
#define DDR2_SDRAM_TIMING1 0x0666B3C9
#define DDR2_SDRAM_TIMING2 0x243631CA
#define DDR2_SDRAM_TIMING3 0x00000337
#define DDR2_SDRAM_CONFIG 0x41805332 //termination = 1 (75ohm)
//SDRAM drive = 0 (full)
//CL = 4 (CAS latency = 4)
//ROWSIZE = 6 (15 row bits)
//PAGESIZE = 2 (10 column bits)
#define DDR2_REF_CTRL 0x0000081a //266*7.8us = 2074.8 = 0x81A
你好Steven Liu, 我的意思是我的板子上只有一片的DDR2,且DDR2是8位的
你好,Steven Liu,
在debirck-nand.scr脚本文件制作中之前有在一个连接中看到指导(http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/52381.aspx),
里面有一个制作脚本文件的SPI烧录的PDF文件(见附件),我这边在制作过程中第一步中的“源文件flash_cat_util.c”这个是在哪里获取呢?开发包中并没有这个文件SDK_6.0和SDK_7.0的开发包中都没有这个文件。
希望得到大牛们的指点
这个在文章中给的链接中有啊,地址:
http://processors.wiki.ti.com/index.php/Sitara_Linux_AM335x_Flash_Programming_Linux_Development#Concatenate_Images_to_be_Flashed_into_a_Single_File
里面不是有个下载的文件:File:Flash cat util.zip
HI,Steven Liu,
这边关于程序编写和引脚复用时候的程序上配置的问题请教下:
1.设置为输入或输出的GPIO口调用什么函数?
2.读取GPIO的值调用什么函数?
3.写入GPIO的值调用什么函数?
4.在ARM芯片中有很多引脚是有复用功能,下面这几个使用的不是引脚的默认功能,而是用到了引脚的复用功能,这个在程序引脚配置上要怎么配置:
1)、默认引脚不是GPIO,这边需要是的GPIO复用功能需要如何程序上配置引脚;
2)、默认为GPMC,现在需要使用的是MMC1的引脚复用功能需要如何程序上进行配置引脚;
3)、默认是UART_CTSN/RTSN,现在需要使用的是UART_RX/TX的引脚复用功能需要如何程序上进行引脚配置。
之前搞硬件,刚刚开始接触软件这块,所以不是很清楚,希望大牛指点。
用Linux?建议你自己查查资料翻翻代码吧,都是开源的东西,查资料找起来不难,花点时间,1,2,3都不是问题。问我也是一样要去找的。
对于问题4,多数情况下,你可以都不会使用管脚的默认状态,所以才有pinmux的设置,有pinmux工具,帮你去设定当前管脚使用的工作状态,当前pin有相应的功能,且不会出现pinmux冲突,就可以工作在该模式。设置的地址在Control module中,你会看到很多以信号为名的寄存器,指代的就是那个pin脚(PS:这个信号,即为工作在模式0时的信号名称)。wiki上搜一下很容易找到pinmux工具的下载地址。
我的引脚配置是使用pinmux工具配置的,然后生成一个.h的头文件,里面有配置的相关信息是吗?
是的,但是这个头文件无法直接使用的,配置好了后,你要自己改动到相应代码中,模糊记得kernel部分在arch/arm/mach-omap2/board-am335xevm.c中。
HI,Steven
我们自己的板子开始在调试了,我这边先是使用SD卡烧录,引脚配置,clk、cmd dat【0·3】,nCD、wp分别接的是G17(MMC0_CLK)、G18(MMC0_CMD)、G16、G15、F18、F17、A13(MMC0_SDCD)、B12(MMC_WP),但是烧录是提示SD卡识别错误,无法识别SD卡,可以确定的是卡没问题,SD卡的电路没问题
打印内容如下
U-Boot SPL 2013.01.01 (Sep 29 2014 - 09:22:58)
Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
Could not get board ID.
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
OMAP SD/MMC: 0
Card did not respond to voltage select!
spl: mmc init failed: err - -17
### ERROR ### Please RESET the board ###
你log中显示的这句:
Could not probe the EEPROM; something fundamentally wrong on the I2C bus.
移植的时候没有对EEPROM进行处理吗?这个是我们EVM板上都有的,用来存储ID号,区别板子的类型和资源配置。
Hi,Steven
如果使用Uniflash烧录软件,通过网线连接电脑和板子,进行烧录,在sysboot上进行启动配置你看下下面这个配置可以吗?
0100 0000 0000 00111
问下sysboot中的sysboot[8]中的8位和16位指哪个,sysboot[5]中的clock是什么作用的?
建议你看一下这个:AM335x使用Uniflash进行网口烧写的注意事项
SYSBOOT[8]就是指LCD[8]这个管脚。clock指的是我们有个bypass的clockout1(频率和主时钟是一致的),是否要被使能。就是A15脚,模式3。
HI,Steven
这边使用Usb烧录时候,usb插进去上电,一直说不识别USB,
我这边的sysboot配置为0100 0000 0000 1100 USB0,NAND,XIP,NANDI2C,也试过 0100 0000 0001 1100 MMC1,MMC0,UART0,USB0(MMC1和MMC0没有设备,所以会流到UART和USB)
首先确认一下,你的芯片版本是1.0的,还是2.0/2.1的?举个例子:在芯片的丝印上是,AM3359还是AM3359B,带B的为PG2.1版本,不带B的为1.0版本,不支持USB烧录。
如果是PG2.1的版本,有装过USB_RNDIS的那个driver吗?
PS:前面看你在搞网口烧录,搞定了么?
首先,芯片是am3352BZCZD60,是2.0/2.1的,
USB_RNDIS的驱动有下载链接吗?之前wiki有找了下没看到
就在这里:http://processors.wiki.ti.com/index.php/Sitara_Uniflash_Quick_Start_Guide#Flashing_a_Board_using_USB
Download File:Linux am335x.zip and unzip it to help make the association between the target board and the correct USB driver on the host PC and place linux_AM335x.inf in c:\AM335x_Flashtool.
HI Steven
我这边设置USB启动的sysboot,芯片也是支持USB的,怎么USB插入上电总是显示找不到设备?昨天那个.inf文件也放在指定文件夹也还是提示不识别USB。