Forum

Please consider registering
guest

Log In Register

Register | Lost password?
Advanced Search

— Forum Scope —

  

— Match —

   

— Forum Options —

   

Minimum search word length is 4 characters - maximum search word length is 84 characters

Topic RSS
Accessing GPIO on 86Duino in DOS environment and Assembly language
2018 年 11 月 06 日
04:45:11
jejump
New Member
Forum Posts: 4
Member Since:
2015 年 02 月 22 日
Offline

Can someone please put in plain words how to configure the SouthBridge to establish a Base Address for GPIO? According to the thread below, the GPIO is disabled until this happens. I am hoping to accomplish this using assembly language:

From the referenced thread:

Hi,
The GPIO's base addresses need to be configured on EX (mean those addresses are not fixed). If not configure them, GPIO function is disable. A simple method to configure them as below for reference 86Duino source code:

1. access SouthBridge(SB) and set GPIO base address at 62h, 63h. For 86Duino, it is set as 0xF100 in standard I/O space. You can set another as you like (recommend to set a high address). Access SB method for refer to ftp://ftp.dmp.com.tw/DMP_Vorte.....091216.pdf.
2. access address 0xF100 (standard I/O space), set GPIO enable bit (0xF100h ~ 0xF103h).
3. set 0xF104 ~ 0xF107 for GPIO0's DIR base address and DATA base address, 0xF108 ~ 0xF10B for GPIO1's DIR base address and DATA base address and so on. For 86Duino, GPIO0's DIR address is set as 0xF202 and DATA address is 0xF200, GPIO1's DIR address is set as 0xF206 and DATA address is 0xF204 and so on.
4. access 0xF200 and 0xF202, you can use GPIO0, access 0xF204 and 0xF206 to use GPIO1 and so on.

In addition, to output GPIO signal, need to configure CORSSBAR as below:

1. set CROSSBAR base address at SB 0x64, 0x65. For 86Duino, it is set as 0x0A00 (standard I/O space).
2. start to access CROSSBAR function from address 0x0A00.
For reference, https://gist.github.com/nonakap/9045101.
(posted from http://www.86duino.com/?page_i.....on-educake)

Regards

Source: http://www.86duino.com/?page_i.....o-register

If anyone can guide me, I'd be extremely grateful!!

Thanks in advance,
John

2018 年 11 月 07 日
00:26:00
jejump
New Member
Forum Posts: 4
Member Since:
2015 年 02 月 22 日
Offline

Okay,

Maybe I should back up and tell you what I THINK I have learned regarding enabling read/write on the GPIO lines through low-level language. Maybe someone can validate whether or not my understanding of this is thus far accurate.

In step 1 above, Android_Lin's instructions to Dinosaur are to access the "SouthBridge set GPIO address at 62h, 63h" but he doesn't go far enough to say exactly how to do this. I have read about PCI Configuration Address Register at 0CF8h. This register is accessible via a DOUBLE WORD access ONLY so I'm assuming the assembly language way to this will be something like:

MOV EAX, 8000####h (I don't know what this exact value should be. Another thing that I'm lost on).
MOV DX, 0CF8h
OUT DX, EAX
...
...

I think the value for EAX above is best talked about on page 202 of the Vortex86EX Fact Sheet .pdf but maybe even prior to this step, I need to read the PCI Configuration Data Register at 0CFCh and do something with that value first. There is really no good source I've found for achieving the proper steps here. I hope to gain a clear understanding for this and be able to help someone else in the future with the same goals.

Hope someone out there can elaborate!

Thanks,
John

Forum Timezone: Asia/Taipei

Most Users Ever Online: 66

Currently Online:
4 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

Dinosaur: 27

leutenecker: 13

mrZagg: 10

smeezekitty: 8

hippy: 8

Ekkehard: 8

UIdahoCIT: 8

tomka: 8

lukeross: 8

Kato Gangstad: 7

Member Stats:

Guest Posters: 0

Members: 1473

Moderators: 14

Admins: 5

Forum Stats:

Groups: 2

Forums: 10

Topics: 234

Posts: 1073

Newest Members: Gyclewheeple, mameise, Bonbon, darch8558, qwtucqjukt, Ronalddruck, jjump, xxsergiorob, Bryanwitle, npapanikolas

Moderators: Glaux: 70, uaa: 11, guigra: 16, asian55: 22, Android_Lin: 207, bcarroll: 12, cucubutter: 84, recycled-air: 12, stevemork: 16, zerozaber: 52, pongraczi: 20, George Andrews III: 56, poto: 11, garpastym: 20

Administrators: eveshih: 1, anthony: 31, viky6: 0, roboard: 135, hcl: 0