|
Hello, I am attempting to replace the emac peripheral in the petalinux Xilinx-Spartan3E1600-RevA-edk91
reference design with the ethernetlite peripheral. I have already successfully
built and run the reference design as it was distributed. I am switching to the
ethernetlite peripheral because my final design will use that MAC. Currently I can build the bitstream, and kernel but u-boot hangs. I get
the following output at boot. ================================================= FS-BOOT First Stage Bootloader (c) 2006 PetaLogix ================================================= FS-BOOT: System initialisation completed. FS-BOOT: Searching for U-Boot at address: 0x21100000 FS-BOOT: Booting from FLASH. Press 's' for image
download. FS-BOOT: Waiting for SREC image.... FS-BOOT: Image download successful. FS-BOOT: Warning image location differ from default
boot location. Image will not boot automatically after POR. FS-BOOT: Press 'n' to boot old image. FS-BOOT: Use new image. FS-BOOT: Booting image... I am new to microblaze, uboot, and petalinux development so I suspect I
am missing a critical step. So, here is what I did and if someone can tell me
where I went wrong, or point me in the direction of helpful documentation I
would appreciate it. What I did: -
Deleted the emac peripheral from
the EDK design (including all its ports). -
Browsed the IP catalog for the OPB
10/100 Ethernet MAC Lite and dragged it into the EDK design as
opb_ethernetlite_0. -
Connected opb_ethernetlite_0 to
the mb_opb bus. -
Opened the properties dialog for
the opb_ethernetlite_0 device and set System: OPB: OPB Clock Period to 20000ps
(because that is how the core is configured in the 500E reference design and I
don’t know any better yet). -
Switched to the Ports page and
selected Make External for all opb_ethernetlite_0 ports except for
IP2INTC_lrpt, for which I selected opb_ethernetlite_0_IP2INTC_Irpt. -
Under External Ports all external “opb-ethernetlite_0_PHY_xxx”
signals are mapped to “opb-ethernetlite_0_PHY_xxx_pin”. -
Under opb_intc_0 I selected the Intr
text box and added opb_ethernetlite_0_IP2INTC_lrpt to the Connected Interrupts
list at priority 3 (since that is how it is configured in the 500E reference
design). -
Switched to the Addresses page and
locked the FLASH_16Mx8 address and DDR_SDRAM_32Mx16 address because I know that
fs-boot is set to use these addresses (and I am used to my base addresses for
ram and flash partitions using these addresses). -
Pressed the “Generate
Addresses” button which assigned new addresses for all peripherals other
than flash and ram. It placed the opb_ethernetlite_0 peripheral at
0x40e00000-0x40e0ffff (size = 64k). -
Opened data/system.ucf and
replaced the old “fpga_0_Ethernet_MAC_PHY_xxx_pin” names with the
new “opb_ethernetlite_0_PHY_xxx_pin” names. Commented out the Mii_clk
and Mii_data ports that the ethernetlite mac does not support. Saved the new
ucf file. -
Generated the bitstream, which
worked without errors. The block diagram shows the peripheral’s
interrupts assigned the same as the 500E reference design. -
Switched to petalinux-dist and ran
“make clean” -
Switched to the Xilinx-Spartan3E1600-RevA-edk91
directory and ran “petalinux-copy-autoconfig” -
Switched back to the petalinux-dist
directory and ran “make menuconfig”. Verified that the kernel was
still linux-2.6.x. -
Changed: Kernel Config ->
Device Drivers -> Network Device Support -> Ethernet (10 or 100Mbit) to “Xilinx
10/100 OPB EMACLITE support” -
Verified that build u-boot was
selected and my flash partition table was still correct. -
Ran “make all”. The
build succeeded without errors. -
Downloaded the new bitstream and
interrupted fs-boot by pressing ‘s’. -
Sent the new u-boot.srec file to
fs-boot. -
System hangs with the above
output. Any help would be greatly appreciated. Thank you, Douglas Bruey |