Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: EDK свой контроллер flash памяти
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
RobFPGA
Приветствую!

В систему на базе EowerPC EDK добавил свой контроллер flash памяти (фактически слегка измененый xps_epc). В железе работает, но EDK не понимает что это контроллер flash. sad.gif

Как указать для EDK что это контроллер памяти, то есть чтоб он появлялся как секция доступной памяти при генерации скрипта для линковки ?

Успехов! Rob.
avesat
Вы хотите его использовать как контроллер памяти программы?
RobFPGA
Приветствую!

Да. Хочу туда bootloader свой поместить.

Успехов! Rob.
Sujan
По идее для того чтобы устройству можно было присвоить адреса, достаточно чтобы в .mpd файле было прописано к какого типа шине оно подключается и базовые адреса, например для xps_epc:

BUS_INTERFACE BUS = SPLB, BUS_STD = PLBV46, BUS_TYPE = SLAVE

PARAMETER C_PRH0_BASEADDR = 0xffffffff, DT = std_logic_vector, BUS = SPLB, ADDRESS = BASE, PAIR = C_PRH0_HIGHADDR, ISVALID = (C_NUM_PERIPHERALS>=1), ASSIGNMENT = REQUIRE
PARAMETER C_PRH0_HIGHADDR = 0x00000000, DT = std_logic_vector, BUS = SPLB, ADDRESS = HIGH, PAIR = C_PRH0_BASEADDR, ISVALID = (C_NUM_PERIPHERALS>=1), ASSIGNMENT = REQUIRE
RobFPGA
Приветствую!

Увы - все это уже есть. Фактически я использую стандартный xps_epc с небольшим изменением во внешнем инерфейсе. EDK считает что xps_epc это контроллер переферии и там не может распологатся память. Если ручками подправить файл линковки - то проблем нет, но хочется понять как EDK понимает что корка представляет собой именно блок памяти. Неужели только по имени корки ? Например если в поект не включить стандартную корку контроллера flash памяти то не доступна опция програмирования flash из EDK.

Успехов! Rob.
ilyge
Почитай Platform Specification Format Reference Manual (у меня 10.1 EDK)

ADDR_TYPE
The ADDR_TYPE keyword identifies an address parameter of a defined memory class. The keyword is expressed in the following format:

PARAMETER C_BASEADDR=0xFFFFFFFF, MIN_SIZE=0x2000, ADDR_TYPE=REGISTER
ADDR_TYPE Values

BRIDGE - Address window on the bridge. An address of this type
is forwarded to the bus which is slave to the bridge.

MEMORY - Address window on the memory controller. An address
of this type points to a storage memory, such as SDRAM,
DDR, FLASH, or BRAM.

REGISTER - Address of its own registers. An address of this type points
to registers in the peripheral. These could be status,
control, data registers, or some

Вот пример:
PARAMETER C_MEM0_BASEADDR = 0xffffffff, DT = std_logic_vector, BUS = SPLB, ADDRESS = BASE, PAIR = C_MEM0_HIGHADDR, ADDR_TYPE = MEMORY,
PARAMETER C_MEM0_HIGHADDR = 0x00000000, DT = std_logic_vector, BUS = SPLB, ADDRESS = HIGH, PAIR = C_MEM0_BASEADDR, ADDR_TYPE = MEMORY
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.